diff -uNr gnome-0.11/ChangeLog gnome-0.12/ChangeLog --- gnome-0.11/ChangeLog Wed Jan 7 13:21:09 1998 +++ gnome-0.12/ChangeLog Wed Jan 21 20:14:47 1998 @@ -1,3 +1,451 @@ +Wed Jan 21 20:11:45 1998 Miguel de Icaza + + * obgtk/ObgtkWidget.[mh]: restore state does not exist on the new Gtk + + * libgnome/gnome-score-helper.c (main): Display statistics. + + * libgnome/gnome-score.c (gnome_score_log): we need to call _exit + instead of exit() if the exec fails (since gtk will try to + shutdown itself). + + * libgnomeui/gnome-scores.c (gnome_scores_display): New function. + Takes care of all the details of displaying the score. + + * programs/same-gnome.c (show_scores): use the simplified routine + * programs/gnomine/gnomine.c (show_scores): likewise + +Wed Jan 21 01:18:34 1998 Federico Mena + + * programs/same-gnome/same-gnome.c (show_scores): cast hs to GNOME_SCORES. + + * programs/gnomine/gnomine.c (show_scores): cast hs to GNOME_SCORES. + + * programs/panel/panel.c (pop_down): return FALSE for timeout callback. + + * programs/panel/mailcheck/mailcheck.c (mailcheck_properties): + cast property_window to GTK_WINDOW. + + * libgnomeui/gnome-scores.c: #include + (gnome_scores_set_logo_label): Added parentheses around assignment + in truth value. + + * libgnomeui/gnome-app-helper.c (gnome_app_do_toolbar_creation): + Removed cast to GTK_PIXMAP from call to gtk_toolbar_append_item(). + +Wed Jan 21 00:41:27 1998 Federico Mena + + * All occurrences of snprintf() replaced by g_snprintf(). + + * The following entries are from a patch by Raja R. Harinath + . + + * po/it.po: remove extraneous `\'. + + * libgnome/gnome-score-helper.c (gnome_get_program_name): + Compile code only ifdef __linux__. + + * libgnome/gnome-util.c (g_unix_error_string): Use g_strerror. + + * libgnome/gnome-score.c (gnome_score_log, gnome_score_get_notable): + Replace snprintf with g_snprintf. + * programs/gmailman/maillist.m (MLProcessMessage, MLGetListObjects, + initFromStream, initFromConfig, saveToConfig): Likewise. + programs/gmailman/majordomo.m (sendCtlMsg): Likewise. + programs/gmailman/smartlist.m (sendCtlMsg): Likewise. + * programs/gnomine/gnomine.c (top_ten, win_game): Likewise. + * programs/gsm/gsm.c (gsm_generate_session_list): Likewise. + * programs/gulp/gPrint.m (cancel, getJobs, isUp, isClean, + isStarted): Likewise. + programs/gulp/gulp.m (doprinterlist): Likewise. + + * programs/desktop/property-screensaver.cc + (ConfigScreenSaver::nice_changed): Wrong field was being + updated. + (screensaver_register): Looked ugly inside extern "C" { }. + + * programs/desktop/screensaver.h: Get proper definition for NULL, + not some random definition from glib.h. + + * programs/gnometalk/protocol.c: Include earlier. + + * programs/panel/batmon/batmon.c (batmon_timeout_callback): + Use non-surprising values for non-Linux m/cs. + +Tue Jan 20 21:53:30 1998 Tom Tromey + + * obgnome/obgnomeTerm.h: Changed set_inversed -> invert. + * obgnome/obgnomeTerm.m: Likewise. + +Tue Jan 20 20:22:56 1998 Federico Mena + + * configure.in (ALL_LINGUAS): Added "es" to ALL_LINGUAS. Made + Spanish translation for Gnome. + +Tue Jan 20 20:22:56 1998 Federico Mena + + * programs/gulp/gulp.m: Now the buttons are de-sensitized + properly. The buttons that act on the selected printer are + disabled if you are not root. The "cancel job" button is disabled + if there are no jobs. Also, the check buttons are updated + correctly when you select a different printer. + ([GULPApp -initApp::]): Now the main window starts at a reasonable + size. It's done with [mainwin set_usize], so you can't later + resize it to something smaller than that :-( + ([GULPApp -set_wait_cursor:wait]): Now the cursor is set to a + watch when lengthy operations are taking place. + ([GULPApp -initApp::]): Right-justified Help menu. + ([Gtk_MessageBox -initWithLabel:label]): Beautified the about + box a bit. + +Tue Jan 20 17:39:25 1998 Miguel de Icaza + + * programs/panel/menu/main.c: for now set the absolute size of the + menu button; + + * programs/Makefile.am: Add scottfree + + * programs/panel/mailcheck/mailcheck.c: Provide a propery + configurator that allows setting the animation file. + (mailcheck_load_animation): use this to load new animations. + (create_mail_widgets): create both the drawing area and the label + always, and put them inside an hbox. + (mailcheck_get_animation_menu): create a menu filled with the + possible animation file names. + (load_new_pixmap_callback): configure the user settings and save + the configuration for this applet. + (mailcheck_notification_frame): create the notification + configuration menu. + + * email-e.xpm: Put back this animation. + + * programs/same-gnome/same-gnome.c (load_scenario): Force the + number of colors to three. The right fix it to let the user tweak + the number of colors from 3 to heigh / STONE_SIZE; + + (game_preferences_callback): Add a frame to the preferences, make + it look nicer. + +Tue Jan 20 08:05:48 1998 Tom Tromey + + * programs/gtop/Makefile: Removed. + * programs/gtop/proc/Makefile: Removed. + + * libgnomeui/gnome-session.c (save_yourself): Only enter idle loop + if shutting down. + (gnome_session_init): Removed unused variable. + (gnome_session_set_current_directory): Likewise. + (gnome_session_set_program): Likewise. + +Tue Jan 20 01:13:34 1998 George Lebl + + * programs/panel/mailcheck/email.xpm: replaced the old xpm with + a newer one from tigert which looks better + +Tue Jan 20 00:11:01 1998 Federico Mena + + * programs/gulp/gulp.m ([GULPApp -initApp::]): Restructured the + widgets to make Gulp look prettier. Next step will be beautifying + the lists (with pixmaps and such). + Changed CList intialization to initWithCListInfoTitles (for new GtkCList). + +Mon Jan 19 10:54:37 1998 Miguel de Icaza + + * libgnome/Makefile.am: libgnome_la_LIBADD includes $(INTLLIBS), + which avoids us from having -lintl all over the programs. + + * programs/girc/girc.m: internationalization work. + +Mon Jan 19 15:52:46 1998 MET Eckehard Berns + + * programs/gtt: made gtt use gnome-stock.[ch] + + * libgnomeui/libgnomeui.h: include gnome-stock.h + + * libgnomeui/gnome-stock.[ch]: added. They provide stock icons for + toolbars etc. Short description in gnome-stock.h. Not everything + is implemented, espacially theme support. But they're usable. + +Sun Jan 18 11:17:27 1998 Tom Tromey + + * programs/panel/applet_files.c (init_applet_file): Made `error' + const. + (get_dl_func): Likewise. + + * libgnome/gnome-score-helper.c: Include libgnome/gnome-util.h. + +Sun Jan 18 18:46:28 1998 George Lebl + + * programs/panel/mailcheck/mailcheck.c: now actually captures + teh expose event and redraws itself + + * programs/panel/{panel_cmds.h,panel.c}: added a change size + notify command, the applets should send this when they change + their size so the panel can correct their geometry + + * programs/panel/panel.c: made a panel menu pop up when + the right button is pressed on the panel + + * programs/panel/applet_files.c: hopefully fixed a warning + +Sun Jan 18 11:17:27 1998 Tom Tromey + + * programs/gnomine/gnomine.c (gamemenu, mainmenu): Use `N_' macro, + not `_' macro. + (session_id): New global. + (nstr): New function. + (save_state): New function. + (parse_args): New function. + +Sun Jan 18 17:55:44 EST 1998 Nathan Bryant + * programs/freecell/acinclude.m4: new file; contains gettext.m4, + lcmessage.m4, and progtest.m4 from gettext-0.10.32. + freecell builds now. + * added some .cvsignore stuff + +Sun Jan 18 05:07:42 1998 George Lebl + + * programs/panel/panel.c: cursor is now an arrow (it was a bug that it + was not) and when window is compeltely obscured it now raises itself + +Sun Jan 18 01:59:25 1998 George Lebl + + * programs/panel/panel_config.c: gettexedted ... + + * programs/panel/launcher/launcher.c: made the config + and apply/close type fo dialog, instead of ok/cancel + + * programs/panel/menu/main.c: added configuration, done + some restructuring, small icons can now be turn on or off + +Sun Jan 18 15:30:52 1998 Changwoo Ryu + + * configure.in (USE_GNOME): Set values of xx_libs, xX_LIBS, + xGTK_LIBS before exporting. + (USE_GNOME): Move `export xGTK_LIBS' after checking gtk. + +Sat Jan 17 20:19:19 1998 MET Eckehard Berns + + * configure.in: okay, I broke non-i18n apps by defining + HAVE_LIBINTL_H. So I removed it. + +Sat Jan 17 11:48:38 1998 Tom Tromey + + * autogen.sh: Added programs/freecell to list. + +Sat Jan 17 14:32:51 1998 Eckehard Berns + + * configure.in: Added check for HAVE_LIBINTL_H. Added "de" to + ALL_LINGUAS + + * acconfig.h: Added HAVE_LIBINTL_H + + * po/de.po: added + +Sat Jan 17 03:11:40 1998 George Lebl + + * lib/pixmaps: added gnome-menu-*.xpm's + + * programs/panel/menu/main.c: now uses a single button instead + the old vbox bit, and uses the above xpms + + * programs/panel/panel_config.c: fixed a mistake I caused earier + +Sat Jan 17 02:15:08 1998 George Lebl + + * programs/panel/launcher/launcher.c: a bit of restructuring, now + properties can be changed, stuff will be updated in real time + and teh dialog isn't modal + +Sat Jan 17 00:52:38 1998 Tom Tromey + + * configure.in: Look for XpmFreeXpmImage, not XpmFree. + +Fri Jan 16 22:07:24 1998 George Lebl + + * programs/panel/panel.c: made "stays put" as the default + mode as it's less confusing for new users and old + users can just set the preferences + + * programs/panel/{panel.c,panel.h,panel_config.c}: Tooltips + now configurable + +Fri Jan 16 22:37:09 1998 Tom Tromey + + * autogen.sh: Don't use `which' to find programs; use `--version' + to see if they exist. Look in /opt/gnome/lib for libgtk.a. Use + `test' and not `['. + +Fri Jan 16 20:36:39 1998 George Lebl + + * programs/panel/menu/main.c: menu now takes screen size + into account. took out the tooltip on this thing since + interfered with the menu + +Fri Jan 16 19:05:27 1998 George Lebl + + * programs/panel/panel.c: reworked the geometry stuff once more + + * programs/panel/main.c: now again default right justifying of the + mail applet works again. (though setting the x to 9999) + + * programs/panel/{panel.c,panel_cmds.h}: set up applet tooltips, + added one more command for this + + * programs/panel/{launcher/launcher.c,menu/main.c,logout/logout.c}: + added the tooltips for these + +Fri Jan 16 17:55:35 1998 Federico Mena + + * configure.in (ALL_LINGUAS): Added Finnish to ALL_LINGUAS. + +Fri Jan 16 16:48:22 EST 1998 Nathan Bryant + * programs/panel/panel.c: added exit() to panel_quit(). Fixes SEGV when + we try to return into a nonexistent code page from an applet that has + been dlclose()'d. + +Fri Jan 16 03:57:27 1998 George Lebl + + * programs/panel/panel.c: slightly optimized the geometry routines + though I don't get why it does slightly improve performance, but + hey it works .... + +Fri Jan 16 03:17:15 1998 George Lebl + + * libgnome/gnome-dentry.[ch]: added opaque_icon entry for the + icons with background + + * programs/panel/logout/logout.c: using term-night xpm for this + button + + * programs/panel/launcher/launcher.c: using the opaque icons and + gnome-unknown.xpm instead of teh wheel + + * lib/pixmaps: added gnome-term-night.xpm, gnome-unknown.xpm and + UNIX.xpm + +Fri Jan 16 01:45:30 1998 George Lebl + + * programs/panel/panel.[ch]: tehre will allways be one menu, + (last one can't get deleted) and moving from the menu now + works + +Thu Jan 15 21:54:31 1998 George Lebl + + * programs/panel/{panel.c,applet_cmds.h,menu/main.c,... + applet .c files}: added orientation change notify command. + fixed several bugs in panel_reconfigure, and menu now takes + the orientation into account, so it's uasable in all orientations + +Thu Jan 15 01:49:50 1998 George Lebl + + * programs/panel/{panel.c,main.c}: the config file stuff revised, + can now load launcher applets + +Wed Jan 14 21:46:59 1998 George Lebl + + * programs/panel/panel.c: changed the way free spots are found + yet once more, this should be a faster and better way + +Wed Jan 14 17:11:16 1998 George Lebl + + * programs/panel/{panel.c,main.c}: default applets loaded all + from, left. Configuration now saved. Lot of geometry fixes + +Wed Jan 14 14:53:56 1998 George Lebl + + * programs/panel/panel.c: better geometry when swicthing from + to horizontal and back. width of bar is now dynamicly allocated + during positioning + +Wed Jan 14 13:58:17 1998 George Lebl + + * lib/pixmaps/panel-arrow*.xpm: added panel arrows for "hide" buttons + + * programs/panel/panel.c: added pixmaps to the hide buttons + +Wed Jan 14 15:10:25 EST 1998 Nathan Bryant + * most Makefile.am's, acinclude.m4, programs/gemvt/configure.in, + added programs/gemvt/acinclude.m4: detect -lintl for libc5 systems. + * added a few autogenerated files to .cvsignore's + * removed po/cat-id-tbl.c; it's generated automatically + +Wed Jan 14 12:44:20 1998 Miguel de Icaza + + * programs/gnomine/gnomine.c: interantionalization changes. + +Mon Jan 12 21:37:26 1998 Miguel de Icaza + + * programs/panel/mailcheck/mailcheck.c (mail_destroy): Two bug + fixes (proper destruction of the mail widget and proper use of the + mailcheck code). + +Tue Jan 13 21:01:14 1998 Tom Tromey + + * configure.in: Only run AM_PROG_LIBTOOL once. + +Tue Jan 13 19:17:28 1998 George Lebl + + * programs/panel/panel.[ch]: the fixed is now inside a table widget, + this makes it easy to "reconfigure" it on the fly, and such a + function exists, though untested + +Tue Jan 13 16:14:13 1998 George Lebl + + * programs/panel/{panel.c,main.c}: reversed x and y loading for + vertical panel. the initial loading is done through a "stack" + so applets are added in the right order it seems. + +Tue Jan 13 15:41:01 1998 George Lebl + + * programs/panel/panel.c: will now handle all four positions for + the geometry stuff, and the panel will have no hide button if in + "autohide" mode + +Tue Jan 13 17:13:26 1998 Federico Mena + + * programs/gtt/timer.c: #include + + * programs/gtt/main.c: #include + +Tue Jan 13 01:21:20 1998 George Lebl + + * programs/panel/panel.c: put the free place finding in one routine + and now it will handle the geometry at strtup correctly (more or + less), also I added an "autoraise" which helps it keep it on top + +Mon Jan 12 22:28:40 1998 George Lebl + + * programs/panel/panel.[ch]: the "colision avoidance" of applets + now works, even when adding new applets to the panel. There is + now a hide button just like on other such panels in other + desktops, and the default behaviour changed from autohide to + this + +Mon Jan 12 19:43:08 1998 George Lebl + + * programs/panel/panel.c: fixed the code to check for widgets in the way + +Mon Jan 12 18:54:07 1998 George Lebl + + * programs/panel/panel.c: implemented applet positioning so they + don't overlap. doesn't use the existing code for that and doesn't + work too great (yet) :) + +Mon Jan 12 20:20:42 1998 Miguel de Icaza + + * libgnome/gnome-config.c: Since the parse_path routine now + expects a full path when parsing the contents, add dummy sections + and key names for those routines that use parse_path but that do + not pass full pathnames. + + * programs/panel/netwatch/netwatch.c (get_interface_path): Do not + access new_devpath if nothing was added. + +Fri Jan 9 11:32:48 1998 Micah Stetson + + * programs/panel/batmon/*.xpm: Changed the pixmaps for the + battery monitor. + 1998-01-06 Elliot Lee * programs/girc: New program. It even works (I think). diff -uNr gnome-0.11/HACKING gnome-0.12/HACKING --- gnome-0.11/HACKING Mon Dec 22 23:59:04 1997 +++ gnome-0.12/HACKING Wed Jan 21 13:42:40 1998 @@ -19,13 +19,19 @@ cvsroot/gnome# aclocal; automake; autoconf cvsroot/gnome# cd guile-gtk; aclocal; automake; autoconf; cd .. cvsroot/gnome# cd programs/gemvt; aclocal; automake; autoconf; cd ../.. + cvsroot/gnome# cd programs/freecell; aclocal; automake; autoconf; cd ../.. N.b., the "configure" script will not exist until you take these steps. +There is a simple script (autogen.sh) on the root directory that does +all of this for you. Just run this script with any arguments that you +want to pass to configure. + Before running configure, make sure you have libtool in your path Please submit patches to the gnome@nuclecu.unam.mx mailing list. All kinds of contributions are accepted. If at all possible, please use CVS to get the latest development version of gnome; the README file has the CVSROOT information. + diff -uNr gnome-0.11/Makefile.am gnome-0.12/Makefile.am --- gnome-0.11/Makefile.am Tue Jan 6 14:05:14 1998 +++ gnome-0.12/Makefile.am Wed Jan 21 18:42:30 1998 @@ -1,8 +1,12 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS = po intl libgnome libgnomeui gtk-xmhtml lib \ - obgtk obgnome guile-gtk guile-gnome \ - programs +built_SUBDIRS = libgnome libgnomeui gtk-xmhtml lib guile-gtk guile-gnome + +if OBJECTIVE_C +extra = obgtk obgnome +endif + +SUBDIRS = po intl $(built_SUBDIRS) $(extra) programs DISTCLEANFILES = stamp-v diff -uNr gnome-0.11/Makefile.in gnome-0.12/Makefile.in --- gnome-0.11/Makefile.in Wed Jan 7 20:30:41 1998 +++ gnome-0.12/Makefile.in Wed Jan 21 21:13:04 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -105,9 +106,11 @@ Z_LIBS = @Z_LIBS@ x_libs = @x_libs@ -SUBDIRS = po intl libgnome libgnomeui gtk-xmhtml lib \ - obgtk obgnome guile-gtk guile-gnome \ - programs +built_SUBDIRS = libgnome libgnomeui gtk-xmhtml lib guile-gtk guile-gnome + +@OBJECTIVE_C_TRUE@extra = obgtk obgnome + +SUBDIRS = po intl $(built_SUBDIRS) $(extra) programs DISTCLEANFILES = stamp-v @@ -131,22 +134,24 @@ TAR = tar GZIP = --best +DIST_SUBDIRS = po intl libgnome libgnomeui gtk-xmhtml lib guile-gtk \ +guile-gnome obgtk obgnome programs default: all .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(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.in acinclude.m4 +$(ACLOCAL_M4): @MAINT@ configure.in acinclude.m4 cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure $(SHELL) ./config.status --recheck -$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) config.h: stamp-h @@ -156,7 +161,7 @@ && CONFIG_FILES= CONFIG_HEADERS=config.h \ $(SHELL) ./config.status @echo timestamp > stamp-h -$(srcdir)/config.h.in: $(srcdir)/stamp-h.in +$(srcdir)/config.h.in: @MAINT@$(srcdir)/stamp-h.in $(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h cd $(top_srcdir) && $(AUTOHEADER) @echo timestamp > $(srcdir)/stamp-h.in @@ -291,7 +296,7 @@ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file; \ done - for subdir in $(SUBDIRS); do \ + for subdir in $(DIST_SUBDIRS); do \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ diff -uNr gnome-0.11/TODO gnome-0.12/TODO --- gnome-0.11/TODO Tue Jan 6 22:18:38 1998 +++ gnome-0.12/TODO Wed Jan 21 17:45:15 1998 @@ -31,6 +31,10 @@ to let users make typeface suitcases (i.e. "Headlines", "sans serifs", "serifs"), and then have this dialog allow users to choose from typefaces in suitcases. + *Comment from Federico* The Gimp's font selector is + not bad, but it could use some improvement. I'd like + it to group fonts like in the `suitcases' described + above. keycaps: @@ -38,6 +42,10 @@ Panel: + - The panel height should be tightened, so that the 48 big + pixel animation do not end up floating, but tightly put + in there. + - Very important: a docking applet that would allow regular programs to be docket into the panel, here is what KDE is doing on this regard: http://www.gnome.org/kde-dock.txt @@ -53,7 +61,8 @@ - If the panel is started for the first time, it should load a couple of applets in default locations. Currently, it just - sticks them all at 0,0 (making people complain about this). + puts them on arbitrary positions (it should configure them + properly according to the screen size). - The panel needs some ways to configure its behaviour. The code for the behaviour is there, the dialog box is not. @@ -76,11 +85,23 @@ - Caldendar applet. Should talk corba with the real calendar. - - The Panel could use an applet that contacts the session - manager and requests a logout. (I think this would be easy to do. -tom) - - CPUload applet. + - The menu applet needs a couple of changes: + + - Entry names should not be based on the file name, + but rather on the content of the .desktop file (to + allow for internationalization, like KDE does): + + Info=Calculator + Info[es]=Calculadora + Info[fr]=Calculateur + + - We should use $DIRNAME/.directory.desktop as the + file that has the infromation for DIRNAME, thus + allowing us to coinfigure an icon for the directory + and providing translations as wlel. + Window manager: - The window managers should be patches to support the following: @@ -129,16 +150,16 @@ Gulp: - - GULP is horrible right now. + - Display tigert's nice printer icons (for local/networked printers). - - We need to fix the look of GULP to look -at least- like - KDE's klpd program. + - Replace the ugly yes/no icons with a nice LED (green for + printing, gray for idle, red for printer on fire). Tigert + told me that he'll make these icons for us. - GULP needs to talk the LPD protocol instead of relying on the lpc/lpq commands. - *psst* *hint* I'm waiting for GtkCList - *psst* Jay is busy changing this widget, we'll have to - wait. + + - Set the title of the About dialog box to something meaningful. Gnome/Talk: @@ -441,6 +462,7 @@ application and to allow it to redock itself. *update* GtkHandleBox has been written by Elliot Lee. + *update* Federico is fixing GtkHandleBox. I believe this can be done quickly by having this widget have a GtkTable inside that would be used to stick all of diff -uNr gnome-0.11/acconfig.h gnome-0.12/acconfig.h --- gnome-0.11/acconfig.h Tue Jan 6 18:50:42 1998 +++ gnome-0.12/acconfig.h Mon Jan 19 10:33:51 1998 @@ -7,3 +7,4 @@ #undef PACKAGE #undef VERSION #undef HAVE_LIBSM +#undef HAVE_LIBINTL_H diff -uNr gnome-0.11/acinclude.m4 gnome-0.12/acinclude.m4 --- gnome-0.11/acinclude.m4 Sat Dec 6 09:01:45 1997 +++ gnome-0.12/acinclude.m4 Wed Jan 14 18:24:40 1998 @@ -110,6 +110,11 @@ CATOBJEXT=.mo INSTOBJEXT=.mo DATADIRNAME=lib + if test "$ac_cv_lib_intl[_]main" = yes; then + INTLLIBS=-lintl + elif test "$ac_cv_lib_i[_]main" = yes; then + INTLLIBS=-li + fi fi]) if test "$CATOBJEXT" = "NONE"; then @@ -124,7 +129,7 @@ CATOBJEXT=.cat INSTOBJEXT=.cat DATADIRNAME=lib - INTLDEPS="../intl/libintl.a" + INTLDEPS="\${top_srcdir}/intl/libintl.a" INTLLIBS=$INTLDEPS LIBS=`echo $LIBS | sed -e 's/-lintl//'` nls_cv_header_intl=intl/libintl.h @@ -149,7 +154,7 @@ CATOBJEXT=.gmo INSTOBJEXT=.mo DATADIRNAME=share - INTLDEPS="../intl/libintl.a" + INTLDEPS="\${top_srcdir}/intl/libintl.a" INTLLIBS=$INTLDEPS LIBS=`echo $LIBS | sed -e 's/-lintl//'` nls_cv_header_intl=intl/libintl.h diff -uNr gnome-0.11/aclocal.m4 gnome-0.12/aclocal.m4 --- gnome-0.11/aclocal.m4 Wed Jan 7 18:44:15 1998 +++ gnome-0.12/aclocal.m4 Wed Jan 14 19:33:45 1998 @@ -122,6 +122,11 @@ CATOBJEXT=.mo INSTOBJEXT=.mo DATADIRNAME=lib + if test "$ac_cv_lib_intl[_]main" = yes; then + INTLLIBS=-lintl + elif test "$ac_cv_lib_i[_]main" = yes; then + INTLLIBS=-li + fi fi]) if test "$CATOBJEXT" = "NONE"; then @@ -136,7 +141,7 @@ CATOBJEXT=.cat INSTOBJEXT=.cat DATADIRNAME=lib - INTLDEPS="../intl/libintl.a" + INTLDEPS="\${top_srcdir}/intl/libintl.a" INTLLIBS=$INTLDEPS LIBS=`echo $LIBS | sed -e 's/-lintl//'` nls_cv_header_intl=intl/libintl.h @@ -161,7 +166,7 @@ CATOBJEXT=.gmo INSTOBJEXT=.mo DATADIRNAME=share - INTLDEPS="../intl/libintl.a" + INTLDEPS="\${top_srcdir}/intl/libintl.a" INTLLIBS=$INTLDEPS LIBS=`echo $LIBS | sed -e 's/-lintl//'` nls_cv_header_intl=intl/libintl.h @@ -400,6 +405,29 @@ AC_MSG_RESULT(missing) fi AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + if test $USE_MAINTAINER_MODE = yes; then + MAINT= + else + MAINT='#M#' + fi + AC_SUBST(MAINT)dnl +] +) # serial 18 AM_PROG_LIBTOOL diff -uNr gnome-0.11/config.guess gnome-0.12/config.guess --- gnome-0.11/config.guess Sat Dec 6 09:01:46 1997 +++ gnome-0.12/config.guess Tue Jan 20 22:04:18 1998 @@ -52,11 +52,53 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 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. - echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` + cat <dummy.s + .globl main + .ent main +main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main +EOF + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 @@ -91,6 +133,9 @@ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; + arm32:NetBSD:*:*) + echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; SR2?01:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; @@ -129,6 +174,18 @@ 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 ;; @@ -423,6 +480,9 @@ i*:CYGWIN*:*) echo i386-pc-cygwin32 exit 0 ;; + i*:MINGW*:*) + echo i386-pc-mingw32 + exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin32 exit 0 ;; @@ -436,27 +496,73 @@ # The BFD linker knows what the default object file format is, so # first see if it will tell us. ld_help_string=`ld --help 2>&1` - if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then - echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then - echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then - echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then - echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then - echo "powerpc-unknown-linux-gnu" ; exit 0 - elif test "${UNAME_MACHINE}" = "alpha" ; then - echo alpha-unknown-linux-gnu ; exit 0 - elif test "${UNAME_MACHINE}" = "sparc" ; then - echo sparc-unknown-linux-gnu ; exit 0 + ld_supported_emulations=`echo $ld_help_string \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; + i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; + sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; + esac + + if test "${UNAME_MACHINE}" = "alpha" ; then + sed 's/^ //' <dummy.s + .globl main + .ent main + main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main +EOF + LIBC="" + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + + objdump --private-headers dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 elif test "${UNAME_MACHINE}" = "mips" ; then cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 rm -f dummy.c dummy else - # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us - # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout. - test ! -d /usr/lib/ldscripts/. \ - && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" + test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + + case "${UNAME_MACHINE}" in + i?86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac # Determine whether the default compiler is a.out or elf cat >dummy.c < main(argc, argv) -int argc; -char *argv[]; + int argc; + char *argv[]; { #ifdef __ELF__ - printf ("%s-pc-linux-gnu\n", argv[1]); +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif #else - printf ("%s-pc-linux-gnuaout\n", argv[1]); + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); #endif return 0; } @@ -496,6 +623,14 @@ i?86:DYNIX/ptx:4*:*) 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.*:*) if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} @@ -517,6 +652,11 @@ echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; + pc:*:*:*) + # 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 ;; @@ -591,6 +731,9 @@ exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:*:6*) + echo mips-sony-newsos6 exit 0 ;; R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) if [ -d /usr/nec ]; then diff -uNr gnome-0.11/config.h.in gnome-0.12/config.h.in --- gnome-0.11/config.h.in Wed Jan 7 14:26:33 1998 +++ gnome-0.12/config.h.in Tue Jan 20 21:52:22 1998 @@ -25,6 +25,9 @@ /* Define to `long' if doesn't define. */ #undef off_t +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE + /* Define to `unsigned' if doesn't define. */ #undef size_t @@ -55,6 +58,7 @@ #undef PACKAGE #undef VERSION #undef HAVE_LIBSM +#undef HAVE_LIBINTL_H /* Define if you have the dcgettext function. */ #undef HAVE_DCGETTEXT @@ -101,11 +105,17 @@ /* Define if you have the header file. */ #undef HAVE_LOCALE_H +/* Define if you have the header file. */ +#undef HAVE_MACHINE_SOUNDCARD_H + /* Define if you have the header file. */ #undef HAVE_MALLOC_H /* Define if you have the header file. */ #undef HAVE_NL_TYPES_H + +/* Define if you have the header file. */ +#undef HAVE_PROTOCOLS_TALKD_H /* Define if you have the header file. */ #undef HAVE_STRING_H diff -uNr gnome-0.11/config.sub gnome-0.12/config.sub --- gnome-0.11/config.sub Sat Dec 6 09:01:46 1997 +++ gnome-0.12/config.sub Tue Jan 20 22:04:18 1998 @@ -1,6 +1,6 @@ #! /bin/sh # Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +# Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. # 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. @@ -149,13 +149,14 @@ case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arm \ - | arme[lb] | pyramid | mn10300 \ + tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ + | arme[lb] | pyramid | mn10200 | mn10300 \ | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ - | alpha | we32k | ns16k | clipper | i370 | sh \ - | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ - | pdp11 | mips64el | mips64orion | mips64orionel \ - | sparc | sparclet | sparclite | sparc64) + | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ + | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ + | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ + | mipstx39 | mipstx39el \ + | sparc | sparclet | sparclite | sparc64 | v850) basic_machine=$basic_machine-unknown ;; # We use `pc' rather than `unknown' @@ -171,13 +172,17 @@ ;; # Recognize the basic CPU types with company name. vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ - | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ - | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ - | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ + | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \ + | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ + | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ + | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mipstx39-* | mipstx39el-* \ + | f301-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -204,9 +209,9 @@ amiga | amiga-*) basic_machine=m68k-cbm ;; - amigados) + amigaos | amigados) basic_machine=m68k-cbm - os=-amigados + os=-amigaos ;; amigaunix | amix) basic_machine=m68k-cbm @@ -391,11 +396,11 @@ ;; mipsel*-linux*) basic_machine=mipsel-unknown - os=-linux + os=-linux-gnu ;; mips*-linux*) basic_machine=mips-unknown - os=-linux + os=-linux-gnu ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` @@ -566,6 +571,12 @@ basic_machine=i386-sequent os=-dynix ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; tower | tower-32) basic_machine=m68k-ncr ;; @@ -585,7 +596,7 @@ basic_machine=vax-dec os=-vms ;; - vpp*|vx|vx-*) + vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) @@ -615,7 +626,7 @@ # 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. mips) - if [ x$os = x-linux ]; then + if [ x$os = x-linux-gnu ]; then basic_machine=mips-unknown else basic_machine=mips-mips @@ -680,9 +691,12 @@ -solaris) os=-solaris2 ;; - -unixware* | svr4*) + -svr4*) os=-sysv4 ;; + -unixware*) + os=-sysv4.2uw + ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; @@ -693,7 +707,8 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ + | -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* \ @@ -701,7 +716,7 @@ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -linux-gnu* | -uxpv*) + | -mingw32* | -linux-gnu* | -uxpv*) # Remember, each alternative MUST END IN *, to match a version number. ;; -linux*) @@ -827,7 +842,7 @@ os=-sysv ;; *-cbm) - os=-amigados + os=-amigaos ;; *-dg) os=-dgux diff -uNr gnome-0.11/configure gnome-0.12/configure --- gnome-0.11/configure Wed Jan 7 18:44:17 1998 +++ gnome-0.12/configure Wed Jan 21 20:41:42 1998 @@ -12,11 +12,10 @@ ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help - --with-gnu-ld assume the C compiler uses GNU ld [default=no]" -ac_help="$ac_help - --enable-shared build shared libraries [default=yes]" + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" ac_help="$ac_help - --enable-static build static libraries [default=yes]" + --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ac_help="$ac_help --enable-shared build shared libraries [default=yes]" ac_help="$ac_help @@ -568,7 +567,7 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:572: checking for a BSD compatible install" >&5 +echo "configure:571: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -621,7 +620,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:625: checking whether build environment is sane" >&5 +echo "configure:624: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -678,7 +677,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:682: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:681: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -707,7 +706,7 @@ PACKAGE=gnome -VERSION=0.11 +VERSION=0.12 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -724,7 +723,7 @@ missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:728: checking for working aclocal" >&5 +echo "configure:727: checking for working aclocal" >&5 # 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. @@ -737,7 +736,7 @@ fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:741: checking for working autoconf" >&5 +echo "configure:740: checking for working autoconf" >&5 # 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. @@ -750,7 +749,7 @@ fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:754: checking for working automake" >&5 +echo "configure:753: checking for working automake" >&5 # 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. @@ -763,7 +762,7 @@ fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:767: checking for working autoheader" >&5 +echo "configure:766: checking for working autoheader" >&5 # 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. @@ -776,7 +775,7 @@ fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:780: checking for working makeinfo" >&5 +echo "configure:779: checking for working makeinfo" >&5 # 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. @@ -790,6 +789,25 @@ +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:794: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + if test $USE_MAINTAINER_MODE = yes; then + MAINT= + else + MAINT='#M#' + fi + + + USE_GNOME=yes export USE_GNOME @@ -798,7 +816,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:802: checking for $ac_word" >&5 +echo "configure:820: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -827,7 +845,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:831: checking for $ac_word" >&5 +echo "configure:849: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -875,7 +893,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:879: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:897: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -885,11 +903,11 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -909,12 +927,12 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:913: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:931: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:918: checking whether we are using GNU C" >&5 +echo "configure:936: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -923,7 +941,7 @@ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -938,7 +956,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:942: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:960: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -965,295 +983,199 @@ test "${CFLAGS+set}" = set || CFLAGS="-g" fi +echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 +echo "configure:988: checking for POSIXized ISC" >&5 +if test -d /etc/conf/kconfig.d && + grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 +then + echo "$ac_t""yes" 1>&6 + ISC=yes # If later tests want to check for ISC. + cat >> confdefs.h <<\EOF +#define _POSIX_SOURCE 1 +EOF -# Make sure we can run config.sub. -if $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } + if test "$GCC" = yes; then + CC="$CC -posix" + else + CC="$CC -Xp" + fi +else + echo "$ac_t""no" 1>&6 + ISC= fi -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:976: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`$ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`$ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -# Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:999: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then +echo "configure:1011: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. else 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 - ac_cv_prog_RANLIB="ranlib" + ac_cv_prog_CC="gcc" break fi done IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" fi fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - - -ac_prog=ld -if test "$ac_cv_prog_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1038: checking for ld used by GCC" >&5 - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. - /*) - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1056: checking for GNU ld" >&5 -else - echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1059: checking for non-GNU ld" >&5 -fi -if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1040: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - if test -z "$LD"; then + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + ac_prog_rejected=no for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog"; then - ac_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue fi + ac_cv_prog_CC="cc" + break fi done IFS="$ac_save_ifs" -else - ac_cv_path_LD="$LD" # Let the user override the test with a path. +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 $# -gt 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" "$@" + shift + ac_cv_prog_CC="$@" + fi fi fi - -LD="$ac_cv_path_LD" -if test -n "$LD"; then - echo "$ac_t""$LD" 1>&6 +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi -test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } -echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1095: checking if the linker ($LD) is GNU ld" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - ac_cv_prog_gnu_ld=yes -else - ac_cv_prog_gnu_ld=no -fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi -echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:1088: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross -echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1111: checking for BSD-compatible nm" >&5 -if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi else - case "$NM" in -/*) - ac_cv_path_NM="$NM" # Let the user override the test with a path. - ;; -*) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do - test -z "$ac_dir" && dir=. - if test -f $ac_dir/nm; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1!d' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -p" - else - ac_cv_path_NM="$ac_dir/nm" - fi - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm - ;; -esac + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no fi +rm -fr conftest* -NM="$ac_cv_path_NM" -echo "$ac_t""$NM" 1>&6 - +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:1122: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross -echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1148: checking whether ln -s works" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1127: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - rm -f conftestdata -if ln -s X conftestdata 2>/dev/null -then - rm -f conftestdata - ac_cv_prog_LN_S="ln -s" + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes else - ac_cv_prog_LN_S=ln + ac_cv_prog_gcc=no fi fi -LN_S="$ac_cv_prog_LN_S" -if test "$ac_cv_prog_LN_S" = "ln -s"; then - echo "$ac_t""yes" 1>&6 + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1151: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else - echo "$ac_t""no" 1>&6 + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no fi +rm -f conftest* - - - - - - - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - if test "$enableval" = no; then - libtool_enable_shared=no -else - libtool_enable_shared=yes -fi fi -test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared" -libtool_shared= -test "$enable_shared" = no && libtool_shared=" --disable-shared" - -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" = set; then - enableval="$enable_static" - if test "$enableval" = no; then - libtool_enable_static=no +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi else - libtool_enable_static=yes -fi + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" fi -test -n "$libtool_enable_static" && enable_static="$libtool_enable_static" -libtool_static= -test "$enable_static" = no && libtool_static=" --disable-static" - -libtool_flags="$libtool_shared$libtool_static" -test "$silent" = yes && libtool_flags="$libtool_flags --silent" -test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" -test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case "$host" in -*-*-irix6*) - ac_save_CFLAGS="$CFLAGS" - flag_passed=no - for f in -32 -64 -n32 ABI -cckr -mips1 -mips2 -mips3 -mips4; do - case "$f" in - ABI) - test -n "$SGI_ABI" && flag_passed=yes - if test "$flag_passed" = no && test "$ac_cv_prog_gcc" = yes; then - # Choose the ABI flag according to GCC's specs. - if $CC -dumpspecs 2>&1 | sed '/^\*link:$/,/^$/!d' | egrep -e '[ ]-32' >/dev/null; then - LD="${LD-ld} -32" - else - LD="${LD-ld} -n32" - fi - fi - ;; - - *) - if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then - flag_passed=yes - LD="${LD-ld} $f" - fi - ;; - esac - done - CFLAGS="$ac_save_CFLAGS" - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - CFLAGS="$CFLAGS -belf" - ;; -esac - -# Actually configure libtool. ac_aux_dir is where install-sh is found. -CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ -$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ -|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; } - echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1257: checking how to run the C preprocessor" >&5 +echo "configure:1179: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1268,13 +1190,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1278: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1285,13 +1207,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1295: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1314,12 +1236,12 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1318: checking for ANSI C header files" >&5 +echo "configure:1240: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1327,7 +1249,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1253: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1344,7 +1266,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1352,89 +1274,288 @@ egrep "memchr" >/dev/null 2>&1; then : else - rm -rf conftest* - ac_cv_header_stdc=no + rm -rf conftest* + 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 < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#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); } + +EOF +if { (eval echo configure:1320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +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 "$program_transform_name" = "" && program_transform_name="s,x,x," + + +# Make sure we can run config.sub. +if $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:1369: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`$ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`$ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1392: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + 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 + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +# Check whether --with-gnu-ld or --without-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval="$with_gnu_ld" + test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + + +ac_prog=ld +if test "$ac_cv_prog_gcc" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 +echo "configure:1431: checking for ld used by GCC" >&5 + ac_prog=`($CC -print-prog-name=ld) 2>&5` + case "$ac_prog" in + # Accept absolute paths. + /*) + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 +echo "configure:1449: checking for GNU ld" >&5 +else + echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 +echo "configure:1452: checking for non-GNU ld" >&5 +fi +if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -z "$LD"; then + 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_prog"; then + ac_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + ac_cv_path_LD="$LD" # Let the user override the test with a path. 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 < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : +LD="$ac_cv_path_LD" +if test -n "$LD"; then + echo "$ac_t""$LD" 1>&6 else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - + echo "$ac_t""no" 1>&6 fi +test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } -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 - : +echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 +echo "configure:1488: checking if the linker ($LD) is GNU ld" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else - cat > conftest.$ac_ext < -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#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); } - -EOF -if { (eval echo configure:1398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - : + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + ac_cv_prog_gnu_ld=yes else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_header_stdc=no + ac_cv_prog_gnu_ld=no fi -rm -fr conftest* fi -fi -fi +echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF +echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 +echo "configure:1504: checking for BSD-compatible nm" >&5 +if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$NM" in +/*) + ac_cv_path_NM="$NM" # Let the user override the test with a path. + ;; +*) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do + test -z "$ac_dir" && dir=. + if test -f $ac_dir/nm; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1!d' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -B" + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -p" + else + ac_cv_path_NM="$ac_dir/nm" + fi + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm + ;; +esac fi -if test "$program_transform_name" = s,x,x,; then - program_transform_name= +NM="$ac_cv_path_NM" +echo "$ac_t""$NM" 1>&6 + + +echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +echo "configure:1541: checking whether ln -s works" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed + rm -f conftestdata +if ln -s X conftestdata 2>/dev/null +then + rm -f conftestdata + ac_cv_prog_LN_S="ln -s" +else + ac_cv_prog_LN_S=ln +fi +fi +LN_S="$ac_cv_prog_LN_S" +if test "$ac_cv_prog_LN_S" = "ln -s"; then + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 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 "$program_transform_name" = "" && program_transform_name="s,x,x," @@ -1530,7 +1651,7 @@ # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:1534: checking for X" >&5 +echo "configure:1655: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -1592,12 +1713,12 @@ # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1601: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1722: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1666,14 +1787,14 @@ ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -1779,17 +1900,17 @@ case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:1783: checking whether -R must be followed by a space" >&5 +echo "configure:1904: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_nospace=yes else @@ -1805,14 +1926,14 @@ else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_space=yes else @@ -1844,7 +1965,7 @@ # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:1848: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:1969: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1852,7 +1973,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1885,7 +2006,7 @@ if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:1889: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:2010: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1893,7 +2014,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1933,12 +2054,12 @@ # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:1937: checking for gethostbyname" >&5 +echo "configure:2058: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -1982,7 +2103,7 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:1986: checking for gethostbyname in -lnsl" >&5 +echo "configure:2107: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1990,7 +2111,7 @@ ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2031,12 +2152,12 @@ # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:2035: checking for connect" >&5 +echo "configure:2156: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -2080,7 +2201,7 @@ if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:2084: checking for connect in -lsocket" >&5 +echo "configure:2205: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2088,7 +2209,7 @@ ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2123,12 +2244,12 @@ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:2127: checking for remove" >&5 +echo "configure:2248: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -2172,7 +2293,7 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:2176: checking for remove in -lposix" >&5 +echo "configure:2297: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2180,7 +2301,7 @@ ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2215,12 +2336,12 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:2219: checking for shmat" >&5 +echo "configure:2340: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -2264,7 +2385,7 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:2268: checking for shmat in -lipc" >&5 +echo "configure:2389: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2272,7 +2393,7 @@ ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2316,7 +2437,7 @@ # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:2320: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:2441: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2324,7 +2445,7 @@ ac_save_LIBS="$LIBS" LIBS="-lICE $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2367,7 +2488,7 @@ LDFLAGS="$X_LDFLAGS $X_LIBS" echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:2371: checking for XOpenDisplay in -lX11" >&5 +echo "configure:2492: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2375,7 +2496,7 @@ ac_save_LIBS="$LIBS" LIBS="-lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2412,7 +2533,7 @@ LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS $x_libs" echo $ac_n "checking for XShmAttach in -lXext""... $ac_c" 1>&6 -echo "configure:2416: checking for XShmAttach in -lXext" >&5 +echo "configure:2537: checking for XShmAttach in -lXext" >&5 ac_lib_var=`echo Xext'_'XShmAttach | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2420,7 +2541,7 @@ ac_save_LIBS="$LIBS" LIBS="-lXext $x_libs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2452,13 +2573,14 @@ fi + xx_libs=$x_libs + xX_LIBS=$X_LIBS export xx_libs export xX_LIBS - export xGTK_LIBS LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS" echo $ac_n "checking for SmcSaveYourselfDone in -lSM""... $ac_c" 1>&6 -echo "configure:2462: checking for SmcSaveYourselfDone in -lSM" >&5 +echo "configure:2584: checking for SmcSaveYourselfDone in -lSM" >&5 ac_lib_var=`echo SM'_'SmcSaveYourselfDone | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2466,7 +2588,7 @@ ac_save_LIBS="$LIBS" LIBS="-lSM $x_libs -lICE $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2503,7 +2625,7 @@ echo $ac_n "checking for gdk_pixmap_unref in -lgtk""... $ac_c" 1>&6 -echo "configure:2507: checking for gdk_pixmap_unref in -lgtk" >&5 +echo "configure:2629: checking for gdk_pixmap_unref in -lgtk" >&5 ac_lib_var=`echo gtk'_'gdk_pixmap_unref | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2511,7 +2633,7 @@ ac_save_LIBS="$LIBS" LIBS="-lgtk -lgdk -lglib $x_libs -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2545,28 +2667,31 @@ + xGTK_LIBS=$GTK_LIBS + export xGTK_LIBS + XPM_LIBS="" - echo $ac_n "checking for XpmFree in -lXpm""... $ac_c" 1>&6 -echo "configure:2551: checking for XpmFree in -lXpm" >&5 -ac_lib_var=`echo Xpm'_'XpmFree | sed 'y%./+-%__p_%'` + echo $ac_n "checking for XpmFreeXpmImage in -lXpm""... $ac_c" 1>&6 +echo "configure:2676: checking for XpmFreeXpmImage in -lXpm" >&5 +ac_lib_var=`echo Xpm'_'XpmFreeXpmImage | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lXpm $x_libs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2589,7 +2714,7 @@ echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6 -echo "configure:2593: checking for pthread_create in -lpthread" >&5 +echo "configure:2718: checking for pthread_create in -lpthread" >&5 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2597,7 +2722,7 @@ ac_save_LIBS="$LIBS" LIBS="-lpthread $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2630,7 +2755,7 @@ - CFLAGS="$saved_cflags" + CFLAGS="$saved_cflags $X_CFLAGS" LDFLAGS="$saved_ldflags" for ac_prog in $CCC c++ g++ gcc CC cxx cc++ @@ -2638,7 +2763,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2642: checking for $ac_word" >&5 +echo "configure:2767: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2669,7 +2794,7 @@ echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2673: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:2798: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2679,11 +2804,11 @@ cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2709,12 +2834,12 @@ { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2713: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2838: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 -echo "configure:2718: checking whether we are using GNU C++" >&5 +echo "configure:2843: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2723,7 +2848,7 @@ yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:2727: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:2852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -2738,7 +2863,7 @@ ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:2742: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:2867: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2765,39 +2890,10 @@ test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" fi -# Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2772: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - 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 - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2801: checking for $ac_word" >&5 +echo "configure:2897: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2830,7 +2926,7 @@ *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:2834: checking for yywrap in -l$ac_lib" >&5 +echo "configure:2930: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2838,7 +2934,7 @@ ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2872,7 +2968,7 @@ fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:2876: checking lex output file root" >&5 +echo "configure:2972: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2893,7 +2989,7 @@ LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:2897: checking whether yytext is a pointer" >&5 +echo "configure:2993: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2905,14 +3001,14 @@ ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -2939,7 +3035,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2943: checking for $ac_word" >&5 +echo "configure:3039: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2971,7 +3067,7 @@ result=1 if test -n "$OBJC"; then echo $ac_n "checking for Objective C compiler""... $ac_c" 1>&6 -echo "configure:2975: checking for Objective C compiler" >&5 +echo "configure:3071: checking for Objective C compiler" >&5 cat > conftest.m <&6 -echo "configure:3005: checking for working const" >&5 +echo "configure:3102: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -3076,21 +3173,21 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:3080: checking for inline" >&5 +echo "configure:3177: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3191: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3116,12 +3213,12 @@ esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3120: checking for off_t" >&5 +echo "configure:3217: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3149,12 +3246,12 @@ fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3153: checking for size_t" >&5 +echo "configure:3250: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3184,19 +3281,19 @@ # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:3188: checking for working alloca.h" >&5 +echo "configure:3285: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:3200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -3217,12 +3314,12 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:3221: checking for alloca" >&5 +echo "configure:3318: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -3277,12 +3374,12 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:3281: checking whether alloca needs Cray hooks" >&5 +echo "configure:3378: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 -echo "configure:3311: checking for $ac_func" >&5 +echo "configure:3408: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3362,7 +3459,7 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:3366: checking stack direction for C alloca" >&5 +echo "configure:3463: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3370,7 +3467,7 @@ ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -3414,17 +3511,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3418: checking for $ac_hdr" >&5 +echo "configure:3515: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3428: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -3453,12 +3550,12 @@ for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3457: checking for $ac_func" >&5 +echo "configure:3554: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3506,7 +3603,7 @@ done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3510: checking for working mmap" >&5 +echo "configure:3607: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3514,7 +3611,7 @@ ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -3681,17 +3778,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3685: checking for $ac_hdr" >&5 +echo "configure:3782: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3695: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3792: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -3720,12 +3817,12 @@ for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3724: checking for $ac_func" >&5 +echo "configure:3821: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3777,12 +3874,12 @@ for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3781: checking for $ac_func" >&5 +echo "configure:3878: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3839,19 +3936,19 @@ if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3843: checking for LC_MESSAGES" >&5 +echo "configure:3940: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ud_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ud_cv_val_LC_MESSAGES=yes else @@ -3872,7 +3969,7 @@ fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3876: checking whether NLS is requested" >&5 +echo "configure:3973: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -3889,7 +3986,7 @@ EOF echo $ac_n "checking for explicitly using GNU gettext""... $ac_c" 1>&6 -echo "configure:3893: checking for explicitly using GNU gettext" >&5 +echo "configure:3990: checking for explicitly using GNU gettext" >&5 # Check whether --with-gnu-gettext or --without-gnu-gettext was given. if test "${with_gnu_gettext+set}" = set; then withval="$with_gnu_gettext" @@ -3904,7 +4001,7 @@ nls_cv_use_gnu_gettext=yes else echo $ac_n "checking for main in -lintl""... $ac_c" 1>&6 -echo "configure:3908: checking for main in -lintl" >&5 +echo "configure:4005: checking for main in -lintl" >&5 ac_lib_var=`echo intl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3912,14 +4009,14 @@ ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3947,7 +4044,7 @@ fi echo $ac_n "checking for main in -li""... $ac_c" 1>&6 -echo "configure:3951: checking for main in -li" >&5 +echo "configure:4048: checking for main in -li" >&5 ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3955,14 +4052,14 @@ ac_save_LIBS="$LIBS" LIBS="-li $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3991,12 +4088,12 @@ CATOBJEXT=NONE echo $ac_n "checking for gettext""... $ac_c" 1>&6 -echo "configure:3995: checking for gettext" >&5 +echo "configure:4092: checking for gettext" >&5 if eval "test \"`echo '$''{'ac_cv_func_gettext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gettext=yes" else @@ -4040,7 +4137,7 @@ # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4044: checking for $ac_word" >&5 +echo "configure:4141: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4077,12 +4174,12 @@ for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4081: checking for $ac_func" >&5 +echo "configure:4178: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4132,7 +4229,7 @@ # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4136: checking for $ac_word" >&5 +echo "configure:4233: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4169,7 +4266,7 @@ # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4173: checking for $ac_word" >&5 +echo "configure:4270: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4206,6 +4303,11 @@ CATOBJEXT=.mo INSTOBJEXT=.mo DATADIRNAME=lib + if test "$ac_cv_lib_intl_main" = yes; then + INTLLIBS=-lintl + elif test "$ac_cv_lib_i_main" = yes; then + INTLLIBS=-li + fi fi else echo "$ac_t""no" 1>&6 @@ -4214,12 +4316,12 @@ if test "$CATOBJEXT" = "NONE"; then echo $ac_n "checking for catgets""... $ac_c" 1>&6 -echo "configure:4218: checking for catgets" >&5 +echo "configure:4320: checking for catgets" >&5 if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_catgets=yes" else @@ -4264,7 +4366,7 @@ # Extract the first word of "gencat", so it can be a program name with args. set dummy gencat; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4268: checking for $ac_word" >&5 +echo "configure:4370: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4298,7 +4400,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4302: checking for $ac_word" >&5 +echo "configure:4404: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4333,7 +4435,7 @@ # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4337: checking for $ac_word" >&5 +echo "configure:4439: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4370,7 +4472,7 @@ CATOBJEXT=.cat INSTOBJEXT=.cat DATADIRNAME=lib - INTLDEPS="../intl/libintl.a" + INTLDEPS="\${top_srcdir}/intl/libintl.a" INTLLIBS=$INTLDEPS LIBS=`echo $LIBS | sed -e 's/-lintl//'` nls_cv_header_intl=intl/libintl.h @@ -4392,7 +4494,7 @@ # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4396: checking for $ac_word" >&5 +echo "configure:4498: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4429,7 +4531,7 @@ # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4433: checking for $ac_word" >&5 +echo "configure:4535: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4466,7 +4568,7 @@ # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4470: checking for $ac_word" >&5 +echo "configure:4572: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4504,7 +4606,7 @@ CATOBJEXT=.gmo INSTOBJEXT=.mo DATADIRNAME=share - INTLDEPS="../intl/libintl.a" + INTLDEPS="\${top_srcdir}/intl/libintl.a" INTLLIBS=$INTLDEPS LIBS=`echo $LIBS | sed -e 's/-lintl//'` nls_cv_header_intl=intl/libintl.h @@ -4543,7 +4645,7 @@ LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4547: checking for catalogs to be installed" >&5 +echo "configure:4649: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4563,17 +4665,17 @@ if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:4567: checking for linux/version.h" >&5 +echo "configure:4669: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4577: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -4614,7 +4716,6 @@ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES -ALL_LINGUAS="cs it ko" if test x$ac_cv_func_gettext = xno; then LIBS="$LIBS -lintl -L\$(topbuilddir)/intl" @@ -4623,7 +4724,7 @@ echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:4627: checking for main in -lm" >&5 +echo "configure:4728: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4631,14 +4732,14 @@ ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4666,7 +4767,7 @@ fi echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:4670: checking for dlopen in -ldl" >&5 +echo "configure:4771: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4674,7 +4775,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4708,7 +4809,7 @@ echo $ac_n "checking for main in -lqthreads""... $ac_c" 1>&6 -echo "configure:4712: checking for main in -lqthreads" >&5 +echo "configure:4813: checking for main in -lqthreads" >&5 ac_lib_var=`echo qthreads'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4716,14 +4817,14 @@ ac_save_LIBS="$LIBS" LIBS="-lqthreads $LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4741,7 +4842,7 @@ QTTHREADS_LIB="-lqthreads" echo $ac_n "checking for main in -ltermcap""... $ac_c" 1>&6 -echo "configure:4745: checking for main in -ltermcap" >&5 +echo "configure:4846: checking for main in -ltermcap" >&5 ac_lib_var=`echo termcap'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4749,14 +4850,14 @@ ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4777,7 +4878,7 @@ fi echo $ac_n "checking for main in -lreadline""... $ac_c" 1>&6 -echo "configure:4781: checking for main in -lreadline" >&5 +echo "configure:4882: checking for main in -lreadline" >&5 ac_lib_var=`echo readline'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4785,14 +4886,14 @@ ac_save_LIBS="$LIBS" LIBS="-lreadline $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4817,7 +4918,7 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for qt_null in -lqt""... $ac_c" 1>&6 -echo "configure:4821: checking for qt_null in -lqt" >&5 +echo "configure:4922: checking for qt_null in -lqt" >&5 ac_lib_var=`echo qt'_'qt_null | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4825,7 +4926,7 @@ ac_save_LIBS="$LIBS" LIBS="-lqt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4864,7 +4965,7 @@ echo $ac_n "checking for scm_boot_guile in -lguile""... $ac_c" 1>&6 -echo "configure:4868: checking for scm_boot_guile in -lguile" >&5 +echo "configure:4969: checking for scm_boot_guile in -lguile" >&5 ac_lib_var=`echo guile'_'scm_boot_guile | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4872,7 +4973,7 @@ ac_save_LIBS="$LIBS" LIBS="-lguile $QTTHREADS_LIB $LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4911,12 +5012,12 @@ for ac_func in strerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4915: checking for $ac_func" >&5 +echo "configure:5016: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4969,7 +5070,7 @@ JPEG_LIBS="" PNG_LIBS="" echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:4973: checking for inflate in -lz" >&5 +echo "configure:5074: checking for inflate in -lz" >&5 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4977,7 +5078,7 @@ ac_save_LIBS="$LIBS" LIBS="-lz $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5009,7 +5110,7 @@ fi echo $ac_n "checking for jpeg_abort in -ljpeg""... $ac_c" 1>&6 -echo "configure:5013: checking for jpeg_abort in -ljpeg" >&5 +echo "configure:5114: checking for jpeg_abort in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'jpeg_abort | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5017,7 +5118,7 @@ ac_save_LIBS="$LIBS" LIBS="-ljpeg $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5049,7 +5150,7 @@ fi echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:5053: checking for png_read_image in -lpng" >&5 +echo "configure:5154: checking for png_read_image in -lpng" >&5 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5057,7 +5158,7 @@ ac_save_LIBS="$LIBS" LIBS="-lpng $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5095,7 +5196,7 @@ echo $ac_n "checking for mpz_init_set in -lgmp""... $ac_c" 1>&6 -echo "configure:5099: checking for mpz_init_set in -lgmp" >&5 +echo "configure:5200: checking for mpz_init_set in -lgmp" >&5 ac_lib_var=`echo gmp'_'mpz_init_set | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5103,7 +5204,7 @@ ac_save_LIBS="$LIBS" LIBS="-lgmp $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5148,7 +5249,7 @@ # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5152: checking for $ac_word" >&5 +echo "configure:5253: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5181,7 +5282,7 @@ *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:5185: checking for yywrap in -l$ac_lib" >&5 +echo "configure:5286: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5189,7 +5290,7 @@ ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5227,7 +5328,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5231: checking for $ac_word" >&5 +echo "configure:5332: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5262,17 +5363,110 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5266: checking for $ac_hdr" >&5 +echo "configure:5367: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:5377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +if test x$ac_cv_headers_linux_soundcard_h = xno; then + for ac_hdr in machine/soundcard.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:5408: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:5418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +fi + + +if test x$ac_cv_headers_linux_soundcard_h = xyes \ + || test x$ac_cv_headers_machine_soundcard_h = xyes; then + ENABLE_GMIX_TRUE= + ENABLE_GMIX_FALSE='#' +else + ENABLE_GMIX_TRUE='#' + ENABLE_GMIX_FALSE= +fi + +for ac_hdr in protocols/talkd.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:5460: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5299,21 +5493,30 @@ done + +if test x$ac_cv_headers_protocol_talkd_h = xyes; then + ENABLE_GNOMETALK_TRUE= + ENABLE_GNOMETALK_FALSE='#' +else + ENABLE_GNOMETALK_TRUE='#' + ENABLE_GNOMETALK_FALSE= +fi + for ac_hdr in X11/extensions/xf86misc.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5307: checking for $ac_hdr" >&5 +echo "configure:5510: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5317: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5342,9 +5545,9 @@ echo $ac_n "checking for struct osockaddr""... $ac_c" 1>&6 -echo "configure:5346: checking for struct osockaddr" >&5 +echo "configure:5549: checking for struct osockaddr" >&5 cat > conftest.$ac_ext < int main() { @@ -5353,7 +5556,7 @@ } ; return 0; } EOF -if { (eval echo configure:5357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF @@ -5371,7 +5574,7 @@ rm -f conftest* -subdirs="guile-gtk programs/gemvt" +subdirs="guile-gtk programs/gemvt programs/freecell" trap '' 1 2 15 @@ -5498,12 +5701,15 @@ programs/girc/Makefile programs/gnomine/Makefile programs/gulp/Makefile +programs/gtop/Makefile +programs/gtop/proc/Makefile programs/genius/Makefile programs/find-file/Makefile programs/linux-conf/Makefile programs/network-utilities/Makefile programs/notepad/Makefile programs/phaser-chess/Makefile +programs/gsm/Makefile programs/gtt/Makefile programs/panel/Makefile programs/panel/batmon/Makefile @@ -5514,6 +5720,7 @@ programs/panel/batmon/Makefile programs/panel/menu/Makefile programs/panel/netwatch/Makefile +programs/scottfree/Makefile programs/test-suite/Makefile version.h stamp.h config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 @@ -5557,7 +5764,9 @@ s%@AUTOHEADER@%$AUTOHEADER%g s%@MAKEINFO@%$MAKEINFO%g s%@SET_MAKE@%$SET_MAKE%g +s%@MAINT@%$MAINT%g s%@CC@%$CC%g +s%@CPP@%$CPP%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g @@ -5568,7 +5777,6 @@ s%@NM@%$NM%g s%@LN_S@%$LN_S%g s%@LIBTOOL@%$LIBTOOL%g -s%@CPP@%$CPP%g s%@X_CFLAGS@%$X_CFLAGS%g s%@X_PRE_LIBS@%$X_PRE_LIBS%g s%@X_LIBS@%$X_LIBS%g @@ -5611,6 +5819,10 @@ s%@HAVE_LIBGMP_TRUE@%$HAVE_LIBGMP_TRUE%g s%@HAVE_LIBGMP_FALSE@%$HAVE_LIBGMP_FALSE%g s%@YACC@%$YACC%g +s%@ENABLE_GMIX_TRUE@%$ENABLE_GMIX_TRUE%g +s%@ENABLE_GMIX_FALSE@%$ENABLE_GMIX_FALSE%g +s%@ENABLE_GNOMETALK_TRUE@%$ENABLE_GNOMETALK_TRUE%g +s%@ENABLE_GNOMETALK_FALSE@%$ENABLE_GNOMETALK_FALSE%g s%@XF86MISC_LIBS@%$XF86MISC_LIBS%g s%@OSOCKADDR_CFLAGS@%$OSOCKADDR_CFLAGS%g s%@subdirs@%$subdirs%g @@ -5677,12 +5889,15 @@ programs/girc/Makefile programs/gnomine/Makefile programs/gulp/Makefile +programs/gtop/Makefile +programs/gtop/proc/Makefile programs/genius/Makefile programs/find-file/Makefile programs/linux-conf/Makefile programs/network-utilities/Makefile programs/notepad/Makefile programs/phaser-chess/Makefile +programs/gsm/Makefile programs/gtt/Makefile programs/panel/Makefile programs/panel/batmon/Makefile @@ -5693,6 +5908,7 @@ programs/panel/batmon/Makefile programs/panel/menu/Makefile programs/panel/netwatch/Makefile +programs/scottfree/Makefile programs/test-suite/Makefile version.h stamp.h"} @@ -5945,7 +6161,7 @@ esac done - for ac_config_dir in guile-gtk programs/gemvt; do + for ac_config_dir in guile-gtk programs/gemvt programs/freecell; do # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. diff -uNr gnome-0.11/configure.in gnome-0.12/configure.in --- gnome-0.11/configure.in Wed Jan 7 18:37:21 1998 +++ gnome-0.12/configure.in Wed Jan 21 18:54:15 1998 @@ -4,7 +4,9 @@ AC_INIT(gnome.h) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(gnome, 0.11) +AM_INIT_AUTOMAKE(gnome, 0.12) + +AM_MAINTAINER_MODE dnl dnl let applications configure for gnome @@ -36,9 +38,10 @@ x_libs="$x_libs -lXext", , $x_libs) + xx_libs=$x_libs + xX_LIBS=$X_LIBS export xx_libs export xX_LIBS - export xGTK_LIBS LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS" dnl Assume that if we have -lSM then we also have -lICE. @@ -54,25 +57,27 @@ -lgdk -lglib $x_libs -lm) AC_SUBST(GTK_LIBS) + xGTK_LIBS=$GTK_LIBS + export xGTK_LIBS + XPM_LIBS="" - AC_CHECK_LIB(Xpm, XpmFree, [XPM_LIBS="-lXpm"], , $x_libs) + AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs) AC_SUBST(XPM_LIBS) AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread") AC_SUBST(PTHREAD_LIB) - CFLAGS="$saved_cflags" + CFLAGS="$saved_cflags $X_CFLAGS" LDFLAGS="$saved_ldflags" ]) +AC_ISC_POSIX AC_PROG_CC -AM_PROG_LIBTOOL AC_STDC_HEADERS AC_ARG_PROGRAM AM_PROG_LIBTOOL AC_GNOME_CHECK AC_PROG_CXX -AC_PROG_RANLIB AC_PROG_LEX AC_DECL_YYTEXT @@ -106,8 +111,11 @@ AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) +ALL_LINGUAS="cs it ko fi de fr es" AM_GNU_GETTEXT -ALL_LINGUAS="cs it ko" +dnl FIXME: i18n doesn't seem to work right in gnome. +dnl defining this breaks non-i18ned programs like aorta +dnl AC_CHECK_HEADER(libintl.h, [ AC_DEFINE(HAVE_LIBINTL_H) ]) dnl dnl If no gettext is found, default to gnu gettext @@ -175,6 +183,16 @@ dnl gmix AC_CHECK_HEADERS(linux/soundcard.h) +if test x$ac_cv_headers_linux_soundcard_h = xno; then + AC_CHECK_HEADERS(machine/soundcard.h) +fi +AM_CONDITIONAL(ENABLE_GMIX, + test x$ac_cv_headers_linux_soundcard_h = xyes \ + || test x$ac_cv_headers_machine_soundcard_h = xyes) + +dnl gnometalk +AC_CHECK_HEADERS(protocols/talkd.h) +AM_CONDITIONAL(ENABLE_GNOMETALK, test x$ac_cv_headers_protocol_talkd_h = xyes) dnl properties-keyboard AC_CHECK_HEADERS(X11/extensions/xf86misc.h, XF86MISC_LIBS="-lXxf86misc") @@ -196,7 +214,7 @@ AC_MSG_RESULT(no)) AC_SUBST(OSOCKADDR_CFLAGS) -AC_CONFIG_SUBDIRS(guile-gtk programs/gemvt) +AC_CONFIG_SUBDIRS(guile-gtk programs/gemvt programs/freecell) AC_OUTPUT([ Makefile @@ -221,12 +239,15 @@ programs/girc/Makefile programs/gnomine/Makefile programs/gulp/Makefile +programs/gtop/Makefile +programs/gtop/proc/Makefile programs/genius/Makefile programs/find-file/Makefile programs/linux-conf/Makefile programs/network-utilities/Makefile programs/notepad/Makefile programs/phaser-chess/Makefile +programs/gsm/Makefile programs/gtt/Makefile programs/panel/Makefile programs/panel/batmon/Makefile @@ -237,6 +258,7 @@ programs/panel/batmon/Makefile programs/panel/menu/Makefile programs/panel/netwatch/Makefile +programs/scottfree/Makefile programs/test-suite/Makefile version.h stamp.h],[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile]) diff -uNr gnome-0.11/gtk-xmhtml/ChangeLog gnome-0.12/gtk-xmhtml/ChangeLog --- gnome-0.11/gtk-xmhtml/ChangeLog Tue Jan 6 19:52:10 1998 +++ gnome-0.12/gtk-xmhtml/ChangeLog Mon Jan 19 12:56:31 1998 @@ -1,3 +1,65 @@ +Mon Jan 19 12:56:08 1998 Miguel de Icaza + + * gtk-xmhtml.c (gtk_xmhtml_realize): use + gtk_widget_get_parent_window instead of widget->parent->window as + posted by Owen. + + * Makefile.am (libgtkxmhtml_la_LIBADD): Add the Z_LIBS, JPEG_LIBS, + PNG_LIBS and PNG_LIBS to the libgtkxmhtml_la_LIBADD, so that + applications using this library do not need to autodetect which + libraries this was linked with. + +Wed Jan 14 19:28:01 1998 Federico Mena + + * colors.c (my_get_colors): Now we allocate the colors, just as + Motif does. I think they should be freed sometime, but they are + not. Lesstif does not free them, either. I don't know if OSF + Motif ever frees these colors... + +Wed Jan 14 00:40:59 1998 Miguel de Icaza + + * toolkit.h (XCCFree): Allow for empty color contexts. + + * gtk-xmhtml.c: Massive changes to allow proper initialization of + widget (basically, we now create the widgets that make up the HTML + widget first instead of waiting for the source routine to be + invoked). + + +Tue Jan 13 22:04:43 1998 Federico Mena + + * gtk-xmhtml.c (gtk_xmhtml_new): The widget starts up frozen and + thaws itself when it is realized. This fixes all of the problems + regarding realization, gc creation, and window background setting. + + * Lots of changes all over the place to fix colors. Things are + *almost* working right now. I think I'm only missing setting the + window backgrounds appropriately. Several things were done: + + - Motif's color and gc fields from Core and XmManager were + replicated inside the GtkXmHTML widget structure. + + - Macros were created in toolkit.h to use these fields. + + - Instead of the old kludgy set_{fore,back}ground_internal + functions, we now set the window background directly. + This does not work perfectly; I'll look into it. + + - I created a shade_color() function in colors.c (ok, ok, + I stole it from gtkstyle.c) which mimics XmGetColors() + -- it calculates shaded colors for the 3D look. + + I hope to fix the remaining problems with window backgrounds real + soon now. + +Thu Jan 8 20:57:16 1998 Federico Mena + + * images.c (_XmHTMLFillXImage): Created a my_gtk_image_new() + function that is just like the GDK_IMAGE_NORMAL part of the real + gdk_image_new(), but it also supports specification of the padding + and bytes_per_line parameters. This fixes the non-working images + on 16bpp. Let's see later about images with less than 8bpp... + Wed Dec 24 12:05:31 1997 Miguel de Icaza * XmHTML-motif.c, XmHTML.c, XmHTMLP.h, callbacks.c, forms.c, diff -uNr gnome-0.11/gtk-xmhtml/Makefile.am gnome-0.12/gtk-xmhtml/Makefile.am --- gnome-0.11/gtk-xmhtml/Makefile.am Wed Jan 7 20:17:45 1998 +++ gnome-0.12/gtk-xmhtml/Makefile.am Wed Jan 21 01:03:23 1998 @@ -54,13 +54,13 @@ toolkit.h libgtkxmhtml_la_LDFLAGS = -version-info 0:0:0 -rpath $(libdir) -libgtkxmhtml_la_LIBADD = $(GTK_LIBS) $(X_LIBS) $(x_libs) +libgtkxmhtml_la_LIBADD = $(XPM_LIBS) $(GTK_LIBS) $(X_LIBS) $(x_libs) $(Z_LIBS) $(JPEG_LIBS) $(PNG_LIBS) bin_PROGRAMS = htmltest htmltest_SOURCES = test.c htmltest_LDADD = $(top_builddir)/gtk-xmhtml/libgtkxmhtml.la \ - $(GTK_LIBS) $(X_LIBS) $(x_libs) $(Z_LIBS) $(JPEG_LIBS) $(PNG_LIBS) $(XPM_LIBS) + $(GTK_LIBS) $(X_LIBS) $(x_libs) $(XPM_LIBS) ## These are included by XmHTML.c: diff -uNr gnome-0.11/gtk-xmhtml/Makefile.in gnome-0.12/gtk-xmhtml/Makefile.in --- gnome-0.11/gtk-xmhtml/Makefile.in Wed Jan 7 20:30:49 1998 +++ gnome-0.12/gtk-xmhtml/Makefile.in Wed Jan 21 21:13:10 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -158,13 +159,13 @@ toolkit.h libgtkxmhtml_la_LDFLAGS = -version-info 0:0:0 -rpath $(libdir) -libgtkxmhtml_la_LIBADD = $(GTK_LIBS) $(X_LIBS) $(x_libs) +libgtkxmhtml_la_LIBADD = $(XPM_LIBS) $(GTK_LIBS) $(X_LIBS) $(x_libs) $(Z_LIBS) $(JPEG_LIBS) $(PNG_LIBS) bin_PROGRAMS = htmltest htmltest_SOURCES = test.c htmltest_LDADD = $(top_builddir)/gtk-xmhtml/libgtkxmhtml.la \ - $(GTK_LIBS) $(X_LIBS) $(x_libs) $(Z_LIBS) $(JPEG_LIBS) $(PNG_LIBS) $(XPM_LIBS) + $(GTK_LIBS) $(X_LIBS) $(x_libs) $(XPM_LIBS) EXTRA_DIST = gtk-xmhtml.c XmHTML-motif.c mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -209,7 +210,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gtk-xmhtml/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/gtk-xmhtml/XmHTML.c gnome-0.12/gtk-xmhtml/XmHTML.c --- gnome-0.11/gtk-xmhtml/XmHTML.c Tue Jan 6 19:58:18 1998 +++ gnome-0.12/gtk-xmhtml/XmHTML.c Wed Jan 14 00:00:06 1998 @@ -1,13 +1,13 @@ #ifndef lint -static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/XmHTML.c,v 1.16 1998/01/07 01:45:35 unammx Exp $"; +static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/XmHTML.c,v 1.19 1998/01/14 05:49:43 unammx Exp $"; #endif /***** * XmHTML.c : XmHTML main routines * -* This file Version $Revision: 1.16 $ +* This file Version $Revision: 1.19 $ * * Creation date: Thu Nov 21 05:02:44 GMT+0100 1996 -* Last modification: $Date: 1998/01/07 01:45:35 $ +* Last modification: $Date: 1998/01/14 05:49:43 $ * By: $Author: unammx $ * Current State: $State: Exp $ * @@ -35,6 +35,44 @@ /***** * ChangeLog * $Log: XmHTML.c,v $ +* Revision 1.19 1998/01/14 05:49:43 unammx +* Tue Jan 13 22:04:43 1998 Federico Mena +* +* * gtk-xmhtml.c (gtk_xmhtml_new): The widget starts up frozen and +* thaws itself when it is realized. This fixes all of the problems +* regarding realization, gc creation, and window background setting. +* +* (Federico and Miguel) +* +* Revision 1.18 1998/01/14 04:11:44 unammx +* Tue Jan 13 22:04:43 1998 Federico Mena +* +* * Lots of changes all over the place to fix colors. Things are +* *almost* working right now. I think I'm only missing setting the +* window backgrounds appropriately. Several things were done: +* +* - Motif's color and gc fields from Core and XmManager were +* replicated inside the GtkXmHTML widget structure. +* +* - Macros were created in toolkit.h to use these fields. +* +* - Instead of the old kludgy set_{fore,back}ground_internal +* functions, we now set the window background directly. +* This does not work perfectly; I'll look into it. +* +* - I created a shade_color() function in colors.c (ok, ok, +* I stole it from gtkstyle.c) which mimics XmGetColors() +* -- it calculates shaded colors for the 3D look. +* +* I hope to fix the remaining problems with window backgrounds real +* soon now. +* +* Revision 1.17 1998/01/09 06:10:22 unammx +* Fixed (?) background colors of the HTML widget. I'm not 100% sure I did it +* the right way, but it seems to work. +* +* - Federico +* * Revision 1.16 1998/01/07 01:45:35 unammx * Gtk/XmHTML is ready to be used by the Gnome hackers now! * Weeeeeee! @@ -2370,7 +2408,15 @@ XtVaSetValues(html->html.work_area, XmNbackground, html->html.body_bg, NULL); #else - fprintf (stderr, "SHOULD SET THE BACKGROUND COLOR\n"); + { + /* FIXME: is setting the window background the same as setting + * the XmNbackground resource on the work_area? + */ + + GdkColor c; + c.pixel = html->html.body_bg; + gdk_window_set_background(html->html.work_area->window, &c); + } #endif /* get new values for top, bottom & highlight */ _XmHTMLRecomputeColors(html); diff -uNr gnome-0.11/gtk-xmhtml/colors.c gnome-0.12/gtk-xmhtml/colors.c --- gnome-0.11/gtk-xmhtml/colors.c Tue Jan 6 19:58:19 1998 +++ gnome-0.12/gtk-xmhtml/colors.c Wed Jan 14 20:42:06 1998 @@ -1,13 +1,13 @@ #ifndef lint -static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/colors.c,v 1.5 1998/01/07 01:45:36 unammx Exp $"; +static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/colors.c,v 1.9 1998/01/15 01:40:58 unammx Exp $"; #endif /***** * colors.c : XmHTML color allocation routines * -* This file Version $Revision: 1.5 $ +* This file Version $Revision: 1.9 $ * * Creation date: Mon Dec 16 13:57:41 GMT+0100 1996 -* Last modification: $Date: 1998/01/07 01:45:36 $ +* Last modification: $Date: 1998/01/15 01:40:58 $ * By: $Author: unammx $ * Current State: $State: Exp $ * @@ -35,6 +35,44 @@ /***** * ChangeLog * $Log: colors.c,v $ +* Revision 1.9 1998/01/15 01:40:58 unammx +* Comment fixes - Federico +* +* Revision 1.8 1998/01/15 01:34:03 unammx +* Wed Jan 14 19:28:01 1998 Federico Mena +* +* * colors.c (my_get_colors): Now we allocate the colors, just as +* Motif does. I think they should be freed sometime, but they are +* not. Lesstif does not free them, either. I don't know if OSF +* Motif ever frees these colors... +* +* Revision 1.7 1998/01/14 04:11:48 unammx +* Tue Jan 13 22:04:43 1998 Federico Mena +* +* * Lots of changes all over the place to fix colors. Things are +* *almost* working right now. I think I'm only missing setting the +* window backgrounds appropriately. Several things were done: +* +* - Motif's color and gc fields from Core and XmManager were +* replicated inside the GtkXmHTML widget structure. +* +* - Macros were created in toolkit.h to use these fields. +* +* - Instead of the old kludgy set_{fore,back}ground_internal +* functions, we now set the window background directly. +* This does not work perfectly; I'll look into it. +* +* - I created a shade_color() function in colors.c (ok, ok, +* I stole it from gtkstyle.c) which mimics XmGetColors() +* -- it calculates shaded colors for the 3D look. +* +* I hope to fix the remaining problems with window backgrounds real +* soon now. +* +* Revision 1.6 1998/01/10 02:27:02 unammx +* First attempt at fixing the RecomputeColors functions. They are still +* not perfect, as scrollbar colors are affected, too. - Federico +* * Revision 1.5 1998/01/07 01:45:36 unammx * Gtk/XmHTML is ready to be used by the Gnome hackers now! * Weeeeeee! @@ -479,6 +517,256 @@ */ } +#ifndef WITH_MOTIF + +/* This color shading method is taken from gtkstyle.c. Some + * modifications made by me - Federico + */ + +static void +rgb_to_hls (gdouble *r, gdouble *g, gdouble *b) +{ + gdouble min; + gdouble max; + gdouble red; + gdouble green; + gdouble blue; + gdouble h, l, s; + gdouble delta; + + red = *r; + green = *g; + blue = *b; + + if (red > green) { + if (red > blue) + max = red; + else + max = blue; + + if (green < blue) + min = green; + else + min = blue; + } else { + if (green > blue) + max = green; + else + max = blue; + + if (red < blue) + min = red; + else + min = blue; + } + + l = (max + min) / 2; + s = 0; + h = 0; + + if (max != min) { + if (l <= 0.5) + s = (max - min) / (max + min); + else + s = (max - min) / (2 - max - min); + + delta = max -min; + if (red == max) + h = (green - blue) / delta; + else if (green == max) + h = 2 + (blue - red) / delta; + else if (blue == max) + h = 4 + (red - green) / delta; + + h *= 60; + if (h < 0.0) + h += 360; + } + + *r = h; + *g = l; + *b = s; +} + +static void +hls_to_rgb (gdouble *h, gdouble *l, gdouble *s) +{ + gdouble hue; + gdouble lightness; + gdouble saturation; + gdouble m1, m2; + gdouble r, g, b; + + lightness = *l; + saturation = *s; + + if (lightness <= 0.5) + m2 = lightness * (1 + saturation); + else + m2 = lightness + saturation - lightness * saturation; + m1 = 2 * lightness - m2; + + if (saturation == 0) { + *h = lightness; + *l = lightness; + *s = lightness; + } else { + hue = *h + 120; + while (hue > 360) + hue -= 360; + while (hue < 0) + hue += 360; + + if (hue < 60) + r = m1 + (m2 - m1) * hue / 60; + else if (hue < 180) + r = m2; + else if (hue < 240) + r = m1 + (m2 - m1) * (240 - hue) / 60; + else + r = m1; + + hue = *h; + while (hue > 360) + hue -= 360; + while (hue < 0) + hue += 360; + + if (hue < 60) + g = m1 + (m2 - m1) * hue / 60; + else if (hue < 180) + g = m2; + else if (hue < 240) + g = m1 + (m2 - m1) * (240 - hue) / 60; + else + g = m1; + + hue = *h - 120; + while (hue > 360) + hue -= 360; + while (hue < 0) + hue += 360; + + if (hue < 60) + b = m1 + (m2 - m1) * hue / 60; + else if (hue < 180) + b = m2; + else if (hue < 240) + b = m1 + (m2 - m1) * (240 - hue) / 60; + else + b = m1; + + *h = r; + *l = g; + *s = b; + } +} + +static void +shade_color(GdkColor *a, GdkColor *b, gdouble k) +{ + gdouble red; + gdouble green; + gdouble blue; + + /* Special case for black, so that it looks pretty... */ + + if ((a->red == 0) && (a->green == 0) && (a->blue == 0)) { + a->red = 32768; + a->green = 32768; + a->blue = 32768; + } + + red = (gdouble) a->red / 65535.0; + green = (gdouble) a->green / 65535.0; + blue = (gdouble) a->blue / 65535.0; + + rgb_to_hls (&red, &green, &blue); + + green *= k; + + if (green > 1.0) + green = 1.0; + else if (green < 0.0) + green = 0.0; + + blue *= k; + + if (blue > 1.0) + blue = 1.0; + else if (blue < 0.0) + blue = 0.0; + + hls_to_rgb (&red, &green, &blue); + + b->red = (int) (red * 65535.0 + 0.5); + b->green = (int) (green * 65535.0 + 0.5); + b->blue = (int) (blue * 65535.0 + 0.5); +} + +#define HIGHLIGHT_MULT 0.7 +#define LIGHT_MULT 1.5 +#define DARK_MULT 0.5 + +static void +my_get_colors(GdkColormap *colormap, gulong background, gulong *top, gulong *bottom, gulong *highlight) +{ + GdkColor cbackground; + GdkColor ctop, cbottom, chighlight; + + /* I think this should use a ColorContext instead of allocating colors itself... - Federico */ + + /* FIXME: The colors that are allocated here are never freed. + * I think we can save the pixel values in static variables so that we + * can call gdk_colors_free() on the next invocation of the function. + */ + + cbackground.pixel = background; + my_x_query_colors(colormap, &cbackground, 1); + + if (top) { + shade_color(&cbackground, &ctop, LIGHT_MULT); + gdk_color_alloc(colormap, &ctop); + *top = ctop.pixel; + } + + if (bottom) { + shade_color(&cbackground, &cbottom, DARK_MULT); + gdk_color_alloc(colormap, &cbottom); + *bottom = cbottom.pixel; + } + + if (highlight) { + shade_color(&cbackground, &chighlight, HIGHLIGHT_MULT); + gdk_color_alloc(colormap, &chighlight); + *highlight = chighlight.pixel; + } +} + +static void +set_widget_colors(GtkXmHTML *html, gulong *top, gulong *bottom, gulong *highlight) +{ + GdkColor c; + + if (top) { + c.pixel = *top; + gdk_gc_set_foreground(html->top_shadow_gc, &c); + } + + if (bottom) { + c.pixel = *bottom; + gdk_gc_set_foreground(html->bottom_shadow_gc, &c); + } + + if (highlight) { + c.pixel = *highlight; + gdk_gc_set_foreground(html->highlight_gc, &c); + html->highlight_color = *highlight; + } +} + +#endif + /***** * Name: _XmHTMLRecomputeColors * Return Type: void @@ -499,10 +787,10 @@ */ if(html->html.gc != NULL) { +#ifdef WITH_MOTIF Pixel top = None, bottom = None, highlight = None; Arg args[3]; -#ifdef WITH_MOTIF XmGetColors(XtScreen((Widget)html), html->core.colormap, html->html.body_bg, NULL, &top, &bottom, &highlight); XtSetArg(args[0], XmNtopShadowColor, top); @@ -510,8 +798,10 @@ XtSetArg(args[2], XmNhighlightColor, highlight); XtSetValues((Widget)html, args, 3); #else - /* FEDERICO */ - fprintf (stderr, "%s is incomplete\n", __FUNCTION__); + gulong top, bottom, highlight; + + my_get_colors(gtk_widget_get_colormap(GTK_WIDGET(html)), html->html.body_bg, &top, &bottom, &highlight); + set_widget_colors(html, &top, &bottom, &highlight); #endif } } @@ -544,8 +834,10 @@ XtSetArg(args[0], XmNhighlightColor, highlight); XtSetValues((Widget)html, args, 1); #else - /* FEDERICO */ - fprintf (stderr, "%s is incomplete\n", __FUNCTION__); + gulong highlight; + + my_get_colors(gtk_widget_get_colormap(GTK_WIDGET(html)), html->html.body_bg, NULL, NULL, &highlight); + set_widget_colors(html, NULL, NULL, &highlight); #endif } } diff -uNr gnome-0.11/gtk-xmhtml/format.c gnome-0.12/gtk-xmhtml/format.c --- gnome-0.11/gtk-xmhtml/format.c Tue Jan 6 17:56:24 1998 +++ gnome-0.12/gtk-xmhtml/format.c Wed Jan 14 00:00:07 1998 @@ -1,14 +1,14 @@ #ifndef lint -static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/format.c,v 1.6 1997/12/29 22:16:25 unammx Exp $"; +static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/format.c,v 1.9 1998/01/14 05:49:51 unammx Exp $"; #endif /***** * format.c : XmHTML formatting routines: translates parsed HTML to info * required for displaying a HTML page. * -* This file Version $Revision: 1.6 $ +* This file Version $Revision: 1.9 $ * * Creation date: Tue Nov 26 17:03:09 GMT+0100 1996 -* Last modification: $Date: 1997/12/29 22:16:25 $ +* Last modification: $Date: 1998/01/14 05:49:51 $ * By: $Author: unammx $ * Current State: $State: Exp $ * @@ -36,6 +36,44 @@ /***** * ChangeLog * $Log: format.c,v $ +* Revision 1.9 1998/01/14 05:49:51 unammx +* Tue Jan 13 22:04:43 1998 Federico Mena +* +* * gtk-xmhtml.c (gtk_xmhtml_new): The widget starts up frozen and +* thaws itself when it is realized. This fixes all of the problems +* regarding realization, gc creation, and window background setting. +* +* (Federico and Miguel) +* +* Revision 1.8 1998/01/14 04:11:52 unammx +* Tue Jan 13 22:04:43 1998 Federico Mena +* +* * Lots of changes all over the place to fix colors. Things are +* *almost* working right now. I think I'm only missing setting the +* window backgrounds appropriately. Several things were done: +* +* - Motif's color and gc fields from Core and XmManager were +* replicated inside the GtkXmHTML widget structure. +* +* - Macros were created in toolkit.h to use these fields. +* +* - Instead of the old kludgy set_{fore,back}ground_internal +* functions, we now set the window background directly. +* This does not work perfectly; I'll look into it. +* +* - I created a shade_color() function in colors.c (ok, ok, +* I stole it from gtkstyle.c) which mimics XmGetColors() +* -- it calculates shaded colors for the 3D look. +* +* I hope to fix the remaining problems with window backgrounds real +* soon now. +* +* Revision 1.7 1998/01/09 06:10:23 unammx +* Fixed (?) background colors of the HTML widget. I'm not 100% sure I did it +* the right way, but it seems to work. +* +* - Federico +* * Revision 1.6 1997/12/29 22:16:25 unammx * This version does: * @@ -1670,14 +1708,7 @@ html->html.body_fg_save); free(chPtr); -#ifdef WITH_MOTIF - html->manager.foreground = html->html.body_fg; -#else - /* FEDERICO */ - GTK_WIDGET(html)->style->fg[GTK_STATE_NORMAL].pixel = html->html.body_fg; - /* XXX: do we have to set it for all the states? */ - /* XXX: why does it not set the gc foreground as well? */ -#endif + Toolkit_StyleColor_Foreground(html) = html->html.body_fg; } if(doit && (chPtr = _XmHTMLTagGetValue(data->attributes, "bgcolor"))) @@ -1694,14 +1725,18 @@ html->html.body_bg_save); /* also set as background for the entire TWidget */ + + Toolkit_StyleColor_Background(html) = html->html.body_bg; #ifdef WITH_MOTIF - html->core.background_pixel = html->html.body_bg; XtVaSetValues(html->html.work_area, XmNbackground, html->html.body_bg, NULL); #else - /* FEDERICO */ - GTK_WIDGET(html)->style->bg[GTK_STATE_NORMAL].pixel = html->html.body_bg; - /* FIXME: set the background resource equivalent */ + { + /* FIXME: I don't know if this is what we want */ + GdkColor c; + c.pixel = html->html.body_bg; + gdk_window_set_background(html->html.work_area->window, &c); + } #endif /* get new values for top, bottom & highlight */ _XmHTMLRecomputeColors(html); @@ -1747,45 +1782,37 @@ if(doit == False) { /* first check if we changed the background color */ -#ifdef WITH_MOTIF - if(html->core.background_pixel != html->html.body_bg_save) + if (Toolkit_StyleColor_Background(html) != html->html.body_bg_save) { - html->html.body_fg = html->html.body_fg_save; - html->html.body_bg = html->html.body_bg_save; - html->manager.foreground = html->html.body_fg; - html->core.background_pixel = html->html.body_bg; + html->html.body_fg = html->html.body_fg_save; + html->html.body_bg = html->html.body_bg_save; + Toolkit_StyleColor_Foreground(html) = html->html.body_fg; + Toolkit_StyleColor_Background(html) = html->html.body_bg; + +#ifdef WITH_MOTIF XtVaSetValues(html->html.work_area, XmNbackground, html->html.body_bg, NULL); - +#else + { + /* FIXME: I don't know if this is what we want */ + GdkColor c; + c.pixel = html->html.body_bg; + printf("3\n"); + gdk_window_set_background(html->html.work_area->window, &c); + } +#endif + /* restore values for top, bottom & highlight */ _XmHTMLRecomputeColors(html); } -#else - /* FEDERICO */ + + html->html.body_fg = html->html.body_fg_save; + html->html.body_bg = html->html.body_bg_save; + html->html.anchor_fg = html->html.anchor_fg_save; + html->html.anchor_visited_fg = html->html.anchor_visited_fg_save; + html->html.anchor_activated_fg = html->html.anchor_activated_fg_save; + Toolkit_StyleColor_Foreground(html) = html->html.body_fg; - /* XXX: I don't know whether this is correct at all */ - - if (GTK_WIDGET(html)->style->bg[GTK_STATE_NORMAL].pixel != html->html.body_bg_save) - { - html->html.body_fg = html->html.body_fg_save; - html->html.body_bg = html->html.body_bg_save; - GTK_WIDGET(html)->style->fg[GTK_STATE_NORMAL].pixel = html->html.body_fg; - GTK_WIDGET(html)->style->bg[GTK_STATE_NORMAL].pixel = html->html.body_bg; - /* XXX: set the background resource equivalent */ - } - -#endif - html->html.body_fg = html->html.body_fg_save; - html->html.body_bg = html->html.body_bg_save; - html->html.anchor_fg = html->html.anchor_fg_save; - html->html.anchor_visited_fg = html->html.anchor_visited_fg_save; - html->html.anchor_activated_fg=html->html.anchor_activated_fg_save; -#ifdef WITH_MOTIF - html->manager.foreground = html->html.body_fg; -#else - /* FEDERICO */ - GTK_WIDGET(html)->style->fg[GTK_STATE_NORMAL].pixel = html->html.body_fg; -#endif bg_color_set = False; } } @@ -1943,7 +1970,7 @@ } if(prev_state == CLEAR_HARD) { -+ /* unchanged */ + /* unchanged */ ret_val = CLEAR_NONE; break; } diff -uNr gnome-0.11/gtk-xmhtml/gtk-forms.c gnome-0.12/gtk-xmhtml/gtk-forms.c --- gnome-0.11/gtk-xmhtml/gtk-forms.c Tue Jan 6 13:27:29 1998 +++ gnome-0.12/gtk-xmhtml/gtk-forms.c Tue Jan 13 22:19:16 1998 @@ -615,13 +615,14 @@ entry->size = cols; entry->maxlength = rows; - /* FIXME: use document colors if allowed - * if(html->html.allow_form_coloring) - * { - * XtSetArg(args[argc], XmNbackground, html->html.body_bg); argc++; - * XtSetArg(args[argc], XmNforeground, html->html.body_fg); argc++; - * } - */ + if(html->html.allow_form_coloring) { + /* FIXME: how to set the text area's colors? */ +#if 0 + XtSetArg(args[argc], XmNbackground, html->html.body_bg); argc++; + XtSetArg(args[argc], XmNforeground, html->html.body_fg); argc++; +#endif + } + textw = gtk_text_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (html), textw); diff -uNr gnome-0.11/gtk-xmhtml/gtk-xmhtml-p.h gnome-0.12/gtk-xmhtml/gtk-xmhtml-p.h --- gnome-0.11/gtk-xmhtml/gtk-xmhtml-p.h Mon Dec 29 21:01:43 1997 +++ gnome-0.12/gtk-xmhtml/gtk-xmhtml-p.h Mon Jan 12 20:00:53 1998 @@ -30,3 +30,7 @@ }; #define GTK_XMHTML_LIBRARY #include "gtk-xmhtml.h" +/* +void gtk_xmhtml_set_foreground_internal (GtkXmHTML *html); +void gtk_xmhtml_set_background_internal (GtkXmHTML *html); +*/ diff -uNr gnome-0.11/gtk-xmhtml/gtk-xmhtml.c gnome-0.12/gtk-xmhtml/gtk-xmhtml.c --- gnome-0.11/gtk-xmhtml/gtk-xmhtml.c Tue Jan 6 12:09:46 1998 +++ gnome-0.12/gtk-xmhtml/gtk-xmhtml.c Mon Jan 19 12:55:53 1998 @@ -205,10 +205,18 @@ gtk_xmhtml_reset_pending_flags (html); /* Gtk port bits */ - html->frozen = 0; html->children = NULL; + + html->background_pixel = 0; + html->foreground_pixel = 0; + html->bottom_shadow_gc = NULL; + html->top_shadow_gc = NULL; + html->highlight_gc = NULL; + html->highlight_color = 0; } +static void gtk_xmhtml_create_widgets (GtkXmHTML *html); + GtkWidget * gtk_xmhtml_new (void) { @@ -218,7 +226,10 @@ GTK_WIDGET(html)->allocation.width = 200; GTK_WIDGET(html)->allocation.height = 200; html->initialized = 0; + html->frozen = 0; + gtk_xmhtml_create_widgets (html); gtk_xmhtml_source (html, ""); + html->frozen = 1; return GTK_WIDGET (html); } @@ -405,7 +416,8 @@ sizeof (GtkXmHTMLClass), (GtkClassInitFunc) gtk_xmhtml_class_init, (GtkObjectInitFunc) gtk_xmhtml_init, - (GtkArgFunc) NULL + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; gtk_xmhtml_type = gtk_type_unique (gtk_container_get_type (), >k_xmhtml_info); @@ -602,21 +614,20 @@ GdkGCValues xgc; xgc.function = GDK_COPY; - xgc.foreground = GTK_WIDGET(html)->style->fg[GTK_STATE_NORMAL]; - xgc.background = GTK_WIDGET(html)->style->bg[GTK_STATE_NORMAL]; - html->html.gc = gdk_gc_new_with_values (GTK_WIDGET (html)->window, &xgc, + xgc.foreground.pixel = Toolkit_StyleColor_Foreground(html); + xgc.background.pixel = Toolkit_StyleColor_Background(html); + html->html.gc = gdk_gc_new_with_values (GTK_WIDGET(html)->window, &xgc, GDK_GC_FOREGROUND | GDK_GC_BACKGROUND | GDK_GC_FUNCTION); - fprintf (stderr, "FIXME: missing call to XmHTMLRecomputeColors\n"); -/* _XmHTMLRecomputeColors(html); */ + _XmHTMLRecomputeColors(html); _XmHTMLDebug(1, ("XmHTML.c: CheckGC, gc created\n")); } /* background image gc */ if(html->html.body_images_enabled && html->html.bg_gc == NULL) { - html->html.bg_gc = gdk_gc_new (GTK_WIDGET (html)->window); - gdk_gc_copy (html->html.gc, html->html.bg_gc); + html->html.bg_gc = gdk_gc_new (GTK_WIDGET(html)->window); + gdk_gc_copy (html->html.bg_gc, html->html.gc); } _XmHTMLDebug(1, ("XmHTML.c: CheckGC End\n")); @@ -791,24 +802,35 @@ _XmHTMLMoveToPos (html->html.vsb, html, adj->value); } -/***** - * Name: CreateHTMLWidget - * Return Type: void - * Description: creates the HTML TWidget - * The actual area we use to draw into is a drawingAreaWidget. - * In: - * html: TWidget to be created. - * Returns: - * nothing - *****/ static void -CreateHTMLWidget(XmHTMLWidget html) +drawing_area_realized (GtkWidget *widget, gpointer data) +{ + GtkXmHTML *html = data; + GdkColor c; + + html->background_pixel = widget->style->bg[GTK_STATE_NORMAL].pixel; + html->foreground_pixel = widget->style->fg[GTK_STATE_NORMAL].pixel; + + html->bottom_shadow_gc = gdk_gc_new (widget->window); + gdk_gc_copy (html->bottom_shadow_gc, widget->style->dark_gc[GTK_STATE_NORMAL]); + + html->top_shadow_gc = gdk_gc_new (widget->window); + gdk_gc_copy (html->top_shadow_gc, widget->style->light_gc[GTK_STATE_NORMAL]); + + html->highlight_gc = gdk_gc_new (widget->window); + gdk_gc_copy (html->highlight_gc, widget->style->bg_gc[GTK_STATE_PRELIGHT]); + html->highlight_color = widget->style->bg[GTK_STATE_PRELIGHT].pixel; + + gtk_xmhtml_thaw (html); + + /* FIXME: remember to destroy the GCs later */ +} + +static void +gtk_xmhtml_create_widgets (GtkXmHTML *html) { GtkWidget *draw_area; int events; - int vsb_width, hsb_height; - - _XmHTMLDebug(1, ("XmHTML.c: CreateHTMLWidget Start\n")); /* Check if user provided a work area */ if(html->html.work_area == NULL) @@ -817,7 +839,10 @@ gtk_drawing_area_size (GTK_DRAWING_AREA (draw_area), 40, 40); gtk_xmhtml_manage (GTK_CONTAINER (html), draw_area); - + + gtk_signal_connect (GTK_OBJECT (draw_area), "realize", + (GtkSignalFunc) drawing_area_realized, html); + gtk_signal_connect (GTK_OBJECT (draw_area), "expose_event", (GtkSignalFunc) gtk_xmhtml_expose_event, html); @@ -855,6 +880,7 @@ /* not yet handled */ | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); + gtk_widget_show (draw_area); } @@ -878,6 +904,25 @@ (GtkSignalFunc) vertical_scroll, html); } +} + +/***** + * Name: CreateHTMLWidget + * Return Type: void + * Description: creates the HTML TWidget + * The actual area we use to draw into is a drawingAreaWidget. + * In: + * html: TWidget to be created. + * Returns: + * nothing + *****/ +static void +CreateHTMLWidget(XmHTMLWidget html) +{ + int vsb_width, hsb_height; + + _XmHTMLDebug(1, ("XmHTML.c: CreateHTMLWidget Start\n")); + /* * subtract margin_width once to minimize number of calcs in * the paint routines: every thing rendered starts at an x position @@ -902,7 +947,7 @@ g_return_if_fail (GTK_IS_XMHTML (widget)); GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); - + attributes.window_type = GDK_WINDOW_CHILD; attributes.x = widget->allocation.x; attributes.y = widget->allocation.y; @@ -916,7 +961,7 @@ attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - widget->window = gdk_window_new (widget->parent->window, &attributes, + widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gdk_window_set_user_data (widget->window, widget); @@ -1510,12 +1555,15 @@ /* reset some important vars */ ResetWidget(html, html->free_images_needed); -#if 0 - /* FIXME: I dont support this yet :-( */ - /* reset background color */ - XtVaSetValues(w_new->html.work_area, - XmNbackground, w_new->html.body_bg, NULL); -#endif + { + /* FIXME: is setting the window background semantically equivalent + * to setting the XmNbackground resource on the work_area? + */ + + GdkColor c; + c.pixel = html->html.body_bg; + gdk_window_set_background(html->html.work_area->window, &c); + } /* get new values for top, bottom & highlight */ _XmHTMLRecomputeColors(html); @@ -1575,6 +1623,10 @@ static void gtk_xmhtml_sync (GtkXmHTML *html) { + if (!html->initialized){ + html->initialized = 1; + XmHTML_Initialize (html, html, html->html.source); + } if (html->parse_needed) gtk_xmhtml_sync_parse (html); if (html->reformat_needed) @@ -1605,7 +1657,7 @@ void gtk_xmhtml_freeze (GtkXmHTML *html) { - html->frozen = 1; + html->frozen++; } void @@ -1614,8 +1666,8 @@ if (!html->frozen) return; - html->frozen = 0; - gtk_xmhtml_sync (html); + html->frozen--; + gtk_xmhtml_try_sync (html); } void @@ -1623,10 +1675,6 @@ { int parse = FALSE; - if (!html->initialized){ - html->initialized = 1; - XmHTML_Initialize (html, html, html_source); - } /* If we already have some HTML source code */ if (html->html.source){ if (html_source){ /* new text supplied */ @@ -1650,7 +1698,36 @@ } html->html.value = html->html.source; html->parse_needed = parse; - gtk_xmhtml_try_sync (html); + + if (html->initialized) + gtk_xmhtml_try_sync (html); +} + +/* XXX: This function does an XQueryColors() the hard way, because there is + * no corresponding function in Gdk. + */ + +void +my_x_query_colors(GdkColormap *colormap, + GdkColor *colors, + gint ncolors) +{ + XColor *xcolors; + gint i; + + xcolors = g_new(XColor, ncolors); + for (i = 0; i < ncolors; i++) + xcolors[i].pixel = colors[i].pixel; + + XQueryColors(gdk_display, GDK_COLORMAP_XCOLORMAP(colormap), xcolors, ncolors); + + for (i = 0; i < ncolors; i++) { + colors[i].red = xcolors[i].red; + colors[i].green = xcolors[i].green; + colors[i].blue = xcolors[i].blue; + } + + g_free(xcolors); } void diff -uNr gnome-0.11/gtk-xmhtml/gtk-xmhtml.h gnome-0.12/gtk-xmhtml/gtk-xmhtml.h --- gnome-0.11/gtk-xmhtml/gtk-xmhtml.h Tue Jan 6 19:41:13 1998 +++ gnome-0.12/gtk-xmhtml/gtk-xmhtml.h Tue Jan 13 22:19:16 1998 @@ -46,6 +46,15 @@ int initialized; GList *children; + + /* These replace Motif's fields */ + + gulong background_pixel; + gulong foreground_pixel; + GdkGC *bottom_shadow_gc; + GdkGC *top_shadow_gc; + GdkGC *highlight_gc; + gulong highlight_color; }; struct _GtkXmHTMLClass diff -uNr gnome-0.11/gtk-xmhtml/images.c gnome-0.12/gtk-xmhtml/images.c --- gnome-0.11/gtk-xmhtml/images.c Tue Jan 6 19:58:23 1998 +++ gnome-0.12/gtk-xmhtml/images.c Mon Jan 12 20:00:55 1998 @@ -1,13 +1,13 @@ #ifndef lint -static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/images.c,v 1.7 1998/01/07 01:45:37 unammx Exp $"; +static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/images.c,v 1.9 1998/01/10 02:27:02 unammx Exp $"; #endif /***** * images.c : XmHTML image loading/manipulation routines. * -* This file Version $Revision: 1.7 $ +* This file Version $Revision: 1.9 $ * * Creation date: Tue Dec 24 04:08:22 GMT+0100 1996 -* Last modification: $Date: 1998/01/07 01:45:37 $ +* Last modification: $Date: 1998/01/10 02:27:02 $ * By: $Author: unammx $ * Current State: $State: Exp $ * @@ -43,6 +43,27 @@ /***** * ChangeLog * $Log: images.c,v $ +* Revision 1.9 1998/01/10 02:27:02 unammx +* First attempt at fixing the RecomputeColors functions. They are still +* not perfect, as scrollbar colors are affected, too. - Federico +* +* Revision 1.8 1998/01/09 02:15:27 unammx +* OK, fixed the non-working images on 16 bpp. This is done by putting +* in a my_gdk_image_new() that explicitly takes the data, padding and +* bytes_per_line parameters for XCreateImage(). The function is a copy +* of the GDK_IMAGE_NORMAL part of the real gdk_image_new(); it just uses +* the specified parameters instead of the Gdk hardcoded values. +* +* This is needed because by default gdk_image_new() always creates +* images with a 32-bit padding for scanclines. XmHTML, however, uses +* different paddings depending on the image depth. +* +* As a sidenote, does anyone know where to get documentation for XShm? +* I am not using GDK_IMAGE_FASTEST because I do not see a way to pass +* the padding parameter to the XShm functions. +* +* - Federico +* * Revision 1.7 1998/01/07 01:45:37 unammx * Gtk/XmHTML is ready to be used by the Gnome hackers now! * Weeeeeee! @@ -282,33 +303,6 @@ /*** Private Variable Declarations ***/ -/* XXX: This function does an XQueryColors() the hard way, because there is - * no corresponding function in Gdk. - */ - -static void -my_x_query_colors(GdkColormap *colormap, - GdkColor *colors, - gint ncolors) -{ - XColor *xcolors; - gint i; - - xcolors = g_new(XColor, ncolors); - for (i = 0; i < ncolors; i++) - xcolors[i].pixel = colors[i].pixel; - - XQueryColors(gdk_display, GDK_COLORMAP_XCOLORMAP(colormap), xcolors, ncolors); - - for (i = 0; i < ncolors; i++) { - colors[i].red = xcolors[i].red; - colors[i].green = xcolors[i].green; - colors[i].blue = xcolors[i].blue; - } - - g_free(xcolors); -} - /***** * Name: readImage * Return Type: Byte* @@ -596,6 +590,90 @@ return((TXImage*)NULL); } +#ifndef WITH_MOTIF +static void +my_gdk_image_put_normal (GdkDrawable *drawable, + GdkGC *gc, + GdkImage *image, + gint xsrc, + gint ysrc, + gint xdest, + gint ydest, + gint width, + gint height) +{ + GdkWindowPrivate *drawable_private; + GdkImagePrivate *image_private; + GdkGCPrivate *gc_private; + + g_return_if_fail (drawable != NULL); + g_return_if_fail (image != NULL); + g_return_if_fail (gc != NULL); + + drawable_private = (GdkWindowPrivate*) drawable; + image_private = (GdkImagePrivate*) image; + gc_private = (GdkGCPrivate*) gc; + + g_return_if_fail (image->type == GDK_IMAGE_NORMAL); + + XPutImage (drawable_private->xdisplay, drawable_private->xwindow, + gc_private->xgc, image_private->ximage, + xsrc, ysrc, xdest, ydest, width, height); +} + +static GdkImage * +my_gdk_image_new(GdkVisual *visual, + gint width, + gint height, + char *data, + gint padding, + gint bytes_per_line) +{ + GdkImage *image; + GdkImagePrivate *private; + Visual *xvisual; + + private = g_new (GdkImagePrivate, 1); + image = (GdkImage*) private; + + private->xdisplay = gdk_display; + private->image_put = my_gdk_image_put_normal; + + image->type = GDK_IMAGE_NORMAL; + image->visual = visual; + image->width = width; + image->height = height; + image->depth = visual->depth; + + xvisual = ((GdkVisualPrivate*) visual)->xvisual; + + private->ximage = XCreateImage (private->xdisplay, xvisual, visual->depth, + ZPixmap, 0, data, width, height, padding, bytes_per_line); + + image->byte_order = private->ximage->byte_order; + image->mem = private->ximage->data; + image->bpl = private->ximage->bytes_per_line; + + switch (private->ximage->bits_per_pixel) + { + case 8: + image->bpp = 1; + break; + case 16: + image->bpp = 2; + break; + case 24: + image->bpp = 3; + break; + case 32: + image->bpp = 4; + break; + } + + return image; +} +#endif + /***** * Name: _XmHTMLCreateXImage * Return Type: XImage @@ -620,18 +698,17 @@ _XmHTMLDebug(6, ("images.c: _XmHTMLCreateXImage, creating XImage\n")); -#ifdef WITH_MOTIF /* branch to correct display depth */ switch(depth) { case 1: { Byte *data; - - ximage = XCreateImage(dpy, vis, depth, XYPixmap, 0, NULL, + /* XXX: Is a 1-bit deep XYPixmap the same as a 1-bit ZPixmap? */ + ximage = Toolkit_Create_Image(dpy, vis, depth, XYPixmap, 0, NULL, width, height, 32, 0); - data = (Byte*)malloc(ximage->bytes_per_line * height); - ximage->data = (char *)data; + data = (Byte*)malloc(Toolkit_Image_Bytes_Per_Line(ximage) * height); + Toolkit_Set_Image_Data(ximage, (char *)data); /***** * FIXME @@ -644,32 +721,32 @@ Byte *data; int bpp; - ximage = XCreateImage(dpy, vis, depth, ZPixmap, 0, NULL, - width, height, 8, 0); + ximage = Toolkit_Create_Image(dpy, vis, depth, ZPixmap, 0, NULL, + width, height, 8, 0); - bpp = ximage->bits_per_pixel; + bpp = Toolkit_Image_Bits_Per_Pixel(ximage); if(bpp != 2 && bpp != 4 && bpp != 8) return(XImageBizarre(html, depth, ximage)); - data = (Byte*)malloc(ximage->bytes_per_line * height); - ximage->data = (char*)data; + data = (Byte*)malloc(Toolkit_Image_Bytes_Per_Line(ximage) * height); + Toolkit_Set_Image_Data(ximage, (char*)data); } break; case 4: { Byte *data; int bpp; - ximage = XCreateImage(dpy, vis, depth, ZPixmap, 0, NULL, - width, height, 8, 0); + ximage = Toolkit_Create_Image(dpy, vis, depth, ZPixmap, 0, NULL, + width, height, 8, 0); - bpp = ximage->bits_per_pixel; + bpp = Toolkit_Image_Bits_Per_Pixel(ximage); if(bpp != 4 && bpp != 8) return(XImageBizarre(html, depth, ximage)); - data = (Byte*)malloc(ximage->bytes_per_line * height); - ximage->data = (char*)data; + data = (Byte*)malloc(Toolkit_Image_Bytes_Per_Line(ximage) * height); + Toolkit_Set_Image_Data(ximage, (char*)data); } break; case 5: @@ -677,14 +754,14 @@ { Byte *data; - ximage = XCreateImage(dpy, vis, depth, ZPixmap, 0, NULL, - width, height, 8, 0); + ximage = Toolkit_Create_Image(dpy, vis, depth, ZPixmap, 0, NULL, + width, height, 8, 0); - if(ximage->bits_per_pixel != 8) + if(Toolkit_Image_Bits_Per_Pixel(ximage) != 8) return(XImageBizarre(html, depth, ximage)); - data = (Byte*)malloc(ximage->bytes_per_line * height); - ximage->data = (char*)data; + data = (Byte*)malloc(Toolkit_Image_Bytes_Per_Line(ximage) * height); + Toolkit_Set_Image_Data(ximage, (char*)data); } break; case 8: @@ -699,8 +776,8 @@ data = (Byte*)malloc(imWIDE * height); - ximage = XCreateImage(dpy, vis, depth, ZPixmap, 0, - (char*)data, width, height, 32, imWIDE); + ximage = Toolkit_Create_Image(dpy, vis, depth, ZPixmap, 0, + (char*)data, width, height, 32, imWIDE); } break; case 12: @@ -709,14 +786,14 @@ { unsigned short *data; - ximage = XCreateImage(dpy, vis, depth, ZPixmap, 0, NULL, - width, height, 16, 0); + ximage = Toolkit_Create_Image(dpy, vis, depth, ZPixmap, 0, NULL, + width, height, 16, 0); - if(depth == 12 && ximage->bits_per_pixel != 16) + if(depth == 12 && Toolkit_Image_Bits_Per_Pixel(ximage) != 16) return(XImageBizarre(html, depth, ximage)); data = (unsigned short*)malloc(2 * width * height); - ximage->data = (char*)data; + Toolkit_Set_Image_Data(ximage, (char*)data); } break; case 24: @@ -724,11 +801,11 @@ { Byte *data; - ximage = XCreateImage(dpy, vis, depth, ZPixmap, 0, NULL, - width, height, 32, 0); + ximage = Toolkit_Create_Image(dpy, vis, depth, ZPixmap, 0, NULL, + width, height, 32, 0); data = (Byte*)malloc(4 * width * height); - ximage->data = (char*)data; + Toolkit_Set_Image_Data(ximage, (char*)data); } break; default: @@ -741,14 +818,12 @@ } break; } -#else - ximage = gdk_image_new(GDK_IMAGE_FASTEST, vis, width, height); /* FIXME: Things will fail later when any of the conditions XmHTML expects * (the "if (ximage->bits_per_pixel != foo)" stuff above) are not met. This * has to be solved by adding proper support to Gdk for the image types it * is missing. */ -#endif + if(ximage == NULL) { _XmHTMLWarning(__WFUNC__(html, "_XmHTMLCreateXImage"), @@ -837,7 +912,7 @@ * lo*imWIDE contains the no of XImage data bytes already * processed. */ - imagedata = (Byte*)Toolkit_Image_Data(ximage) + lo*imWIDE; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + lo*imWIDE; pp = data; @@ -872,7 +947,7 @@ hi /= wide; /* ending scanline index (image data) */ /* compute offset into XImage data */ - imagedata = (Byte*)Toolkit_Image_Data(ximage) + lo*bperline; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + lo*bperline; for(i = lo, lip = imagedata; i < hi; i++, lip += bperline) { @@ -909,7 +984,7 @@ else /* ximage->bits_per_pixel == 8 */ { /* compute offset into XImage data */ - imagedata = (Byte*)Toolkit_Image_Data(ximage) + lo; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + lo; for(i = hi, ip = imagedata; i > lo; i--, pp++, ip++) *ip = (Byte) xcolors[*pp]; @@ -937,7 +1012,7 @@ lo /= wide; /* starting scanline index (image data) */ hi /= wide; /* ending scanline index (image data) */ - imagedata = (Byte*)Toolkit_Image_Data(ximage) + lo*bperline; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + lo*bperline; for(i = lo, lip = imagedata; i < hi; i++, lip += bperline) { @@ -993,7 +1068,7 @@ lo /= wide; /* starting scanline index (image data) */ hi /= wide; /* ending scanline index (image data) */ - imagedata = (Byte*)Toolkit_Image_Data(ximage) + lo*bperline; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + lo*bperline; for(i = lo, lip = imagedata; i < hi; i++, lip += bperline) { @@ -1033,7 +1108,7 @@ } else /* ximage->bits_per_pixel == 8 */ { - imagedata = (Byte*)Toolkit_Image_Data(ximage) + lo; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + lo; for(i = hi, ip = imagedata; i > lo; i--, pp++, ip++) *ip = (Byte)xcolors[*pp]; @@ -1050,7 +1125,7 @@ register Byte *ip, *pp; bperline = Toolkit_Image_Bytes_Per_Line(ximage); - imagedata = (Byte*)Toolkit_Image_Data(ximage) + (lo/wide)*bperline; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + (lo/wide)*bperline; pp = data; @@ -1070,7 +1145,7 @@ /* 2 bytes per pixel */ bperline = Toolkit_Image_Bytes_Per_Line(ximage); - imagedata = (unsigned short*)Toolkit_Image_Data(ximage) + (lo/wide)*bperline; + imagedata = (unsigned short*)Toolkit_Get_Image_Data(ximage) + (lo/wide)*bperline; pp = data; @@ -1102,7 +1177,7 @@ hi /= wide; /* ending scanline index (image data) */ /* 4 bytes per pixel */ - imagedata = (Byte*)Toolkit_Image_Data(ximage) + lo*bperline; + imagedata = (Byte*)Toolkit_Get_Image_Data(ximage) + lo*bperline; #ifdef WITH_MOTIF do32 = (ximage->bits_per_pixel == 32); #else diff -uNr gnome-0.11/gtk-xmhtml/readBitmap.c gnome-0.12/gtk-xmhtml/readBitmap.c --- gnome-0.11/gtk-xmhtml/readBitmap.c Tue Jan 6 19:58:24 1998 +++ gnome-0.12/gtk-xmhtml/readBitmap.c Tue Jan 13 22:19:17 1998 @@ -1,14 +1,14 @@ #ifndef lint -static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/readBitmap.c,v 1.3 1998/01/07 01:45:40 unammx Exp $"; +static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/readBitmap.c,v 1.4 1998/01/14 04:12:10 unammx Exp $"; #endif /***** * readBitmap.c : XmHTML X11 bitmap image loading routines * -* This file Version $Revision: 1.3 $ +* This file Version $Revision: 1.4 $ * * Creation date: Wed Feb 19 03:32:58 GMT+0100 1997 -* Last modification: $Date: 1998/01/07 01:45:40 $ +* Last modification: $Date: 1998/01/14 04:12:10 $ * By: $Author: unammx $ * Current State: $State: Exp $ * @@ -37,6 +37,29 @@ /***** * ChangeLog * $Log: readBitmap.c,v $ +* Revision 1.4 1998/01/14 04:12:10 unammx +* Tue Jan 13 22:04:43 1998 Federico Mena +* +* * Lots of changes all over the place to fix colors. Things are +* *almost* working right now. I think I'm only missing setting the +* window backgrounds appropriately. Several things were done: +* +* - Motif's color and gc fields from Core and XmManager were +* replicated inside the GtkXmHTML widget structure. +* +* - Macros were created in toolkit.h to use these fields. +* +* - Instead of the old kludgy set_{fore,back}ground_internal +* functions, we now set the window background directly. +* This does not work perfectly; I'll look into it. +* +* - I created a shade_color() function in colors.c (ok, ok, +* I stole it from gtkstyle.c) which mimics XmGetColors() +* -- it calculates shaded colors for the 3D look. +* +* I hope to fix the remaining problems with window backgrounds real +* soon now. +* * Revision 1.3 1998/01/07 01:45:40 unammx * Gtk/XmHTML is ready to be used by the Gnome hackers now! * Weeeeeee! @@ -268,15 +291,21 @@ XQueryColor(XtDisplay(area), cmap, &fg_color); XQueryColor(XtDisplay(area), cmap, &bg_color); #else + /* FIXME: I don't know if getting the colors from the macros + * will be quite the same as getting them from the Xt + * resources as above. + */ + + fg_pixel = Toolkit_StyleColor_Foreground (html); + bg_pixel = Toolkit_StyleColor_Background (html); + + fg_color.pixel = fg_pixel; + bg_color.pixel = bg_pixel; + cmap = gtk_widget_get_colormap (html); - { - int state = GTK_WIDGET_STATE (area); - - fg_color = area->style->fg [state]; - bg_color = area->style->bg [state]; - } - fg_color = cmap->colors [fg_color.pixel]; - bg_color = cmap->colors [bg_color.pixel]; + + my_x_query_colors (cmap, &fg_color, 1); + my_x_query_colors (cmap, &bg_color, 1); #endif blackbit = 0; /* fg_color.pixel; */ @@ -526,15 +555,21 @@ XQueryColor(XtDisplay(area), cmap, &fg_color); XQueryColor(XtDisplay(area), cmap, &bg_color); #else - cmap = gtk_widget_get_colormap (area); - { - int state = GTK_WIDGET_STATE (area); - - fg_color = area->style->fg [state]; - bg_color = area->style->bg [state]; - } - fg_color = cmap->colors [fg_color.pixel]; - bg_color = cmap->colors [bg_color.pixel]; + /* FIXME: I don't know if getting the colors from the macros + * will be quite the same as getting them from the Xt + * resources as above. + */ + + fg_pixel = Toolkit_StyleColor_Foreground (xbm->owner); + bg_pixel = Toolkit_StyleColor_Background (xbm->owner); + + fg_color.pixel = fg_pixel; + bg_color.pixel = bg_pixel; + + cmap = gtk_widget_get_colormap (GTK_WIDGET (xbm->owner)); + + my_x_query_colors (cmap, &fg_color, 1); + my_x_query_colors (cmap, &bg_color, 1); #endif xbm->cmap[0].red = fg_color.red; xbm->cmap[0].green = fg_color.green; diff -uNr gnome-0.11/gtk-xmhtml/readXPM.c gnome-0.12/gtk-xmhtml/readXPM.c --- gnome-0.11/gtk-xmhtml/readXPM.c Tue Jan 6 19:58:25 1998 +++ gnome-0.12/gtk-xmhtml/readXPM.c Tue Jan 13 22:19:17 1998 @@ -1,13 +1,13 @@ #ifndef lint -static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/readXPM.c,v 1.2 1998/01/07 01:45:42 unammx Exp $"; +static char rcsId[]="$Header: /debian/home/gnomecvs/gnome/gtk-xmhtml/readXPM.c,v 1.4 1998/01/14 04:12:11 unammx Exp $"; #endif /***** * readXPM.c : XmHTML XPM image loading routines * -* This file Version $Revision: 1.2 $ +* This file Version $Revision: 1.4 $ * * Creation date: Wed Feb 19 03:19:23 GMT+0100 1997 -* Last modification: $Date: 1998/01/07 01:45:42 $ +* Last modification: $Date: 1998/01/14 04:12:11 $ * By: $Author: unammx $ * Current State: $State: Exp $ * @@ -36,6 +36,32 @@ /***** * ChangeLog * $Log: readXPM.c,v $ +* Revision 1.4 1998/01/14 04:12:11 unammx +* Tue Jan 13 22:04:43 1998 Federico Mena +* +* * Lots of changes all over the place to fix colors. Things are +* *almost* working right now. I think I'm only missing setting the +* window backgrounds appropriately. Several things were done: +* +* - Motif's color and gc fields from Core and XmManager were +* replicated inside the GtkXmHTML widget structure. +* +* - Macros were created in toolkit.h to use these fields. +* +* - Instead of the old kludgy set_{fore,back}ground_internal +* functions, we now set the window background directly. +* This does not work perfectly; I'll look into it. +* +* - I created a shade_color() function in colors.c (ok, ok, +* I stole it from gtkstyle.c) which mimics XmGetColors() +* -- it calculates shaded colors for the 3D look. +* +* I hope to fix the remaining problems with window backgrounds real +* soon now. +* +* Revision 1.3 1998/01/10 03:26:24 unammx +* fix +* * Revision 1.2 1998/01/07 01:45:42 unammx * Gtk/XmHTML is ready to be used by the Gnome hackers now! * Weeeeeee! @@ -183,23 +209,19 @@ else XtVaGetValues(html, XtNbackground, &bg_pixel, NULL); #else - { - int state = GTK_WIDGET_STATE (html); - TColor bg_color; - - bg_color = html->style->fg [state]; - bg_pixel = bg_color.pixel; - } + /* FIXME: I don't know if getting the color from macro is + * the same as getting it from the Xt resource. + */ + bg_pixel = Toolkit_StyleColor_Background(html); #endif } -#ifdef WITH_MOTIF + /* get RGB components for this color. */ tmpcolr.pixel = bg_pixel; - +#ifdef WITH_MOTIF XQueryColor(Toolkit_Display(html), cmap, &tmpcolr); #else - tmpcolr.pixel = bg_pixel; - tmpcolr = cmap->colors [bg_pixel]; + my_x_query_colors(cmap, &tmpcolr, 1); #endif /* store background pixel index */ img_data->bg = i; diff -uNr gnome-0.11/gtk-xmhtml/test.c gnome-0.12/gtk-xmhtml/test.c --- gnome-0.11/gtk-xmhtml/test.c Tue Jan 6 19:44:14 1998 +++ gnome-0.12/gtk-xmhtml/test.c Wed Jan 14 00:54:57 1998 @@ -34,6 +34,12 @@ "" ""; +char *test_string3 = +"h" +"I love you world" +"" +""; + void click (GtkWidget *widget, gpointer data) { @@ -49,7 +55,7 @@ printf ("title: %s\n", cbs->title); printf ("doit: %d\n", cbs->doit); printf ("visited: %s\n", cbs->visited); - gtk_xmhtml_source (GTK_XMHTML (widget), test_string2); + gtk_xmhtml_source (GTK_XMHTML (widget), test_string3); } void @@ -81,7 +87,8 @@ int main (int argc, char *argv []) { - GtkWidget *window, *html, *scr; + GtkWidget *window, *html; + GtkWidget *button; char *p = malloc (10); GString *file_contents; char aline[1024]; @@ -89,7 +96,7 @@ gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_widget_show (window); + file_contents = g_string_new(NULL); if(argc == 2) { afile = fopen(argv[1], "r"); @@ -105,16 +112,18 @@ GTK_SIGNAL_FUNC(gtk_true), NULL); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); + html = gtk_xmhtml_new (); + gtk_xmhtml_source (GTK_XMHTML (html), file_contents->str); gtk_container_add (GTK_CONTAINER (window), html); + gtk_widget_show (html); gtk_signal_connect (GTK_OBJECT(html), "activate", (GtkSignalFunc) click, html); gtk_signal_connect (GTK_OBJECT(html), "frame", (GtkSignalFunc) frame, html); - gtk_xmhtml_source (GTK_XMHTML (html), file_contents->str); + gtk_widget_show (window); - gtk_widget_show (html); + gtk_main (); return 0; } - diff -uNr gnome-0.11/gtk-xmhtml/toolkit.h gnome-0.12/gtk-xmhtml/toolkit.h --- gnome-0.11/gtk-xmhtml/toolkit.h Tue Jan 6 19:43:58 1998 +++ gnome-0.12/gtk-xmhtml/toolkit.h Wed Jan 14 00:54:57 1998 @@ -100,8 +100,12 @@ gdk_window_copy_area ((dst),(gc),(dx),(dy),(src),(sx),(sy),(w),(h)) #define Toolkit_Create_Pixmap(dpy,win,w,h,d) gdk_pixmap_new((win),(w),(h),(d)) #define Toolkit_Free_Pixmap(d,p) gdk_pixmap_unref (p) -#define Toolkit_Create_Image(d,v,depth,form,off,data,w,h,bp,bpl) \ - gdk_image_new(type, (vis), (w), (h)) +#define Toolkit_Create_Image(d,v,depth,form,off,data,w,h,bp,bpl) my_gdk_image_new((v),(w),(h),(data),(bp),(bpl)) +#define Toolkit_Image_Bits_Per_Pixel(i) (((GdkImagePrivate *) i)->ximage->bits_per_pixel) +#define Toolkit_Set_Image_Data(i, d) do { \ + ((GdkImagePrivate *) i)->ximage->data = d; \ + i->mem = d; \ + } while (0) #define Toolkit_GC_Free(dpy,gc) gdk_gc_destroy(gc) #define Toolkit_Widget_Repaint(w) \ _XmHTMLClearArea((w), 0, 0, GTK_WIDGET(w)->allocation.width, GTK_WIDGET(w)->allocation.height) @@ -109,11 +113,12 @@ #define Toolkit_Widget_Force_Repaint(w) do { \ Toolkit_Widget_Repaint(w); \ gtk_widget_draw (GTK_WIDGET (w), NULL);gdk_flush();}while (0) -#define TOolkit_Widget_Repaint(w) gtk_widget_draw (GTK_WIDGET (w), NULL) -#define Toolkit_StyleGC_BottomShadow(w) (GTK_WIDGET(w))->style->dark_gc [GTK_STATE_NORMAL] -#define Toolkit_StyleGC_TopShadow(w) (GTK_WIDGET(w))->style->light_gc [GTK_STATE_NORMAL] -#define Toolkit_StyleGC_Highlight(w) (GTK_WIDGET(w))->style->bg_gc [GTK_STATE_PRELIGHT] -#define Toolkit_StyleColor_Highlight(w) (GTK_WIDGET(w))->style->bg [GTK_STATE_PRELIGHT].pixel +#define Toolkit_StyleColor_Background(w) (GTK_XMHTML(w))->background_pixel +#define Toolkit_StyleColor_Foreground(w) (GTK_XMHTML(w))->foreground_pixel +#define Toolkit_StyleGC_BottomShadow(w) (GTK_XMHTML(w))->bottom_shadow_gc +#define Toolkit_StyleGC_TopShadow(w) (GTK_XMHTML(w))->top_shadow_gc +#define Toolkit_StyleGC_Highlight(w) (GTK_XMHTML(w))->highlight_gc +#define Toolkit_StyleColor_Highlight(w) (GTK_XMHTML(w))->highlight_color #define Toolkit_Widget_Dim(h) (GTK_WIDGET(h)->allocation) #define Toolkit_Screen_Height(w) gdk_screen_height () #define Toolkit_Widget_Is_Realized(w) GTK_WIDGET_REALIZED (w) @@ -122,14 +127,14 @@ gdk_window_clear_area_e ((w),(xs),(ys),(wi),(h)); \ else \ gdk_window_clear_area ((w),(xs),(ys),(wi),(h)); \ - } while (0); + } while (0) #define Toolkit_Widget_Destroy(w) gtk_widget_destroy (w) #define Toolkit_Widget_Colormap(w) gtk_widget_get_colormap (GTK_WIDGET (w)) #define Toolkit_Parse_Color(dpy,cm,c,d) gdk_color_parse (c, d) #define Toolkit_Alloc_Color(dpy,cm,c) gdk_color_alloc (cm,c) #define Toolkit_Get_Visual(w, dest) dest = gtk_widget_get_visual (w) #define Toolkit_Image_Destroy(i) gdk_image_destroy(i) -#define Toolkit_Image_Data(i) (i->mem) +#define Toolkit_Get_Image_Data(i) (i->mem) #define Toolkit_Image_Bytes_Per_Line(i) (i->bpl) #define Toolkit_Timeout_Remove(t) gtk_timeout_remove(t) #define Toolkit_Call_Callback(w,c,s,d) \ @@ -138,7 +143,7 @@ #define Toolkit_Define_Cursor(d,w,c) gdk_window_set_cursor ((w),(c)) #define XCCCreate(w,v,c) gdk_color_context_new (v, c) -#define XCCFree(c) gdk_color_context_free (c) +#define XCCFree(c) if ((c)) gdk_color_context_free ((c)) #define XCCGetDepth(c) (c)->visual->depth #define XCCGetParentVisual(w) gtk_widget_get_visual(w) #define XCCGetPixels(cc,r,g,b,n,co,a) gdk_color_context_get_pixels (cc,r,g,b,n,co,a) @@ -217,6 +222,8 @@ #define Toolkit_Free_Pixmap(d,p) XFreePixmap ((d),(p)) #define Toolkit_Create_Image(d,v,depth,form,off,data,w,h,bp,bpl) \ XCreateImage ((d),(v),(depth),(form),(off),(data),(w),(h),(bp),(bpl)) +#define Toolkit_Image_Bits_Per_Pixel(i) (image->bits_per_pixel) +#define Toolkit_Set_Image_Data(i, d) do { i->data = d; } while (0) #define Toolkit_GC_Free(dpy,gc) XFreeGC((dpy),(gc)) #define Toolkit_Free_Cursor(dpy,cursor) XFreeCursor ((dpy), (cursor)) #define Toolkit_Widget_Repaint(w) _XmHTMLClearArea((w), 0, 0, (w)->core.width, (w)->core.height) @@ -224,9 +231,11 @@ do { _XmHTMLClearArea((w), 0, 0, (w)->core.width, (w)->core.height); \ XSync(XtDisplay((TWidget)(w)), True); } while (0) #define Toolkit_Flush(d,de) XSync (d,de) -#define Toolkit_StyleGC_BottomShadow(w) (w)->manager.bottom_shadow_GC -#define Toolkit_StyleGC_TopShadow(w) (w)->manager.top_shadow_GC -#define Toolkit_StyleGC_Highlight(w) (w)->manager.highlight_GC +#define Toolkit_StyleColor_Background(w) (w)->core.background_pixel +#define Toolkit_StyleColor_Foreground(w) (w)->manager.foreground +#define Toolkit_StyleGC_BottomShadow(w) (w)->manager.bottom_shadow_GC +#define Toolkit_StyleGC_TopShadow(w) (w)->manager.top_shadow_GC +#define Toolkit_StyleGC_Highlight(w) (w)->manager.highlight_GC #define Toolkit_StyleColor_Highlight(w) (w)->manager.highlight_color #define Toolkit_Widget_Dim(h) ((h)->core) #define Toolkit_Screen_Height(w) HeightOfScreen(w) @@ -238,7 +247,7 @@ #define Toolkit_Alloc_Color(dpy,cm,c) do{(c)->flags=DoRed|DoGreen|DoBlue;XAllocColor (dpy,cm,c)}while (0) #define Toolkit_Get_Visual(w, dest) XtVaGetValues((w),XmNvisual, &dest, NULL) #define Toolkit_Image_Destroy(i) XDestroyImage(i) -#define Toolkit_Image_Data(i) (i->data) +#define Toolkit_Get_Image_Data(i) (i->data) #define Toolkit_Image_Bytes_Per_Line(i) (i->bytes_per_line) #define Toolkit_Timeout_Remove(t) XtRemoveTimeOut(t) #define Toolkit_Call_Callback(w,c,s,d) XtCallCallbackList ((w),(c),(d)) diff -uNr gnome-0.11/guile-gnome/Makefile.am gnome-0.12/guile-gnome/Makefile.am --- gnome-0.11/guile-gnome/Makefile.am Wed Dec 10 11:17:48 1997 +++ gnome-0.12/guile-gnome/Makefile.am Fri Jan 16 18:24:45 1998 @@ -9,7 +9,8 @@ $(top_builddir)/guile-gtk/libguilegtk.la \ $(GTK_LIBS) \ $(X_LIBS) \ - @GUILE_LIBS@ + $(x_libs) \ + @GUILE_LIBS@ $(INTLLIBS) pkgdata_DATA = gnome.scm diff -uNr gnome-0.11/guile-gnome/Makefile.in gnome-0.12/guile-gnome/Makefile.in --- gnome-0.11/guile-gnome/Makefile.in Wed Jan 7 20:31:02 1998 +++ gnome-0.12/guile-gnome/Makefile.in Wed Jan 21 21:13:17 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -116,7 +117,8 @@ $(top_builddir)/guile-gtk/libguilegtk.la \ $(GTK_LIBS) \ $(X_LIBS) \ - @GUILE_LIBS@ + $(x_libs) \ + @GUILE_LIBS@ $(INTLLIBS) pkgdata_DATA = gnome.scm @@ -160,7 +162,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .o .s .x -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps guile-gnome/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -297,6 +299,7 @@ ../libgnomeui/gnome-actionarea.h ../libgnomeui/gnome-colors.h \ ../libgnomeui/gnome-color-selector.h \ ../libgnomeui/gnome-messagebox.h ../libgnomeui/gnome-pixmap.h \ + ../libgnomeui/gnome-scores.h ../libgnomeui/gnome-stock.h \ ../libgnomeui/gtk-clock.h ../libgnome/gnome-history.h session.o session.lo: session.c ../gnome.h ../libgnome/libgnome.h \ ../libgnome/gnome-defs.h ../libgnome/gnome-util.h \ @@ -309,6 +312,7 @@ ../libgnomeui/gnome-actionarea.h ../libgnomeui/gnome-colors.h \ ../libgnomeui/gnome-color-selector.h \ ../libgnomeui/gnome-messagebox.h ../libgnomeui/gnome-pixmap.h \ + ../libgnomeui/gnome-scores.h ../libgnomeui/gnome-stock.h \ ../libgnomeui/gtk-clock.h ../libgnomeui/gnome-session.h \ session.x diff -uNr gnome-0.11/guile-gtk/Makefile.am gnome-0.12/guile-gtk/Makefile.am --- gnome-0.11/guile-gtk/Makefile.am Sat Dec 6 09:02:41 1997 +++ gnome-0.12/guile-gtk/Makefile.am Wed Jan 21 18:08:57 1998 @@ -8,7 +8,7 @@ guile_gtk_SOURCES = main.c guile_gtk_LDFLAGS = -export-dynamic $(GTK_LDFLAGS) -guile_gtk_LDADD = libguilegtk.la $(GUILE_LIBS) +guile_gtk_LDADD = libguilegtk.la $(GUILE_LIBS) $(GTK_LIBS) INCLUDES = $(X_CFLAGS) diff -uNr gnome-0.11/guile-gtk/Makefile.in gnome-0.12/guile-gtk/Makefile.in --- gnome-0.11/guile-gtk/Makefile.in Wed Jan 7 20:31:00 1998 +++ gnome-0.12/guile-gtk/Makefile.in Wed Jan 21 21:13:16 1998 @@ -69,6 +69,7 @@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ MAKEINFO = @MAKEINFO@ +NM = @NM@ PACKAGE = @PACKAGE@ RANLIB = @RANLIB@ VERSION = @VERSION@ @@ -81,7 +82,7 @@ guile_gtk_SOURCES = main.c guile_gtk_LDFLAGS = -export-dynamic $(GTK_LDFLAGS) -guile_gtk_LDADD = libguilegtk.la $(GUILE_LIBS) +guile_gtk_LDADD = libguilegtk.la $(GUILE_LIBS) $(GTK_LIBS) INCLUDES = $(X_CFLAGS) diff -uNr gnome-0.11/guile-gtk/aclocal.m4 gnome-0.12/guile-gtk/aclocal.m4 --- gnome-0.11/guile-gtk/aclocal.m4 Fri Jan 2 13:54:37 1998 +++ gnome-0.12/guile-gtk/aclocal.m4 Mon Jan 12 20:02:57 1998 @@ -135,29 +135,42 @@ AC_SUBST($1)]) -# serial 9 AM_PROG_LIBTOOL +# serial 18 AM_PROG_LIBTOOL AC_DEFUN(AM_PROG_LIBTOOL, [AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_PROG_RANLIB]) +AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AM_PROG_LD]) +AC_REQUIRE([AM_PROG_NM]) AC_REQUIRE([AC_PROG_LN_S]) # Always use our own libtool. -LIBTOOL='$(top_builddir)/libtool' +LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL) dnl Allow the --disable-shared flag to stop us from building shared libs. AC_ARG_ENABLE(shared, [ --enable-shared build shared libraries [default=yes]], -test "$enableval" = no && libtool_shared=" --disable-shared", -libtool_shared=) +[if test "$enableval" = no; then + libtool_enable_shared=no +else + libtool_enable_shared=yes +fi]) +test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared" +libtool_shared= +test "$enable_shared" = no && libtool_shared=" --disable-shared" dnl Allow the --disable-static flag to stop us from building static libs. AC_ARG_ENABLE(static, [ --enable-static build static libraries [default=yes]], -test "$enableval" = no && libtool_static=" --disable-static", -libtool_static=) +[if test "$enableval" = no; then + libtool_enable_static=no +else + libtool_enable_static=yes +fi]) +test -n "$libtool_enable_static" && enable_static="$libtool_enable_static" +libtool_static= +test "$enable_static" = no && libtool_static=" --disable-static" libtool_flags="$libtool_shared$libtool_static" test "$silent" = yes && libtool_flags="$libtool_flags --silent" @@ -168,11 +181,31 @@ # libtool support. [case "$host" in *-*-irix6*) - for f in '-32' '-64' '-cckr' '-n32' '-mips1' '-mips2' '-mips3' '-mips4'; do - if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then - LD="${LD-ld} $f" - fi + ac_save_CFLAGS="$CFLAGS" + flag_passed=no + for f in -32 -64 -n32 ABI -cckr -mips1 -mips2 -mips3 -mips4; do + case "$f" in + ABI) + test -n "$SGI_ABI" && flag_passed=yes + if test "$flag_passed" = no && test "$ac_cv_prog_gcc" = yes; then + # Choose the ABI flag according to GCC's specs. + if $CC -dumpspecs 2>&1 | sed '/^\*link:$/,/^$/!d' | egrep -e '[ ]-32' >/dev/null; then + LD="${LD-ld} -32" + else + LD="${LD-ld} -n32" + fi + fi + ;; + + *) + if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then + flag_passed=yes + LD="${LD-ld} $f" + fi + ;; + esac done + CFLAGS="$ac_save_CFLAGS" ;; *-*-sco3.2v5*) @@ -183,7 +216,7 @@ # Actually configure libtool. ac_aux_dir is where install-sh is found. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" RANLIB="$RANLIB" LN_S="$LN_S" \ +LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || AC_MSG_ERROR([libtool configure failed]) @@ -194,35 +227,52 @@ [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -if test "$with_gnu_ld" = yes; then +AC_REQUIRE([AC_PROG_CC]) +ac_prog=ld +if test "$ac_cv_prog_gcc" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + ac_prog=`($CC -print-prog-name=ld) 2>&5` + case "$ac_prog" in + # Accept absolute paths. + /*) + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(ac_cv_path_LD, -[case "$LD" in - /*) - ac_cv_path_LD="$LD" # Let the user override the test with a path. - ;; - *) +[if test -z "$LD"; then 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/ld"; then - ac_cv_path_LD="$ac_dir/ld" + if test -f "$ac_dir/$ac_prog"; then + ac_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU ld|with BFD)' > /dev/null; then - test "$with_gnu_ld" = yes && break + if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" - ;; -esac]) +else + ac_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) LD="$ac_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) @@ -235,12 +285,47 @@ ]) AC_DEFUN(AM_PROG_LD_GNU, -[AC_CACHE_CHECK([whether we are using GNU ld], ac_cv_prog_gnu_ld, +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 /dev/null; then +if $LD -v 2>&1 &5; then ac_cv_prog_gnu_ld=yes else ac_cv_prog_gnu_ld=no fi]) +]) + +# AM_PROG_NM - find the path to a BSD-compatible name lister +AC_DEFUN(AM_PROG_NM, +[AC_MSG_CHECKING([for BSD-compatible nm]) +AC_CACHE_VAL(ac_cv_path_NM, +[case "$NM" in +/*) + ac_cv_path_NM="$NM" # Let the user override the test with a path. + ;; +*) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do + test -z "$ac_dir" && dir=. + if test -f $ac_dir/nm; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1!d' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -B" + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -p" + else + ac_cv_path_NM="$ac_dir/nm" + fi + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm + ;; +esac]) +NM="$ac_cv_path_NM" +AC_MSG_RESULT([$NM]) +AC_SUBST(NM) ]) diff -uNr gnome-0.11/guile-gtk/config.guess gnome-0.12/guile-gtk/config.guess --- gnome-0.11/guile-gtk/config.guess Sat Dec 6 09:02:43 1997 +++ gnome-0.12/guile-gtk/config.guess Wed Jan 21 14:26:30 1998 @@ -52,11 +52,53 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 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. - echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` + cat <dummy.s + .globl main + .ent main +main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main +EOF + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 @@ -91,6 +133,9 @@ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; + arm32:NetBSD:*:*) + echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; SR2?01:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; @@ -129,6 +174,18 @@ 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 ;; @@ -423,6 +480,9 @@ i*:CYGWIN*:*) echo i386-pc-cygwin32 exit 0 ;; + i*:MINGW*:*) + echo i386-pc-mingw32 + exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin32 exit 0 ;; @@ -436,27 +496,73 @@ # The BFD linker knows what the default object file format is, so # first see if it will tell us. ld_help_string=`ld --help 2>&1` - if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then - echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then - echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then - echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then - echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then - echo "powerpc-unknown-linux-gnu" ; exit 0 - elif test "${UNAME_MACHINE}" = "alpha" ; then - echo alpha-unknown-linux-gnu ; exit 0 - elif test "${UNAME_MACHINE}" = "sparc" ; then - echo sparc-unknown-linux-gnu ; exit 0 + ld_supported_emulations=`echo $ld_help_string \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; + i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; + sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; + esac + + if test "${UNAME_MACHINE}" = "alpha" ; then + sed 's/^ //' <dummy.s + .globl main + .ent main + main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main +EOF + LIBC="" + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + + objdump --private-headers dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 elif test "${UNAME_MACHINE}" = "mips" ; then cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 rm -f dummy.c dummy else - # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us - # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout. - test ! -d /usr/lib/ldscripts/. \ - && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" + test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + + case "${UNAME_MACHINE}" in + i?86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac # Determine whether the default compiler is a.out or elf cat >dummy.c < main(argc, argv) -int argc; -char *argv[]; + int argc; + char *argv[]; { #ifdef __ELF__ - printf ("%s-pc-linux-gnu\n", argv[1]); +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif #else - printf ("%s-pc-linux-gnuaout\n", argv[1]); + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); #endif return 0; } @@ -496,6 +623,14 @@ i?86:DYNIX/ptx:4*:*) 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.*:*) if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} @@ -517,6 +652,11 @@ echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; + pc:*:*:*) + # 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 ;; @@ -591,6 +731,9 @@ exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:*:6*) + echo mips-sony-newsos6 exit 0 ;; R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) if [ -d /usr/nec ]; then diff -uNr gnome-0.11/guile-gtk/config.sub gnome-0.12/guile-gtk/config.sub --- gnome-0.11/guile-gtk/config.sub Sat Dec 6 09:02:43 1997 +++ gnome-0.12/guile-gtk/config.sub Wed Jan 21 14:26:30 1998 @@ -1,6 +1,6 @@ #! /bin/sh # Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +# Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. # 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. @@ -149,13 +149,14 @@ case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arm \ - | arme[lb] | pyramid | mn10300 \ + tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ + | arme[lb] | pyramid | mn10200 | mn10300 \ | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ - | alpha | we32k | ns16k | clipper | i370 | sh \ - | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ - | pdp11 | mips64el | mips64orion | mips64orionel \ - | sparc | sparclet | sparclite | sparc64) + | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ + | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ + | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ + | mipstx39 | mipstx39el \ + | sparc | sparclet | sparclite | sparc64 | v850) basic_machine=$basic_machine-unknown ;; # We use `pc' rather than `unknown' @@ -171,13 +172,17 @@ ;; # Recognize the basic CPU types with company name. vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ - | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ - | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ - | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ + | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \ + | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ + | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ + | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mipstx39-* | mipstx39el-* \ + | f301-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -204,9 +209,9 @@ amiga | amiga-*) basic_machine=m68k-cbm ;; - amigados) + amigaos | amigados) basic_machine=m68k-cbm - os=-amigados + os=-amigaos ;; amigaunix | amix) basic_machine=m68k-cbm @@ -391,11 +396,11 @@ ;; mipsel*-linux*) basic_machine=mipsel-unknown - os=-linux + os=-linux-gnu ;; mips*-linux*) basic_machine=mips-unknown - os=-linux + os=-linux-gnu ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` @@ -566,6 +571,12 @@ basic_machine=i386-sequent os=-dynix ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; tower | tower-32) basic_machine=m68k-ncr ;; @@ -585,7 +596,7 @@ basic_machine=vax-dec os=-vms ;; - vpp*|vx|vx-*) + vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) @@ -615,7 +626,7 @@ # 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. mips) - if [ x$os = x-linux ]; then + if [ x$os = x-linux-gnu ]; then basic_machine=mips-unknown else basic_machine=mips-mips @@ -680,9 +691,12 @@ -solaris) os=-solaris2 ;; - -unixware* | svr4*) + -svr4*) os=-sysv4 ;; + -unixware*) + os=-sysv4.2uw + ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; @@ -693,7 +707,8 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ + | -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* \ @@ -701,7 +716,7 @@ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -linux-gnu* | -uxpv*) + | -mingw32* | -linux-gnu* | -uxpv*) # Remember, each alternative MUST END IN *, to match a version number. ;; -linux*) @@ -827,7 +842,7 @@ os=-sysv ;; *-cbm) - os=-amigados + os=-amigaos ;; *-dg) os=-dgux diff -uNr gnome-0.11/guile-gtk/configure gnome-0.12/guile-gtk/configure --- gnome-0.11/guile-gtk/configure Fri Jan 2 13:54:38 1998 +++ gnome-0.12/guile-gtk/configure Mon Jan 12 20:03:00 1998 @@ -1019,39 +1019,57 @@ with_gnu_ld=no fi -if test "$with_gnu_ld" = yes; then + +ac_prog=ld +if test "$ac_cv_prog_gcc" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 +echo "configure:1028: checking for ld used by GCC" >&5 + ac_prog=`($CC -print-prog-name=ld) 2>&5` + case "$ac_prog" in + # Accept absolute paths. + /*) + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1025: checking for GNU ld" >&5 +echo "configure:1046: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1028: checking for non-GNU ld" >&5 +echo "configure:1049: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - case "$LD" in - /*) - ac_cv_path_LD="$LD" # Let the user override the test with a path. - ;; - *) + if test -z "$LD"; then 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/ld"; then - ac_cv_path_LD="$ac_dir/ld" + if test -f "$ac_dir/$ac_prog"; then + ac_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU ld|with BFD)' > /dev/null; then - test "$with_gnu_ld" = yes && break + if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" - ;; -esac +else + ac_cv_path_LD="$LD" # Let the user override the test with a path. +fi fi LD="$ac_cv_path_LD" @@ -1062,13 +1080,13 @@ fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } -echo $ac_n "checking whether we are using GNU ld""... $ac_c" 1>&6 -echo "configure:1067: checking whether we are using GNU ld" >&5 +echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 +echo "configure:1085: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 /dev/null; then +if $LD -v 2>&1 &5; then ac_cv_prog_gnu_ld=yes else ac_cv_prog_gnu_ld=no @@ -1078,8 +1096,45 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 +echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 +echo "configure:1101: checking for BSD-compatible nm" >&5 +if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$NM" in +/*) + ac_cv_path_NM="$NM" # Let the user override the test with a path. + ;; +*) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do + test -z "$ac_dir" && dir=. + if test -f $ac_dir/nm; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1!d' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -B" + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -p" + else + ac_cv_path_NM="$ac_dir/nm" + fi + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm + ;; +esac +fi + +NM="$ac_cv_path_NM" +echo "$ac_t""$NM" 1>&6 + + echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1083: checking whether ln -s works" >&5 +echo "configure:1138: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1105,27 +1160,38 @@ + # Always use our own libtool. -LIBTOOL='$(top_builddir)/libtool' +LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" - test "$enableval" = no && libtool_shared=" --disable-shared" + if test "$enableval" = no; then + libtool_enable_shared=no else - libtool_shared= + libtool_enable_shared=yes +fi fi +test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared" +libtool_shared= +test "$enable_shared" = no && libtool_shared=" --disable-shared" # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" - test "$enableval" = no && libtool_static=" --disable-static" + if test "$enableval" = no; then + libtool_enable_static=no else - libtool_static= + libtool_enable_static=yes +fi fi +test -n "$libtool_enable_static" && enable_static="$libtool_enable_static" +libtool_static= +test "$enable_static" = no && libtool_static=" --disable-static" libtool_flags="$libtool_shared$libtool_static" test "$silent" = yes && libtool_flags="$libtool_flags --silent" @@ -1136,11 +1202,31 @@ # libtool support. case "$host" in *-*-irix6*) - for f in '-32' '-64' '-cckr' '-n32' '-mips1' '-mips2' '-mips3' '-mips4'; do - if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then - LD="${LD-ld} $f" - fi + ac_save_CFLAGS="$CFLAGS" + flag_passed=no + for f in -32 -64 -n32 ABI -cckr -mips1 -mips2 -mips3 -mips4; do + case "$f" in + ABI) + test -n "$SGI_ABI" && flag_passed=yes + if test "$flag_passed" = no && test "$ac_cv_prog_gcc" = yes; then + # Choose the ABI flag according to GCC's specs. + if $CC -dumpspecs 2>&1 | sed '/^\*link:$/,/^$/!d' | egrep -e '[ ]-32' >/dev/null; then + LD="${LD-ld} -32" + else + LD="${LD-ld} -n32" + fi + fi + ;; + + *) + if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then + flag_passed=yes + LD="${LD-ld} $f" + fi + ;; + esac done + CFLAGS="$ac_save_CFLAGS" ;; *-*-sco3.2v5*) @@ -1151,13 +1237,13 @@ # Actually configure libtool. ac_aux_dir is where install-sh is found. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" RANLIB="$RANLIB" LN_S="$LN_S" \ +LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1161: checking whether ln -s works" >&5 +echo "configure:1247: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1181,7 +1267,7 @@ # Extract the first word of "build-guile", so it can be a program name with args. set dummy build-guile; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1185: checking for $ac_word" >&5 +echo "configure:1271: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BUILD_GUILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1210,7 +1296,7 @@ if test $BUILD_GUILE = yes; then echo $ac_n "checking whether build-guile works""... $ac_c" 1>&6 -echo "configure:1214: checking whether build-guile works" >&5 +echo "configure:1300: checking whether build-guile works" >&5 if test x`build-guile --version >/dev/null 2>&1 || echo no` = xno; then BUILD_GUILE=no fi @@ -1218,7 +1304,7 @@ fi echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:1222: checking for sin in -lm" >&5 +echo "configure:1308: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1226,7 +1312,7 @@ ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1267,13 +1353,13 @@ if test $BUILD_GUILE = yes; then echo $ac_n "checking for guile libraries""... $ac_c" 1>&6 -echo "configure:1271: checking for guile libraries" >&5 +echo "configure:1357: checking for guile libraries" >&5 GUILE_LIBS=`build-guile link` echo "$ac_t""$GUILE_LIBS" 1>&6 else GUILE_LIBS="" echo $ac_n "checking for main in -lrx""... $ac_c" 1>&6 -echo "configure:1277: checking for main in -lrx" >&5 +echo "configure:1363: checking for main in -lrx" >&5 ac_lib_var=`echo rx'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1281,14 +1367,14 @@ ac_save_LIBS="$LIBS" LIBS="-lrx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1309,7 +1395,7 @@ fi echo $ac_n "checking for main in -lqt""... $ac_c" 1>&6 -echo "configure:1313: checking for main in -lqt" >&5 +echo "configure:1399: checking for main in -lqt" >&5 ac_lib_var=`echo qt'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1317,14 +1403,14 @@ ac_save_LIBS="$LIBS" LIBS="-lqt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1345,7 +1431,7 @@ fi echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:1349: checking for dlopen in -ldl" >&5 +echo "configure:1435: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1353,7 +1439,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1391,7 +1477,7 @@ #HELP! echo $ac_n "checking for guile headers""... $ac_c" 1>&6 -echo "configure:1395: checking for guile headers" >&5 +echo "configure:1481: checking for guile headers" >&5 for ac_dir in \ /usr/local/include/ \ /usr/gnu/include \ @@ -1409,7 +1495,7 @@ echo $ac_n "checking for guile libs""... $ac_c" 1>&6 -echo "configure:1413: checking for guile libs" >&5 +echo "configure:1499: checking for guile libs" >&5 for ac_dir in \ /usr/local/lib \ /opt/gnu/lib \ @@ -1450,7 +1536,7 @@ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1454: checking how to run the C preprocessor" >&5 +echo "configure:1540: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1465,13 +1551,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1482,13 +1568,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1492: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1578: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1515,7 +1601,7 @@ # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:1519: checking for X" >&5 +echo "configure:1605: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -1577,12 +1663,12 @@ # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1672: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1651,14 +1737,14 @@ ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -1764,17 +1850,17 @@ case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:1768: checking whether -R must be followed by a space" >&5 +echo "configure:1854: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_nospace=yes else @@ -1790,14 +1876,14 @@ else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_space=yes else @@ -1829,7 +1915,7 @@ # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:1833: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:1919: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1837,7 +1923,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1870,7 +1956,7 @@ if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:1874: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:1960: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1878,7 +1964,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1918,12 +2004,12 @@ # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:1922: checking for gethostbyname" >&5 +echo "configure:2008: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -1967,7 +2053,7 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:1971: checking for gethostbyname in -lnsl" >&5 +echo "configure:2057: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1975,7 +2061,7 @@ ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2016,12 +2102,12 @@ # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:2020: checking for connect" >&5 +echo "configure:2106: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -2065,7 +2151,7 @@ if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:2069: checking for connect in -lsocket" >&5 +echo "configure:2155: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2073,7 +2159,7 @@ ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2108,12 +2194,12 @@ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:2112: checking for remove" >&5 +echo "configure:2198: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -2157,7 +2243,7 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:2161: checking for remove in -lposix" >&5 +echo "configure:2247: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2165,7 +2251,7 @@ ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2200,12 +2286,12 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:2204: checking for shmat" >&5 +echo "configure:2290: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -2249,7 +2335,7 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:2253: checking for shmat in -lipc" >&5 +echo "configure:2339: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2257,7 +2343,7 @@ ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2301,7 +2387,7 @@ # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:2305: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:2391: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2309,7 +2395,7 @@ ac_save_LIBS="$LIBS" LIBS="-lICE $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2355,12 +2441,12 @@ for ac_func in scm_internal_cwdr scm_done_malloc scm_reverse_x scm_puts do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2359: checking for $ac_func" >&5 +echo "configure:2445: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2414,12 +2500,12 @@ for ac_func in gdk_colormap_ref gdk_visual_ref gdk_window_ref gdk_event_copy gtk_tooltips_ref gtk_timeout_add_interp gtk_idle_add_interp gtk_signal_connect_interp gtk_radio_button_new_interp gtk_radio_button_new_with_label_interp gtk_widget_peek_colormap gtk_input_add_interp gtk_text_forward_delete do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2418: checking for $ac_func" >&5 +echo "configure:2504: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2471,7 +2557,7 @@ LDFLAGS="$saved_LDFLAGS" echo $ac_n "checking for scheme directory""... $ac_c" 1>&6 -echo "configure:2475: checking for scheme directory" >&5 +echo "configure:2561: checking for scheme directory" >&5 GUILE_SCMDIR=`guile -c "(display (cdr (assq 'pkgdatadir %guile-build-info)))"` echo "$ac_t""$GUILE_SCMDIR" 1>&6 @@ -2626,6 +2712,7 @@ s%@host_os@%$host_os%g s%@RANLIB@%$RANLIB%g s%@LD@%$LD%g +s%@NM@%$NM%g s%@LN_S@%$LN_S%g s%@LIBTOOL@%$LIBTOOL%g s%@BUILD_GUILE@%$BUILD_GUILE%g diff -uNr gnome-0.11/guile-gtk/gtk-funcs.c gnome-0.12/guile-gtk/gtk-funcs.c --- gnome-0.11/guile-gtk/gtk-funcs.c Sun Dec 28 12:01:38 1997 +++ gnome-0.12/guile-gtk/gtk-funcs.c Wed Jan 21 14:24:46 1998 @@ -670,21 +670,6 @@ return SCM_UNSPECIFIED; } -SCM_PROC (s_gtk_widget_restore_state, "gtk-widget-restore-state", 1, 0, 0, sgtk_widget_restore_state); -SCM -sgtk_widget_restore_state (SCM p_widget) -{ - GtkWidget* c_widget; - SCM_ASSERT (sgtk_is_a_gtkobj (gtk_widget_get_type (), p_widget), p_widget, SCM_ARG1, s_gtk_widget_restore_state); - - SCM_DEFER_INTS; - c_widget = (GtkWidget*)sgtk_get_gtkobj (p_widget); - gtk_widget_restore_state (c_widget); - SCM_ALLOW_INTS; - - return SCM_UNSPECIFIED; -} - SCM_PROC (s_gtk_widget_set_name, "gtk-widget-set-name", 2, 0, 0, sgtk_widget_set_name); SCM sgtk_widget_set_name (SCM p_widget, SCM p_name) @@ -4169,6 +4154,63 @@ SCM_ALLOW_INTS; return (c_ret == NULL? SCM_BOOL_F : scm_makfrom0str (c_ret)); +} + +SCM_PROC (s_gtk_entry_select_region, "gtk-entry-select-region", 3, 0, 0, sgtk_entry_select_region); +SCM +sgtk_entry_select_region (SCM p_entry, SCM p_start, SCM p_end) +{ + GtkEntry* c_entry; + int c_start; + int c_end; + SCM_ASSERT (sgtk_is_a_gtkobj (gtk_entry_get_type (), p_entry), p_entry, SCM_ARG1, s_gtk_entry_select_region); + SCM_ASSERT (SCM_INUMP (p_start), p_start, SCM_ARG2, s_gtk_entry_select_region); + SCM_ASSERT (SCM_INUMP (p_end), p_end, SCM_ARG3, s_gtk_entry_select_region); + + SCM_DEFER_INTS; + c_entry = (GtkEntry*)sgtk_get_gtkobj (p_entry); + c_start = SCM_INUM (p_start); + c_end = SCM_INUM (p_end); + gtk_entry_select_region (c_entry, c_start, c_end); + SCM_ALLOW_INTS; + + return SCM_UNSPECIFIED; +} + +SCM_PROC (s_gtk_entry_set_visibility, "gtk-entry-set-visibility", 2, 0, 0, sgtk_entry_set_visibility); +SCM +sgtk_entry_set_visibility (SCM p_entry, SCM p_visible) +{ + GtkEntry* c_entry; + int c_visible; + SCM_ASSERT (sgtk_is_a_gtkobj (gtk_entry_get_type (), p_entry), p_entry, SCM_ARG1, s_gtk_entry_set_visibility); + SCM_ASSERT (((p_visible) == SCM_BOOL_T || (p_visible) == SCM_BOOL_F), p_visible, SCM_ARG2, s_gtk_entry_set_visibility); + + SCM_DEFER_INTS; + c_entry = (GtkEntry*)sgtk_get_gtkobj (p_entry); + c_visible = SCM_NFALSEP (p_visible); + gtk_entry_set_visibility (c_entry, c_visible); + SCM_ALLOW_INTS; + + return SCM_UNSPECIFIED; +} + +SCM_PROC (s_gtk_entry_set_editable, "gtk-entry-set-editable", 2, 0, 0, sgtk_entry_set_editable); +SCM +sgtk_entry_set_editable (SCM p_entry, SCM p_editable) +{ + GtkEntry* c_entry; + int c_editable; + SCM_ASSERT (sgtk_is_a_gtkobj (gtk_entry_get_type (), p_entry), p_entry, SCM_ARG1, s_gtk_entry_set_editable); + SCM_ASSERT (((p_editable) == SCM_BOOL_T || (p_editable) == SCM_BOOL_F), p_editable, SCM_ARG2, s_gtk_entry_set_editable); + + SCM_DEFER_INTS; + c_entry = (GtkEntry*)sgtk_get_gtkobj (p_entry); + c_editable = SCM_NFALSEP (p_editable); + gtk_entry_set_editable (c_entry, c_editable); + SCM_ALLOW_INTS; + + return SCM_UNSPECIFIED; } SCM_PROC (s_gtk_text_p, "gtk-text?", 1, 0, 0, sgtk_text_p); diff -uNr gnome-0.11/guile-gtk/gtk-funcs.x gnome-0.12/guile-gtk/gtk-funcs.x --- gnome-0.11/guile-gtk/gtk-funcs.x Sun Dec 28 12:01:39 1997 +++ gnome-0.12/guile-gtk/gtk-funcs.x Wed Jan 21 14:24:46 1998 @@ -39,7 +39,6 @@ scm_make_gsubr ( s_gtk_widget_basic , 1 , 0 , 0 , sgtk_widget_basic ) ; scm_make_gsubr ( s_gtk_widget_grab_focus , 1 , 0 , 0 , sgtk_widget_grab_focus ) ; scm_make_gsubr ( s_gtk_widget_grab_default , 1 , 0 , 0 , sgtk_widget_grab_default ) ; - scm_make_gsubr ( s_gtk_widget_restore_state , 1 , 0 , 0 , sgtk_widget_restore_state ) ; scm_make_gsubr ( s_gtk_widget_set_name , 2 , 0 , 0 , sgtk_widget_set_name ) ; scm_make_gsubr ( s_gtk_widget_get_name , 1 , 0 , 0 , sgtk_widget_get_name ) ; scm_make_gsubr ( s_gtk_widget_set_state , 2 , 0 , 0 , sgtk_widget_set_state ) ; @@ -248,6 +247,9 @@ scm_make_gsubr ( s_gtk_entry_prepend_text , 2 , 0 , 0 , sgtk_entry_prepend_text ) ; scm_make_gsubr ( s_gtk_entry_set_position , 2 , 0 , 0 , sgtk_entry_set_position ) ; scm_make_gsubr ( s_gtk_entry_get_text , 1 , 0 , 0 , sgtk_entry_get_text ) ; + scm_make_gsubr ( s_gtk_entry_select_region , 3 , 0 , 0 , sgtk_entry_select_region ) ; + scm_make_gsubr ( s_gtk_entry_set_visibility , 2 , 0 , 0 , sgtk_entry_set_visibility ) ; + scm_make_gsubr ( s_gtk_entry_set_editable , 2 , 0 , 0 , sgtk_entry_set_editable ) ; scm_make_gsubr ( s_gtk_text_p , 1 , 0 , 0 , sgtk_text_p ) ; scm_make_gsubr ( s_gtk_text_new , 2 , 0 , 0 , sgtk_text_new ) ; scm_make_gsubr ( s_gtk_text_set_editable , 2 , 0 , 0 , sgtk_text_set_editable ) ; diff -uNr gnome-0.11/guile-gtk/gtk.defs gnome-0.12/guile-gtk/gtk.defs --- gnome-0.11/guile-gtk/gtk.defs Mon Dec 22 23:59:09 1997 +++ gnome-0.12/guile-gtk/gtk.defs Wed Jan 21 14:24:26 1998 @@ -587,10 +587,6 @@ none ((GtkWidget widget))) -(define-func gtk_widget_restore_state - none - ((GtkWidget widget))) - (define-func gtk_widget_set_name none ((GtkWidget widget) @@ -1574,6 +1570,22 @@ (define-func gtk_entry_get_text static_string ((GtkEntry entry))) + +(define-func gtk_entry_select_region + none + ((GtkEntry entry) + (int start) + (int end))) + +(define-func gtk_entry_set_visibility + none + ((GtkEntry entry) + (bool visible))) + +(define-func gtk_entry_set_editable + none + ((GtkEntry entry) + (bool editable))) ;; Text diff -uNr gnome-0.11/guile-gtk/ltconfig gnome-0.12/guile-gtk/ltconfig --- gnome-0.11/guile-gtk/ltconfig Sat Dec 6 09:03:04 1997 +++ gnome-0.12/guile-gtk/ltconfig Wed Jan 21 14:26:30 1998 @@ -26,13 +26,36 @@ # A lot of this script is taken from autoconf-2.10. +echo=echo +if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : +else + # The Solaris and AIX default echo program unquotes backslashes. + # This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # So, we emulate echo with printf '%s\n' + echo="printf %s\\n" + if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : + else + # Oops. We have no working printf. Try to find a not-so-buggy echo. + echo=echo + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH /usr/ucb; do + if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + fi +fi + # The name of this program. -progname=`echo "$0" | sed 's%^.*/%%'` +progname=`$echo "$0" | sed 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool -VERSION=1.0c +VERSION=1.0h ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' rm="rm -f" @@ -41,7 +64,10 @@ # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$]\)/\\\1/g' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but don't quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Global variables: can_build_shared=yes @@ -252,7 +278,10 @@ fi ;; esac host=`$ac_config_sub $host_alias` - echo "$ac_t""$host" 1>&6 + echo "$ac_t$host" 1>&6 + + # Make sure the host verified. + test -z "$host" && exit 1 elif test -z "$host"; then echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 @@ -272,9 +301,22 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +case "$host_os" in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "${COLLECT_NAMES+set}" != set; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + # Determine commands to create old-style static archives. old_archive_cmds='$AR cru $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= # Set a sane default for `AR'. test -z "$AR" && AR=ar @@ -295,7 +337,7 @@ done IFS="$save_ifs" - echo $ac_t "$result" 1>&6 + echo "$ac_t$result" 1>&6 fi if test -n "$RANLIB"; then @@ -320,9 +362,9 @@ IFS="$save_ifs" if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 + echo "$ac_t$CC" 1>&6 else - echo "$ac_t""no" 1>&6 + echo "$ac_t"no 1>&6 fi fi @@ -359,9 +401,9 @@ fi if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 + echo "$ac_t$CC" 1>&6 else - echo "$ac_t""no" 1>&6 + echo "$ac_t"no 1>&6 fi if test -z "$CC"; then @@ -373,7 +415,7 @@ # Now see if the compiler is really GCC. with_gcc=no echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:376: checking whether we are using GNU C" >&5 + echo "$progname:418: checking whether we are using GNU C" >&5 $rm conftest.c cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then with_gcc=yes fi $rm conftest.c - echo $ac_t "$with_gcc" 1>&6 + echo "$ac_t$with_gcc" 1>&6 fi # Allow CC to be a program name with arguments. @@ -407,9 +449,17 @@ no_builtin_flag=' -fno-builtin' case "$host_os" in - irix5* | irix6*) + aix3* | aix4* | irix5* | irix6* | osf3* | osf4*) # PIC is the default for these OSes. - pic_flag= + ;; + os2*) + # We can build DLLs from non-PIC. + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + pic_flag='-m68020 -resident32 -malways-restore-a4' ;; *) pic_flag='-fPIC' @@ -419,25 +469,29 @@ # PORTME Check for PIC flags for the system compiler. case "$host_os" in aix3* | aix4*) - # FIXME All rs/6000 code is PIC, but is there any non-rs/6000 AIX platform? + # All AIX code is PIC. link_static_flag='-bnso -bI:/lib/syscalls.exp' ;; hpux9* | hpux10*) - # FIXME is there a better link_static_flag that works with the bundled CC? + # Is there a better link_static_flag that works with the bundled CC? wl='-Wl,' link_static_flag='${wl}-a ${wl}archive' + pic_flag='+Z' ;; irix5* | irix6*) wl='-Wl,' link_static_flag='-non_shared' # PIC (with -KPIC) is the default. - pic_flag= + ;; + + os2*) + # We can build DLLs from non-PIC. ;; osf3* | osf4*) - # FIXME - pic_flag is probably required for hppa*-osf* and i860-osf* + # All OSF/1 code is PIC. wl='-Wl,' link_static_flag='-non_shared' ;; @@ -460,22 +514,19 @@ wl='-Qoption ld ' ;; + uts4*) + pic_flag='-pic' + link_static_flag='-Bstatic' + ;; + *) can_build_shared=no ;; esac fi -case "$host_cpu" in -alpha | rs6000 | powerpc | powerpcle) - # Yippee! All RS/6000 and PowerPC code is position-independent. - # Apparently, so is DEC alpha! - pic_flag= - ;; -esac - if test -n "$pic_flag"; then - echo $ac_t "$pic_flag" 1>&6 + echo "$ac_t$pic_flag" 1>&6 # Check to make sure the pic_flag actually works. echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 @@ -483,19 +534,19 @@ echo > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:486: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + echo "$progname:537: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # Append any errors to the config.log. cat conftest.err 1>&5 # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also # reports no error. So, we need to grep stderr for (Bundled). if grep '(Bundled)' conftest.err >/dev/null; then - echo $ac_t no 1>&6 + echo "$ac_t"no 1>&6 can_build_shared=no pic_flag= else - echo $ac_t yes 1>&6 + echo "$ac_t"yes 1>&6 pic_flag=" $pic_flag" fi else @@ -503,12 +554,12 @@ cat conftest.err 1>&5 can_build_shared=no pic_flag= - echo $ac_t no 1>&6 + echo "$ac_t"no 1>&6 fi CFLAGS="$save_CFLAGS" $rm conftest* else - echo $ac_t none 1>&6 + echo "$ac_t"none 1>&6 fi # Check for any special shared library compilation flags. @@ -526,11 +577,11 @@ echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:529: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - echo $ac_t "$link_static_flag" 1>&6 +echo "$progname:580: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + echo "$ac_t$link_static_flag" 1>&6 else - echo $ac_t none 1>&6 + echo "$ac_t"none 1>&6 link_static_flag= fi LDFLAGS="$save_LDFLAGS" @@ -554,18 +605,18 @@ fi # Make sure LD is an absolute path. -case "$LD" in -/*) ;; -*) +if test -z "$LD"; then ac_prog=ld if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:564: checking for ld used by GCC" >&5 + echo "$progname:613: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. - /*) ;; + /*) + test -z "$LD" && LD="$ac_prog" + ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld @@ -577,17 +628,13 @@ esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:580: checking for GNU ld" >&5 + echo "$progname:631: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:583: checking for non-GNU ld" >&5 + echo "$progname:634: checking for non-GNU ld" >&5 fi - LD=${LD-$ac_prog} - case "$LD" in - /*) - ac_cv_path_LD="$LD" # Let the user override the test with a path. - ;; - *) + + if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. @@ -604,11 +651,19 @@ fi done IFS="$ac_save_ifs" - ;; - esac - echo $ac_t "$with_gnu_ld" 1>&6 - ;; -esac + fi + + if test -n "$LD"; then + echo "$ac_t$LD" 1>&6 + else + echo "$ac_t"no 1>&6 + fi + + if test -z "$LD"; then + echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 + exit 1 + fi +fi # Check to see if it really is or isn't GNU ld. echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 @@ -618,13 +673,14 @@ else with_gnu_ld=no fi -echo $ac_t "$with_gnu_ld" 1>&6 +echo "$ac_t$with_gnu_ld" 1>&6 # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 allow_undefined_flag= archive_cmds= +old_archive_from_new_cmds= export_dynamic_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_separator= @@ -634,30 +690,30 @@ hardcode_shlibpath_var=unsupported runpath_var= +case "$host_os" in +amigaos* | sunos4*) + # On these operating systems, we should treat GNU ld like the system ld. + gnu_ld_acts_native=yes + ;; +*) + gnu_ld_acts_native=no + ;; +esac + ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # See if GNU ld supports shared libraries. +if test "$with_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then - case "$host_os" in - sunos4*) + # See if GNU ld supports shared libraries. + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes ld_shlibs=yes - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - else - ld_shlibs=no - fi - ;; - esac + else + ld_shlibs=no + fi if test "$ld_shlibs" = yes; then - archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs' hardcode_libdir_flag_spec='${wl}-rpath $wl$libdir' export_dynamic_flag_spec='${wl}-export-dynamic' fi @@ -666,7 +722,7 @@ case "$host_os" in aix3*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE -lc$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes @@ -679,17 +735,24 @@ aix4*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname' hardcode_direct=yes hardcode_minus_L=yes ;; + amigaos*) + archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # doesn't break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs /usr/lib/c++rt0.o' + archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -697,7 +760,7 @@ # Unfortunately, older versions of FreeBSD 2 don't have this feature. freebsd2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -705,7 +768,7 @@ # FreeBSD 3, at last, uses gcc -shared to do shared libraries. freebsd3*) - archive_cmds='$CC -shared -o $lib$libobjs$deplibs' + archive_cmds='$CC -shared -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -713,65 +776,98 @@ ;; hpux9*) - archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs;mv $objdir/$soname $lib' + archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; hpux10*) - archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' + archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6*) - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs -lc$deplibs' + archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ;; - netbsd* | openbsd*) + netbsd*) # Tested with NetBSD 1.2 ld - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + openbsd*) + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' + ;; + osf3* | osf4*) - allow_undefined_flag=' -expect_unresolved' - archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs -lc$deplibs' + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; sco3.2v5*) - archive_cmds='$LD -G -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -o $lib$libobjs' hardcode_direct=yes ;; solaris2*) - archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no ;; sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + if test "$with_gcc" = yes; then + archive_cmds='$CC -shared -o $lib$libobjs' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + fi + + if test "$with_gnu_ld" = yes; then + export_dynamic_flag_spec='${wl}-export-dynamic' + fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; + uts4*) + archive_cmds='$LD -G -h $soname -o $lib$libobjs' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=no + ;; + *) ld_shlibs=no can_build_shared=no ;; esac fi -echo $ac_t "$ld_shlibs" 1>&6 +echo "$ac_t$ld_shlibs" 1>&6 if test -z "$NM"; then echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 @@ -779,13 +875,15 @@ /*) ;; # Let the user override the test with a path. *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in /usr/ucb:$PATH:/bin; do + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && dir=. if test -f $ac_dir/nm; then # Check to see if the nm accepts a BSD-compat flag. - if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + # Adding the `sed 1!d' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -p" else NM="$ac_dir/nm" @@ -820,6 +918,10 @@ aix*) symcode='[BCDTU]' ;; +irix*) + # Cannot use undefined symbols on IRIX because inlined functions mess us up. + symcode='[BCDEGRST]' + ;; solaris2*) symcode='[BDTU]' ;; @@ -827,36 +929,39 @@ # If we're using GNU nm, then use its standard symbol codes. if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTU]' + symcode='[ABCDGISTUW]' fi -# Delete symbols that are not valid C identifiers. -global_symbol_pipe="sed -e '/^.* $symcode $sympat$/!d'" - # Write the raw and C identifiers. -global_symbol_pipe="$global_symbol_pipe -e 's/^.* $symcode $sympat$/$symxfrm/'" +global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no $rm conftest* cat > conftest.c <&5 -if { (eval echo $progname:849: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then +echo "$progname:953: checking if global_symbol_pipe works" >&5 +if { (eval echo $progname:954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then # Now try to grab the symbols. nlist=conftest.nm - if { echo "$progname:852: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + if { echo "$progname:957: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - test "$wcout" = "$count" && count=-1 + (test "$count" -ge 0) 2>/dev/null || count=-1 else rm -f "$nlist"T count=-1 @@ -865,8 +970,14 @@ # Make sure that we snagged all the symbols we need. if egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.c +#ifdef __cplusplus +extern "C" { +#endif + +EOF # Now generate the symbol file. - sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" > conftest.c + sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> conftest.c cat <> conftest.c #if defined (__STDC__) && __STDC__ @@ -886,10 +997,14 @@ dld_preloaded_symbols[] = { EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> conftest.c + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c cat <<\EOF >> conftest.c {0}, }; + +#ifdef __cplusplus +} +#endif EOF # Now try linking the two files. mv conftest.o conftestm.o @@ -897,19 +1012,21 @@ save_CFLAGS="$CFLAGS" LIBS='conftestm.o' CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo $progname:1015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 cat conftest.c >&5 fi LIBS="$save_LIBS" + else + echo "cannot find nm_test_func in $nlist" >&5 fi else - echo "cannot find nm_test_func in $nlist" >&5 + echo "cannot find nm_test_var in $nlist" >&5 fi else - echo "cannot find nm_test_var in $nlist" >&5 + echo "cannot run $global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 @@ -947,7 +1064,7 @@ # We can only hardcode existing directories. hardcode_action=relink fi -echo $ac_t "$hardcode_action" 1>&6 +echo "$ac_t$hardcode_action" 1>&6 test "$hardcode_action" = unsupported && can_build_shared=no @@ -956,14 +1073,17 @@ echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 # PORTME Some linker may need a different reload flag. reload_flag='-r' -echo $ac_t "$reload_flag" +echo "$ac_t$reload_flag" test -n "$reload_flag" && reload_flag=" $reload_flag" # PORTME Fill in your ld.so characteristics library_names_spec= +libname_spec='lib$name' soname_spec= postinstall_cmds= +postuninstall_cmds= finish_cmds= +finish_eval= shlibpath_var= version_type=none dynamic_linker="$host_os ld.so" @@ -979,6 +1099,12 @@ soname_spec='$libname.so.$major' ;; +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "$lib" | sed '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + freebsd2* | freebsd3*) version_type=sunos library_names_spec='$libname.so.$versuffix $libname.so' @@ -1042,6 +1168,13 @@ shlibpath_var=LD_LIBRARY_PATH ;; +os2*) + libname_spec='$name' + library_names_spec='$libname.dll $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + osf3* | osf4*) version_type=osf soname_spec='$libname.so' @@ -1070,43 +1203,34 @@ shlibpath_var=LD_LIBRARY_PATH ;; +uts4*) + version_type=linux + library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + *) dynamic_linker=no ;; esac -echo "$ac_t""$dynamic_linker" +echo "$ac_t$dynamic_linker" test "$dynamic_linker" = no && can_build_shared=no -# FIXME need to add library stripping features +# FIXME add checks for striplib and old_striplib here. # strip -x works for most platforms, though not for static libraries on NetBSD # HP-UX requires "-r" for library stripping striplib= old_striplib= -#echo $ac_n "checking for static library strip program... $ac_c" 1>&6 -#if test -n "$old_striplib"; then -# echo $ac_t "$old_striplib" 1>&6 -#else -# echo $ac_t none 1>&6 -#fi - -#if test "$can_build_shared" = yes; then -# echo $ac_n "checking for shared library strip program... $ac_c" 1>&6 -# -# if test -n "$striplib"; then -# echo $ac_t "$striplib" 1>&6 -# else -# echo $ac_t none 1>&6 -# fi -#fi - -# Report the consequences. +# Report the final consequences. echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 test "$can_build_shared" = "no" && enable_shared=no -# On AIX, shared libraries and static libraries use the same namespace. +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. case "$host_os" in aix*) test "$enable_shared" = yes && enable_static=no @@ -1117,23 +1241,51 @@ ;; esac -echo "$ac_t""$enable_shared" 1>&6 +echo "$ac_t$enable_shared" 1>&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "checking whether to build static libraries... $enable_static" 1>&6 +echo $ac_n "checking for objdir... $ac_c" 1>&6 +rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + objdir=_libs +fi +rmdir .libs 2>/dev/null +echo "$ac_t$objdir" 1>&6 + +# Copy echo and quote the copy, instead of the original, because it is +# used later. +ltecho="$echo" + # Now quote all the things that may contain metacharacters. -for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ +for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ link_static_flag no_builtin_flag export_dynamic_flag_spec \ - profile_flag_pattern library_names_spec soname_spec RANLIB \ - old_archive_cmds old_postinstall_cmds archive_cmds postinstall_cmds \ - allow_undefined_flag finish_cmds global_symbol_pipe striplib old_striplib \ + profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \ + old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ + old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ + allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \ + striplib old_striplib \ hardcode_libdir_flag_spec hardcode_libdir_separator; do - eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + case "$var" in + reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \ + postinstall_cmds | postuninstall_cmds | finish_cmds) + # Double-quote double-evaled strings. + eval "$var=\`\$echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" + ;; + *) + eval "$var=\`\$echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + ;; + esac done ofile=libtool @@ -1156,9 +1308,15 @@ # Compiler and other test output produced by $progname, useful for # debugging $progname, is in ./config.log if it exists. +# An echo program that doesn't interpret backslashes. +echo="$ltecho" + # The version of $progname that generated this script. LTCONFIG_VERSION="$VERSION" +# Shell to use when invoking shell scripts. +SHELL=${CONFIG_SHELL-/bin/sh} + # Whether or not to build libtool libraries. build_libtool_libs=$enable_shared @@ -1184,6 +1342,9 @@ # A BSD-compatible nm program. NM="$NM" +# The name of the directory that contains temporary libtool files. +objdir="$objdir" + # How to create reloadable object files. reload_flag="$reload_flag" reload_cmds="$reload_cmds" @@ -1209,6 +1370,9 @@ # Library versioning type. version_type=$version_type +# Format of library name prefix. +libname_spec="$libname_spec" + # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec="$library_names_spec" @@ -1220,10 +1384,15 @@ RANLIB="$RANLIB" old_archive_cmds="$old_archive_cmds" old_postinstall_cmds="$old_postinstall_cmds" +old_postuninstall_cmds="$old_postuninstall_cmds" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="$old_archive_from_new_cmds" # Commands used to build and install a shared archive. archive_cmds="$archive_cmds" postinstall_cmds="$postinstall_cmds" +postuninstall_cmds="$postuninstall_cmds" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="$allow_undefined_flag" @@ -1231,7 +1400,10 @@ # Commands used to finish a libtool library installation in a directory. finish_cmds="$finish_cmds" -# Take the output of nm and produce a listing of raw symbols and C names +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval="$finish_eval" + +# Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="$global_symbol_pipe" # How to strip a library file. @@ -1272,21 +1444,36 @@ EOF +case "$host_os" in +aix*) + cat <<\EOF >> $ofile +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "${COLLECT_NAMES+set}" != set; then + COLLECT_NAMES= + export COLLECT_NAMES +fi + +EOF + ;; +esac + # Detect if we are using a relative or absolute path to ltmain.sh. case "$ltmain" in -/*) cat <> $ofile +/*) cat <> $ofile # Execute the libtool backend. . $ltmain -EOF2 +EOF ;; -*) cat <> $ofile +*) cat <> $ofile # Find the path to this script. -thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\` +thisdir=\`$echo "\$0" | sed -e 's%/[^/]*\$%%'\` test "X\$0" = "X\$thisdir" && thisdir=. # Execute the libtool backend. . \$thisdir/$ltmain -EOF3 +EOF ;; esac diff -uNr gnome-0.11/guile-gtk/ltmain.sh gnome-0.12/guile-gtk/ltmain.sh --- gnome-0.11/guile-gtk/ltmain.sh Sat Dec 6 09:03:13 1997 +++ gnome-0.12/guile-gtk/ltmain.sh Wed Jan 21 14:26:30 1998 @@ -22,52 +22,25 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -#FIXME: echo=echo -echo='printf %s\n' -if test "X`$echo '\t'`" = 'X\t'; then : -else - # The Solaris and AIX default echo program unquotes backslashes. - # This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # So, we emulate echo with printf '%s\n' - echo='printf %s\n' - if test "X`$echo '\t'`" = 'X\t'; then : - else - # Oops. We have no working printf. Try to find a not-so-buggy echo. - echo=echo - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - save_PATH="$PATH" - PATH="$PATH":/usr/ucb - for dir in $PATH; do - if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - PATH="$save_PATH" - fi -fi - # The name of this program. progname=`$echo "$0" | sed 's%^.*/%%'` +modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.0c +VERSION=1.0h default_mode= help="Try \`$progname --help' for more information." magic="%%%MAGIC variable%%%" mkdir="mkdir" mv="mv -f" -objdir=_libs rm="rm -f" # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$]\)/\\\1/g' +sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -77,15 +50,14 @@ if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "$LTCONFIG_VERSION" != "$VERSION"; then - $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi -# if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - $echo "$progname: not configured to build any kind of library" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: not configured to build any kind of library" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi @@ -133,7 +105,7 @@ ;; --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION" + echo "$PROGRAM (GNU $PACKAGE) $VERSION" exit 0 ;; @@ -142,16 +114,16 @@ ;; --features) - $echo "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" + echo "enable shared libraries" else - $echo "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $echo "enable static libraries" + echo "enable static libraries" else - $echo "disable static libraries" + echo "disable static libraries" fi exit 0 ;; @@ -171,7 +143,7 @@ ;; -*) - $echo "$progname: unrecognized option \`$arg'" 1>&2 + $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -184,7 +156,7 @@ done if test -n "$prevopt"; then - $echo "$progname: option \`$prevopt' requires an argument" 1>&2 + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -194,7 +166,7 @@ # Infer the operation mode. if test -z "$mode"; then case "$nonopt" in - *cc) + *cc | *++) mode=link for arg do @@ -222,9 +194,9 @@ # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then - $echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else - $echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; @@ -233,20 +205,20 @@ # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$progname: unrecognized option \`-dlopen'" 1>&2 + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." + help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case "$mode" in # libtool compile mode compile) - progname="$progname: compile" + modename="$modename: compile" # Get the compilation command and the source file. base_compile= lastarg= @@ -257,7 +229,7 @@ do # The only flag that cannot be specified is the output filename. if test "X$arg" = "X-o"; then - $echo "$progname: you cannot specify the output filename with \`-o'" 1>&2 + $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -309,13 +281,13 @@ case "$libobj" in *.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;; *) - $echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2 + $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then - $echo "$progname: you must specify a compilation command" 1>&2 + $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -331,6 +303,9 @@ # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + # All platforms use -DPIC, to notify preprocessed assembler code. $show "$base_compile$pic_flag -DPIC $srcfile" if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then : @@ -368,8 +343,8 @@ # Create an invalid libtool object if no PIC, so that we don't accidentally # link it into a program. if test "$build_libtool_libs" != yes; then - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > \$libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > \$libobj" || exit $? fi exit 0 @@ -377,9 +352,9 @@ # libtool link mode link) - progname="$progname: link" + modename="$modename: link" CC="$nonopt" - allow_undefined=no + allow_undefined=yes compile_command="$CC" finalize_command="$CC" @@ -407,7 +382,7 @@ case "$arg" in -all-static | -static) if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$progname: warning: complete static linking is impossible in this configuration" 1>&2 + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 fi build_libtool_libs=no build_old_libs=yes @@ -416,6 +391,9 @@ esac done + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + # Go through the arguments, transforming them on the way. for arg do @@ -440,7 +418,7 @@ esac ;; rpath) - rpath="$rpath $arg" + rpath="$rpath $arg" prev= continue ;; @@ -464,7 +442,8 @@ ;; -allow-undefined) - allow_undefined=yes + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; @@ -481,7 +460,11 @@ -export-dynamic) if test "$export_dynamic" != yes; then export_dynamic=yes - arg=`eval \\$echo "$export_dynamic_flag_spec"` + if test -n "$export_dynamic_flag_spec"; then + arg=`eval \\$echo "$export_dynamic_flag_spec"` + else + arg= + fi # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" @@ -493,9 +476,10 @@ dir=`$echo "$arg" | sed 's%^-L\(.*\)$%\1%'` case "$dir" in /*) + # Add the corresponding hardcode_libdir_flag, if it is not identical. ;; *) - $echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2 + $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 exit 1 ;; esac @@ -504,6 +488,11 @@ -l*) deplibs="$deplibs $arg" ;; + -no-undefined) + allow_undefined=no + continue + ;; + -o) prev=output ;; -rpath) @@ -512,7 +501,11 @@ ;; -static) - # We already handled this flag above. + # If we have no pic_flag, then this is the same as -all-static. + if test -z "$pic_flag" && test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi continue ;; @@ -522,7 +515,7 @@ ;; # Some other compiler flag. - -*) + -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "$arg" | sed "$sed_quote_subst"` @@ -568,9 +561,9 @@ old_library= # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $arg >/dev/null 2>&1; then : + if egrep '^# Generated by ltmain.sh' $arg >/dev/null 2>&1; then : else - $echo "$progname: \`$arg' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 exit 1 fi @@ -581,7 +574,7 @@ esac if test -z "$libdir"; then - $echo "$progname: \`$arg' contains no -rpath information" 1>&2 + $echo "$modename: \`$arg' contains no -rpath information" 1>&2 exit 1 fi @@ -592,7 +585,7 @@ done if test -z "$linklib"; then - $echo "$progname: cannot find name of link library for \`$arg'" 1>&2 + $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 exit 1 fi @@ -635,12 +628,12 @@ if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in - "* $dir *") ;; + *" $dir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi - # FIXME: This is the magic to use -rpath. + # This is the magic to use -rpath. if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then @@ -648,8 +641,14 @@ hardcode_libdirs="$libdir" libdir="@HARDCODE_LIBDIRS@" else - # Just accumulate the libdirs. - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + # Just accumulate the unique libdirs. + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac libdir= fi fi @@ -663,7 +662,7 @@ elif test "$hardcode_runpath_var" = yes; then # Do the same for the permanent run path. case "$perm_rpath " in - "* $libdir *") ;; + *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi @@ -688,7 +687,7 @@ *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - $echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2 + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" @@ -706,7 +705,7 @@ ;; *) - $echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2 + $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 exit 1 ;; esac @@ -726,17 +725,18 @@ else # Transform directly to old archives if we don't build new libraries. if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$progname: cannot find static library for \`$arg'" 1>&2 + $echo "$modename: cannot find static library for \`$arg'" 1>&2 exit 1 fi + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_command="$compile_command $dir/$linklib" finalize_command="$finalize_command $dir/$linklib" else - # Here we assume that "$hardcode_minus_L" != unsupported. - # This is valid on all known static and shared platforms. compile_command="$compile_command -L$dir -l$name" finalize_command="$finalize_command -L$dir -l$name" fi @@ -744,20 +744,28 @@ continue ;; + # Some other compiler argument. *) - $echo "$progname: unknown file suffix for \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "$arg" | sed "$sed_quote_subst"` + case "$arg" in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac ;; esac # Now actually substitute the argument into the commands. - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi done if test -n "$prev"; then - $echo "$progname: the \`$prevarg' option requires an argument" 1>&2 + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -766,18 +774,29 @@ oldobjs= case "$output" in "") - $echo "$progname: you must specify an output file" 1>&2 + $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; */*) - $echo "$progname: output file \`$output' must have no directory components" 1>&2 + $echo "$modename: output file \`$output' must have no directory components" 1>&2 exit 1 ;; *.la) - libname=`$echo "$output" | sed 's/\.la$//'` + # Make sure we only generate libraries of the form `libNAME.la'. + case "$output" in + lib*) ;; + *) + $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + + name=`$echo "$output" | sed -e 's/\.la$//' -e 's/^lib//'` + libname=`eval \\$echo \"$libname_spec\"` # All the library-specific variables (install_libdir is set above). library_names= @@ -788,32 +807,35 @@ age=0 if test -n "$objs"; then - $echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 exit 1 fi # How the heck are we supposed to write a wrapper for a shared library? if test -n "$link_against_libtool_libs"; then - $echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 + $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 exit 1 fi + # Add libc to deplibs on all systems. + deplibs="$deplibs -lc" + if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` fi if test -z "$rpath"; then - $echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2 + $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 $echo "$help" 1>&2 exit 1 fi set dummy $rpath if test $# -gt 2; then - $echo "$progname: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" @@ -823,7 +845,7 @@ IFS="$save_ifs" if test -n "$5"; then - $echo "$progname: too many parameters to \`-version-info'" 1>&2 + $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -836,8 +858,8 @@ case "$current" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -845,8 +867,8 @@ case "$revision" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -854,15 +876,15 @@ case "$age" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then - $echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi @@ -902,25 +924,30 @@ ;; *) - $echo "$progname: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Create the output directory, or remove our outputs if we need to. if test -d $objdir; then - $show "$rm $objdir/$libname.*" - $run $rm $objdir/$libname.* + $show "$rm $objdir/$output $objdir/$libname.*" + $run $rm $objdir/$output $objdir/$libname.* else $show "$mkdir $objdir" - $run $mkdir $objdir || exit $? + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then - $echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi @@ -943,11 +970,10 @@ fi lib="$objdir/$realname" - linknames= - for link - do - linknames="$linknames $link" - done + for link + do + linknames="$linknames $link" + done # Use standard objects if they are PIC. test -z "$pic_flag" && libobjs=`$echo "$libobjs " | sed -e 's/\.lo /.o /g' -e 's/ $//g'` @@ -963,9 +989,9 @@ IFS="$save_ifs" # Create links to the real library. - for link in $linknames; do - $show "(cd $objdir && $LN_S $realname $link)" - $run eval '(cd $objdir && $LN_S $realname $link)' || exit $? + for linkname in $linknames; do + $show "(cd $objdir && $LN_S $realname $linkname)" + $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? done # If -export-dynamic was specified, set the dlname. @@ -978,33 +1004,33 @@ *.lo | *.o) if test -n "$link_against_libtool_libs"; then - $echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2 + $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 exit 1 fi if test -n "$deplibs"; then - $echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` fi if test -n "$rpath"; then - $echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 fi if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 fi case "$output" in *.lo) if test -n "$objs"; then - $echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2 + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" @@ -1038,8 +1064,8 @@ if test "$build_libtool_libs" != yes; then # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > $libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > $libobj" || exit $? exit 0 fi @@ -1066,7 +1092,7 @@ *) if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 fi if test -n "$rpath"; then @@ -1079,8 +1105,14 @@ hardcode_libdirs="$libdir" libdir="@HARDCODE_LIBDIRS@" else - # Just accumulate the libdirs. - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + # Just accumulate the unique libdirs. + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac libdir= fi fi @@ -1093,7 +1125,7 @@ fi elif test "$hardcode_runpath_var" = yes; then case "$perm_rpath " in - "* $libdir *") ;; + *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi @@ -1112,51 +1144,79 @@ finalize_command=`$echo "$finalize_command " | sed -e 's/\.lo /.o /g' -e 's/ $//'` fi - if test "$export_dynamic" = yes && test -n "$global_symbol_pipe" && test -n "$NM"; then + if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${output}S.c" + else + dlsyms= + fi + + if test -n "$dlsyms"; then # Add our own program objects to the preloaded list. dlprefiles=`$echo "$objs$dlprefiles " | sed -e 's/\.lo /.o /g' -e 's/ $//'` - # Discover the nlist of each of the dlfiles. - dlsyms="$objdir/${output}S.c" + # Discover the nlist of each of the dlfiles. nlist="$objdir/${output}.nm" - $run rm -f "$nlist" "$nlist"T + if test -d $objdir; then + $show "$rm $nlist ${nlist}T" + $run $rm "$nlist" "${nlist}T" + else + $show "$mkdir $objdir" + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi + fi + for arg in $dlprefiles; do - $echo "extracting global symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done - # Parse the name list into a C file. - $echo "creating $dlsyms" + # Parse the name list into a source file. + $show "creating $objdir/$dlsyms" if test -z "$run"; then + # Make sure we at least have an empty file. + test -f "$nlist" || : > "$nlist" + # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - test "$wcout" = "$count" && count=-1 + count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` + (test "$count" -ge 0) 2>/dev/null || count=-1 else - rm -f "$nlist"T + $rm "$nlist"T count=-1 fi - cat < "$dlsyms" + case "$dlsyms" in + "") ;; + *.c) + cat < "$objdir/$dlsyms" /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ -/* Prevent the only kind of circular reference mistakes we can make. */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ #define dld_preloaded_symbol_count some_other_symbol #define dld_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */ EOF - if test -f "$nlist"; then - sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$dlsyms" - else - $echo "/* NONE */" >> "$dlsyms" - fi + if test -f "$nlist"; then + sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" + else + echo '/* NONE */' >> "$objdir/$dlsyms" +EOF + fi - cat <> "$dlsyms" + cat <> "$objdir/$dlsyms" #undef dld_preloaded_symbol_count #undef dld_preloaded_symbols @@ -1179,31 +1239,41 @@ { EOF - if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> "$dlsyms" - fi + if test -f "$nlist"; then + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" + fi - cat <<\EOF >> "$dlsyms" + cat <<\EOF >> "$objdir/$dlsyms" {0}, }; + +#ifdef __cplusplus +} +#endif EOF + ;; + + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit 1 + ;; + esac fi - $run rm -f "$nlist" "$nlist"T # Now compile the dynamic symbol file. - $show "(cd $objdir && $CC -c$no_builtin_flag \"${output}S.c\")" - $run eval '(cd $objdir && $CC -c$no_builtin_flag "${output}S.c")' || exit $? + $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")" + $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? # Transform the symbol file into the correct name. compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` elif test "$export_dynamic" != yes; then - test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 + test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 else # We keep going just in case the user didn't refer to # dld_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. - $echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2 + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` @@ -1273,8 +1343,8 @@ case "$hardcode_action" in relink) # AGH! Flame the AIX and HP-UX people for me, will ya? - $echo "$progname: warning: using a buggy system linker" 1>&2 - $echo "$progname: relinking will be required before \`$output' can be installed" 1>&2 + $echo "$modename: warning: using a buggy system linker" 1>&2 + $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 ;; esac @@ -1282,7 +1352,7 @@ $run eval "$compile_command" || exit $? # Now create the wrapper script. - $echo "creating $output" + $show "creating $output" # Quote the finalize command for shipping. finalize_command=`$echo "$finalize_command" | sed "$sed_quote_subst"` @@ -1321,6 +1391,23 @@ thisdir=\`\$echo "\$file" | sed 's%/[^/]*$%%'\` test "x\$thisdir" = "x\$file" && thisdir=. + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld "\$file" | sed -n 's/.*-> //p'\` + while test -n "\$file"; do + destdir=\`\$echo "\$file" | sed 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test "x\$destdir" != "x\$file"; then + case "\$destdir" in + /*) thisdir="\$destdir" ;; + *) thisdir="\$thisdir/\$destdir" ;; + esac + fi + + file=\`\$echo "\$file" | sed 's%^.*/%%'\` + file=\`ls -ld "\$thisdir/\$file" | sed -n 's/.*-> //p'\` + done + # Try to get the absolute directory name. absdir=\`cd "\$thisdir" && pwd\` test -n "\$absdir" && thisdir="\$absdir" @@ -1328,14 +1415,6 @@ progdir="\$thisdir/$objdir" program='$output' - # If the \$file dir failed (maybe due to symlink), try a hardcoded dir. - oprogdir="\$progdir" - if test -f "\$progdir/\$program"; then : - else - thisdir='`pwd`' - progdir="\$thisdir/$objdir" - fi - if test -f "\$progdir/\$program"; then EOF @@ -1376,9 +1455,9 @@ fi else # The program doesn't exist. - \$echo "\$0: error: neither \$oprogdir/\$program nor \$progdir/\$program exists" 1>&2 + \$echo "\$0: error: \$progdir/\$program does not exist" 1>&2 \$echo "This script is just a wrapper for \$program." 1>&2 - \$echo "See the $PACKAGE documentation for more information." 1>&2 + echo "See the $PACKAGE documentation for more information." 1>&2 exit 1 fi fi @@ -1407,7 +1486,11 @@ fi # Do each command in the archive commands. - cmds=`eval \\$echo \"$old_archive_cmds\"` + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=`eval \\$echo \"$old_archive_from_new_cmds\"` + else + cmds=`eval \\$echo \"$old_archive_cmds\"` + fi IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -1423,7 +1506,7 @@ old_library= test "$build_old_libs" = yes && old_library="$libname.a" - $echo "creating $output" + $show "creating $output" # Only create the output if not a dry run. if test -z "$run"; then @@ -1461,17 +1544,35 @@ # libtool install mode install) - progname="$progname: install" + modename="$modename: install" + + # There may be an optional /bin/sh argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL"; then + # Aesthetically quote it. + arg=`$echo "$nonopt" | sed "$sed_quote_subst"` + case "$arg" in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg="$nonopt" + fi - # The first argument is the name of the installation program. + # The real first argument should be the name of the installation program. # Aesthetically quote it. - arg=`$echo "$nonopt" | sed "$sed_quote_subst"` + arg=`$echo "$arg" | sed "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac - install_prog="$arg" + install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= @@ -1523,22 +1624,22 @@ done if test -z "$install_prog"; then - $echo "$progname: you must specify an install program" 1>&2 + $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then - $echo "$progname: the \`$prev' option requires an argument" 1>&2 + $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then - $echo "$progname: no file or destination specified" 1>&2 + $echo "$modename: no file or destination specified" 1>&2 else - $echo "$progname: you must specify a destination" 1>&2 + $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 @@ -1560,7 +1661,7 @@ # Not a directory, so check to see that there is only one file specified. set dummy $files if test $# -gt 2; then - $echo "$progname: \`$dest' is not a directory" 1>&2 + $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1572,7 +1673,7 @@ case "$file" in *.lo) ;; *) - $echo "$progname: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1599,9 +1700,9 @@ *.la) # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then : + if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : else - $echo "$progname: \`$file' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1617,13 +1718,13 @@ # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in - "* $libdir *") ;; + *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in - "* $libdir *") ;; + *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi @@ -1650,7 +1751,7 @@ $show "$striplib $destdir/$realname" $run $striplib $destdir/$realname || exit $? else - $echo "$progname: warning: no library stripping program" 1>&2 + $echo "$modename: warning: no library stripping program" 1>&2 fi fi @@ -1721,7 +1822,7 @@ destfile= ;; *) - $echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1758,7 +1859,7 @@ # Check the variables that should have been set. if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - $echo "$progname: invalid libtool wrapper script \`$file'" 1>&2 + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 exit 1 fi @@ -1775,26 +1876,26 @@ fi libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`" if test -z "$libdir"; then - $echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2 + $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 elif test -f "$libfile"; then : else - $echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done if test "$hardcode_action" = relink; then if test "$finalize" = yes; then - $echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 $show "$finalize_command" if $run eval "$finalize_command"; then : else - $echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2 + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 continue fi file="$objdir/$file"T else - $echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 fi else # Install the binary that we compiled earlier. @@ -1823,7 +1924,7 @@ $show "$old_striplib $oldlib" $run $old_striplib $oldlib || exit $? else - $echo "$progname: warning: no static library stripping program" 1>&2 + $echo "$modename: warning: no static library stripping program" 1>&2 fi fi @@ -1839,13 +1940,13 @@ done if test -n "$future_libdirs"; then - $echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" - exec $0 --finish$current_libdirs + exec $SHELL $0 --finish$current_libdirs exit 1 fi @@ -1854,44 +1955,51 @@ # libtool finish mode finish) - progname="$progname: finish" + modename="$modename: finish" libdirs="$nonopt" - if test -n "$finish_cmds" && test -n "$libdirs"; then + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do - # Do each command in the postinstall commands. - cmds=`eval \\$echo \"$finish_cmds\"` - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=`eval \\$echo \"$finish_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + cmds=`eval \\$echo \"$finish_eval\"` + $run eval "$cmds" + fi done fi - $echo "To link against installed libraries in LIBDIR, users may have to:" + echo "To link against installed libraries in LIBDIR, users may have to:" if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to their \`$shlibpath_var' environment variable" + echo " - add LIBDIR to their \`$shlibpath_var' environment variable" fi - $echo " - use the \`-LLIBDIR' linker flag" + echo " - use the \`-LLIBDIR' linker flag" exit 0 ;; # libtool execute mode execute) - progname="$progname: execute" + modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then - $echo "$progname: you must specify a COMMAND" 1>&2 + $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi @@ -1900,7 +2008,7 @@ for file in $execute_dlfiles; do if test -f "$file"; then : else - $echo "$progname: \`$file' is not a file" 1>&2 + $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1909,9 +2017,9 @@ case "$file" in *.la) # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then : + if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : else - $echo "$progname: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1929,7 +2037,7 @@ # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. - test -n "$library_names" && $echo "$progname: warning: \`$file' was not linked with \`-export-dynamic'" + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi @@ -1939,7 +2047,7 @@ if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else - $echo "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; @@ -1951,7 +2059,7 @@ ;; *) - $echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac @@ -2003,7 +2111,7 @@ # Now actually exec the command. eval "exec \$cmd$args" - $echo "$progname: cannot exec \$cmd$args" + $echo "$modename: cannot exec \$cmd$args" exit 1 else # Display what would be done. @@ -2016,7 +2124,7 @@ # libtool uninstall mode uninstall) - progname="$progname: uninstall" + modename="$modename: uninstall" rm="$nonopt" files= @@ -2029,7 +2137,7 @@ done if test -z "$rm"; then - $echo "$progname: you must specify an RM program" 1>&2 + $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -2044,7 +2152,7 @@ case "$name" in *.la) # Possibly a libtool archive, so verify it. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then + if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. @@ -2055,6 +2163,33 @@ test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" + $show "$rm $rmfiles" + $run $rm $rmfiles + + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=`eval \\$echo \"$postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=`eval \\$echo \"$old_postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. fi ;; @@ -2064,23 +2199,27 @@ oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'` rmfiles="$rmfiles $dir/$oldobj" fi + $show "$rm $rmfiles" + $run $rm $rmfiles ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles + *) + $show "$rm $rmfiles" + $run $rm $rmfiles + ;; + esac done exit 0 ;; "") - $echo "$progname: you must specify a MODE" 1>&2 + $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac - $echo "$progname: invalid operation mode \`$mode'" 1>&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi # test -z "$show_help" @@ -2088,7 +2227,7 @@ # We need to display help for each of the modes. case "$mode" in "") cat <&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac -$echo -$echo "Try \`$progname --help' for more information about other modes." +echo +$echo "Try \`$modename --help' for more information about other modes." exit 0 diff -uNr gnome-0.11/lib/Makefile.in gnome-0.12/lib/Makefile.in --- gnome-0.11/lib/Makefile.in Wed Jan 7 20:30:51 1998 +++ gnome-0.12/lib/Makefile.in Wed Jan 21 21:13:12 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -119,7 +120,7 @@ default: all .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/lib/desktop-links/Makefile.in gnome-0.12/lib/desktop-links/Makefile.in --- gnome-0.11/lib/desktop-links/Makefile.in Wed Jan 7 20:30:53 1998 +++ gnome-0.12/lib/desktop-links/Makefile.in Wed Jan 21 21:13:14 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -149,7 +150,7 @@ default: all .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/desktop-links/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/lib/pixmaps/Makefile.am gnome-0.12/lib/pixmaps/Makefile.am --- gnome-0.11/lib/pixmaps/Makefile.am Sat Dec 6 09:03:17 1997 +++ gnome-0.12/lib/pixmaps/Makefile.am Mon Jan 19 10:33:55 1998 @@ -3,6 +3,7 @@ BITMAPS = \ UNIX-small.xpm \ UNIX-transparent.xpm \ + UNIX.xpm \ arrowup.xpm \ gnome-balsa-small.xpm \ gnome-balsa-transparent.xpm \ @@ -50,9 +51,19 @@ gnome-word-small.xpm \ gnome-word-transparent.xpm \ gnome-word.xpm \ + gnome-unknown.xpm \ + gnome-term-night.xpm \ launcher-program.xpm \ monitor.xpm \ netscape3-small.xpm \ + gnome-menu-up.xpm \ + gnome-menu-down.xpm \ + gnome-menu-left.xpm \ + gnome-menu-right.xpm \ + panel-arrow-left.xpm \ + panel-arrow-right.xpm \ + panel-arrow-up.xpm \ + panel-arrow-down.xpm \ panel-folder.xpm \ panel-menu-main.xpm diff -uNr gnome-0.11/lib/pixmaps/Makefile.in gnome-0.12/lib/pixmaps/Makefile.in --- gnome-0.11/lib/pixmaps/Makefile.in Wed Jan 7 20:30:52 1998 +++ gnome-0.12/lib/pixmaps/Makefile.in Wed Jan 21 21:13:13 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -110,6 +111,7 @@ BITMAPS = \ UNIX-small.xpm \ UNIX-transparent.xpm \ + UNIX.xpm \ arrowup.xpm \ gnome-balsa-small.xpm \ gnome-balsa-transparent.xpm \ @@ -157,9 +159,19 @@ gnome-word-small.xpm \ gnome-word-transparent.xpm \ gnome-word.xpm \ + gnome-unknown.xpm \ + gnome-term-night.xpm \ launcher-program.xpm \ monitor.xpm \ netscape3-small.xpm \ + gnome-menu-up.xpm \ + gnome-menu-down.xpm \ + gnome-menu-left.xpm \ + gnome-menu-right.xpm \ + panel-arrow-left.xpm \ + panel-arrow-right.xpm \ + panel-arrow-up.xpm \ + panel-arrow-down.xpm \ panel-folder.xpm \ panel-menu-main.xpm @@ -181,7 +193,7 @@ default: all .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/pixmaps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/lib/pixmaps/UNIX.xpm gnome-0.12/lib/pixmaps/UNIX.xpm --- gnome-0.11/lib/pixmaps/UNIX.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/UNIX.xpm Fri Jan 16 13:10:31 1998 @@ -0,0 +1,264 @@ +/* XPM */ +static char * image_name[] = { +"48 48 213 2", +" c #C71BCB2BC71B", +". c #C71BCB2BCF3C", +"X c #BEFBBEFBBEFB", +"o c #BEFBBAEABEFB", +"O c #B6DABAEABEFB", +"+ c #BEFBC30BC71B", +"@ c #BEFBBEFBB6DA", +"# c #C71BC30BC71B", +"$ c #B6DAB6DAB6DA", +"% c #B6DABAEAB6DA", +"& c #C71BC71BC71B", +"* c #AEBAAEBAAEBA", +"= c #EFBEF3CEF7DE", +"- c #E79DEBADEFBE", +"; c #D75CD34CD75C", +": c #CF3CD34CD75C", +"> c #CF3CCF3CCF3C", +", c #D75CD75CD75C", +"< c #D75CDB6CDF7D", +"1 c #D75CD75CCF3C", +"2 c #DF7DDF7DD75C", +"3 c #DF7DE38DE79D", +"4 c #DF7DDF7DDF7D", +"5 c #DF7DDB6CDF7D", +"6 c #D75CDB6CD75C", +"7 c #71C679E779E7", +"8 c #492451445144", +"9 c #AEBAAAAAA699", +"0 c #A699AEBAAEBA", +"q c #A699AAAAA699", +"w c #A699A699A699", +"e c #9E79A289A699", +"r c #9E79A699A699", +"t c #A699AAAAAEBA", +"y c #9E799E799E79", +"u c #96589E799E79", +"i c #96589A699E79", +"p c #965896589658", +"a c #8E3896589658", +"s c #8E3892488E38", +"d c #86178E388E38", +"f c #79E786178617", +"g c #79E782078617", +"h c #86178A288617", +"j c #8E388E388E38", +"k c #96589A699658", +"l c #514459655965", +"z c #49244D344924", +"x c #8E3892489658", +"c c #965892489658", +"v c #9E79A2899E79", +"b c #4103410338E3", +"n c #492449244924", +"m c #861786178617", +"M c #86178A288E38", +"N c #38E33CF338E3", +"B c #410345144103", +"V c #965892488E38", +"C c #8E388A288617", +"Z c #79E77DF779E7", +"A c #AEBAB2CAAEBA", +"S c #71C67DF779E7", +"D c #41033CF338E3", +"F c #8617820779E7", +"G c #410341034103", +"H c #AEBAB6DAB6DA", +"J c #71C675D671C6", +"K c #79E779E779E7", +"L c #69A675D671C6", +"P c #69A671C671C6", +"I c #79E7820779E7", +"U c #AEBAB2CAB6DA", +"Y c #EFBEEBADDF7D", +"T c #E79DE79DDF7D", +"R c #E79DE38DD75C", +"E c #DF7DDB6CD75C", +"W c #DF7DDB6CCF3C", +"Q c #D75CCF3CC71B", +"! c #CF3CCF3CC71B", +"~ c #CF3CCB2BBEFB", +"^ c #CF3CC71BBEFB", +"/ c #C71BC71BBEFB", +"( c #C71BC30BBEFB", +") c #C71BBEFBB6DA", +"_ c #BEFBBAEAB6DA", +"` c #BEFBB6DAAEBA", +"' c #B6DAAEBAA699", +"] c #9E799A699658", +"[ c #8E388E388617", +"{ c #38E338E338E3", +"} c #DF7DD75CCF3C", +"| c #D75CD34CC71B", +" . c #CF3CD34CCF3C", +".. c #BEFBBAEAAEBA", +"X. c #BEFBB2CAAEBA", +"o. c #AEBAAEBAA699", +"O. c #AEBAA699A699", +"+. c #A6999E799658", +"@. c #618561856185", +"#. c #B6DAB2CAB6DA", +"$. c #79E775D671C6", +"%. c #71C66DB669A6", +"&. c #69A66DB669A6", +"*. c #69A669A669A6", +"=. c #596561856185", +"-. c #61855D755965", +";. c #596559655965", +":. c #59655D755965", +">. c #514455555144", +",. c #514451445144", +"<. c #492445144103", +"1. c #492441034103", +"2. c #96588A288E38", +"3. c #B6DAB2CAAEBA", +"4. c #9E799A699E79", +"5. c #8E388A288E38", +"6. c #861782078617", +"7. c #71C671C671C6", +"8. c #71C671C669A6", +"9. c #492445144924", +"0. c #410338E338E3", +"q. c #410334D338E3", +"w. c #A6999A699658", +"e. c #30C234D330C2", +"r. c #618569A669A6", +"t. c #618565956185", +"y. c #514459655144", +"u. c #9E7996589658", +"i. c #28A224922081", +"p. c #69A669A65965", +"a. c #596555555144", +"s. c #410338E34103", +"d. c #30C230C230C2", +"f. c #208120812081", +"g. c #69A665956185", +"h. c #492449244103", +"j. c #38E334D330C2", +"k. c #30C230C228A2", +"l. c #965896588E38", +"z. c #20811C711861", +"x. c #492455555144", +"c. c #618569A66185", +"v. c #79E779E771C6", +"b. c #492451444924", +"n. c #41033CF34103", +"m. c #30C22CB228A2", +"M. c #28A22CB228A2", +"N. c #186118611861", +"B. c #596565956185", +"V. c #28A228A228A2", +"C. c #104014511040", +"Z. c #596561855965", +"A. c #E79DDF7DD75C", +"S. c #618565955965", +"D. c #8E3886178617", +"F. c #186114511040", +"G. c #CF3CCB2BCF3C", +"H. c #8617861779E7", +"J. c #28A220812081", +"K. c #8E3882078617", +"L. c #61856DB669A6", +"P. c #51445D755965", +"I. c #86177DF779E7", +"U. c #71C679E771C6", +"Y. c #28A2249228A2", +"T. c #208118611861", +"R. c #861779E779E7", +"E. c #20811C712081", +"W. c #79E77DF771C6", +"Q. c #51444D344924", +"!. c #186110401040", +"~. c #BEFBC30BBEFB", +"^. c #10400C300820", +"/. c #79E771C671C6", +"(. c #96588E388E38", +"). c #9E799E799658", +"_. c #86177DF78617", +"`. c #104008200820", +"'. c #C71BC30BB6DA", +"]. c #104010401040", +"[. c #B6DAAEBAAEBA", +"{. c #AEBAA2899E79", +"}. c #A6999E799E79", +"|. c #9E799A698E38", +" X c #9E7992488E38", +".X c #AEBA79E769A6", +"XX c #A6998A288617", +"oX c #9E7996588E38", +"OX c #A6996DB669A6", +"+X c #9E7979E769A6", +"@X c #96588E388617", +"#X c #9E797DF769A6", +"$X c #8E3896585965", +"%X c #9658BAEA2081", +"&X c #8E389A6938E3", +"*X c #71C669A669A6", +"=X c #208124922081", +"-X c #514469A66185", +";X c #8E3886176185", +":X c #410351445144", +">X c #082008200820", +",X c #208120811861", +" : , , ; ; ; , , , < 1 , < 1 , 2 3 2 2 4 5 5 1 < 1 , 6 < 5 5 5 2 2 3 2 < < O 7 8 ", +"o 2 & * 9 0 * q w e r e r w t t t q t t 0 * 0 y u i p a s d f g h h j s k y e r y i j d a k l z ", +"$ < w x a p a x s s d s s p p p a p i i i p c a p x j j d h g f h s s x p u v i s d d s e d b n ", +"$ < 0 x s p p a x s s j x x x x s s x a x s d j s j j d h m g g M j j a i i p d f M x k e h N B ", +"$ , * a s c p V p x j j d x d M j M j C M m m d j M m m m g Z g m M d x p i j f h a k i u f N n ", +"% < A p s a a s x j h m h C M m M h m f f f m M d h f g f S S g g m M x x M g g s i i k y m D z ", +"$ 1 * u x s j M M M g g F m h f f g S 7 Z g m M m Z S Z 7 7 7 Z g g m M M g 7 m j a p p y d G z ", +"H 1 t u x M M m m Z J 7 S Z Z K J J L P J 7 7 Z Z J J L P L J J J 7 Z I Z L L f m d x k e s G n ", +"U , t y j g g g 1 Y Y Y Y Y T T R R 2 2 E W 5 1 ; Q ! ~ Q ^ / ( ) @ _ ` ' ] [ K 7 g d y * d { G ", +"$ , w i j g Z 1 Y Y = Y Y - T T R 2 3 E } 1 W | ; .~ ~ ^ / ( ) @ _ ..X.o.O.+.F @.J C v t f { B ", +"H , w a M g g Y Y #.$.$.K $.K $.J J %.&.&.*.=.@.-.;.:.;.;.>.,.z z <.1.1.D K +.2.n @.g V i Z { z ", +"3., w x j f I Y Y K j # 4.p 5.6.m j 6.7.8.8.&.&.@.@.:.,.z z n 1.n 9.1.D 0.q.w.c e.z P g h J e.n ", +"$ ; e M M m K Y = 5.$ - $ w 6.Z K K J J r.t.t.=.y.;.;.,.z z n n 9.1.G D { e.] u.i.B =.K m L e.<.", +"H , v h m h Z Y Y K w & p m c c &.Z p p p P 6.j 7 p.5.m y @.:.[ ;.a.s.s.d.d.u.V f.D :.7 m P e.B ", +"$ ; e M d M K Y - 7 w O J J 6.r.&.g.t.t.@.:.:.;.>.>.8 ,.n h.9.9.G G 0.j.j.k.l.5.z.{ x.&.g c.e.n ", +"$ : v j x j Z T T J 4.c m 6.Z j 5.p J c 8.;.v.>.b.K z =.:.1.1.G n.n.j.j.m.M.V 5.N.m.n @.J c.j.z ", +"$ : y x x x K R R K 5.j 7.&.&.g.B.B.-.y.:.;.>.>.,.,.z n 1.9.G 0.s.j.j.d.m.V.V 5.C.V.B Z.L P { 8 ", +"$ : y j x j K R A.m p c 4.j 7 p 7.L 6.r.S 7 S.,.8.&.:.:.;.&.v.t.,.,.e.m.m.i.2.D.C.V.G =.g S N b.", +"U ! v a a j 7 R 3 %.m K *.r.t.t.@.:.:.;.>.>.,.z z n 1.9.G s.s.j.j.k.m.k.V.i.[ D.F.V.B t.Z 7 N n ", +"* G.e p k j 7.2 2 7.J &.$.t.t.@.:.:.;.b.,.,.h.z n 9.9.D D n.{ { e.m.m.V.i.i.5.m F.V.<.=.K L { n ", +"* > e p p m P E 2 K D.*.m 8.c P p.[ *.p.H.J @.6.:.;.g.>.p.b.=.d.=.d.V.i.i.J.5.K.C.M.B =.7 &.e.B ", +"U > w a a g r.E 6 L.L t.B.-.;.P.;.8 >.,.n z n 1.9.b G s.q.j.e.m.m.V.i.i.J.z.D.I.F.M.<.@.7 P j.B ", +"$ : y p j Z &.1 1 *.%.t.@.P.:.&.g.p.,.z @.n 1.9.n.n.s.{ { e.m.d.M.V.V.J.z.z.6.I.F.V.B =.U.P { <.", +"@ : p x M Z L 1 | t.L.@.6.&.Z c.*.$.L @.:.&.&.y.g.c.@.-.h.n m.V.Y.Y.i.z.z.T.H.R.F.M.<.@.7 &.e.<.", +"+ , u x m g 7.| Q t.-.-.:.y.b.>.,.z n n <.9.G n.n.{ { e.d.m.M.V.V.J.E.z.T.F.6.Z F.V.h.=.J P { B ", +"+ ; i s f g 7 | ! @.P.:.a.>.>.z z z 9.<.9.n.0.s.j.j.k.m.d.V.i.Y.Y.z.z.T.F.F.W.v.N.V.<.@.7 L.{ B ", +"# < p j g f J Q ~ :.:.a.>.>.Q.,.z n 9.<.n.D n.{ { e.d.d.V.V.V.i.z.z.E.F.F.!.K $.F.M.<.=.J P e.n ", +"~., a j m g 7 ! ~ :.y.>.>.8 z n h.<.1.1.s.s.j.j.d.m.m.M.i.i.J.f.f.T.N.F.!.^.K /.C.M.<.t.7 P j.n ", +"# , x d m m K ~ ^ a.>.x.z ,.z n 1.9.G D n.{ { e.k.k.M.i.V.Y.f.z.T.F.F.!.^.^././.!.V.B @.J P { B ", +"& 1 x d M m Z ~ >.,.5.c c 6.(.v.4.2.v.p J 6.).8.&.[ g.J 2.m U.m _.%.R.,.`././.!.V.G @.7 &.{ n ", +"# , j M h m K / '.(.,.z n <.<.<.G s.0.j.j.k.m.m.V.i.V.i.Y.z.z.F.F.!.^.^.`.y.$.8.].i.b =.7 L { b.", +"& 1 s d M m K ' '.o ` ..X.[.[.' o.O.O.O.{.}.}.}.|.c Xu.(.2.(.2.C m 6.K $./.8.t.].i.G :.Z 7 { z ", +"/ < V j j h Z p.u.[.' O.q O.{.+.+..XXXoX2.OX+Xs @XOX#XD.2.F &.F $X%X&X/.%.*X:.a.].=XD =.7 L { n ", +"/ < x s j M g &.y.-X;X).).] |.u.p V V s 5.[ 2.5.6.F I.I.R._.R.K 8.8.g.*.;.:X:X>X].=XN l P r.k.G ", +"& 5 p j j M g 7 =.b.N V.,XN.G b z %.%.z :.$.X>X^.>X^.].N.V.N >.c.t.d.B ", +"& 5 u p j d m I &.:.8 D d.V.Q.n :.:.b.,.:.:.>.:.p.4X>.1Xg.*.1X:.3X^.].].F.C.C.N.f.d.B :.L P { n ", +"& < i a s j M f 7 &.:.I.H.(.2.5X5.[ H.K.6.6.I.W.v.v.$.$.v.6X8.*.g.:.:.>.z.f.f.V.e.B >.L.Z U.e.h.", +"& < i p x j C d f 7 c.5X[ |. Xl.V X[ [ [ C 7XH.D.6.K.v.W.8X.g.J M S { n ", +"# 4 i a s j j j M Z U.c.>.B j.V.z.N.C.].].].].^.^.].C.F.F.].C.N.N.,Xi.m.j.D B z >.c.L f j Z { n ", +"# 5 i p a x j j s m Z J :.z G { m.V.V.i.i.i.i.i.f.i.i.V.V.i.V.V.m.d.{ G h.b.l =.*.J g j a g { z ", +"& < p p p a s x x x j g P =.>.z z h.<.b B G N G G G B <.h.h.B h.h.z b.>.:.t.&.J Z m M x i g { n ", +"& 5 i k i p s p u u p j I J 0Xc.t.t.t.t.S.r.:.=.@.t.=.@.g.t.t.g.t.r.&.&.J 7 g h M s x p i f N z ", +"& 4 u i p x x u r e y a d f Z 7 S S Z Z g m m Z Z Z S S f f g g f g F m m j j x p k u y y f N z ", +"& E i p a a i e t w e p s h h f h h j x x i k x h M M M p p s j p a p a p k i i ] y v y y g { z ", +"G.> k s s p y t w v i x d M h m M x a p k i y k j s s s g g 7 S S Z Z S S Z S g f f g g S 0XN n ", +"+ y l k.d.e.{ N { e.V.i.=X=Xi.=XV.i.V.V.V.V.V.V.i.i.i.V.e.{ j.j.{ { e.e.e.{ { { { j.e.j.e.M.V.n ", +"f >.z B n z b.8 b.z >.x.x.8 x.x.>.y.l l P.P.P.>.y.>.y.l P.:.P.l l l l >.l l l l l l l P.l >.<.:."}; diff -uNr gnome-0.11/lib/pixmaps/gnome-menu-down.xpm gnome-0.12/lib/pixmaps/gnome-menu-down.xpm --- gnome-0.11/lib/pixmaps/gnome-menu-down.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/gnome-menu-down.xpm Mon Jan 19 10:33:55 1998 @@ -0,0 +1,310 @@ +/* XPM */ +static char * gnome_menu_down_xpm[] = { +"48 48 259 2", +" c #BEFBC30BC71B", +". c #C71BC71BC71B", +"X c #B6DABAEABEFB", +"o c #B6DAB6DAB6DA", +"O c #BEFBBAEABEFB", +"+ c #BEFBBEFBBEFB", +"@ c #AEBAB2CAB6DA", +"# c #BEFBC30BBEFB", +"$ c #A699AAAAA699", +"% c #A699AAAAAEBA", +"& c #EFBEEBADEFBE", +"* c #E79DE79DE79D", +"= c #CF3CCF3CCF3C", +"- c #C71BCB2BCF3C", +"; c #CF3CCB2BCF3C", +": c #CF3CD34CCF3C", +"> c #CF3CD34CD75C", +", c #DF7DDB6CDF7D", +"< c #D75CD75CD75C", +"1 c #D75CD34CD75C", +"2 c #D75CDB6CDF7D", +"3 c #71C679E771C6", +"4 c #492451444924", +"5 c #A699A699A699", +"6 c #9E79A289A699", +"7 c #A699AEBAAEBA", +"8 c #9E799E799E79", +"9 c #96589A699E79", +"0 c #96589A699658", +"q c #8E3896589658", +"w c #8E3892489658", +"e c #8E388E388E38", +"r c #86178A288E38", +"t c #79E786178617", +"y c #79E782078617", +"u c #86178E388E38", +"i c #8E3892488E38", +"p c #965896589658", +"a c #86178A288617", +"s c #514455555144", +"d c #410349244924", +"f c #38E33CF338E3", +"g c #410345144103", +"h c #861786178617", +"j c #410341034103", +"k c #9E79A2899E79", +"l c #30C238E338E3", +"z c #96589E799E79", +"x c #AEBAAEBAAEBA", +"c c #38E341034103", +"v c #AEBAB2CAAEBA", +"b c #69A671C669A6", +"n c #410349244103", +"m c #4103410338E3", +"M c #69A669A66185", +"N c #30C234D330C2", +"B c #71C675D671C6", +"V c #28A22CB228A2", +"C c #28A228A22081", +"Z c #514451444103", +"A c #69A66DB65965", +"S c #965896588617", +"D c #69A66DB669A6", +"F c #71C67DF779E7", +"G c #30C238E330C2", +"H c #492451445144", +"J c #208124922081", +"K c #8E38861771C6", +"L c #C71BBEFB9E79", +"P c #BEFBBAEA9E79", +"I c #96589A698E38", +"U c #596561856185", +"Y c #38E338E330C2", +"T c #71C675D669A6", +"R c #4103410330C2", +"E c #9E79A2899658", +"W c #8617820769A6", +"Q c #BEFBB6DA9658", +"! c #B6DAB6DAA699", +"~ c #69A675D671C6", +"^ c #30C230C230C2", +"/ c #596561855965", +"( c #596559654924", +") c #C71BC30BAEBA", +"_ c #51444D344103", +"` c #C71BC30BA699", +"' c #D75CCB2BAEBA", +"] c #C71BC30BB6DA", +"[ c #B6DAB2CAB6DA", +"{ c #8E388A2879E7", +"} c #BEFBB6DA9E79", +"| c #F7DEEFBEEFBE", +" . c #A699A289A699", +".. c #514455554924", +"X. c #71C671C65965", +"o. c #CF3CCB2BAEBA", +"O. c #DF7DDF7DDF7D", +"+. c #EFBEEBADE79D", +"@. c #A699A6999658", +"#. c #B6DAAEBA9E79", +"$. c #DF7DDB6CD75C", +"%. c #EFBEEFBEEFBE", +"&. c #8E388A288617", +"*. c #CF3CC71BBEFB", +"=. c #E79DE38DDF7D", +"-. c #49244D344924", +";. c #79E77DF779E7", +":. c #69A671C671C6", +">. c #A699A2899E79", +",. c #618561855965", +"<. c #71C679E779E7", +"1. c #514451445144", +"2. c #492449244103", +"3. c #596559655144", +"4. c #30C230C228A2", +"5. c #8E388A2871C6", +"6. c #AEBAAAAA9658", +"7. c #208120811861", +"8. c #41033CF330C2", +"9. c #861779E76185", +"0. c #A6999A6979E7", +"q. c #A6999E798617", +"w. c #96588E3871C6", +"e. c #79E775D66185", +"r. c #8617820779E7", +"t. c #9E79965879E7", +"y. c #BEFBAEBA9658", +"u. c #C71BC30BC71B", +"i. c #410338E330C2", +"p. c #9E798E3879E7", +"a. c #B6DAA2898E38", +"s. c #B6DAA6998E38", +"d. c #AEBAA2898617", +"f. c #A69996588617", +"g. c #9E7996588E38", +"h. c #9E7996588617", +"j. c #B6DAAAAA8E38", +"k. c #E79DDF7DDF7D", +"l. c #71C665955144", +"z. c #AEBA9A698617", +"x. c #AEBA9E798617", +"c. c #A699A6999E79", +"v. c #79E7820779E7", +"b. c #79E76DB65965", +"n. c #A699965879E7", +"m. c #AEBA965879E7", +"M. c #AEBA96588617", +"N. c #B6DAA6999658", +"B. c #69A665956185", +"V. c #79E76DB66185", +"C. c #A6998E3879E7", +"Z. c #A699924879E7", +"A. c #B6DA9E798E38", +"S. c #20811C711861", +"D. c #59654D344103", +"F. c #AEBAA2899658", +"G. c #861782078617", +"H. c #86177DF771C6", +"J. c #9E798A2879E7", +"K. c #A6998A2879E7", +"L. c #AEBA924879E7", +"P. c #B6DA9A698617", +"I. c #965892488E38", +"U. c #596555554924", +"Y. c #BEFBA6999658", +"T. c #9658861779E7", +"R. c #9E79861771C6", +"E. c #AEBA92488617", +"W. c #965892488617", +"Q. c #B6DAA2899E79", +"!. c #F7DEF3CEF7DE", +"~. c #618561856185", +"^. c #79E769A65965", +"/. c #AEBA8E3879E7", +"(. c #9E7996589658", +"). c #38E334D328A2", +"_. c #AEBA8A2879E7", +"`. c #A699861771C6", +"'. c #9E79820771C6", +"]. c #38E330C228A2", +"[. c #A699861779E7", +"{. c #9E797DF771C6", +"}. c #A69986178617", +"|. c #AEBAAAAAAEBA", +" X c #18611C711861", +".X c #A6997DF771C6", +"XX c #9E7979E769A6", +"oX c #965879E769A6", +"OX c #A6999A699E79", +"+X c #492449244924", +"@X c #28A228A228A2", +"#X c #38E334D330C2", +"$X c #28A220812081", +"%X c #69A655554924", +"&X c #9E7979E771C6", +"*X c #9E7975D669A6", +"=X c #965875D669A6", +"-X c #AEBAA699A699", +";X c #186118611861", +":X c #28A224922081", +">X c #5965410338E3", +",X c #69A64D344924", +" > > : > > > > , , , , < < < > > > > 1 < < < 2 , , , 2 < < o 3 4 ", +"o , + % 5 $ 5 5 6 6 6 6 6 5 5 % $ 5 $ % 7 % % 8 9 0 q w e r t y t r u i p 9 8 6 8 p u a i q s d ", +"@ > 6 i i w w i e u u e i q p p p p p 9 9 p q p p w i i u r t t r i w w 9 8 8 0 i a a i 8 u f g ", +"@ > 5 i i q q q q w w w q p p q q p p p p w i w q w i i u r t t e w w p 8 8 9 u t r i p 8 h f j ", +"@ > 7 w u q p p 9 p q w q 0 q w p p p q w i i p p w i i e r t r i w p 9 k 8 i t r q 0 0 9 y l g ", +"@ > 7 p e p p p 9 9 q w q 0 p p p p w i i i w 9 9 w e i i r a e w q 9 8 6 p a h w 0 p p 9 t f d ", +"@ > % 9 w q p p 0 0 w w p 9 9 0 p w e u w q p 9 9 q i w i u u w w p z 8 8 i t u p p p p 9 a f d ", +"x 1 % 8 p i w q p p w q 9 9 9 0 q i u e q 0 9 9 9 q i i i u i w w 0 8 k p a a q p p q 0 6 u f g ", +"x > $ 8 q a i q 0 p w p 9 9 9 p q w i w p 0 p p p i u i e u i w w 9 8 8 w t u p q q 0 6 % u l c ", +"v > 5 z q r w p 9 p q 9 9 9 9 p p p w q p b n m M a u r r r u i q 8 6 8 u a w p q 9 6 % % t N c ", +"@ > 5 9 p e p p 9 p q 9 9 p p p p q w q B V C Z A S e h D b h e 0 6 6 p a a w q p 8 % 5 8 F G d ", +"@ 1 5 p 0 q p 9 9 p q 0 p w w q q w w p H J K L L P I U V Y T p k 6 z u t u q p 0 8 5 8 w 3 N g ", +"@ > 5 w q 9 p p p w w p q w w p p q w p j R L L P L E H C W Q ! 5 8 i a r q p p 8 6 6 9 w ~ ^ g ", +"@ > 6 e w 9 p w i i w p p q p z z p w q / ( L L L ) E 4 _ ` ' ] 6 i r u w p p 9 5 5 k z q ~ N g ", +"[ > 6 w 0 k 9 r u i w p p p 9 k 8 p q p e { } L L | ...X.o.O.+.p a u p 8 9 z 6 5 k 0 p i D N n ", +"o > 6 p 8 6 9 a u i w p 0 9 8 6 8 p q 9 9 p @.#.$.%.i &.P *.=.8 r a w k 5 6 6 6 9 i u r t D N -.", +"[ > 6 9 8 5 9 a u i w p 9 8 6 6 9 p q p w ;.:.u q i r e >.$ k ,.( a 9 5 5 9 0 p r h r h r <.l 4 ", +"@ = 6 9 k 5 9 a u i w p 9 9 8 z p q w h 1.V C Y 2.3.3 u 9 B 4.m 5.6.8 5 8 u u a t a u e 0 t f -.", +"@ = 6 z 6 6 p t r e w 0 9 9 8 8 9 q e s 7.8.9.0.q.w.e.r.p D Y t.y.u.z k q t a t t u i w 9 t f d ", +"x ; 6 8 5 6 i y a u w 0 z 8 k k 9 p h N i.p.a.s.a.d.d.f.g.9 h.j.k.%.k 8 i ;.t a r i q q p ;.l d ", +"% = 5 8 5 z a y r i q 9 8 8 6 6 z p ;.N l.z.x.x.x.x.x.s.s.c.0 i [ 0 6 9 r v.r i w w q q p F N g ", +"v = 5 8 k p y t u w p 9 8 8 k k 9 w y m b.n.m.M.M.z.x.a.s.N.w :.-.s p p t a w q q q q p p F G g ", +"[ > 6 z 9 w t h w q 0 9 8 8 8 8 p i r B.V.C.Z.Z.Z.m.z.A.a.a.i d S.D.F.w t i q p q q q p p ;.G g ", +"+ 1 z 9 p q u r w p 9 9 9 8 k 8 p u a G.H.J.K.C.Z.L.M.P.P.z.I.B U.Y.u. .t w p p q q p p p F G g ", +"+ < 8 9 w q i i q 0 9 9 9 8 6 8 w r a h h &.T.R.K.L.E.M.E.L.W.p g.Q.!.% u q p p p p p p p F G g ", +"+ < 8 p i p w i p 9 9 9 9 8 6 z i r a t a u ~.^.K./.L./.K.C.(.9 k 5 8 u i q p p p p p p p F G g ", +"+ < 9 p i p q i q 9 z 9 9 8 8 9 e r h t r i l ).K._.K.`.'.K.8 8 6 6 z w w q p p p q p p p F G n ", +"+ < p q w p q w p p 9 9 9 9 z 0 u a h a i p l ].[.[.'.{.{.}.|.8 6 6 p q w i q q q q q p 0 ;.l n ", +"+ < q w q 9 0 q p p p 0 9 z 8 p a <.:.F y ~. Xi..X{.XXoX{.OX[ z 0 q r r i u i w w q q p p F G g ", +"+ < q w p 9 9 p p p 0 9 8 8 8 a +X@X@X#X#X7.$X%X&X*X=X*XXX-X[ 0 w i u q z 8 z 9 p q p 9 p F l d ", +"# < w i q 9 9 p q w p 9 8 6 w -.;X:X>X,X uXjXjXjXxXxXjXjXjXuXf <.B G g ", +"+ < 9 p w q q 9 p p z 9 9 9 w u CXZXnXnXnXzXzX(.k.| ; 9 9 p i k 5XuXjXxXxXxXxXxXxXjXuXf ;.<.G n ", +"+ < 0 w w w q 9 9 p 9 0 0 p i r a h AXSXDX(.FX, & |.z 9 9 w u 9 # N jXjXxXxXxXxXjXjXN f y <.l g ", +"+ < 0 w w w w 9 9 p 9 9 0 q i u u u i 9 z 8 |.u.p w 9 z p u a w $ yXjXjXjXxXxXjXjXjXGXc h F l d ", +"+ < p w w w w q 9 9 8 k 9 q w i i w w w q p q q w q 9 z p r u i w w hXjXjXjXjXjXjXV J hXe ;.l d ", +"+ < q q p q i w 9 8 8 k 9 q w i i w q q 0 p i w q q p p q u u u u e ;.yXN uXuX^ HXJ H y q v.l d ", +"+ < p p p q i p 8 6 k 8 0 w i u i i q q 9 9 q q p q w w q i e i e i r D -.f f f j hXy q 9 v.l d ", +"+ < 9 p q i w 9 6 6 6 9 q i r r u i w q p 8 8 p p q i i p q i w w w w e h y y t h w p 9 9 y f d ", +" < 0 w i i p 6 5 6 8 p i r a h r e w p p 8 k p i w i w 9 9 w w q p p w w q q p 0 8 8 9 9 v.HXd ", +". JXq u u w 9 5 6 8 0 i r a a h r i q p p 9 8 0 u e i u y v.<.<.F ;.F F F F F ;.y v.;.F F KXl g ", +"+ 9 s LX^ N l HXl N PXJ J J J J J J PXIXIXIXIXPXJ J J IXN N N N N N N N N N N N N N N N N V IXg ", +"y UXYXc g d -.-.YXYXUXH 4 4 4 4 UXs s TXTXRXTXs s H UXs TXRXRXTXTXs s s s s TXTXTXs TXTXs H j RX"}; diff -uNr gnome-0.11/lib/pixmaps/gnome-menu-left.xpm gnome-0.12/lib/pixmaps/gnome-menu-left.xpm --- gnome-0.11/lib/pixmaps/gnome-menu-left.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/gnome-menu-left.xpm Mon Jan 19 10:34:00 1998 @@ -0,0 +1,311 @@ +/* XPM */ +static char * gnome_menu_left_xpm[] = { +"48 48 260 2", +" c #BEFBC30BC71B", +". c #C71BC71BC71B", +"X c #B6DABAEABEFB", +"o c #B6DAB6DAB6DA", +"O c #BEFBBAEABEFB", +"+ c #BEFBBEFBBEFB", +"@ c #AEBAB2CAB6DA", +"# c #BEFBC30BBEFB", +"$ c #A699AAAAA699", +"% c #A699AAAAAEBA", +"& c #EFBEEBADEFBE", +"* c #E79DE79DE79D", +"= c #CF3CCF3CCF3C", +"- c #C71BCB2BCF3C", +"; c #CF3CCB2BCF3C", +": c #CF3CD34CCF3C", +"> c #CF3CD34CD75C", +", c #DF7DDB6CDF7D", +"< c #D75CD75CD75C", +"1 c #D75CD34CD75C", +"2 c #D75CDB6CDF7D", +"3 c #71C679E771C6", +"4 c #492451444924", +"5 c #A699A699A699", +"6 c #9E79A289A699", +"7 c #A699AEBAAEBA", +"8 c #9E799E799E79", +"9 c #96589A699E79", +"0 c #96589A699658", +"q c #8E3896589658", +"w c #8E3892489658", +"e c #8E388E388E38", +"r c #86178A288E38", +"t c #79E786178617", +"y c #79E782078617", +"u c #86178E388E38", +"i c #8E3892488E38", +"p c #965896589658", +"a c #86178A288617", +"s c #514455555144", +"d c #410349244924", +"f c #38E33CF338E3", +"g c #410345144103", +"h c #861786178617", +"j c #410341034103", +"k c #9E79A699A699", +"l c #BEFBC71BC71B", +"z c #D75CDF7DDF7D", +"x c #D75CDB6CD75C", +"c c #9E79A2899E79", +"v c #30C238E338E3", +"b c #96589E799E79", +"n c #C71BCF3CCF3C", +"m c #EFBEF3CEEFBE", +"M c #8E388A288E38", +"N c #30C234D330C2", +"B c #000004100000", +"V c #E79DEFBEEFBE", +"C c #59655D755965", +"Z c #000000000000", +"A c #AEBAAEBAAEBA", +"S c #FFFFFFFFFFFF", +"D c #69A671C671C6", +"F c #618565956185", +"G c #49244D344924", +"H c #38E341034103", +"J c #AEBAB2CAAEBA", +"K c #69A671C669A6", +"L c #410349244103", +"P c #4103410338E3", +"I c #69A669A66185", +"U c #71C675D671C6", +"Y c #28A22CB228A2", +"T c #28A228A22081", +"R c #514451444103", +"E c #69A66DB65965", +"W c #965896588617", +"Q c #69A66DB669A6", +"! c #71C67DF779E7", +"~ c #30C238E330C2", +"^ c #492451445144", +"/ c #208124922081", +"( c #8E38861771C6", +") c #C71BBEFB9E79", +"_ c #BEFBBAEA9E79", +"` c #96589A698E38", +"' c #596561856185", +"] c #38E338E330C2", +"[ c #71C675D669A6", +"{ c #104010401040", +"} c #38E338E338E3", +"| c #4103410330C2", +" . c #9E79A2899658", +".. c #8617820769A6", +"X. c #BEFBB6DA9658", +"o. c #B6DAB6DAA699", +"O. c #69A675D671C6", +"+. c #30C230C230C2", +"@. c #18611C711861", +"#. c #596561855965", +"$. c #596559654924", +"%. c #C71BC30BAEBA", +"&. c #51444D344103", +"*. c #C71BC30BA699", +"=. c #D75CCB2BAEBA", +"-. c #C71BC30BB6DA", +";. c #B6DAB2CAB6DA", +":. c #8E388A2879E7", +">. c #BEFBB6DA9E79", +",. c #F7DEEFBEEFBE", +"<. c #A699A289A699", +"1. c #514455554924", +"2. c #71C671C65965", +"3. c #CF3CCB2BAEBA", +"4. c #DF7DDF7DDF7D", +"5. c #EFBEEBADE79D", +"6. c #A699A6999658", +"7. c #B6DAAEBA9E79", +"8. c #DF7DDB6CD75C", +"9. c #EFBEEFBEEFBE", +"0. c #8E388A288617", +"q. c #CF3CC71BBEFB", +"w. c #E79DE38DDF7D", +"e. c #79E77DF779E7", +"r. c #A699A2899E79", +"t. c #618561855965", +"y. c #71C679E779E7", +"u. c #514451445144", +"i. c #492449244103", +"p. c #596559655144", +"a. c #30C230C228A2", +"s. c #8E388A2871C6", +"d. c #AEBAAAAA9658", +"f. c #208120811861", +"g. c #41033CF330C2", +"h. c #861779E76185", +"j. c #A6999A6979E7", +"k. c #A6999E798617", +"l. c #96588E3871C6", +"z. c #79E775D66185", +"x. c #8617820779E7", +"c. c #9E79965879E7", +"v. c #BEFBAEBA9658", +"b. c #C71BC30BC71B", +"n. c #410338E330C2", +"m. c #9E798E3879E7", +"M. c #B6DAA2898E38", +"N. c #B6DAA6998E38", +"B. c #AEBAA2898617", +"V. c #A69996588617", +"C. c #9E7996588E38", +"Z. c #9E7996588617", +"A. c #B6DAAAAA8E38", +"S. c #E79DDF7DDF7D", +"D. c #71C665955144", +"F. c #AEBA9A698617", +"G. c #AEBA9E798617", +"H. c #A699A6999E79", +"J. c #79E7820779E7", +"K. c #79E76DB65965", +"L. c #A699965879E7", +"P. c #AEBA965879E7", +"I. c #AEBA96588617", +"U. c #B6DAA6999658", +"Y. c #69A665956185", +"T. c #79E76DB66185", +"R. c #A6998E3879E7", +"E. c #A699924879E7", +"W. c #B6DA9E798E38", +"Q. c #20811C711861", +"!. c #59654D344103", +"~. c #AEBAA2899658", +"^. c #861782078617", +"/. c #86177DF771C6", +"(. c #9E798A2879E7", +"). c #A6998A2879E7", +"_. c #AEBA924879E7", +"`. c #B6DA9A698617", +"'. c #965892488E38", +"]. c #596555554924", +"[. c #BEFBA6999658", +"{. c #9658861779E7", +"}. c #9E79861771C6", +"|. c #AEBA92488617", +" X c #965892488617", +".X c #B6DAA2899E79", +"XX c #F7DEF3CEF7DE", +"oX c #618561856185", +"OX c #79E769A65965", +"+X c #AEBA8E3879E7", +"@X c #9E7996589658", +"#X c #38E334D328A2", +"$X c #AEBA8A2879E7", +"%X c #A699861771C6", +"&X c #9E79820771C6", +"*X c #38E330C228A2", +"=X c #A699861779E7", +"-X c #9E797DF771C6", +";X c #A69986178617", +":X c #AEBAAAAAAEBA", +">X c #A6997DF771C6", +",X c #9E7979E769A6", +" > > : > > > > , , , , < < < > > > > 1 < < < 2 , , , 2 < < o 3 4 ", +"o , + % 5 $ 5 5 6 6 6 6 6 5 5 % $ 5 $ % 7 % % 8 9 0 q w e r t y t r u i p 9 8 6 8 p u a i q s d ", +"@ > 6 i i w w i e u u e e q p p p p p 9 9 p q p p w i i u r t t r i w w 9 8 8 0 i a a i 8 u f g ", +"@ > 5 i i p 9 6 6 6 6 8 p p w q q p p p p w i w q w i i u r t t e w w p 8 8 9 u t r i p 8 h f j ", +"@ > 7 w e k l 2 z x : l 7 9 w w p p p q w i i p p w i i e r t r i w p 9 c 8 i t r q 0 0 9 y v g ", +"@ > 7 p b n m M N B B N M 9 w w q p w i i i w 9 9 w e i i r a e w q 9 8 6 p a h w 0 p p 9 t f d ", +"@ > % 6 V C Z Z Z Z Z Z C y e q w e u w q p 9 9 q i w i u u w w p b 8 8 i t u p p p p 9 a f d ", +"A 1 % 7 x M Z Z Z S Z Z Z Z M D e e u e q 0 9 9 9 q i i i u i w w 0 8 c p a a q p p q 0 6 u f g ", +"A > $ A < N Z Z S S Z F S Z N G h i i w p 0 p p p i u i e u i w w 9 8 8 w t u p q q 0 6 % u v H ", +"J > 5 7 > B Z S S S S S S Z B H t w w q p K L P I a u r r r u i q 8 6 8 u a w p q 9 6 % % t N H ", +"@ > 5 $ > B Z S S S S S S Z B f y w w q U Y T R E W e h Q K h e 0 6 6 p a a w q p 8 % 5 8 ! ~ d ", +"@ 1 5 6 - N Z Z S S Z F S Z N f y w w p ^ / ( ) ) _ ` ' Y ] [ p c 6 b u t u q p 0 8 5 8 w 3 N g ", +"@ > k q 7 M Z Z Z S Z Z Z { } j h w w p j | ) ) _ ) .^ T ..X.o.5 8 i a r q p p 8 6 6 9 w O.+.g ", +"@ > 6 e q b C Z Z Z Z Z @.Y / ' q p w q #.$.) ) ) %. .4 &.*.=.-.6 i r u w p p 9 5 5 c b q O.N g ", +";.> 6 w p 9 y M N B B N Y / s r b p q p e :.>.) ) ,.<.1.2.3.4.5.p a u p 8 9 b 6 5 c 0 p i Q N L ", +"o > 6 p b 6 e F d f f f g ' r 6 8 p q 9 9 p 6.7.8.9.i 0._ q.w.8 r a w c 5 6 6 6 9 i u r t Q N G ", +";.> 6 9 8 k p t y e.e.t r p 8 6 9 p q p w e.D u q i r e r.$ c t.$.a 9 5 5 9 0 p r h r h r y.v 4 ", +"@ = 6 9 c 5 9 h u u i p 0 9 8 b p q w h u.Y T ] i.p.3 u 9 U a.P s.d.8 5 8 u u a t a u e 0 t f G ", +"@ = 6 b 6 6 p t r e w 0 9 9 8 8 9 q e s f.g.h.j.k.l.z.x.p Q ] c.v.b.b c q t a t t u i w 9 t f d ", +"A ; 6 8 5 6 i y a u w 0 b 8 c c 9 p h N n.m.M.N.M.B.B.V.C.9 Z.A.S.9.c 8 i e.t a r i q q p e.v d ", +"% = 5 8 5 b a y r i q 9 8 8 6 6 b p e.N D.F.G.G.G.G.G.N.N.H.0 i ;.0 6 9 r J.r i w w q q p ! N g ", +"J = 5 8 c p y t u w p 9 8 8 c c 9 w y P K.L.P.I.I.F.G.M.N.U.w D G s p p t a w q q q q p p ! ~ g ", +";.> 6 b 9 w t h w q 0 9 8 8 8 8 p i r Y.T.R.E.E.E.P.F.W.M.M.i d Q.!.~.w t i q p q q q p p e.~ g ", +"+ 1 b 9 p q u r w p 9 9 9 8 c 8 p u a ^./.(.).R.E._.I.`.`.F.'.U ].[.b.<.t w p p q q p p p ! ~ g ", +"+ < 8 9 w q i i q 0 9 9 9 8 6 8 w r a h h 0.{.}.)._.|.I.|._. Xp C..XXX% u q p p p p p p p ! ~ g ", +"+ < 8 p i p w i p 9 9 9 9 8 6 b i r a t a u oXOX).+X_.+X).R.@X9 c 5 8 u i q p p p p p p p ! ~ g ", +"+ < 9 p i p q i q 9 b 9 9 8 8 9 e r h t r i v #X).$X).%X&X).8 8 6 6 b w w q p p p q p p p ! ~ L ", +"+ < p q w p q w p p 9 9 9 9 b 0 u a h a i p v *X=X=X&X-X-X;X:X8 6 6 p q w i q q q q q p 0 e.v L ", +"+ < q w q 9 0 q p p p 0 9 b 8 p a y.D ! y oX@.n.>X-X,X c #CF3CD34CD75C", +", c #DF7DDB6CDF7D", +"< c #D75CD75CD75C", +"1 c #D75CD34CD75C", +"2 c #D75CDB6CDF7D", +"3 c #71C679E771C6", +"4 c #492451444924", +"5 c #A699A699A699", +"6 c #9E79A289A699", +"7 c #A699AEBAAEBA", +"8 c #9E799E799E79", +"9 c #96589A699E79", +"0 c #96589A699658", +"q c #8E3896589658", +"w c #8E3892489658", +"e c #8E388E388E38", +"r c #86178A288E38", +"t c #79E786178617", +"y c #79E782078617", +"u c #86178E388E38", +"i c #8E3892488E38", +"p c #965896589658", +"a c #86178A288617", +"s c #514455555144", +"d c #410349244924", +"f c #38E33CF338E3", +"g c #410345144103", +"h c #861786178617", +"j c #410341034103", +"k c #9E79A2899E79", +"l c #30C238E338E3", +"z c #96589E799E79", +"x c #AEBAAEBAAEBA", +"c c #38E341034103", +"v c #AEBAB2CAAEBA", +"b c #69A671C669A6", +"n c #410349244103", +"m c #4103410338E3", +"M c #69A669A66185", +"N c #30C234D330C2", +"B c #71C675D671C6", +"V c #28A22CB228A2", +"C c #28A228A22081", +"Z c #514451444103", +"A c #69A66DB65965", +"S c #965896588617", +"D c #69A66DB669A6", +"F c #71C67DF779E7", +"G c #30C238E330C2", +"H c #492451445144", +"J c #208124922081", +"K c #8E38861771C6", +"L c #C71BBEFB9E79", +"P c #BEFBBAEA9E79", +"I c #96589A698E38", +"U c #596561856185", +"Y c #38E338E330C2", +"T c #71C675D669A6", +"R c #4103410330C2", +"E c #9E79A2899658", +"W c #8617820769A6", +"Q c #BEFBB6DA9658", +"! c #B6DAB6DAA699", +"~ c #69A675D671C6", +"^ c #30C230C230C2", +"/ c #596561855965", +"( c #596559654924", +") c #C71BC30BAEBA", +"_ c #51444D344103", +"` c #C71BC30BA699", +"' c #D75CCB2BAEBA", +"] c #C71BC30BB6DA", +"[ c #B6DAB2CAB6DA", +"{ c #8E388A2879E7", +"} c #BEFBB6DA9E79", +"| c #F7DEEFBEEFBE", +" . c #A699A289A699", +".. c #514455554924", +"X. c #71C671C65965", +"o. c #CF3CCB2BAEBA", +"O. c #DF7DDF7DDF7D", +"+. c #EFBEEBADE79D", +"@. c #A699A6999658", +"#. c #B6DAAEBA9E79", +"$. c #DF7DDB6CD75C", +"%. c #EFBEEFBEEFBE", +"&. c #8E388A288617", +"*. c #CF3CC71BBEFB", +"=. c #E79DE38DDF7D", +"-. c #49244D344924", +";. c #79E77DF779E7", +":. c #69A671C671C6", +">. c #A699A2899E79", +",. c #618561855965", +"<. c #71C679E779E7", +"1. c #514451445144", +"2. c #492449244103", +"3. c #596559655144", +"4. c #30C230C228A2", +"5. c #8E388A2871C6", +"6. c #AEBAAAAA9658", +"7. c #208120811861", +"8. c #41033CF330C2", +"9. c #861779E76185", +"0. c #A6999A6979E7", +"q. c #A6999E798617", +"w. c #96588E3871C6", +"e. c #79E775D66185", +"r. c #8617820779E7", +"t. c #9E79965879E7", +"y. c #BEFBAEBA9658", +"u. c #C71BC30BC71B", +"i. c #410338E330C2", +"p. c #9E798E3879E7", +"a. c #B6DAA2898E38", +"s. c #B6DAA6998E38", +"d. c #AEBAA2898617", +"f. c #A69996588617", +"g. c #9E7996588E38", +"h. c #9E7996588617", +"j. c #B6DAAAAA8E38", +"k. c #E79DDF7DDF7D", +"l. c #71C665955144", +"z. c #AEBA9A698617", +"x. c #AEBA9E798617", +"c. c #A699A6999E79", +"v. c #79E7820779E7", +"b. c #79E76DB65965", +"n. c #A699965879E7", +"m. c #AEBA965879E7", +"M. c #AEBA96588617", +"N. c #B6DAA6999658", +"B. c #69A665956185", +"V. c #79E76DB66185", +"C. c #A6998E3879E7", +"Z. c #A699924879E7", +"A. c #B6DA9E798E38", +"S. c #20811C711861", +"D. c #59654D344103", +"F. c #AEBAA2899658", +"G. c #861782078617", +"H. c #86177DF771C6", +"J. c #9E798A2879E7", +"K. c #A6998A2879E7", +"L. c #AEBA924879E7", +"P. c #B6DA9A698617", +"I. c #965892488E38", +"U. c #596555554924", +"Y. c #BEFBA6999658", +"T. c #9658861779E7", +"R. c #9E79861771C6", +"E. c #AEBA92488617", +"W. c #965892488617", +"Q. c #B6DAA2899E79", +"!. c #F7DEF3CEF7DE", +"~. c #618561856185", +"^. c #79E769A65965", +"/. c #AEBA8E3879E7", +"(. c #9E7996589658", +"). c #38E334D328A2", +"_. c #AEBA8A2879E7", +"`. c #A699861771C6", +"'. c #9E79820771C6", +"]. c #38E330C228A2", +"[. c #A699861779E7", +"{. c #9E797DF771C6", +"}. c #A69986178617", +"|. c #AEBAAAAAAEBA", +" X c #18611C711861", +".X c #A6997DF771C6", +"XX c #9E7979E769A6", +"oX c #965879E769A6", +"OX c #A6999A699E79", +"+X c #492449244924", +"@X c #28A228A228A2", +"#X c #38E334D330C2", +"$X c #28A220812081", +"%X c #69A655554924", +"&X c #9E7979E771C6", +"*X c #9E7975D669A6", +"=X c #965875D669A6", +"-X c #AEBAA699A699", +";X c #186118611861", +":X c #28A224922081", +">X c #5965410338E3", +",X c #69A64D344924", +" > > : > > > > , , , , < < < > > > > 1 < < < 2 , , , 2 < < o 3 4 ", +"o , + % 5 $ 5 5 6 6 6 6 6 5 5 % $ 5 $ % 7 % % 8 9 0 q w e r t y t r u i p 9 8 6 8 p u a i q s d ", +"@ > 6 i i w w i e u u e i q p p p p p 9 9 p q p p w i i u r t t r i w w 9 8 8 0 i a a i 8 u f g ", +"@ > 5 i i q q q q w w w q p p q q p p p p w i w q w i i u r t t e w w p 8 8 9 u t r i p 8 h f j ", +"@ > 7 w u q p p 9 p q w q 0 q w p p p q w i i p p w i i e r t r i w p 9 k 8 i t r q 0 0 9 y l g ", +"@ > 7 p e p p p 9 9 q w q 0 p p p p w i i i w 9 9 w e i i r a e w q 9 8 6 p a h w 0 p p 9 t f d ", +"@ > % 9 w q p p 0 0 w w p 9 9 0 p w e u w q p 9 9 q i w i u u w w p z 8 8 i t u p p p p 9 a f d ", +"x 1 % 8 p i w q p p w q 9 9 9 0 q i u e q 0 9 9 9 q i i i u i w w 0 8 k p a a q p p q 0 6 u f g ", +"x > $ 8 q a i q 0 p w p 9 9 9 p q w i w p 0 p p p i u i e u i w w 9 8 8 w t u p q q 0 6 % u l c ", +"v > 5 z q r w p 9 p q 9 9 9 9 p p p w q p b n m M a u r r r u i q 8 6 8 u a w p q 9 6 % % t N c ", +"@ > 5 9 p e p p 9 p q 9 9 p p p p q w q B V C Z A S e h D b h e 0 6 6 p a a w q p 8 % 5 8 F G d ", +"@ 1 5 p 0 q p 9 9 p q 0 p w w q q w w p H J K L L P I U V Y T p k 6 z u t u q p 0 8 5 8 w 3 N g ", +"@ > 5 w q 9 p p p w w p q w w p p q w p j R L L P L E H C W Q ! 5 8 i a r q p p 8 6 6 9 w ~ ^ g ", +"@ > 6 e w 9 p w i i w p p q p z z p w q / ( L L L ) E 4 _ ` ' ] 6 i r u w p p 9 5 5 k z q ~ N g ", +"[ > 6 w 0 k 9 r u i w p p p 9 k 8 p q p e { } L L | ...X.o.O.+.p a u p 8 9 z 6 5 k 0 p i D N n ", +"o > 6 p 8 6 9 a u i w p 0 9 8 6 8 p q 9 9 p @.#.$.%.i &.P *.=.8 r a w k 5 6 6 6 9 i u r t D N -.", +"[ > 6 9 8 5 9 a u i w p 9 8 6 6 9 p q p w ;.:.u q i r e >.$ k ,.( a 9 5 5 9 0 p r h r h r <.l 4 ", +"@ = 6 9 k 5 9 a u i w p 9 9 8 z p q w h 1.V C Y 2.3.3 u 9 B 4.m 5.6.8 5 8 u u a t a u e 0 t f -.", +"@ = 6 z 6 6 p t r e w 0 9 9 8 8 9 q e s 7.8.9.0.q.w.e.r.p D Y t.y.u.z k q t a t t u i w 9 t f d ", +"x ; 6 8 5 6 i y a u w 0 z 8 k k 9 p h N i.p.a.s.a.d.d.f.g.9 h.j.k.%.k 8 i ;.t a r i q q p ;.l d ", +"% = 5 8 5 z a y r i q 9 8 8 6 6 z p ;.N l.z.x.x.x.x.x.s.s.c.0 i [ 0 6 9 r v.r i w w q q p F N g ", +"v = 5 8 k p y t u w p 9 8 8 k k 9 w y m b.n.m.M.M.z.x.a.s.N.w :.-.s p p t a w q q q q p p F G g ", +"[ > 6 z 9 w t h w q 0 9 8 8 8 8 p i r B.V.C.Z.Z.Z.m.z.A.a.a.i d S.D.F.w t i q p q q q p p ;.G g ", +"+ 1 z 9 p q u r w p 9 9 9 8 k 8 p u a G.H.J.K.C.Z.L.M.P.P.z.I.B U.Y.u. .t w p p q q p p p F G g ", +"+ < 8 9 w q i i q 0 9 9 9 8 6 8 w r a h h &.T.R.K.L.E.M.E.L.W.p g.Q.!.% u q p p p p p p p F G g ", +"+ < 8 p i p w i p 9 9 9 9 8 6 z i r a t a u ~.^.K./.L./.K.C.(.9 k 5 8 u i q p p p p p p p F G g ", +"+ < 9 p i p q i q 9 z 9 9 8 8 9 e r h t r i l ).K._.K.`.'.K.8 8 6 6 z w w q p p p q p p p F G n ", +"+ < p q w p q w p p 9 9 9 9 z 0 u a h a i p l ].[.[.'.{.{.}.|.8 6 6 p q w i q q q q q p 0 ;.l n ", +"+ < q w q 9 0 q p p p 0 9 z 8 p a <.:.F y ~. Xi..X{.XXoX{.OX[ z 0 q r r i u i i w q q p p F G g ", +"+ < q w p 9 9 p p p 0 9 8 8 8 a +X@X@X#X#X7.$X%X&X*X=X*XXX-X[ 0 q q q 0 k 8 9 w w w p 9 p F l d ", +"# < w i q 9 9 p q w p 9 8 6 w -.;X:X>X,X 4X> 4X 5X0 p p 9 9 v.f -.", +"# < w w q p 0 q w w p 9 8 6 r @X$X6X7X8X9X0XqXqX0X9X0XqXwXeX[ 5XrXtXyXN uXuXN yX8 9 9 z 8 h f -.", +" < q w p p 0 q i i q 9 8 6 y :XiXpX7X8XaX9X9X9X9X9X9X0XsXdX|.fXtXgXhXhXhXhXhXhXgXh w 8 8 y l g ", +" < q w p p 0 p i i q 9 8 8 e 4.jXkXpXlX7X8X8X8X7X8X9X(.| O.5X< yXhXhXhXhXzXhXhXhXyXD u u :.^ c ", +" < p w q p p 0 w q p 9 8 z p xXcXvXkXbXlXlXlXlXlXnXmX| & z 5X4XN hXzXMXhXzXzXhXhXN n <.y b N j ", +"# < 9 p q p p 9 p p 9 9 8 9 p ;.NXvXkXbXbXlXlXbX8XBX| O.z 9 5X4XuXhXzXzXzXzXzXzXhXuXf 3 a 3 G g ", +"+ < 9 p w q q 9 p p z 9 9 9 w u VXCXbXbXbXlXlX(.k.| ; 9 9 p 8 rXuXhXzXzXzXzXzXzXhXuXf ;.e F G n ", +"+ < 0 w w w q 9 9 p 9 0 0 p i r a h ZXAXSX(.DX, & |.z 9 9 w 0 # N hXzXMXhXzXzXhXhXN f v.w F l g ", +"+ < 0 w w w w 9 9 p 9 9 0 q i u u u i 9 z 8 |.u.p w 9 z p u u 5XyXhXhXhXhXzXhXhXhXFXc y w ;.l d ", +"+ < p w w w w q 9 9 8 k 9 q w i i w w w q p q q w q 9 z p r u w w gXhXhXhXhXhXhXGXJ HXu p ;.l d ", +"+ < q q p q i w 9 8 8 k 9 q w i i w q q 0 p i w q q p p q u u u u <.yXN uXuXJXGXJ 4 ;.w p v.l d ", +"+ < p p p q i p 8 6 k 8 0 w i u i i q q 9 9 q q p q w w q i e e e a D -.f f f j gXv.w p 9 v.l d ", +"+ < 9 p q i w 9 6 6 6 9 q i r r u i w q p 8 8 p p q i i p q i w i w e h y y y h e p 9 9 9 y f d ", +" < 0 w i i p 6 5 6 8 p i r a h r e w p p 8 k p i w i w 9 9 w w q p q w w q q p 9 8 8 9 9 v.KXd ", +". LXq u u w 9 5 6 8 0 i r a a h r i q p p 9 8 0 u e i u y v.<.<.F ;.F F F F F ;.y v.;.F F PXl g ", +"+ 9 s JX^ N l KXl N IXJ J J J J J J IXUXUXUXUXIXJ J J UXN N N N N N N N N N N N N N N N N V UXg ", +"y YXTXc g d -.-.TXTXYXH 4 4 4 4 YXs s RXRXEXRXs s H YXs RXEXEXRXRXs s s s s RXRXRXs RXRXs H j EX"}; diff -uNr gnome-0.11/lib/pixmaps/gnome-menu-up.xpm gnome-0.12/lib/pixmaps/gnome-menu-up.xpm --- gnome-0.11/lib/pixmaps/gnome-menu-up.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/gnome-menu-up.xpm Mon Jan 19 10:34:04 1998 @@ -0,0 +1,313 @@ +/* XPM */ +static char * gnome_menu_up_xpm[] = { +"48 48 262 2", +" c #BEFBC30BC71B", +". c #C71BC71BC71B", +"X c #B6DABAEABEFB", +"o c #B6DAB6DAB6DA", +"O c #BEFBBAEABEFB", +"+ c #BEFBBEFBBEFB", +"@ c #AEBAB2CAB6DA", +"# c #BEFBC30BBEFB", +"$ c #A699AAAAA699", +"% c #A699AAAAAEBA", +"& c #EFBEEBADEFBE", +"* c #E79DE79DE79D", +"= c #CF3CCF3CCF3C", +"- c #C71BCB2BCF3C", +"; c #CF3CCB2BCF3C", +": c #CF3CD34CCF3C", +"> c #CF3CD34CD75C", +", c #DF7DDB6CDF7D", +"< c #D75CD75CD75C", +"1 c #D75CD34CD75C", +"2 c #D75CDB6CDF7D", +"3 c #71C679E771C6", +"4 c #492451444924", +"5 c #A699A699A699", +"6 c #9E79A289A699", +"7 c #A699AEBAAEBA", +"8 c #9E799E799E79", +"9 c #96589A699E79", +"0 c #96589A699658", +"q c #8E3896589658", +"w c #8E3892489658", +"e c #8E388E388E38", +"r c #86178A288E38", +"t c #79E786178617", +"y c #79E782078617", +"u c #86178E388E38", +"i c #8E3892488E38", +"p c #965896589658", +"a c #86178A288617", +"s c #514455555144", +"d c #410349244924", +"f c #38E33CF338E3", +"g c #410345144103", +"h c #861786178617", +"j c #410341034103", +"k c #9E79A699A699", +"l c #BEFBC71BC71B", +"z c #D75CDF7DDF7D", +"x c #D75CDB6CD75C", +"c c #9E79A2899E79", +"v c #30C238E338E3", +"b c #96589E799E79", +"n c #C71BCF3CCF3C", +"m c #EFBEF3CEEFBE", +"M c #8E388A288E38", +"N c #30C234D330C2", +"B c #000004100000", +"V c #E79DEFBEEFBE", +"C c #59655D755965", +"Z c #000000000000", +"A c #AEBAAEBAAEBA", +"S c #FFFFFFFFFFFF", +"D c #69A671C671C6", +"F c #49244D344924", +"G c #38E341034103", +"H c #AEBAB2CAAEBA", +"J c #69A671C669A6", +"K c #410349244103", +"L c #4103410338E3", +"P c #69A669A66185", +"I c #71C675D671C6", +"U c #28A22CB228A2", +"Y c #28A228A22081", +"T c #514451444103", +"R c #69A66DB65965", +"E c #965896588617", +"W c #69A66DB669A6", +"Q c #71C67DF779E7", +"! c #30C238E330C2", +"~ c #618565956185", +"^ c #492451445144", +"/ c #208124922081", +"( c #8E38861771C6", +") c #C71BBEFB9E79", +"_ c #BEFBBAEA9E79", +"` c #96589A698E38", +"' c #596561856185", +"] c #38E338E330C2", +"[ c #71C675D669A6", +"{ c #186120812081", +"} c #4103410330C2", +"| c #9E79A2899658", +" . c #8617820769A6", +".. c #BEFBB6DA9658", +"X. c #B6DAB6DAA699", +"o. c #69A675D671C6", +"O. c #30C230C230C2", +"+. c #08200C300820", +"@. c #38E338E338E3", +"#. c #596561855965", +"$. c #596559654924", +"%. c #C71BC30BAEBA", +"&. c #51444D344103", +"*. c #C71BC30BA699", +"=. c #D75CCB2BAEBA", +"-. c #C71BC30BB6DA", +";. c #B6DAB2CAB6DA", +":. c #208120812081", +">. c #8E388A2879E7", +",. c #BEFBB6DA9E79", +"<. c #F7DEEFBEEFBE", +"1. c #A699A289A699", +"2. c #514455554924", +"3. c #71C671C65965", +"4. c #CF3CCB2BAEBA", +"5. c #DF7DDF7DDF7D", +"6. c #EFBEEBADE79D", +"7. c #A699A6999658", +"8. c #B6DAAEBA9E79", +"9. c #DF7DDB6CD75C", +"0. c #EFBEEFBEEFBE", +"q. c #8E388A288617", +"w. c #CF3CC71BBEFB", +"e. c #E79DE38DDF7D", +"r. c #79E77DF779E7", +"t. c #A699A2899E79", +"y. c #618561855965", +"u. c #71C679E779E7", +"i. c #514451445144", +"p. c #492449244103", +"a. c #596559655144", +"s. c #30C230C228A2", +"d. c #8E388A2871C6", +"f. c #AEBAAAAA9658", +"g. c #208120811861", +"h. c #41033CF330C2", +"j. c #861779E76185", +"k. c #A6999A6979E7", +"l. c #A6999E798617", +"z. c #96588E3871C6", +"x. c #79E775D66185", +"c. c #8617820779E7", +"v. c #9E79965879E7", +"b. c #BEFBAEBA9658", +"n. c #C71BC30BC71B", +"m. c #410338E330C2", +"M. c #9E798E3879E7", +"N. c #B6DAA2898E38", +"B. c #B6DAA6998E38", +"V. c #AEBAA2898617", +"C. c #A69996588617", +"Z. c #9E7996588E38", +"A. c #9E7996588617", +"S. c #B6DAAAAA8E38", +"D. c #E79DDF7DDF7D", +"F. c #71C665955144", +"G. c #AEBA9A698617", +"H. c #AEBA9E798617", +"J. c #A699A6999E79", +"K. c #79E7820779E7", +"L. c #79E76DB65965", +"P. c #A699965879E7", +"I. c #AEBA965879E7", +"U. c #AEBA96588617", +"Y. c #B6DAA6999658", +"T. c #69A665956185", +"R. c #79E76DB66185", +"E. c #A6998E3879E7", +"W. c #A699924879E7", +"Q. c #B6DA9E798E38", +"!. c #20811C711861", +"~. c #59654D344103", +"^. c #AEBAA2899658", +"/. c #861782078617", +"(. c #86177DF771C6", +"). c #9E798A2879E7", +"_. c #A6998A2879E7", +"`. c #AEBA924879E7", +"'. c #B6DA9A698617", +"]. c #965892488E38", +"[. c #596555554924", +"{. c #BEFBA6999658", +"}. c #9658861779E7", +"|. c #9E79861771C6", +" X c #AEBA92488617", +".X c #965892488617", +"XX c #B6DAA2899E79", +"oX c #F7DEF3CEF7DE", +"OX c #618561856185", +"+X c #79E769A65965", +"@X c #AEBA8E3879E7", +"#X c #9E7996589658", +"$X c #38E334D328A2", +"%X c #AEBA8A2879E7", +"&X c #A699861771C6", +"*X c #9E79820771C6", +"=X c #38E330C228A2", +"-X c #A699861779E7", +";X c #9E797DF771C6", +":X c #A69986178617", +">X c #AEBAAAAAAEBA", +",X c #18611C711861", +" > > : > > > > , , , , < < < > > > > 1 < < < 2 , , , 2 < < o 3 4 ", +"o , + % 5 $ 5 5 6 6 6 6 6 5 5 % $ 5 $ % 7 % % 8 9 0 q w e r t y t r u i p 9 8 6 8 p u a i q s d ", +"@ > 6 i i w w i e u u e e q p p p p p 9 9 p q p p w i i u r t t r i w w 9 8 8 0 i a a i 8 u f g ", +"@ > 5 i i p 9 6 6 6 6 8 p p w q q p p p p w i w q w i i u r t t e w w p 8 8 9 u t r i p 8 h f j ", +"@ > 7 w e k l 2 z x : l 7 9 w w p p p q w i i p p w i i e r t r i w p 9 c 8 i t r q 0 0 9 y v g ", +"@ > 7 p b n m M N B B N M 9 w w q p w i i i w 9 9 w e i i r a e w q 9 8 6 p a h w 0 p p 9 t f d ", +"@ > % 6 V C Z Z Z Z Z Z C y e q w e u w q p 9 9 q i w i u u w w p b 8 8 i t u p p p p 9 a f d ", +"A 1 % 7 x M Z Z Z S S Z Z Z M D e e u e q 0 9 9 9 q i i i u i w w 0 8 c p a a q p p q 0 6 u f g ", +"A > $ A < N Z Z S S S S Z Z N F h i i w p 0 p p p i u i e u i w w 9 8 8 w t u p q q 0 6 % u v G ", +"H > 5 7 > B Z S S S S S S Z B G t w w q p J K L P a u r r r u i q 8 6 8 u a w p q 9 6 % % t N G ", +"@ > 5 $ > B Z Z Z S S Z Z Z B f y w w q I U Y T R E e h W J h e 0 6 6 p a a w q p 8 % 5 8 Q ! d ", +"@ 1 5 6 - N Z Z ~ S S ~ Z Z N f y w w p ^ / ( ) ) _ ` ' U ] [ p c 6 b u t u q p 0 8 5 8 w 3 N g ", +"@ > k q 7 M Z Z S S S S Z Z { j h w w p j } ) ) _ ) | ^ Y ...X.5 8 i a r q p p 8 6 6 9 w o.O.g ", +"@ > 6 e q b C Z Z Z Z Z +.@./ ' q p w q #.$.) ) ) %.| 4 &.*.=.-.6 i r u w p p 9 5 5 c b q o.N g ", +";.> 6 w p 9 y M N B B N :./ s r b p q p e >.,.) ) <.1.2.3.4.5.6.p a u p 8 9 b 6 5 c 0 p i W N K ", +"o > 6 p b 6 e ~ d f f f g ' r 6 8 p q 9 9 p 7.8.9.0.i q._ w.e.8 r a w c 5 6 6 6 9 i u r t W N F ", +";.> 6 9 8 k p t y r.r.t r p 8 6 9 p q p w r.D u q i r e t.$ c y.$.a 9 5 5 9 0 p r h r h r u.v 4 ", +"@ = 6 9 c 5 9 h u u i p 0 9 8 b p q w h i.U Y ] p.a.3 u 9 I s.L d.f.8 5 8 u u a t a u e 0 t f F ", +"@ = 6 b 6 6 p t r e w 0 9 9 8 8 9 q e s g.h.j.k.l.z.x.c.p W ] v.b.n.b c q t a t t u i w 9 t f d ", +"A ; 6 8 5 6 i y a u w 0 b 8 c c 9 p h N m.M.N.B.N.V.V.C.Z.9 A.S.D.0.c 8 i r.t a r i q q p r.v d ", +"% = 5 8 5 b a y r i q 9 8 8 6 6 b p r.N F.G.H.H.H.H.H.B.B.J.0 i ;.0 6 9 r K.r i w w q q p Q N g ", +"H = 5 8 c p y t u w p 9 8 8 c c 9 w y L L.P.I.U.U.G.H.N.B.Y.w D F s p p t a w q q q q p p Q ! g ", +";.> 6 b 9 w t h w q 0 9 8 8 8 8 p i r T.R.E.W.W.W.I.G.Q.N.N.i d !.~.^.w t i q p q q q p p r.! g ", +"+ 1 b 9 p q u r w p 9 9 9 8 c 8 p u a /.(.)._.E.W.`.U.'.'.G.].I [.{.n.1.t w p p q q p p p Q ! g ", +"+ < 8 9 w q i i q 0 9 9 9 8 6 8 w r a h h q.}.|._.`. XU. X`..Xp Z.XXoX% u q p p p p p p p Q ! g ", +"+ < 8 p i p w i p 9 9 9 9 8 6 b i r a t a u OX+X_.@X`.@X_.E.#X9 c 5 8 u i q p p p p p p p Q ! g ", +"+ < 9 p i p q i q 9 b 9 9 8 8 9 e r h t r i v $X_.%X_.&X*X_.8 8 6 6 b w w q p p p q p p p Q ! K ", +"+ < p q w p q w p p 9 9 9 9 b 0 u a h a i p v =X-X-X*X;X;X:X>X8 6 6 p q w i q q q q q p 0 r.v K ", +"+ < q w q 9 0 q p p p 0 9 b 8 p a u.D Q y OX,Xm.Xp w w w w w p w i p p p 9 9 K.f F ", +"# < w w q p 0 q w w p 9 8 6 r 5X7XsXdXfXgXhXjXjXhXgXhXjXkXlX;.q q q p p q q q q b 8 b 8 8 h f F ", +" < q w p p 0 q i i q 9 8 6 y rXzXxXdXfXcXgXgXgXgXgXgXhXvXbX>Xq p p p p p q w q 9 8 8 8 8 y v g ", +" < q w p p 0 p i i q 9 8 8 e s.nXmXxXMXdXfXfXfXdXfXgX#X<.5.p q p p p p p q q p q w q w e D O.G ", +" < p w q p p 0 w q p 9 8 b p NXBXVXmXCXMXMXMXMXMXZXAX<.& b p q p q q q q q w q p i r t t J N j ", +"# < 9 p q p p 9 p p 9 9 8 9 p r.SXVXmXCXCXMXMXCXfXDX<.5.b 9 p p q w w q q q w w w i r a r 3 ! g ", +"+ < 9 p w q q 9 p p b 9 9 9 w u FXGXCXCXCXMXMX#XD.<.; 9 9 p i w w w w w q q q q q w i i w Q ! K ", +"+ < 0 w w w q 9 9 p 9 0 0 p i r a h HXJXKX#XLX, & >Xb 9 9 w u i i w w q p p q p q q w w q Q v g ", +"+ < 0 w w w w 9 9 p 9 9 0 q i u u u i 9 b 8 >Xn.p w 9 b p u r i w w w q p p p p p w w w q r.v d ", +"+ < p w w w w q 9 9 8 c 9 q w i i w w w q p q q w q 9 b p r u i i w q p q q q q q w w q p r.v d ", +"+ < q q p q i w 9 8 8 c 9 q w i i w q q 0 p i w q q p p q u u i i w w q w w w q w w w q p K.v d ", +"+ < p p p q i p 8 6 c 8 0 w i u i i q q 9 9 q q p q w w q i e i i w w w w w q p q w q p 9 K.v d ", +"+ < 9 p q i w 9 6 6 6 9 q i r r u i w q p 8 8 p p q i i p q i w w q q q q q p p p 9 9 9 9 y f d ", +" < 0 w i i p 6 5 6 8 p i r a h r e w p p 8 c p i w i w 9 9 w w q p p p p p p p 9 8 8 9 9 K.@.d ", +". PXq u u w 9 5 6 8 0 i r a a h r i q p p 9 8 0 u e i u y K.u.u.Q r.Q Q Q Q Q r.y K.r.Q Q IXv g ", +"+ 9 s UXO.N v @.v N YX/ / / / / / / YXTXTXTXTXYX/ / / TXN N N N N N N N N N N N N N N N N U TXg ", +"y RXEXG g d F F EXEXRX^ 4 4 4 4 RXs s WXWXQXWXs s ^ RXs WXQXQXWXWXs s s s s WXWXWXs WXWXs ^ j QX"}; diff -uNr gnome-0.11/lib/pixmaps/gnome-term-night.xpm gnome-0.12/lib/pixmaps/gnome-term-night.xpm --- gnome-0.11/lib/pixmaps/gnome-term-night.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/gnome-term-night.xpm Fri Jan 16 13:10:48 1998 @@ -0,0 +1,285 @@ +/* XPM */ +static char * image_name[] = { +"48 48 234 2", +" c #C71BCB2BC71B", +". c #BEFBBEFBBEFB", +"X c #BEFBBAEABEFB", +"o c #B6DABAEABEFB", +"O c #BEFBC30BC71B", +"+ c #BEFBBEFBB6DA", +"@ c #B6DAB6DAB6DA", +"# c #C71BC71BC71B", +"$ c #A699AEBAAEBA", +"% c #EFBEF3CEF7DE", +"& c #E79DEBADEFBE", +"* c #CF3CD34CD75C", +"= c #CF3CCF3CCF3C", +"- c #D75CD75CD75C", +"; c #D75CDB6CD75C", +": c #DF7DDF7DD75C", +"> c #DF7DE38DE79D", +", c #D75CD75CCF3C", +"< c #71C679E779E7", +"1 c #514451445144", +"2 c #A699AAAAAEBA", +"3 c #A699AAAAA699", +"4 c #9E79A699A699", +"5 c #9E79A289A699", +"6 c #9E799E79A699", +"7 c #9E799E799E79", +"8 c #96589A699E79", +"9 c #965896589658", +"0 c #8E3892489658", +"q c #8E388E388E38", +"w c #861786178617", +"e c #79E782078617", +"r c #86178A288617", +"t c #96589A699658", +"y c #514459655965", +"u c #49244D344924", +"i c #8E3892488E38", +"p c #9E79A2899E79", +"a c #410341034103", +"s c #492449244924", +"d c #38E33CF338E3", +"f c #410345144103", +"g c #86178A288E38", +"h c #8E388E389E79", +"j c #861786179E79", +"k c #79E77DF779E7", +"l c #8E3886178617", +"z c #AEBAB2CAAEBA", +"x c #AEBAB6DAB6DA", +"c c #79E77DF78E38", +"v c #71C675D671C6", +"b c #86177DF779E7", +"n c #69A675D671C6", +"m c #69A671C671C6", +"M c #B6DAB2CABEFB", +"N c #EFBEEBADDF7D", +"B c #E79DE79DDF7D", +"V c #E79DE38DD75C", +"C c #DF7DDB6CD75C", +"Z c #DF7DDB6CCF3C", +"A c #D75CD34CBEFB", +"S c #D75CCF3CC71B", +"D c #CF3CCF3CC71B", +"F c #CF3CCB2BBEFB", +"G c #CF3CC71BBEFB", +"H c #C71BC71BBEFB", +"J c #C71BC30BB6DA", +"K c #C71BBEFBB6DA", +"L c #BEFBBAEAB6DA", +"P c #BEFBB6DAAEBA", +"I c #B6DAAEBAA699", +"U c #96588E388E38", +"Y c #79E779E779E7", +"T c #38E338E338E3", +"R c #DF7DD75CCF3C", +"E c #BEFBB2CAAEBA", +"W c #AEBAA699A699", +"Q c #A6999E799658", +"! c #618561856185", +"~ c #861779E779E7", +"^ c #79E775D671C6", +"/ c #69A669A679E7", +"( c #69A66DB671C6", +") c #618565956185", +"_ c #5965596569A6", +"` c #596555555144", +"' c #5144555571C6", +"] c #4924492469A6", +"[ c #410345145965", +"{ c #492445145144", +"} c #96588A288E38", +"| c #B6DAB2CAAEBA", +" . c #8E388A288617", +".. c #9E799A699658", +"X. c #71C675D68617", +"o. c #6185659579E7", +"O. c #5144514471C6", +"+. c #49244D3479E7", +"@. c #4924492471C6", +"#. c #965892488E38", +"$. c #30C234D330C2", +"%. c #51444D344924", +"&. c #9E799E79B6DA", +"*. c #71C671C69658", +"=. c #71C671C68E38", +"-. c #514455558617", +";. c #492449249658", +":. c #492449248617", +">. c #492445148E38", +",. c #410341036185", +"<. c #208124922081", +"1. c #492445144103", +"2. c #79E779E79658", +"3. c #AEBAAAAAB6DA", +"4. c #71C675D69E79", +"5. c #596559659658", +"6. c #514455559658", +"7. c #38E33CF39E79", +"8. c #410345149658", +"9. c #596559658617", +"0. c #69A665956185", +"q. c #38E33CF35144", +"w. c #208120812081", +"e. c #59655D755965", +"r. c #69A66DB68E38", +"t. c #618561858E38", +"y. c #69A669A69E79", +"u. c #410345149E79", +"i. c #618565959658", +"p. c #49244924A699", +"a. c #59655965A699", +"s. c #69A66DB6B6DA", +"d. c #49244D34A699", +"f. c #49244924B6DA", +"g. c #38E338E38617", +"h. c #A699A289B6DA", +"j. c #30C234D34924", +"k. c #30C230C238E3", +"l. c #20811C711861", +"z. c #514455555144", +"x. c #618569A66185", +"c. c #41034514B6DA", +"v. c #51445144B6DA", +"b. c #71C675D6AEBA", +"n. c #8E388E38B6DA", +"m. c #61856595AEBA", +"M. c #59655D758E38", +"N. c #38E33CF369A6", +"B. c #30C230C25144", +"V. c #30C230C230C2", +"C. c #186118611861", +"Z. c #28A22CB228A2", +"A. c #86178207AEBA", +"S. c #DF7DDB6CBEFB", +"D. c #30C234D371C6", +"F. c #186114511040", +"G. c #28A228A228A2", +"H. c #596561855965", +"J. c #492451444924", +"K. c #E79DDF7DD75C", +"L. c #8E388E38A699", +"P. c #38E334D379E7", +"I. c #28A22CB26185", +"U. c #28A22CB24103", +"Y. c #28A228A25144", +"T. c #AEBAB2CAB6DA", +"R. c #51445555AEBA", +"E. c #28A22CB28E38", +"W. c #208124924924", +"Q. c #38E33CF34924", +"!. c #D75CD75CBEFB", +"~. c #E79DE38DBEFB", +"^. c #96589248AEBA", +"/. c #28A228A271C6", +"(. c #AEBAAEBAA699", +"). c #69A66DB669A6", +"_. c #59655D75A699", +"`. c #208124928617", +"'. c #28A22CB279E7", +"]. c #208120814924", +"[. c #8617820779E7", +"{. c #618569A669A6", +"}. c #79E779E7B6DA", +"|. c #28A228A29658", +" X c #30C230C28E38", +".X c #30C234D38E38", +"XX c #20811C718E38", +"oX c #79E779E771C6", +"OX c #5965596579E7", +"+X c #71C671C6A699", +"@X c #104014514103", +"#X c #618561859E79", +"$X c #30C234D39658", +"%X c #186118616185", +"&X c #186114515144", +"*X c #1040104038E3", +"=X c #79E771C671C6", +"-X c #514455556185", +";X c #38E338E379E7", +":X c #30C230C269A6", +">X c #2081208179E7", +",X c #18611C7169A6", +" : : : ; ; , ; - - ; ; ; ; ; : : > : ; ; o < 1 ", +"X : # $ 2 $ $ 3 4 5 4 5 4 4 2 2 2 2 2 2 $ $ $ 6 7 8 9 9 0 q w e r r q 0 8 7 5 4 6 8 q q 9 t y u ", +"@ ; 4 0 9 9 9 0 i i q i 0 9 9 9 9 9 t t 8 9 0 9 9 0 q q q r e w r i i 0 9 7 p 8 i q q i p q a s ", +"@ ; $ i 0 9 9 9 0 0 i q 0 0 i i 0 i 0 9 0 i q q i q q q r w e e r q q 9 t 8 9 q w r i 8 p r d f ", +"@ , $ 9 i 0 9 0 9 0 q q q 0 q g q g h g g w j q q g w w w e k e l g q 0 9 t q w r 9 8 8 7 w d s ", +"o ; z 9 i 9 9 i i h g w g g g w g r w w w w w g q r w e w k k e e w g i 0 g e e i 8 t t 7 w d u ", +"x - $ 7 0 i q g g g e e e w r w w e k < k e w g w c k c < < < c e e w g g e < w h 9 9 9 7 q a u ", +"x , 2 7 0 g g l w k v < k c b < v n n m v < < k k v n n m n n v v < c e c n n w w q 0 8 p i a s ", +"M - 3 7 h e e e , N N N N N B B V V : : C Z ; , A S D F D G H J K + L P I 8 U Y < e q 7 $ q T a ", +"x - 4 t q e b , N N N N N & B B V : > C R R ; A * * F F G H J K + L L E I W Q e ! n g 5 3 w T f ", +"@ - 4 9 g e e N N X Y Y ~ v Y ^ v v / ( ) ) ! _ _ ` ' u ] ] ] [ { a f a a l Q } s ! e 0 8 k T u ", +"| , 4 0 q w e N N Y .H ..9 .Y c c X./ o.o.o.' O.+.O.@.] ] ] { [ { { f a T ..#.$.%.m e r n $.s ", +"@ * 5 g g w Y N N .@ V @ &.*./ o.o.=.' -.-.@.;.:.:.>.>.>.>.>.@.] ,.{ T T T ..9 <.f ! < l n $.1.", +"@ - p r l r k N % ^ W # h 2.2.*.-.*.3.4.5.6.6.6.6.7.8.;.;.>.:.9.] 0.q.q.T $.9 i w.d e.< w m $.f ", +"@ * 5 g q g Y N B 2.W @ r.t.y.6.u.>.i.p.>.p.a.a.s.a.p.d.f.g.8.8.t.h.' T j.k.9 } l.T z.( e x.$.s ", +"@ * p q 0 q k B B < &.h 4.y.t.5.d.p.f.p.f.c.f.v.b.h.n.&.n.m.f.g.7.M.N.q.B.V.#. .C.Z.s ! n x.$.u ", +"@ * 7 0 0 i c V B c j h i.5.p.p.p.p.f.f.f.f.f.f.s.A.h.S.# W A.d.g.g.D.B.B.k.i .F.G.f H.v m T J.", +"x * 7 i 0 q k V K.j L.j A.m.d.a.f.c.p.y.f.f.c.f.f.f.v.&.# * F h.a.u.P.I.U.Y.} l F.G.a ! e k d J.", +"T.= p 0 9 h v K.: y.2.y.5.d.p.u.f.f.s.M s.c.f.f.c.c.f.a.X A , 3.R.E.E.D.Y.W.U l F.G.f ) k < Q.s ", +"$ 5 9 9 q v > : / i.d.5.p.p.p.f.c.R.s.f.f.c.f.f.c.f.c.X !.~.M ^.f.E./.I.Y.} l F.G.f ! < n T s ", +"(.D 5 9 8 g ).C : *.*.d.a.d.d.c.p.f.f.c.f._.f.f.f.f.f.f.H ~.B M &.7.`.'.Y.]. .[.F.Z.1.! < ).$.f ", +"T.= 5 9 i e {.C , 9.5.;.8.>._.p.p.f.f.f.v.s.v.f.f.f.f.}.!.A ~.H &.f.|.`.D.W.l b F.Z.1.! < m $.f ", +"@ * 7 0 q e {.R ; M.9.p.u._.^._.f.p.c.f.c.v.f.c.c.c.f.^.~.A S.S n.7.`. Xj I.[.b F.G.f ! < m T f ", +"+ - 8 0 g e n - A 9.9.>.d.p.a.u.f.p.f.f.f.v.f.f.f.c.n.R S.!.!.O A.7.|.d.X O.l ~ F.Z.f ! < ).$.1.", +"O * 8 i w e m A A -.-.;.p.>.p.p.p.p.f.f.b.b.b.m.s.3.S.S.F !.G 3.f.|.|..Xj W.[.k F.G.s ! v m T f ", +"O - t q w e v S * ' -.O.6.p.;.u.p.p.f.m.3.^.F O S S * F F H h.}.|.XX Xn.F O.b oXC.G.f ! < ).T f ", +"O - 9 i e w < S F OXO.' -.i.>.>.;.p.>.f.A.}.G H !.S.~.A F h.+XR.|.XXXX'.O.@XoX^ F.Z.1.! v m $.s ", +"O , 0 q w e < F F _ _ O.' 2.-.>.>.y.u.u.f.u.#X+X}.A.^.4.y.7.$X|.XXXX%X%X&X*XY =XF.Z.f ) < m $.s ", +"# - 0 g w w < F F y -XO.O.' @.@.y.M y.>.7.7.7.g.P.P.;X:X/.>X,X>X,X%X%X&X*X c #DF7DDF7DDF7D", +", c #DF7DE38DE79D", +"< c #DF7DDB6CDF7D", +"1 c #71C679E779E7", +"2 c #492451445144", +"3 c #A699AAAAAEBA", +"4 c #A699AAAAA699", +"5 c #A699A699A699", +"6 c #9E79A289A699", +"7 c #AEBAB2CAB6DA", +"8 c #9E799E799E79", +"9 c #96589A699658", +"0 c #8E3892489658", +"q c #965896589658", +"w c #86178E388E38", +"e c #79E786178617", +"r c #96589A699E79", +"t c #9E79A2899658", +"y c #514459655965", +"u c #49244D344924", +"i c #AEBAB6DAB6DA", +"p c #AEBAA699A699", +"a c #86178A288617", +"s c #9E79A2899E79", +"d c #410341034103", +"f c #492449244924", +"g c #86178A288E38", +"h c #9E799E799658", +"j c #41033CF338E3", +"k c #410345144103", +"l c #AEBAB2CAAEBA", +"z c #79E782078617", +"x c #79E779E771C6", +"c c #38E33CF338E3", +"v c #71C671C669A6", +"b c #208118611040", +"n c #082004100000", +"m c #208120811040", +"M c #30C230C228A2", +"N c #69A665955965", +"B c #71C675D669A6", +"V c #10400C300820", +"C c #30C228A22081", +"Z c #96588E3869A6", +"A c #B6DAA69979E7", +"S c #CF3CCB2BB6DA", +"D c #30C22CB228A2", +"F c #A699965869A6", +"G c #B6DAA28979E7", +"H c #D75CD34CBEFB", +"J c #79E76DB65144", +"K c #A6999A6979E7", +"L c #AEBA9E7971C6", +"P c #CF3CC71BB6DA", +"I c #9E799A698617", +"U c #186114511040", +"Y c #38E338E338E3", +"T c #9E798E3869A6", +"R c #AEBA9A6971C6", +"E c #C71BB2CA9658", +"W c #B6DAAAAA8E38", +"Q c #9E79965879E7", +"! c #4924451430C2", +"~ c #4924410338E3", +"^ c #96588A286185", +"/ c #A699A2899E79", +"( c #AEBA965871C6", +") c #DF7DDB6CCF3C", +"_ c #5965514438E3", +"` c #C71BBAEA9E79", +"' c #965886176185", +"] c #A699924871C6", +"[ c #71C66DB65965", +"{ c #8E3879E75965", +"} c #BEFBB6DAA699", +"| c #30C234D330C2", +" . c #A6998E3869A6", +".. c #A6999E798617", +"X. c #8617820779E7", +"o. c #69A669A66185", +"O. c #71C679E771C6", +"+. c #492445144103", +"@. c #4924410330C2", +"#. c #71C661854924", +"$. c #A6998A2869A6", +"%. c #965882076185", +"&. c #618561855144", +"*. c #596551445144", +"=. c #CF3CCB2BC71B", +"-. c #69A65D754103", +";. c #8E388A288617", +":. c #186110401040", +">. c #5965492438E3", +",. c #9E797DF76185", +"<. c #9E7986176185", +"1. c #A699861769A6", +"2. c #618555554103", +"3. c #8E38861779E7", +"4. c #A6999A699658", +"5. c #69A671C671C6", +"6. c #28A21C711861", +"7. c #20811C711040", +"8. c #86176DB65144", +"9. c #9E7982076185", +"0. c #8E388E388E38", +"q. c #69A665956185", +"w. c #38E32CB22081", +"e. c #A6998A2879E7", +"r. c #D75CCF3CC71B", +"t. c #D75CD34CCF3C", +"y. c #69A675D671C6", +"u. c #000000000000", +"i. c #C71BBEFBAEBA", +"p. c #965892488E38", +"a. c #61855D755965", +"s. c #DF7DD75CCF3C", +"d. c #BEFBBAEAB6DA", +"f. c #79E77DF779E7", +"g. c #208114511040", +"h. c #9E7979E76185", +"j. c #CF3CBEFBB6DA", +"k. c #8617820769A6", +"l. c #86177DF771C6", +"z. c #A6999E799658", +"x. c #410334D330C2", +"c. c #51443CF330C2", +"v. c #965875D66185", +"b. c #C71BB6DAA699", +"n. c #B6DAAAAAAEBA", +"m. c #492438E338E3", +"M. c #61854D344103", +"N. c #965871C65965", +"B. c #C71BB2CAA699", +"V. c #71C65D754924", +"C. c #A6998E3879E7", +"Z. c #86177DF779E7", +"A. c #96586DB65965", +"S. c #AEBA8E3879E7", +"D. c #D75CCB2BBEFB", +"F. c #965869A65965", +"G. c #D75CCF3CCF3C", +"H. c #861786178617", +"J. c #6185492438E3", +"K. c #8E3869A65965", +"L. c #E79DDF7DDF7D", +"P. c #BEFBB6DAB6DA", +"I. c #86175D755144", +"U. c #8E3865955144", +"Y. c #8E3861855144", +"T. c #861761855965", +"R. c #71C651444103", +"E. c #8E385D755144", +"W. c #C71BB2CAAEBA", +"Q. c #EFBEEFBEE79D", +"!. c #861751444924", +"~. c #861759655144", +"^. c #D75CC71BC71B", +"/. c #E79DE38DE79D", +"(. c #618559655144", +"). c #082008200820", +"_. c #492424922081", +"`. c #861755554924", +"'. c #CF3CB6DAB6DA", +"]. c #38E328A228A2", +"[. c #28A218611040", +"{. c #79E74D344103", +"}. c #BEFBA699A699", +"|. c #49242CB228A2", +" X c #86174D344924", +".X c #9E7979E771C6", +"XX c #BEFBB2CAAEBA", +"oX c #79E749244924", +"OX c #BEFB9E799E79", +"+X c #79E745144103", +"@X c #BEFBAAAA8E38", +"#X c #69A6410338E3", +"$X c #79E741034103", +"%X c #71C669A669A6", +"&X c #E79DDB6CDF7D", +"*X c #30C224922081", +"=X c #410330C230C2", +"-X c #71C638E338E3", +";X c #208110401040", +":X c #71C63CF338E3", +">X c #59652CB228A2", +",X c #69A638E338E3", +" , > > > > < ; : ; : : : < < > > > , > : : o 1 2 ", +"X > $ % 3 % % 4 5 6 6 5 3 3 % % 3 % % % 7 % % 6 8 8 9 0 q w e e e w 0 q r 8 5 5 t r w w q 9 y u ", +"i : p 0 q q q q q 0 0 0 0 q r r r q r 8 8 8 r q r q 0 q 0 w a e w 0 q q 8 6 6 r 0 w w 0 s w d f ", +"@ : % 0 q q q q 9 9 q q r 9 9 9 r 9 9 r r q q q q q 0 0 0 w a g q q q r h 6 8 0 a w q r t g j k ", +"i ; l q 0 r r r 8 r 9 q q r q q 9 r q q q 0 w z x z 0 q q w a w 0 q 9 s 5 s q a w q r r 8 e c f ", +"# ; 7 r 0 9 r 9 8 8 9 q r 8 r q r 9 q 0 0 v b n m M N w 0 w w 0 q q r s 5 9 g a q 8 r 9 8 e j u ", +"@ : l 8 q q 9 q r r q q r r 8 8 r q q 0 B V C Z A A S h q 0 0 q q 8 s 6 6 0 a 0 9 r 9 r 8 w d u ", +"7 ; % 6 r 0 q 9 r r q q 8 8 8 r 9 0 0 0 D m F G G G H % 0 0 q 9 q r 6 5 r w w 9 9 r q r 5 0 d f ", +"i : % 6 q w q q 8 r q r 8 8 8 8 q q 0 9 V J K L L G P I B U n j w 8 5 6 q a 0 q q q 8 5 % w Y d ", +"i ; % 6 9 w q 9 8 r 9 8 s 8 r 8 9 9 q q n T R L L E W Q ! ~ ^ A / 8 5 s 0 g 9 r r 8 4 % % e Y k ", +"@ : 4 8 q 0 9 r 8 8 q r r r r q r r q r V T ( F L ) K Z _ K K ` > 5 4 r w w q q 9 6 % % 6 z Y u ", +"@ : 3 r 8 q r 8 r r r 8 9 q q 9 q q q r ~ ' ] L H * Q [ { R G ` } 5 s 0 a 0 r r r 6 3 6 q x | f ", +"@ ; 3 q q 8 r r 9 q q r q q q q r r q 9 e [ .] K t w j ] W G ( ..X.o.e w q r r 5 4 6 8 q O.| +.", +"# : 4 0 q 8 r q 0 q q r r r 9 s 8 r q w @.b #.$. .%.&.*.S =.( ( %.-.[ ;.q 9 9 8 3 % 5 8 q O.| k ", +"@ ; 5 9 r 5 8 w 0 0 q 9 8 r 8 6 6 r B :.n >.,.$.<.1.{ 2.3.6 4.[ { ] E $ 6 8 8 5 3 6 r 9 q 5.| u ", +"X : 5 r s 5 8 w 0 q q q r 8 5 3 5 r 6.7.8.<.9.<.<.$.1.1.$.0.q.w.e.A r.t.3 5 5 5 8 q 0 w a 5.| 2 ", +"@ ; 4 8 6 4 8 w 0 0 q r 8 s 6 5 8 y.u.#.,.,.9.,.9.9.9.<.$.i.p.a.i.r.s.d.3 8 8 r w a w a w f.c 2 ", +"@ = 3 8 5 5 r g 0 0 q r 8 s 8 8 r j g.h.h.h.,.h.,.%.,.,.%.j.p k.l.Z z.p 6 0 0 w e g w 0 8 e c 2 ", +"@ ; 5 8 5 3 r a w q q 8 8 8 6 t 8 x.c.v.h.h.v.h.v.h.h.h.h.b.n.f.M m.! a.z e g a g 0 q q 8 a d u ", +"7 = 3 6 4 5 0 e a 0 q 8 8 6 6 6 8 N M.N.N.v.v.v.v.h.h.h.v.B.} B V V.v.C.h z e w w 0 9 q r z Y u ", +"% = 4 6 3 s w e w q q 8 6 6 5 5 8 0.Z.] N.A.N.N.N.N.v.N.v.B.i.;.w.,.S.r.D.e w q q 9 q 9 9 f.Y k ", +"7 = % s 6 9 e a 0 9 r 8 s 6 5 5 8 q q w { F.A.A.A.A.N.N.N.B.d.w x G.* ) / w q q q r q r r z Y +.", +"o ; 5 8 s q a a q q r 8 6 s s s 8 0 0 0 H.J.K.K.A.A.F.A.N.L.P.0 r 5 5 q a q q r r q 9 q r z Y f ", +"O : 6 8 r r 0 w q r 8 8 s 6 6 s r 0 w w o.u.I.U.U.K.K.K.e.* q q s 3 s w a q r q r q r r r z Y f ", +"O : 6 8 q q 0 0 9 8 8 8 8 6 5 6 q w g 5.V U Y.T.U.U.U.U.s.t.w r 6 4 r a w 9 9 r 9 r 9 9 r f.Y +.", +"O : 8 r q r 9 0 r r 8 r 8 5 5 s 0 e *.n V R.Y.E.E.E.F.W.Q.4.0 r 6 5 r w 0 q r q r r r r r f.Y f ", +"$ : 8 r 0 r q q q 8 8 8 8 s 6 8 g j n 6.!.~.~.~.I.U.^./.n.0 r s 5 3 s q q r 9 r q q r 9 8 z Y f ", +"$ > 8 9 q r q q 9 r 8 8 r 8 8 r (.)._.R.`.`.~.`.Y.'./.h w q r 8 5 5 8 r q 0 9 r 9 q q r 8 z Y f ", +"O : q q q 8 8 q r r r 8 8 6 6 8 ].[.{.!.!.!.!.`.}./.p w 0 q 8 8 r q w w 0 0 0 q q 9 9 9 r z Y f ", +"$ < q q r 8 8 r r r r 8 8 s s q 6.|.{. X!.!.!..X* XXw 0 q q r 9 q 0 a w 0 q 0 0 q q r 8 r z Y u ", +"$ > q q q 8 8 r 9 q 8 8 5 5 r 0 j |.oXoXoX{. XOX^.0 w q 9 9 r q q q q q 9 9 q q 9 8 8 r 8 z d 2 ", +"$ : q q q r 8 q q 0 r 8 6 3 8 w B |.+X+X+XoXoX.X@Xw w q 9 q r 9 q q r 9 q q q r 8 8 s s s a c 2 ", +"$ > q q 9 8 r 9 0 q 9 r 6 5 8 g g q.#X+X+X$X+X$XI.0.q q q r q q r r r r r r 9 q 8 6 6 6 5 e Y +.", +"$ < q q q r r r 0 0 9 8 s 6 t w a w %X}.A. X X~.'.p 0.r r r r q r 9 9 r 9 q r r 9 q r 0 0 y.| k ", +"$ > 8 q r 9 8 8 9 r r 8 8 s 8 0 e g 0 p.z.^.L.L.&X/ 8 q r 8 r 9 r q q q q r q q 9 q w a e y.| k ", +"$ < 8 r 9 q r r q r 8 6 8 8 8 q a a 0 r r 8 r r q q 8 9 8 r 9 r 9 q q r q q q q q 0 w w w O.Y f ", +"O : 8 r q r q 8 r 8 8 r 6 8 q 0 w *Xu.u.n =X0.r q 9 r r 8 r 0 q q q q q r 9 r q q 9 q q q z Y f ", +"$ > r q q q r 8 r r 8 r r r q 0 *.u._.-X-X+X;.r q q 8 8 8 q 0 0 q q q q r r 9 r q q q q q f.Y f ", +"O : 8 9 0 q q 8 8 r s 8 8 9 0 w ;X;X-X:X:X$XL.q q q 8 8 r 0 w q q q q 9 r q 9 r r 9 q q 9 z c f ", +"O : r 9 q q q 9 8 r 6 6 8 r q q n >X-X:X-X:X* q q q 8 8 r w w 0 0 q q q r q r q q 0 q q r z c u ", +"$ : q q 9 q 0 q 8 6 5 5 r q q 0 n ,X:X:X:XE. 8 q 9 0 q 8 5 4 5 s q q w w x 2X3X3X^.L.p r r r 0 q 8 q 0 q q r r 9 r q r r 9 8 8 s s e c u ", +"$ < 8 q q q r 5 3 4 6 9 0 w w w w 0 ;.}.4X/ 5 r 0 q 0 0 8 8 q q q q r q r r 9 r 8 6 8 8 8 z Y u ", +" - q 0 0 q s 4 5 6 r q 0 w w a 0 0 r r r 8 6 r 0 0 q 0 e e f.f.z z f.z f.z z z e z z z f.5.c f ", +"O 6 y 5X5X| Y j Y | 6X7X7X7X7X7X6X7X6X6X6X6X8X6X6X7X6X6X| Y | | Y Y | Y | | Y | Y Y | Y | 8X6Xf ", +"e 9Xu d f u 2 2 2 2 9X0X0X2 2 2 0Xy y y y qXy y 9X0X0Xy qXqXqXy y y 9X0Xy y y y y y y y y 0X+.wX"}; diff -uNr gnome-0.11/lib/pixmaps/panel-arrow-down.xpm gnome-0.12/lib/pixmaps/panel-arrow-down.xpm --- gnome-0.11/lib/pixmaps/panel-arrow-down.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/panel-arrow-down.xpm Thu Jan 15 11:29:57 1998 @@ -0,0 +1,27 @@ +/* XPM */ +static char *panel-arrow-down[] = { +/* width height num_colors chars_per_pixel */ +" 12 12 8 1", +/* colors */ +". c None", +"# c #8e8a8e", +"a c #303430", +"b c #000400", +"c c #595d59", +"d c #000000", +"e c #ffffff", +"f c #616561", +/* pixels */ +"............", +"...#abba#...", +"..cddddddc..", +".#ddeeeedd#.", +".addfeefdda.", +".bdddeedddb.", +".bdeeeeeedb.", +".addeeeedda.", +".#dddeeddd#.", +"..cddddddc..", +"...#abba#...", +"............" +}; diff -uNr gnome-0.11/lib/pixmaps/panel-arrow-left.xpm gnome-0.12/lib/pixmaps/panel-arrow-left.xpm --- gnome-0.11/lib/pixmaps/panel-arrow-left.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/panel-arrow-left.xpm Thu Jan 15 11:29:57 1998 @@ -0,0 +1,27 @@ +/* XPM */ +static char *panel-arrow-left[] = { +/* width height num_colors chars_per_pixel */ +" 12 12 8 1", +/* colors */ +". c None", +"# c #8e8a8e", +"a c #303430", +"b c #000400", +"c c #595d59", +"d c #000000", +"e c #ffffff", +"f c #616561", +/* pixels */ +"............", +"...#abba#...", +"..cddddddc..", +".#dddedddd#.", +".addeedfeda.", +".bdeeeeeedb.", +".bdeeeeeedb.", +".addeedfeda.", +".#dddedddd#.", +"..cddddddc..", +"...#abba#...", +"............" +}; diff -uNr gnome-0.11/lib/pixmaps/panel-arrow-right.xpm gnome-0.12/lib/pixmaps/panel-arrow-right.xpm --- gnome-0.11/lib/pixmaps/panel-arrow-right.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/panel-arrow-right.xpm Thu Jan 15 11:29:57 1998 @@ -0,0 +1,27 @@ +/* XPM */ +static char *panel-arrow-right[] = { +/* width height num_colors chars_per_pixel */ +" 12 12 8 1", +/* colors */ +". c None", +"# c #8e8a8e", +"a c #303430", +"b c #000400", +"c c #595d59", +"d c #000000", +"e c #ffffff", +"f c #616561", +/* pixels */ +"............", +"...#abba#...", +"..cddddddc..", +".#ddddeddd#.", +".adefdeedda.", +".bdeeeeeedb.", +".bdeeeeeedb.", +".adefdeedda.", +".#ddddeddd#.", +"..cddddddc..", +"...#abba#...", +"............" +}; diff -uNr gnome-0.11/lib/pixmaps/panel-arrow-up.xpm gnome-0.12/lib/pixmaps/panel-arrow-up.xpm --- gnome-0.11/lib/pixmaps/panel-arrow-up.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/lib/pixmaps/panel-arrow-up.xpm Thu Jan 15 11:29:57 1998 @@ -0,0 +1,27 @@ +/* XPM */ +static char *panel-arrow-up[] = { +/* width height num_colors chars_per_pixel */ +" 12 12 8 1", +/* colors */ +". c None", +"# c #8e8a8e", +"a c #303430", +"b c #000400", +"c c #595d59", +"d c #000000", +"e c #ffffff", +"f c #616561", +/* pixels */ +"............", +"...#abba#...", +"..cddddddc..", +".#dddeeddd#.", +".addeeeedda.", +".bdeeeeeedb.", +".bdddeedddb.", +".addfeefdda.", +".#ddeeeedd#.", +"..cddddddc..", +"...#abba#...", +"............" +}; diff -uNr gnome-0.11/libgnome/Makefile.am gnome-0.12/libgnome/Makefile.am --- gnome-0.11/libgnome/Makefile.am Wed Jan 7 13:21:10 1998 +++ gnome-0.12/libgnome/Makefile.am Tue Jan 20 21:50:49 1998 @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -scoredir=$(localstatedir)/var/lib/games +scoredir=$(localstatedir)/games LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ @@ -55,7 +55,7 @@ gnome_score_helper_SOURCES = gnome-score-helper.c gnome_score_helper_LDADD = \ $(top_builddir)/libgnome/libgnome.la \ - -lgdk -lglib $(X_LIBS) $(x_libs) + -lgdk -lglib $(X_LIBS) $(x_libs) $(INTLLIBS) install-data-local: -chgrp games $(bindir)/gnome-score-helper diff -uNr gnome-0.11/libgnome/Makefile.in gnome-0.12/libgnome/Makefile.in --- gnome-0.11/libgnome/Makefile.in Wed Jan 7 20:30:43 1998 +++ gnome-0.12/libgnome/Makefile.in Wed Jan 21 21:13:07 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -105,7 +106,7 @@ Z_LIBS = @Z_LIBS@ x_libs = @x_libs@ -scoredir=$(localstatedir)/var/lib/games +scoredir=$(localstatedir)/games LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ @@ -160,7 +161,7 @@ gnome_score_helper_SOURCES = gnome-score-helper.c gnome_score_helper_LDADD = \ $(top_builddir)/libgnome/libgnome.la \ - -lgdk -lglib $(X_LIBS) $(x_libs) + -lgdk -lglib $(X_LIBS) $(x_libs) $(INTLLIBS) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = @@ -201,7 +202,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libgnome/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -371,11 +372,12 @@ ../libgnomeui/gnome-actionarea.h ../libgnomeui/gnome-colors.h \ ../libgnomeui/gnome-color-selector.h \ ../libgnomeui/gnome-messagebox.h ../libgnomeui/gnome-pixmap.h \ + ../libgnomeui/gnome-scores.h ../libgnomeui/gnome-stock.h \ ../libgnomeui/gtk-clock.h gnome-mime.h gnome-score-helper.o gnome-score-helper.lo: gnome-score-helper.c \ - gnome-defs.h ../config.h + gnome-defs.h ../config.h gnome-util.h gnome-score.o gnome-score.lo: gnome-score.c gnome-defs.h gnome-score.h \ - gnome-score-helper.c + gnome-score-helper.c gnome-util.h gnome-string.o gnome-string.lo: gnome-string.c gnome-string.h \ gnome-defs.h gnome-triggers.o gnome-triggers.lo: gnome-triggers.c gnome-triggers.h \ diff -uNr gnome-0.11/libgnome/gnome-config.c gnome-0.12/libgnome/gnome-config.c --- gnome-0.11/libgnome/gnome-config.c Mon Jan 5 21:56:17 1998 +++ gnome-0.12/libgnome/gnome-config.c Wed Jan 21 17:45:19 1998 @@ -128,7 +128,7 @@ p->def = NULL; p->section = NULL; p->key = NULL; - if (end = strchr (p->path, '=')){ + if ((end = strchr (p->path, '='))) { *end = 0; p->def = end + 1; } else @@ -505,11 +505,14 @@ { TProfile *p; ParsedPath *pp; + char *fake_path; if (!path) return; - pp = parse_path (path); + fake_path = g_copy_strings (path, "/section/key", NULL); + pp = parse_path (fake_path); + g_free (fake_path); for (p = Base; p; p = p->link){ if (strcmp (pp->file, p->filename) != 0) @@ -530,8 +533,11 @@ TProfile *New; TSecHeader *section; ParsedPath *pp; + char *fake_path; - pp = parse_path (path); + fake_path = g_copy_strings (path, "/key", NULL); + pp = parse_path (fake_path); + g_free (fake_path); if (!is_loaded (pp->file, §ion)){ New = (TProfile *) g_malloc (sizeof (TProfile)); @@ -566,12 +572,14 @@ void gnome_config_clean_section (const char *path) - /* *section_name, char *file */ { TSecHeader *section; ParsedPath *pp; + char *fake_path; - pp = parse_path (path); + fake_path = g_copy_strings (path, "/key", NULL); + pp = parse_path (fake_path); + g_free (fake_path); /* We assume the user has called one of the other initialization funcs */ if (!is_loaded (pp->file, §ion)){ @@ -624,8 +632,12 @@ { TSecHeader *section; ParsedPath *pp; + char *fake_path; - pp = parse_path (path); + fake_path = g_copy_strings (path, "/key", NULL); + pp = parse_path (fake_path); + g_free (fake_path); + /* We assume the user has called one of the other initialization funcs */ if (!is_loaded (pp->file, §ion)){ release_path (pp); @@ -768,6 +780,8 @@ } #ifdef TEST + +static x (char *str, char *file, char *sec, char *key, char *val) { ParsedPath *pp; @@ -779,6 +793,7 @@ printf (" key: %s [%s]\n", pp->key, key); printf (" def: %s [%s]\n", pp->def, val); } + main () { diff -uNr gnome-0.11/libgnome/gnome-dentry.c gnome-0.12/libgnome/gnome-dentry.c --- gnome-0.11/libgnome/gnome-dentry.c Sat Dec 20 17:23:07 1997 +++ gnome-0.12/libgnome/gnome-dentry.c Fri Jan 16 13:10:50 1998 @@ -106,6 +106,8 @@ "-small.xpm", NULL); newitem->transparent_icon = g_copy_strings (newitem->icon_base, "-transparent.xpm", NULL); + newitem->opaque_icon = g_copy_strings (newitem->icon_base, + ".xpm", NULL); *dot = '.'; } @@ -113,14 +115,18 @@ if (*newitem->icon_base != '/'){ char *s = newitem->small_icon; char *t = newitem->transparent_icon; + char *o = newitem->opaque_icon; newitem->small_icon = gnome_pixmap_file (s); newitem->transparent_icon = gnome_pixmap_file (t); + newitem->opaque_icon = gnome_pixmap_file (o); g_free (s); g_free (t); + g_free (o); } } else { - newitem->small_icon = newitem->transparent_icon = 0; + newitem->small_icon = newitem->transparent_icon = + newitem->opaque_icon = 0; } gnome_config_pop_prefix (); return newitem; @@ -178,6 +184,7 @@ free_if_empty (item->type); free_if_empty (item->small_icon); free_if_empty (item->transparent_icon); + free_if_empty (item->opaque_icon); free_if_empty (item->location); g_free (item); } diff -uNr gnome-0.11/libgnome/gnome-dentry.h gnome-0.12/libgnome/gnome-dentry.h --- gnome-0.11/libgnome/gnome-dentry.h Sat Dec 6 09:03:33 1997 +++ gnome-0.12/libgnome/gnome-dentry.h Fri Jan 16 13:10:50 1998 @@ -16,6 +16,7 @@ /* These are computed from icon_base */ char *small_icon; char *transparent_icon; + char *opaque_icon; } GnomeDesktopEntry; GnomeDesktopEntry *gnome_desktop_entry_load (char *file); diff -uNr gnome-0.11/libgnome/gnome-score-helper.c gnome-0.12/libgnome/gnome-score-helper.c --- gnome-0.11/libgnome/gnome-score-helper.c Fri Dec 26 14:09:23 1997 +++ gnome-0.12/libgnome/gnome-score-helper.c Wed Jan 21 20:11:32 1998 @@ -19,12 +19,16 @@ #include #include #include +#include +#include #ifndef GNOME_SCORE_C #include "gnome-defs.h" #include "config.h" #endif +#include "libgnome/gnome-util.h" + #ifndef GNOMEBINDIR #define GNOMEBINDIR "/usr/local/bin" #endif @@ -40,8 +44,21 @@ #endif static gchar * +gnome_get_score_file_name(gchar *progname, gchar *level) +{ + if(level) + return g_copy_strings(SCORE_PATH "/", + progname, ".", level, ".scores", NULL); + else + return g_copy_strings (SCORE_PATH "/", + progname, ".scores", NULL); +} + + +static gchar * gnome_get_program_name(gint pid) { +#ifdef __linux__ FILE *infile; gchar buf [128], *str, *tmp; gint i, v; @@ -49,7 +66,7 @@ ino_t procino, realino; dev_t procdev, realdev; - snprintf(buf, sizeof(buf), "/proc/%d/cmdline", pid); + g_snprintf(buf, sizeof(buf), "/proc/%d/cmdline", pid); infile = fopen(buf, "r"); if(infile){ @@ -77,7 +94,7 @@ realino = sbuf.st_ino; realdev = sbuf.st_dev; - snprintf(buf, sizeof(buf), "/proc/%d/exe", pid); + g_snprintf(buf, sizeof(buf), "/proc/%d/exe", pid); if(stat(buf, &sbuf)){ g_free(tmp); return NULL; @@ -90,13 +107,17 @@ return NULL; } else return tmp; +#else + g_warning("gnome_get_program_name: this function is not yet implemented for non-linux systems!"); + return NULL; +#endif } #ifndef GNOME_SCORE_C struct ascore_t { - gchar *username; - time_t scoretime; - gfloat score; + gchar *username; + time_t scoretime; + gfloat score; }; void @@ -107,23 +128,22 @@ } gint -log_score(gchar *progname, gchar *username, gfloat score) +log_score(gchar *progname, gchar *level, gchar *username, gfloat score, int ordering) { FILE *infile; FILE *outfile; - gchar buf [512]; - GList *scores = NULL; + gchar buf [512], *buf2; + GList *scores = NULL, *anode; gchar *name, *game_score_file; gfloat ascore; time_t atime; - struct ascore_t *anitem; + struct ascore_t *anitem, *curscore; int i; gint retval = 1; - GList *item; gint pos; - gboolean we_are_top_ten = FALSE; - game_score_file = g_copy_strings (SCORE_PATH "/", progname, ".scores", NULL); + game_score_file = gnome_get_score_file_name(progname, level); + infile = fopen (game_score_file, "r"); if(infile) { @@ -131,9 +151,14 @@ { i = strlen(buf) - 1; /* Chomp */ while(isspace(buf[i])) buf[i--] = '\0'; - - sscanf(buf, "%f %ld %as", &ascore, (long int *)&atime, &name); - + + buf2 = strtok(buf, " "); + ascore = atof(buf2); + buf2 = strtok(NULL, " "); + (long int)atime = atoi(buf2); + buf2 = strtok(NULL, "\n"); + name = strdup(buf2); + anitem = g_malloc(sizeof(struct ascore_t)); anitem->score = ascore; anitem->username = name; @@ -146,34 +171,43 @@ anitem->score = score; anitem->username = username; anitem->scoretime = time(NULL); - - /* Certifiable spaghetti code. There has to be a nicer way to do this, - I'm sure */ - - for(item = scores, pos = 0; item; item = item->next, pos++) + + for(pos = 0, anode = scores; + pos < NSCORES && anode; + pos++, anode = anode->next) { - if(((struct ascore_t *)item->data)->score < anitem->score) + curscore = anode->data; + if(ordering) { - scores = g_list_insert(scores, anitem, pos); - we_are_top_ten = TRUE; - break; + if(curscore->score < anitem->score) + break; + } + else + { + if(curscore->score > anitem->score) + break; } } - out_of_loop: - if(we_are_top_ten) + + if(pos < NSCORES) { + scores = g_list_insert(scores, anitem, pos); scores = g_list_remove_link(scores, g_list_nth(scores, NSCORES)); - retval = 0; + retval = pos+1; } + else + retval = 0; -/* XXX TODO: set permissions etc. on this file... Need suid root though :( */ - umask(202); + /* XXX TODO: set permissions etc. on this file... Need suid root though :( */ + umask(022); outfile = fopen(game_score_file, "w"); + { struct group *gent = getgrnam("games"); if(gent) chown(buf, -1, gent->gr_gid); } + g_free (game_score_file); if(outfile){ @@ -195,6 +229,9 @@ gfloat realfloat; struct passwd *pwent; gchar *progname; + gchar *level; + gboolean ordering; + #ifdef DEBUG int i; @@ -202,20 +239,28 @@ g_print("%s: %s\n", argv[0], argv[i]); #endif - if(argc != 2) - return 1; + if(argc != 4){ + fprintf (stderr, "Internal GNOME program, usage: gnome-score-helper value username ordering\n"); + return 0; + } + + setlocale(LC_ALL, ""); progname = gnome_get_program_name(getppid()); if(progname == NULL) - return 1; - + return 0; + realfloat = atof(argv[1]); + ordering= atoi(argv[3]); pwent = getpwuid(getuid()); if(!pwent) - return 1; - - username = pwent->pw_name; + return 0; - return log_score(progname, username, realfloat); + username = pwent->pw_gecos; + level = argv[2]; + if(argv[2][0] == '\0') + level = NULL; + + return log_score(progname, level, username, realfloat, ordering); } #endif diff -uNr gnome-0.11/libgnome/gnome-score.c gnome-0.12/libgnome/gnome-score.c --- gnome-0.11/libgnome/gnome-score.c Fri Dec 26 13:31:58 1997 +++ gnome-0.12/libgnome/gnome-score.c Wed Jan 21 20:13:43 1998 @@ -11,67 +11,85 @@ #include "gnome-score-helper.c" #undef GNOME_SCORE_C -gboolean /* Returns TRUE if it was a notable (top ten) score */ -gnome_score_log(gfloat score) +gint +gnome_score_log(gfloat score, + gchar *level, + gboolean higher_to_lower_score_order) { int exitstatus; char buf[64]; + char buf2[64]; + pid_t childpid = fork(); if(childpid == 0) { /* We are the child */ - snprintf(buf, sizeof(buf), "%f", score); + g_snprintf(buf, sizeof(buf), "%f", score); + g_snprintf(buf2, sizeof(buf2), "%d", higher_to_lower_score_order); execlp("gnome-score-helper", "gnome-score-helper", - buf, NULL); - exit(99); + buf, level?level:"", buf2, NULL); + _exit(99); } waitpid(childpid, &exitstatus, 0); - if(WIFEXITED(exitstatus)) - return (WEXITSTATUS(exitstatus)==0)?TRUE:FALSE; + if(WIFEXITED(exitstatus) && (WEXITSTATUS(exitstatus) != -1) ) + return (WEXITSTATUS(exitstatus)); else { g_warning("Scorekeeping failed\n"); - return FALSE; + return 0; } } gint gnome_score_get_notable(gchar *gamename, + gchar *level, gchar ***names, gfloat **scores, time_t **scoretimes) { - gchar *realname, buf[512]; + gchar *realname, buf[512], *buf2; + gchar *infile_name; FILE *infile; gint retval; g_return_val_if_fail(names != NULL, 0); g_return_val_if_fail(scores != NULL, 0); - if(realname == NULL) + if (gamename == NULL) realname = gnome_get_program_name(getpid()); else realname = g_strdup(gamename); if(!realname) - return 0; + return -1; - snprintf(buf, sizeof(buf), "%s/%s.scores", SCORE_PATH, realname); + infile_name = gnome_get_score_file_name(realname, level); + + infile = fopen(infile_name, "r"); + g_free(infile_name); + g_free(realname); - infile = fopen(buf, "r"); if(infile) { - for(retval = 0, *names = NULL, *scores = NULL; - fgets(buf, sizeof(buf), infile); retval++) { - *names = g_realloc(*names, retval * sizeof(gchar *)); - *scores = g_realloc(*scores, retval * sizeof(gfloat)); - *scoretimes = g_realloc(*scores, retval * sizeof(time_t)); - sscanf(buf, "%f %d %a", - &((*scores)[retval]), - &((*scoretimes)[retval]), - &((*names)[retval])); - } + *names = g_malloc((NSCORES + 1) * sizeof(gchar*)); + *scores = g_malloc((NSCORES + 1) * sizeof(gfloat)); + *scoretimes = g_malloc((NSCORES + 1) * sizeof(time_t)); + + for(retval = 0; + fgets(buf, sizeof(buf), infile) && retval < NSCORES; + retval++) + { + buf[strlen(buf)-1]=0; + buf2 = strtok(buf, " "); + (*scores)[retval] = atof(buf2); + buf2 = strtok(NULL, " "); + (*scoretimes)[retval] = atoi(buf2); + buf2 = strtok(NULL, "\n"); + (*names)[retval] = g_strdup(buf2); + } + (*names)[retval] = NULL; + (*scores)[retval] = 0.0; fclose(infile); } else @@ -81,6 +99,5 @@ retval = 0; } - g_free(realname); return retval; } diff -uNr gnome-0.11/libgnome/gnome-score.h gnome-0.12/libgnome/gnome-score.h --- gnome-0.11/libgnome/gnome-score.h Fri Dec 26 13:31:58 1997 +++ gnome-0.12/libgnome/gnome-score.h Tue Jan 20 21:52:30 1998 @@ -4,11 +4,19 @@ #include BEGIN_GNOME_DECLS -gboolean /* Returns TRUE if it was a notable (top ten) score */ -gnome_score_log(gfloat score); +/* Returns the position in the top-ten starting from 1, or 0 if it isn't in the table */ +gint +gnome_score_log(gfloat score, + gchar *level, /* Pass in NULL unless you want to keep + per-level scores for the game */ + /* Pass in TRUE if higher scores are "better" + in the game */ + gboolean higher_to_lower_score_order); + gint /* Returns number of items in the arrays */ gnome_score_get_notable(gchar *gamename, /* Will be auto-determined if NULL */ + gchar *level, gchar ***names, gfloat **scores, time_t **scoretimes); diff -uNr gnome-0.11/libgnome/gnome-string.c gnome-0.12/libgnome/gnome-string.c --- gnome-0.11/libgnome/gnome-string.c Fri Jan 2 14:09:16 1998 +++ gnome-0.12/libgnome/gnome-string.c Fri Jan 16 18:24:45 1998 @@ -143,3 +143,16 @@ return retval; } + +void +gnome_string_array_free(gchar **strarray) +{ + int i; + + g_return_if_fail(strarray != NULL); + + for(i = 0; strarray[i]; i++) + g_free(strarray[i]); + + g_free(strarray); +} diff -uNr gnome-0.11/libgnome/gnome-string.h gnome-0.12/libgnome/gnome-string.h --- gnome-0.11/libgnome/gnome-string.h Fri Jan 2 14:09:16 1998 +++ gnome-0.12/libgnome/gnome-string.h Fri Jan 16 18:24:45 1998 @@ -10,3 +10,6 @@ gchar **strings); gchar * gnome_string_chomp (gchar *astring, gboolean in_place); +/* Frees each element of the NULL-terminated array, then the + array memory itself */ +void gnome_string_array_free (gchar **strarray); diff -uNr gnome-0.11/libgnome/gnome-triggers.c gnome-0.12/libgnome/gnome-triggers.c --- gnome-0.11/libgnome/gnome-triggers.c Fri Jan 2 14:55:32 1998 +++ gnome-0.12/libgnome/gnome-triggers.c Fri Jan 16 18:24:45 1998 @@ -102,11 +102,7 @@ parts = gnome_string_split(aline, " ", -1); if(!parts || !parts[0] || !parts[1] || !parts[2] || !parts[3]) { - if(parts) { - for(i = 0; parts[i]; i++) - g_free(parts[i]); - g_free(parts); - } + gnome_string_array_free(parts); g_warning("Invalid triggers line \'%s\'\n", aline); continue; } @@ -128,13 +124,8 @@ nt->level = parts[0]; gnome_triggers_vadd_trigger(nt, subnames); - for(i = 0; subnames[i]; i++) - g_free(subnames[i]); - g_free(subnames); subnames = NULL; - - for(i = 0; parts[i]; i++) - g_free(parts[i]); - g_free(parts); parts = NULL; + gnome_string_array_free(subnames); subnames = NULL; + gnome_string_array_free(parts); parts = NULL; } g_free(nt); diff -uNr gnome-0.11/libgnome/gnome-util.c gnome-0.12/libgnome/gnome-util.c --- gnome-0.11/libgnome/gnome-util.c Sat Dec 6 09:03:33 1997 +++ gnome-0.12/libgnome/gnome-util.c Wed Jan 21 17:45:19 1998 @@ -151,19 +151,7 @@ g_unix_error_string (int error_num) { static char buffer [256]; - char *error_msg; - -#ifdef HAVE_STRERROR - error_msg = strerror (error_num); -#else - extern int sys_nerr; - extern char *sys_errlist []; - if ((0 <= error_num) && (error_num < sys_nerr)) - error_msg = sys_errlist[error_num]; - else - error_msg = "strange errno"; -#endif /* HAVE_STRERROR */ - sprintf (buffer, "%s (%d)", error_msg, error_num); + sprintf (buffer, "%s (%d)", g_strerror (error_num), error_num); return buffer; } diff -uNr gnome-0.11/libgnomeui/Makefile.am gnome-0.12/libgnomeui/Makefile.am --- gnome-0.11/libgnomeui/Makefile.am Tue Jan 6 13:34:21 1998 +++ gnome-0.12/libgnomeui/Makefile.am Mon Jan 19 11:04:47 1998 @@ -1,5 +1,7 @@ ## Process this file with automake to produce Makefile.in +DEFS += -Wall + libgnomeuiincludedir = $(includedir)/libgnomeui INCLUDES = -I.. -I$(srcdir)/.. -I$(includedir) @@ -18,6 +20,8 @@ gnome-pixmap.c \ gnome-properties.c \ gnome-session.c \ + gnome-scores.c \ + gnome-stock.c \ gtk-clock.c libgnomeuiinclude_HEADERS = \ @@ -31,11 +35,13 @@ gnome-properties.h \ gnome-pixmap.h \ gnome-session.h \ + gnome-scores.h \ + gnome-stock.h \ gtk-clock.h \ libgnomeui.h libgnomeui_la_LDFLAGS = -version-info 0:0:0 -rpath $(libdir) -libgnomeui_la_LIBADD = $(GTK_LIBS) +libgnomeui_la_LIBADD = $(GTK_LIBS) $(X_LIBS) $(x_libs) files: @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \ diff -uNr gnome-0.11/libgnomeui/Makefile.in gnome-0.12/libgnomeui/Makefile.in --- gnome-0.11/libgnomeui/Makefile.in Wed Jan 7 20:30:44 1998 +++ gnome-0.12/libgnomeui/Makefile.in Wed Jan 21 21:13:08 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -123,6 +124,8 @@ gnome-pixmap.c \ gnome-properties.c \ gnome-session.c \ + gnome-scores.c \ + gnome-stock.c \ gtk-clock.c libgnomeuiinclude_HEADERS = \ @@ -136,11 +139,13 @@ gnome-properties.h \ gnome-pixmap.h \ gnome-session.h \ + gnome-scores.h \ + gnome-stock.h \ gtk-clock.h \ libgnomeui.h libgnomeui_la_LDFLAGS = -version-info 0:0:0 -rpath $(libdir) -libgnomeui_la_LIBADD = $(GTK_LIBS) +libgnomeui_la_LIBADD = $(GTK_LIBS) $(X_LIBS) $(x_libs) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = @@ -157,7 +162,8 @@ libgnomeui_la_OBJECTS = gnome-actionarea.lo gnome-app.lo \ gnome-app-helper.lo gnome-color-selector.lo gnome-colors.lo \ gnome-ice.lo gnome-init.lo gnome-messagebox.lo gnome-pixmap.lo \ -gnome-properties.lo gnome-session.lo gtk-clock.lo +gnome-properties.lo gnome-session.lo gnome-scores.lo gnome-stock.lo \ +gtk-clock.lo COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ @@ -177,7 +183,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libgnomeui/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -318,7 +324,7 @@ ../libgnome/gnome-triggers.h libgnomeui.h gnome-app.h \ gnome-app-helper.h gnome-actionarea.h gnome-colors.h \ gnome-color-selector.h gnome-messagebox.h gnome-pixmap.h \ - gtk-clock.h gnome-ice.h + gnome-scores.h gnome-stock.h gtk-clock.h gnome-ice.h gnome-init.o gnome-init.lo: gnome-init.c ../config.h \ ../libgnome/libgnome.h ../libgnome/gnome-defs.h \ ../libgnome/gnome-util.h ../libgnome/gnome-hook.h \ @@ -337,6 +343,10 @@ gnome-messagebox.h gnome-properties.o gnome-properties.lo: gnome-properties.c \ ../libgnome/gnome-defs.h gnome-properties.h gnome-actionarea.h +gnome-scores.o gnome-scores.lo: gnome-scores.c gnome-scores.h \ + ../libgnome/gnome-defs.h ../libgnome/gnome-util.h \ + ../libgnome/gnome-config.h ../libgnome/gnome-i18n.h \ + ../libgnome/gnome-score.h ../libgnome/gnome-string.h gnome-session.o gnome-session.lo: gnome-session.c ../config.h ../gnome.h \ ../libgnome/libgnome.h ../libgnome/gnome-defs.h \ ../libgnome/gnome-util.h ../libgnome/gnome-hook.h \ @@ -346,7 +356,15 @@ ../libgnome/gnome-triggers.h libgnomeui.h gnome-app.h \ gnome-app-helper.h gnome-actionarea.h gnome-colors.h \ gnome-color-selector.h gnome-messagebox.h gnome-pixmap.h \ - gtk-clock.h gnome-session.h gnome-ice.h + gnome-scores.h gnome-stock.h gtk-clock.h gnome-session.h \ + gnome-ice.h +gnome-stock.o gnome-stock.lo: gnome-stock.c ../config.h \ + ../libgnome/gnome-defs.h gnome-stock.h \ + ../programs/gtt/tb_new.xpm ../programs/gtt/tb_save.xpm \ + ../programs/gtt/tb_open.xpm ../programs/gtt/tb_cut.xpm \ + ../programs/gtt/tb_copy.xpm ../programs/gtt/tb_paste.xpm \ + ../programs/gtt/tb_properties.xpm \ + ../programs/gtt/tb_prop_dis.xpm gtk-clock.o gtk-clock.lo: gtk-clock.c gtk-clock.h info: @@ -418,6 +436,8 @@ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean + +DEFS += -Wall files: @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \ diff -uNr gnome-0.11/libgnomeui/gnome-app-helper.c gnome-0.12/libgnomeui/gnome-app-helper.c --- gnome-0.11/libgnomeui/gnome-app-helper.c Tue Jan 6 13:33:48 1998 +++ gnome-0.12/libgnomeui/gnome-app-helper.c Wed Jan 21 17:45:20 1998 @@ -89,7 +89,7 @@ gtk_toolbar_append_item(GTK_TOOLBAR(parent_widget), tbinfo[i].text, tbinfo[i].tooltip_text, - GTK_PIXMAP(pmap), + pmap, tbinfo[i].clicked_callback, NULL); } diff -uNr gnome-0.11/libgnomeui/gnome-app.c gnome-0.12/libgnomeui/gnome-app.c --- gnome-0.11/libgnomeui/gnome-app.c Tue Jan 6 13:41:09 1998 +++ gnome-0.12/libgnomeui/gnome-app.c Fri Jan 16 13:10:50 1998 @@ -9,7 +9,7 @@ #include static void gnome_app_class_init (GnomeAppClass *appclass); -static void gnome_app_destroy (GnomeApp *app); +static void gnome_app_destroy (GtkObject *object); static void gnome_app_init (GnomeApp *app); static void gnome_app_rightclick_event (GtkWidget *widget, GdkEventButton *event, @@ -50,7 +50,8 @@ sizeof(GnomeAppClass), (GtkClassInitFunc) gnome_app_class_init, (GtkObjectInitFunc) gnome_app_init, - (GtkArgFunc) NULL, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; gnomeapp_type = gtk_type_unique(gtk_window_get_type(), &gnomeapp_info); parent_class = gtk_type_class(gtk_window_get_type()); @@ -96,15 +97,23 @@ } if (title) gtk_window_set_title(GTK_WINDOW(retval), title); - + return retval; } static void -gnome_app_destroy(GnomeApp *app) +gnome_app_destroy(GtkObject *object) { + GnomeApp *app; + + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_APP (object)); + + app = GNOME_APP (object); + g_free (app->name); g_free (app->prefix); + if(GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy)(GTK_OBJECT(app)); } @@ -118,11 +127,14 @@ if (app->menubar->parent->parent) gtk_container_remove (GTK_CONTAINER(app->menubar->parent->parent), app->menubar->parent); - gtk_table_attach_defaults(GTK_TABLE(app->table), - app->menubar->parent, - 0, 3, - (app->pos_menubar == GNOME_APP_POS_TOP)?0:2, - (app->pos_menubar == GNOME_APP_POS_TOP)?1:3); + gtk_table_attach(GTK_TABLE(app->table), + app->menubar->parent, + 0, 3, + (app->pos_menubar == GNOME_APP_POS_TOP)?0:2, + (app->pos_menubar == GNOME_APP_POS_TOP)?1:3, + GTK_EXPAND | GTK_FILL, + GTK_SHRINK, + 0, 0); } /* 2. the toolbar */ @@ -137,11 +149,14 @@ offset = 1; if(app->pos_toolbar == GNOME_APP_POS_LEFT || app->pos_toolbar == GNOME_APP_POS_RIGHT){ - gtk_table_attach_defaults(GTK_TABLE(app->table), - app->toolbar->parent, - (app->pos_toolbar==GNOME_APP_POS_LEFT)?0:2, - (app->pos_toolbar==GNOME_APP_POS_LEFT)?1:3, - offset, 3); + gtk_table_attach(GTK_TABLE(app->table), + app->toolbar->parent, + (app->pos_toolbar==GNOME_APP_POS_LEFT)?0:2, + (app->pos_toolbar==GNOME_APP_POS_LEFT)?1:3, + offset, 3, + GTK_SHRINK, + GTK_EXPAND | GTK_FILL, + 0, 0); } else { gint moffset; @@ -149,11 +164,14 @@ moffset = (app->pos_toolbar == GNOME_APP_POS_TOP)?1:-1; else moffset = 0; - gtk_table_attach_defaults(GTK_TABLE(app->table), - app->toolbar->parent, - 0, 3, - ((app->pos_toolbar==GNOME_APP_POS_TOP)?0:2) + moffset, - ((app->pos_toolbar==GNOME_APP_POS_TOP)?1:3) + moffset); + gtk_table_attach(GTK_TABLE(app->table), + app->toolbar->parent, + 0, 3, + ((app->pos_toolbar==GNOME_APP_POS_TOP)?0:2) + moffset, + ((app->pos_toolbar==GNOME_APP_POS_TOP)?1:3) + moffset, + GTK_EXPAND | GTK_FILL, + GTK_SHRINK, + 0, 0); } } /* Repack any contents of ours */ @@ -193,13 +211,15 @@ app->pos_toolbar = pos_toolbar; if(pos_toolbar == GNOME_APP_POS_LEFT || pos_toolbar == GNOME_APP_POS_RIGHT){ - gtk_toolbar_set_orientation(GTK_TOOLBAR(app->toolbar), - GTK_ORIENTATION_VERTICAL); + if (GTK_IS_TOOLBAR (app->toolbar)) + gtk_toolbar_set_orientation(GTK_TOOLBAR(app->toolbar), + GTK_ORIENTATION_VERTICAL); gnome_app_configure_positions (app); } else { /* assume GNOME_APP_POS_TOP || GNOME_APP_POS_BOTTOM */ - gtk_toolbar_set_orientation(GTK_TOOLBAR(app->toolbar), - GTK_ORIENTATION_HORIZONTAL); + if (GTK_IS_TOOLBAR (app->toolbar)) + gtk_toolbar_set_orientation(GTK_TOOLBAR(app->toolbar), + GTK_ORIENTATION_HORIZONTAL); gnome_app_configure_positions (app); } @@ -246,12 +266,15 @@ /* Is this going to work at all? I'll wager not XXX oops it worked, my mistake :) */ - gtk_table_attach_defaults(GTK_TABLE(app->table), - contents, - startxs[app->pos_menubar][app->pos_toolbar], - endxs[app->pos_menubar][app->pos_toolbar], - startys[app->pos_menubar][app->pos_toolbar], - endys[app->pos_menubar][app->pos_toolbar]); + gtk_table_attach(GTK_TABLE(app->table), + contents, + startxs[app->pos_menubar][app->pos_toolbar], + endxs[app->pos_menubar][app->pos_toolbar], + startys[app->pos_menubar][app->pos_toolbar], + endys[app->pos_menubar][app->pos_toolbar], + GTK_EXPAND | GTK_FILL, + GTK_EXPAND | GTK_FILL, + 0, 0); app->contents = contents; gtk_widget_show(contents); } @@ -427,7 +450,6 @@ g_return_if_fail(GNOME_IS_APP(app)); g_return_if_fail(toolbar != NULL); g_return_if_fail(app->toolbar == NULL); - g_return_if_fail(GTK_IS_TOOLBAR(toolbar)); hb = gtk_handle_box_new(); gtk_widget_show(hb); diff -uNr gnome-0.11/libgnomeui/gnome-messagebox.c gnome-0.12/libgnomeui/gnome-messagebox.c --- gnome-0.11/libgnomeui/gnome-messagebox.c Sat Dec 6 09:03:34 1997 +++ gnome-0.12/libgnomeui/gnome-messagebox.c Fri Jan 16 13:10:50 1998 @@ -54,7 +54,8 @@ sizeof (GnomeMessageBoxClass), (GtkClassInitFunc) gnome_messagebox_class_init, (GtkObjectInitFunc) gnome_messagebox_init, - (GtkArgFunc) NULL, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; messagebox_type = gtk_type_unique (gtk_window_get_type (), &messagebox_info); diff -uNr gnome-0.11/libgnomeui/gnome-scores.c gnome-0.12/libgnomeui/gnome-scores.c --- gnome-0.11/libgnomeui/gnome-scores.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/libgnomeui/gnome-scores.c Wed Jan 21 20:08:22 1998 @@ -0,0 +1,258 @@ +/* + * G(NOME|TK) Scores Widget by Horacio J. Peña + * + * Free software (under the terms of the GNU Library General Public License) + */ + +#include +#include "gnome-scores.h" +#include "libgnome/gnome-defs.h" +#include "libgnome/gnome-util.h" +#include "libgnome/gnome-config.h" +#include "libgnome/gnome-i18n.h" +#include "libgnome/gnome-score.h" +#include "libgnome/gnome-string.h" + +#include "gtk/gtk.h" + +#include "time.h" + +static void gnome_scores_class_init (GnomeScoresClass *klass); +static void gnome_scores_init (GnomeScores *scores); + +guint +gnome_scores_get_type () +{ + static guint scores_type = 0; + + if (!scores_type) + { + GtkTypeInfo scores_info = + { + "GnomeScores", + sizeof (GnomeScores), + sizeof (GnomeScoresClass), + (GtkClassInitFunc) gnome_scores_class_init, + (GtkObjectInitFunc) gnome_scores_init, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, + }; + + scores_type = gtk_type_unique (gtk_window_get_type (), &scores_info); + } + + return scores_type; +} + +static void +gnome_scores_init (GnomeScores *gs) {} + +static void +gnome_scores_class_init (GnomeScoresClass *class) {} + +GtkWidget * +gnome_scores_new ( guint n_scores, + gchar **names, + gfloat *scores , + time_t *times, + guint clear) +{ + GtkWidget *retval = gtk_type_new(gnome_scores_get_type()); + GnomeScores *gs = GNOME_SCORES(retval); + GtkTable *table; + GtkWidget *hor_table; + GtkWidget *label; + GtkWidget *hSep; + GtkWidget *button1; + gchar tmp[10]; + gchar *tmp2; + int i; + + gs->logo = 0; + gs->but_clear = 0; + gs->n_scores = n_scores; + + table = GTK_TABLE( gtk_table_new (n_scores+1, 3, FALSE) ); + gtk_table_set_col_spacings (table, 30); + gtk_table_set_row_spacings (table, 5); + + label = gtk_label_new ( _("User") ); + gtk_widget_show (label); + gtk_table_attach_defaults ( table, label, 0, 1, 0, 1); + label = gtk_label_new ( _("Score") ); + gtk_widget_show (label); + gtk_table_attach_defaults ( table, label, 1, 2, 0, 1); + label = gtk_label_new ( _("Date") ); + gtk_widget_show (label); + gtk_table_attach_defaults ( table, label, 2, 3, 0, 1); + + gs->label_names = g_malloc(sizeof(GtkWidget*)*n_scores); + gs->label_scores = g_malloc(sizeof(GtkWidget*)*n_scores); + gs->label_times = g_malloc(sizeof(GtkWidget*)*n_scores); + + for(i=0; i < n_scores; i++) { + gs->label_names[i] = gtk_label_new ( names[i] ); + gtk_widget_show ( gs->label_names[i] ); + gtk_table_attach_defaults ( table, gs->label_names[i], 0, 1, i+1, i+2); + + g_snprintf(tmp,10,"%5.2f", scores[i]); + gs->label_scores[i] = gtk_label_new ( tmp ); + gtk_widget_show ( gs->label_scores[i] ); + gtk_table_attach_defaults ( table, gs->label_scores[i], 1, 2, i+1, i+2); + + tmp2 = ctime( &(times[i]) ); + tmp2[strlen(tmp2)-1]=0; + gs->label_times[i] = gtk_label_new ( tmp2 ); + gtk_widget_show ( gs->label_times[i] ); + gtk_table_attach_defaults ( table, gs->label_times[i], 2, 3, i+1, i+2); + } + gtk_widget_show (GTK_WIDGET(table)); + + button1 = gtk_button_new_with_label ( _("OK") ); + gtk_signal_connect_object (GTK_OBJECT (button1), "clicked", + GTK_SIGNAL_FUNC (gtk_widget_destroy), + GTK_OBJECT (gs)); + gtk_widget_show (button1); + hor_table = gtk_table_new (1, clear?5:3, TRUE); + gtk_table_attach_defaults ( GTK_TABLE(hor_table), button1, 1, 2, 0, 1); + gtk_widget_show (hor_table); + + if(clear) { + gs->but_clear = gtk_button_new_with_label ( _("Clear") ); + gtk_widget_show (gs->but_clear); + gtk_table_attach_defaults ( GTK_TABLE(hor_table), gs->but_clear, 3, 4, 0, 1); + } + + gs->vbox = gtk_vbox_new (FALSE, 5); + gtk_widget_show (gs->vbox); + gtk_box_pack_end (GTK_BOX(gs->vbox), hor_table, TRUE, TRUE, 0); + hSep = gtk_hseparator_new (); + gtk_widget_show (hSep); + gtk_box_pack_end (GTK_BOX(gs->vbox), hSep, TRUE, TRUE, 0); + gtk_box_pack_end (GTK_BOX(gs->vbox), GTK_WIDGET(table), TRUE, TRUE, 0); + hSep = gtk_hseparator_new (); + gtk_widget_show (hSep); + gtk_box_pack_end (GTK_BOX(gs->vbox), hSep, TRUE, TRUE, 0); + + gtk_container_add( GTK_CONTAINER(gs), gs->vbox); + gtk_window_set_title (GTK_WINDOW (gs), _("Top Ten") ); + gtk_container_border_width (GTK_CONTAINER (gs), 5); + + return retval; +} + +void +gnome_scores_set_color(GnomeScores *gs, guint n, GdkColor *col) +{ + GtkStyle *s = gtk_style_new(); /* i believe that i should copy the default style + and change only the fg field, how? */ + + memcpy((void *) &s->fg[0], col, sizeof(GdkColor) ); + gtk_widget_set_style(GTK_WIDGET(gs->label_names[n]), s); + gtk_widget_set_style(GTK_WIDGET(gs->label_scores[n]), s); + gtk_widget_set_style(GTK_WIDGET(gs->label_times[n]), s); +/* Can i free s?, how? */ +} + +void +gnome_scores_set_def_color(GnomeScores *gs, GdkColor *col) +{ + int i; + + for(i=0;in_scores;i++) { + gnome_scores_set_color(gs, i, col); + } +} + +void +gnome_scores_set_colors(GnomeScores *gs, GdkColor *col) +{ + int i; + + for(i=0;in_scores;i++) { + gnome_scores_set_color(gs, i, col+i); + } +} + +void gnome_scores_set_logo_label (GnomeScores *gs, gchar *txt, gchar *font, + GdkColor *col) +{ + GtkStyle *s = gtk_style_new(); /* i believe that i should copy the default style + and change only the fg & font fields, how? */ + GdkFont *f; + gchar *fo; + + if(gs->logo) { + g_print("Warning: gnome_scores_set_logo_* can be called only once\n"); + return; + } + + if(col) + memcpy((void *) &s->fg[0], col, sizeof(GdkColor) ); + + gs->logo = gtk_label_new(txt); + gtk_widget_set_style(GTK_WIDGET(gs->logo), s); + gtk_box_pack_end (GTK_BOX(gs->vbox), gs->logo, TRUE, TRUE, 0); + gtk_widget_show (gs->logo); +} + +void gnome_scores_set_logo_widget (GnomeScores *gs, GtkWidget *w) +{ + + if(gs->logo) { + g_print("Warning: gnome_scores_set_logo_* can be called only once\n"); + return; + } + + gs->logo = w; + gtk_box_pack_end (GTK_BOX(gs->vbox), gs->logo, TRUE, TRUE, 0); +} + +void gnome_scores_set_logo_pixmap (GnomeScores *gs, gchar *pix_name) +{ + GdkPixmap *pixmap; + GtkStyle *style; + GdkBitmap *mask; + + if(gs->logo) { + g_print("Warning: gnome_scores_set_logo_* can be called only once\n"); + return; + } + + style = gtk_widget_get_style( GTK_WIDGET(gs) ); + + pixmap = gdk_pixmap_create_from_xpm ( GTK_WIDGET(gs)->window, &mask, + &style->bg[GTK_STATE_NORMAL], + pix_name); + gs->logo = gtk_pixmap_new (pixmap, mask); + + gtk_box_pack_end (GTK_BOX(gs->vbox), gs->logo, TRUE, TRUE, 0); + gtk_widget_show (gs->logo); +} + +void +gnome_scores_display (gchar *title, gchar *app_name, gchar *level, int pos) +{ + GtkWidget *hs; + GdkColor ctitle = {0, 0, 0, 65535}; + GdkColor col = {0, 65535, 0, 0}; + gchar **names = NULL; + gfloat *scores = NULL; + time_t *scoretimes = NULL; + gint top; + int i; + + top = gnome_score_get_notable(app_name, level, &names, &scores, &scoretimes); + if (top > 0){ + hs = gnome_scores_new(top, names, scores, scoretimes, 0); + gnome_scores_set_logo_label (GNOME_SCORES(hs), title, 0, + &ctitle); + if(pos) + gnome_scores_set_color(GNOME_SCORES(hs), pos-1, &col); + + gtk_widget_show (hs); + gnome_string_array_free(names); + g_free(scores); + g_free(scoretimes); + } +} diff -uNr gnome-0.11/libgnomeui/gnome-scores.h gnome-0.12/libgnomeui/gnome-scores.h --- gnome-0.11/libgnomeui/gnome-scores.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/libgnomeui/gnome-scores.h Wed Jan 21 19:50:25 1998 @@ -0,0 +1,61 @@ +/* + * G(NOME|TK) Scores Widget by Horacio J. Peña + * + * Free software (under the terms of the GNU Library General Public License) + */ + + +#ifndef GNOME_SCORES_H +#define GNOME_SCORES_H +#include +#include +#include + +BEGIN_GNOME_DECLS + +#define GNOME_SCORES(obj) GTK_CHECK_CAST (obj, gnome_scores_get_type (), GnomeScores) +#define GNOME_SCORES_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gnome_scores_get_type (), GnomeScoresClass) +#define GNOME_IS_SCORES(obj) GTK_CHECK_TYPE (obj, gnome_scores_get_type ()) + +typedef struct _GnomeScores GnomeScores; +typedef struct _GnomeScoresClass GnomeScoresClass; + +struct _GnomeScores +{ + GtkWindow window; + + GtkWidget *but_clear; + guint n_scores; + + GtkWidget *logo; + GtkWidget *vbox; + GtkWidget **label_names; + GtkWidget **label_scores; + GtkWidget **label_times; +}; + +struct _GnomeScoresClass +{ + GtkWindowClass parent_class; +}; + +guint gnome_scores_get_type (void); +GtkWidget* gnome_scores_new (guint n_scores, gchar **names, gfloat *scores, + time_t *times, guint clear); + +void gnome_scores_set_logo_label (GnomeScores *, gchar *, gchar *, GdkColor *); +void gnome_scores_set_logo_pixmap (GnomeScores *, gchar *); +void gnome_scores_set_logo_widget (GnomeScores *, GtkWidget *); + +void gnome_scores_set_color (GnomeScores *, guint, GdkColor*); +void gnome_scores_set_def_color (GnomeScores *, GdkColor*); + + /* Warning: in gnome_scores_set_colors GdkColor* is an + array, not a pointer as in [set|def]_color */ +void gnome_scores_set_colors (GnomeScores *, GdkColor*); + +void gnome_scores_display (gchar *title, gchar *app_name, gchar *level, int pos); + +END_GNOME_DECLS + +#endif /* GNOME_SCORES_H */ diff -uNr gnome-0.11/libgnomeui/gnome-session.c gnome-0.12/libgnomeui/gnome-session.c --- gnome-0.11/libgnomeui/gnome-session.c Fri Jan 2 14:55:33 1998 +++ gnome-0.12/libgnomeui/gnome-session.c Tue Jan 20 21:52:31 1998 @@ -49,14 +49,17 @@ interact_style, fast); else status = True; - SmcSaveYourselfDone (connection, status); - /* State might have changed while calling SAVER. Assume that if it - has changed, then we are ok. */ - /* FIXME: Make it impossible for the user to interact. */ - while (info->state == c_save_yourself - && ! gtk_main_iteration ()) - ; + SmcSaveYourselfDone (connection, status); + if (shutdown) + { + /* State might have changed while calling SAVER. Assume that if + it has changed, then we are ok. */ + /* FIXME: Make it impossible for the user to interact. */ + while (info->state == c_save_yourself + && ! gtk_main_iteration ()) + ; + } info->state = c_idle; } @@ -75,7 +78,7 @@ static void save_complete (SmcConn connection, SmPointer client_data) { - assert (info->state == c_save_yourself); + assert (info->state == c_save_yourself || info->state == c_idle); info->state = c_idle; } @@ -96,7 +99,6 @@ char *previous) { #ifdef HAVE_LIBSM - SmcConn connection; unsigned long mask; SmcCallbacks callbacks; char *client_id; @@ -169,7 +171,6 @@ #ifdef HAVE_LIBSM SmProp prop, *proplist[1]; SmPropValue val; - int len; if (! info) return; @@ -191,7 +192,6 @@ #ifdef HAVE_LIBSM SmProp prop, *proplist[1]; SmPropValue val; - int len; if (! info) return; diff -uNr gnome-0.11/libgnomeui/gnome-stock.c gnome-0.12/libgnomeui/gnome-stock.c --- gnome-0.11/libgnomeui/gnome-stock.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/libgnomeui/gnome-stock.c Mon Jan 19 10:34:06 1998 @@ -0,0 +1,301 @@ +#include +#include +#include +#include +#include +#include "libgnome/gnome-defs.h" +#include "gnome-stock.h" + +#include "../programs/gtt/tb_new.xpm" +#include "../programs/gtt/tb_save.xpm" +#include "../programs/gtt/tb_open.xpm" +#include "../programs/gtt/tb_cut.xpm" +#include "../programs/gtt/tb_copy.xpm" +#include "../programs/gtt/tb_paste.xpm" +#include "../programs/gtt/tb_properties.xpm" +#include "../programs/gtt/tb_prop_dis.xpm" + + +#define STOCK_SEP '.' +#define STOCK_SEP_STR "." + + +/**************************/ +/* GnomeStockPixmapWidget */ +/**************************/ + +static GtkVBoxClass *parent_class = NULL; + +static void +gnome_stock_pixmap_widget_destroy(GtkObject *object) +{ + GnomeStockPixmapWidget *w; + + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_STOCK_PIXMAP_WIDGET (object)); + + w = GNOME_STOCK_PIXMAP_WIDGET (object); + + /* free resources */ + if (w->pixmap) gtk_widget_destroy(GTK_WIDGET(w->pixmap)); + if (w->icon) g_free(w->icon); + + if (GTK_OBJECT_CLASS(parent_class)->destroy) + (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); +} + + + +static void +gnome_stock_pixmap_widget_class_init(GnomeStockPixmapWidgetClass *klass) +{ + GtkObjectClass *object_class = GTK_OBJECT_CLASS(klass); + object_class->destroy = gnome_stock_pixmap_widget_destroy; +} + + + +static void +gnome_stock_pixmap_widget_init(GtkObject *obj) +{ + GnomeStockPixmapWidget *w; + + g_return_if_fail(obj != NULL); + g_return_if_fail(GNOME_IS_STOCK_PIXMAP_WIDGET(obj)); + + w = GNOME_STOCK_PIXMAP_WIDGET(obj); + w->icon = NULL; + w->pixmap = NULL; + w->window = NULL; +} + + + +guint +gnome_stock_pixmap_widget_get_type(void) +{ + static guint new_type = 0; + if (!new_type) { + GtkTypeInfo type_info = { + "GnomeStockPixmapWidget", + sizeof(GnomeStockPixmapWidget), + sizeof(GnomeStockPixmapWidgetClass), + (GtkClassInitFunc)gnome_stock_pixmap_widget_class_init, + (GtkObjectInitFunc)gnome_stock_pixmap_widget_init, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL + }; + new_type = gtk_type_unique(gtk_vbox_get_type(), &type_info); + parent_class = gtk_type_class(gtk_vbox_get_type()); + } + return new_type; +} + + + +GtkWidget * +gnome_stock_pixmap_widget_new(GtkWidget *window, char *icon) +{ + GtkWidget *w; + GnomeStockPixmapWidget *p; + + g_return_val_if_fail(icon != NULL, NULL); + g_return_val_if_fail(gnome_stock_pixmap_checkfor(icon, GNOME_STOCK_PIXMAP_REGULAR), NULL); + + w = gtk_type_new(gnome_stock_pixmap_widget_get_type()); + p = GNOME_STOCK_PIXMAP_WIDGET(w); + p->icon = g_strdup(icon); + p->window = window; + + /* TODO: for now I just show the regular pixmap at init time + and that's it */ + p->pixmap = gnome_stock_pixmap(window, icon, + GNOME_STOCK_PIXMAP_REGULAR); + gtk_widget_show(GTK_WIDGET(p->pixmap)); + gtk_container_add(GTK_CONTAINER(w), GTK_WIDGET(p->pixmap)); + + return w; +} + + + +/****************/ +/* some helpers */ +/****************/ + + +struct _default_entries_data { + char *icon, *subtype; + gchar **xpm_data; +}; + +struct _default_entries_data entries_data[] = { + {GNOME_STOCK_PIXMAP_NEW, GNOME_STOCK_PIXMAP_REGULAR, tb_new_xpm}, + {GNOME_STOCK_PIXMAP_SAVE, GNOME_STOCK_PIXMAP_REGULAR, tb_save_xpm}, + {GNOME_STOCK_PIXMAP_OPEN, GNOME_STOCK_PIXMAP_REGULAR, tb_open_xpm}, + {GNOME_STOCK_PIXMAP_CUT, GNOME_STOCK_PIXMAP_REGULAR, tb_cut_xpm}, + {GNOME_STOCK_PIXMAP_COPY, GNOME_STOCK_PIXMAP_REGULAR, tb_copy_xpm}, + {GNOME_STOCK_PIXMAP_PASTE, GNOME_STOCK_PIXMAP_REGULAR, tb_paste_xpm}, + {GNOME_STOCK_PIXMAP_PROPERTIES, GNOME_STOCK_PIXMAP_REGULAR, tb_properties_xpm}, + {GNOME_STOCK_PIXMAP_PROPERTIES, GNOME_STOCK_PIXMAP_DISABLED, tb_prop_dis_xpm}, +}; +static int entries_data_num = sizeof(entries_data) / sizeof(entries_data[0]); + + +static char * +build_hash_key(char *icon, char *subtype) +{ + char *s; + + s = g_malloc(strlen(icon) + strlen(subtype) + 2); + strcpy(s, icon); + strcat(s, STOCK_SEP_STR); + if (subtype) + strcat(s, subtype); + else + strcat(s, GNOME_STOCK_PIXMAP_REGULAR); + return s; +} + + + +static GHashTable * +stock_pixmaps(void) +{ + static GHashTable *hash = NULL; + GnomeStockPixmapEntry *entry; + int i; + + if (hash) return hash; + + hash = g_hash_table_new(g_str_hash, g_str_equal); + + for (i = 0; i < entries_data_num; i++) { + entry = g_malloc(sizeof(GnomeStockPixmapEntry)); + entry->type = GNOME_STOCK_PIXMAP_TYPE_DATA; + entry->data.xpm_data = entries_data[i].xpm_data; + g_hash_table_insert(hash, + build_hash_key(entries_data[i].icon, + entries_data[i].subtype), + entry); + } + + return hash; +} + + +static GnomeStockPixmapEntry * +lookup(char *icon, char *subtype) +{ + char *s; + GHashTable *hash = stock_pixmaps(); + GnomeStockPixmapEntry *entry; + + s = build_hash_key(icon, subtype); + entry = (GnomeStockPixmapEntry *)g_hash_table_lookup(hash, s); + if (!entry) { + g_free(s); + s = build_hash_key(icon, GNOME_STOCK_PIXMAP_REGULAR); + entry = (GnomeStockPixmapEntry *) + g_hash_table_lookup(hash, s); + } + g_free(s); + return entry; +} + + + +static GtkPixmap * +create_pixmap_from_data(GtkWidget *window, GnomeStockPixmapEntryData *data) +{ + GtkPixmap *pixmap; + GdkPixmap *pmap; + GdkBitmap *bmap; + GtkStyle *style; + GdkWindow *gwin; + + if (window) { + style = gtk_widget_get_style(window); + gwin = window->window; + } else { + style = gtk_widget_get_default_style(); + gwin = NULL; + } + pmap = gdk_pixmap_create_from_xpm_d(gwin, &bmap, + &style->bg[GTK_STATE_NORMAL], + data->xpm_data); + pixmap = (GtkPixmap *)gtk_pixmap_new(pmap, bmap); + return pixmap; +} + + + +/**********************/ +/* utitlity functions */ +/**********************/ + + + +GtkPixmap * +gnome_stock_pixmap(GtkWidget *window, char *icon, char *subtype) +{ + GnomeStockPixmapEntry *entry; + GtkPixmap *pixmap; + + g_return_val_if_fail(icon != NULL, NULL); + /* subtype can be NULL, so not checked */ + /* window can be NULL, but if not, window has to be GtkWidget */ + if (window) + g_return_val_if_fail(GTK_IS_WIDGET(window), NULL); + + entry = lookup(icon, subtype); + if (!entry) return NULL; + pixmap = NULL; + switch (entry->type) { + case GNOME_STOCK_PIXMAP_TYPE_DATA: + pixmap = create_pixmap_from_data(window, &(entry->data)); + break; + default: + g_assert_not_reached(); + break; + } + return pixmap; +} + + + +GtkWidget * +gnome_stock_pixmap_widget(GtkWidget *window, char *icon) +{ + GtkWidget *w; + + w = gnome_stock_pixmap_widget_new(window, icon); + return w; +} + + +gint +gnome_stock_pixmap_register(char *icon, char *subtype, + GnomeStockPixmapEntry *entry) +{ + g_print(__FILE__ "gnome_stock_pixmap_register: not implemented yet\n"); + return 0; +} + + + +gint +gnome_stock_pixmap_change(char *icon, char *subtype, + GnomeStockPixmapEntry *entry) +{ + g_print(__FILE__ "gnome_stock_pixmap_change: not implemented yet\n"); + return 0; +} + + + +GnomeStockPixmapEntry * +gnome_stock_pixmap_checkfor(char *icon, char *subtype) +{ + return lookup(icon, subtype); +} diff -uNr gnome-0.11/libgnomeui/gnome-stock.h gnome-0.12/libgnomeui/gnome-stock.h --- gnome-0.11/libgnomeui/gnome-stock.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/libgnomeui/gnome-stock.h Mon Jan 19 10:34:09 1998 @@ -0,0 +1,163 @@ +#ifndef __GNOME_PIXMAP_H__ +#define __GNOME_PIXMAP_H__ + + +#include +#include +#include +#include + + +/* A short description: + + These functions provide an applications programmer with default + icons for toolbars, menu pixmaps, etc. One such `icon' should have + at least three pixmaps to reflect it's state. There is a `regular' + pixmap, a `disabled' pixmap and a `focused' pixmap. You can get + either each of these pixmaps by calling gnome_stock_pixmap or you + can get a widget by calling gnome_stock_pixmap_widget. This widget + is a container which gtk_widget_shows the pixmap, that is + reflecting the current state of the widget. If for example you + gtk_container_add this widget to a button, which is currently not + sensitive, the widget will just show the `disabled' pixmap. If the + state of the button changes to sensitive, the widget will change to + the `regular' pixmap. The `focused' pixmap will be shown, when the + mouse pointer enters the widget. + + To support themability, we use (char *) to call those functions. A + new theme might register new icons by calling + gnome_stock_pixmap_register, or may change existing icons by + calling gnome_stock_pixmap_change. An application should check (by + calling gnome_stock_pixmap_checkfor), if the current theme supports + an uncommon icon, before using it. The only icons an app can rely + on, are those defined in this haeder file. */ + + +BEGIN_GNOME_DECLS + +/* The names of `well known' icons. I define these strings basically + to prevent errors due to typos. */ + +#define GNOME_STOCK_PIXMAP_NEW "New" +#define GNOME_STOCK_PIXMAP_OPEN "Open" +#define GNOME_STOCK_PIXMAP_SAVE "Save" +#define GNOME_STOCK_PIXMAP_CUT "Cut" +#define GNOME_STOCK_PIXMAP_COPY "Copy" +#define GNOME_STOCK_PIXMAP_PASTE "Paste" +#define GNOME_STOCK_PIXMAP_PROPERTIES "Properties" + + +/* The basic pixmap version of an icon. */ + +#define GNOME_STOCK_PIXMAP_REGULAR "regular" +#define GNOME_STOCK_PIXMAP_DISABLED "disabled" +#define GNOME_STOCK_PIXMAP_FOCUSED "focused" + + + +/* some internal definitions */ + +typedef struct _GnomeStockPixmapEntryData GnomeStockPixmapEntryData; +typedef struct _GnomeStockPixmapEntryFile GnomeStockPixmapEntryFile; +typedef struct _GnomeStockPixmapEntryPath GnomeStockPixmapEntryPath; +typedef struct _GnomeStockPixmapEntryWidget GnomeStockPixmapEntryWidget; +typedef union _GnomeStockPixmapEntry GnomeStockPixmapEntry; + +typedef enum { + GNOME_STOCK_PIXMAP_TYPE_NONE, + GNOME_STOCK_PIXMAP_TYPE_DATA, + GNOME_STOCK_PIXMAP_TYPE_FILE, + GNOME_STOCK_PIXMAP_TYPE_PATH, + GNOME_STOCK_PIXMAP_TYPE_WIDGET +} GnomeStockPixmapType; + + +/* a data entry holds a hardcoded pixmap */ +struct _GnomeStockPixmapEntryData { + GnomeStockPixmapType type; + gchar **xpm_data; +}; + +/* a file entry holds a filename (no path) to the pixamp. this pixmap + will be seached for using gnome_pixmap_file */ +struct _GnomeStockPixmapEntryFile { + GnomeStockPixmapType type; + gchar *filename; +}; + +/* a path entry holds the complete (absolut) path to the pixmap file */ +struct _GnomeStockPixmapEntryPath { + GnomeStockPixmapType type; + gchar *pathname; +}; + +/* a widget entry holds a GnomeStockPixmapWidget. This kind of icon + can be used by a theme to completely change the handling of a stock + icon. */ +struct _GnomeStockPixmapEntryWidget { + GnomeStockPixmapType type; + GtkWidget *widget; +}; + +union _GnomeStockPixmapEntry { + GnomeStockPixmapType type; + GnomeStockPixmapEntryData data; + GnomeStockPixmapEntryFile file; + GnomeStockPixmapEntryPath path; + GnomeStockPixmapEntryWidget widget; +}; + + + +/* the GnomeStockPixmapWidget */ + +#define GNOME_STOCK_PIXMAP_WIDGET(obj) GTK_CHECK_CAST(obj, gnome_stock_pixmap_widget_get_type(), GnomeStockPixmapWidget) +#define GNOME_STOCK_PIXMAP_WIDGET_CLASS(klass) GTK_CHECK_CAST_CLASS(obj, gnome_stock_pixmap_widget_get_type(), GnomeStockPixmapWidget) +#define GNOME_IS_STOCK_PIXMAP_WIDGET(obj) GTK_CHECK_TYPE(obj, gnome_stock_pixmap_widget_get_type()) + +typedef struct _GnomeStockPixmapWidget GnomeStockPixmapWidget; +typedef struct _GnomeStockPixmapWidgetClass GnomeStockPixmapWidgetClass; + +struct _GnomeStockPixmapWidget { + GtkVBox parent_object; + + char *icon; + GtkWidget *window; /* needed for style and gdk_pixmap_create... */ + GtkPixmap *pixmap; /* the pixmap currently shown */ +}; + +struct _GnomeStockPixmapWidgetClass { + GtkVBoxClass parent_class; +}; + +guint gnome_stock_pixmap_widget_get_type(void); +GtkWidget *gnome_stock_pixmap_widget_new(GtkWidget *window, char *icon); + + + +/* the utility functions */ + +/* just fetch a pixmap */ +GtkPixmap *gnome_stock_pixmap (GtkWidget *window, + char *icon, + char *subtype); + +/* just fetch a GnomeStockPixmapWidget */ +GtkWidget *gnome_stock_pixmap_widget (GtkWidget *window, + char *icon); + +/* register a pixmap. returns non-zero, if successfull */ +gint gnome_stock_pixmap_register (char *icon, char *subtype, + GnomeStockPixmapEntry *entry); + +/* change an existing entry. returns non-zero on success */ +gint gnome_stock_pixmap_change (char *icon, char *subtype, + GnomeStockPixmapEntry *entry); + +/* check for the existance of an entry. returns the entry if it + exists, or NULL otherwise */ +GnomeStockPixmapEntry *gnome_stock_pixmap_checkfor (char *icon, char *subtype); + +END_GNOME_DECLS + +#endif diff -uNr gnome-0.11/libgnomeui/gtk-clock.c gnome-0.12/libgnomeui/gtk-clock.c --- gnome-0.11/libgnomeui/gtk-clock.c Wed Dec 17 14:54:52 1997 +++ gnome-0.12/libgnomeui/gtk-clock.c Fri Jan 16 13:10:50 1998 @@ -24,7 +24,8 @@ sizeof(GtkClockClass), (GtkClassInitFunc) gtk_clock_class_init, (GtkObjectInitFunc) gtk_clock_init, - (GtkArgFunc) NULL, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; gtkclock_type = gtk_type_unique(gtk_label_get_type(), >kclock_info); } diff -uNr gnome-0.11/libgnomeui/libgnomeui.h gnome-0.12/libgnomeui/libgnomeui.h --- gnome-0.11/libgnomeui/libgnomeui.h Wed Jan 7 19:12:11 1998 +++ gnome-0.12/libgnomeui/libgnomeui.h Mon Jan 19 11:05:11 1998 @@ -10,6 +10,8 @@ #include "libgnomeui/gnome-messagebox.h" #include "libgnomeui/gnome-pixmap.h" #include "libgnomeui/gnome-actionarea.h" +#include "libgnomeui/gnome-scores.h" +#include "libgnomeui/gnome-stock.h" #include "libgnomeui/gtk-clock.h" BEGIN_GNOME_DECLS diff -uNr gnome-0.11/ltconfig gnome-0.12/ltconfig --- gnome-0.11/ltconfig Sat Dec 6 09:01:47 1997 +++ gnome-0.12/ltconfig Tue Jan 20 22:04:18 1998 @@ -26,13 +26,36 @@ # A lot of this script is taken from autoconf-2.10. +echo=echo +if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : +else + # The Solaris and AIX default echo program unquotes backslashes. + # This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # So, we emulate echo with printf '%s\n' + echo="printf %s\\n" + if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : + else + # Oops. We have no working printf. Try to find a not-so-buggy echo. + echo=echo + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH /usr/ucb; do + if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + fi +fi + # The name of this program. -progname=`echo "$0" | sed 's%^.*/%%'` +progname=`$echo "$0" | sed 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool -VERSION=1.0c +VERSION=1.0h ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' rm="rm -f" @@ -41,7 +64,10 @@ # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$]\)/\\\1/g' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but don't quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Global variables: can_build_shared=yes @@ -252,7 +278,10 @@ fi ;; esac host=`$ac_config_sub $host_alias` - echo "$ac_t""$host" 1>&6 + echo "$ac_t$host" 1>&6 + + # Make sure the host verified. + test -z "$host" && exit 1 elif test -z "$host"; then echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 @@ -272,9 +301,22 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +case "$host_os" in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "${COLLECT_NAMES+set}" != set; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + # Determine commands to create old-style static archives. old_archive_cmds='$AR cru $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= # Set a sane default for `AR'. test -z "$AR" && AR=ar @@ -295,7 +337,7 @@ done IFS="$save_ifs" - echo $ac_t "$result" 1>&6 + echo "$ac_t$result" 1>&6 fi if test -n "$RANLIB"; then @@ -320,9 +362,9 @@ IFS="$save_ifs" if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 + echo "$ac_t$CC" 1>&6 else - echo "$ac_t""no" 1>&6 + echo "$ac_t"no 1>&6 fi fi @@ -359,9 +401,9 @@ fi if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 + echo "$ac_t$CC" 1>&6 else - echo "$ac_t""no" 1>&6 + echo "$ac_t"no 1>&6 fi if test -z "$CC"; then @@ -373,7 +415,7 @@ # Now see if the compiler is really GCC. with_gcc=no echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:376: checking whether we are using GNU C" >&5 + echo "$progname:418: checking whether we are using GNU C" >&5 $rm conftest.c cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then with_gcc=yes fi $rm conftest.c - echo $ac_t "$with_gcc" 1>&6 + echo "$ac_t$with_gcc" 1>&6 fi # Allow CC to be a program name with arguments. @@ -407,9 +449,17 @@ no_builtin_flag=' -fno-builtin' case "$host_os" in - irix5* | irix6*) + aix3* | aix4* | irix5* | irix6* | osf3* | osf4*) # PIC is the default for these OSes. - pic_flag= + ;; + os2*) + # We can build DLLs from non-PIC. + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + pic_flag='-m68020 -resident32 -malways-restore-a4' ;; *) pic_flag='-fPIC' @@ -419,25 +469,29 @@ # PORTME Check for PIC flags for the system compiler. case "$host_os" in aix3* | aix4*) - # FIXME All rs/6000 code is PIC, but is there any non-rs/6000 AIX platform? + # All AIX code is PIC. link_static_flag='-bnso -bI:/lib/syscalls.exp' ;; hpux9* | hpux10*) - # FIXME is there a better link_static_flag that works with the bundled CC? + # Is there a better link_static_flag that works with the bundled CC? wl='-Wl,' link_static_flag='${wl}-a ${wl}archive' + pic_flag='+Z' ;; irix5* | irix6*) wl='-Wl,' link_static_flag='-non_shared' # PIC (with -KPIC) is the default. - pic_flag= + ;; + + os2*) + # We can build DLLs from non-PIC. ;; osf3* | osf4*) - # FIXME - pic_flag is probably required for hppa*-osf* and i860-osf* + # All OSF/1 code is PIC. wl='-Wl,' link_static_flag='-non_shared' ;; @@ -460,22 +514,19 @@ wl='-Qoption ld ' ;; + uts4*) + pic_flag='-pic' + link_static_flag='-Bstatic' + ;; + *) can_build_shared=no ;; esac fi -case "$host_cpu" in -alpha | rs6000 | powerpc | powerpcle) - # Yippee! All RS/6000 and PowerPC code is position-independent. - # Apparently, so is DEC alpha! - pic_flag= - ;; -esac - if test -n "$pic_flag"; then - echo $ac_t "$pic_flag" 1>&6 + echo "$ac_t$pic_flag" 1>&6 # Check to make sure the pic_flag actually works. echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 @@ -483,19 +534,19 @@ echo > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:486: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + echo "$progname:537: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # Append any errors to the config.log. cat conftest.err 1>&5 # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also # reports no error. So, we need to grep stderr for (Bundled). if grep '(Bundled)' conftest.err >/dev/null; then - echo $ac_t no 1>&6 + echo "$ac_t"no 1>&6 can_build_shared=no pic_flag= else - echo $ac_t yes 1>&6 + echo "$ac_t"yes 1>&6 pic_flag=" $pic_flag" fi else @@ -503,12 +554,12 @@ cat conftest.err 1>&5 can_build_shared=no pic_flag= - echo $ac_t no 1>&6 + echo "$ac_t"no 1>&6 fi CFLAGS="$save_CFLAGS" $rm conftest* else - echo $ac_t none 1>&6 + echo "$ac_t"none 1>&6 fi # Check for any special shared library compilation flags. @@ -526,11 +577,11 @@ echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:529: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - echo $ac_t "$link_static_flag" 1>&6 +echo "$progname:580: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + echo "$ac_t$link_static_flag" 1>&6 else - echo $ac_t none 1>&6 + echo "$ac_t"none 1>&6 link_static_flag= fi LDFLAGS="$save_LDFLAGS" @@ -554,18 +605,18 @@ fi # Make sure LD is an absolute path. -case "$LD" in -/*) ;; -*) +if test -z "$LD"; then ac_prog=ld if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:564: checking for ld used by GCC" >&5 + echo "$progname:613: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. - /*) ;; + /*) + test -z "$LD" && LD="$ac_prog" + ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld @@ -577,17 +628,13 @@ esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:580: checking for GNU ld" >&5 + echo "$progname:631: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:583: checking for non-GNU ld" >&5 + echo "$progname:634: checking for non-GNU ld" >&5 fi - LD=${LD-$ac_prog} - case "$LD" in - /*) - ac_cv_path_LD="$LD" # Let the user override the test with a path. - ;; - *) + + if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. @@ -604,11 +651,19 @@ fi done IFS="$ac_save_ifs" - ;; - esac - echo $ac_t "$with_gnu_ld" 1>&6 - ;; -esac + fi + + if test -n "$LD"; then + echo "$ac_t$LD" 1>&6 + else + echo "$ac_t"no 1>&6 + fi + + if test -z "$LD"; then + echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 + exit 1 + fi +fi # Check to see if it really is or isn't GNU ld. echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 @@ -618,13 +673,14 @@ else with_gnu_ld=no fi -echo $ac_t "$with_gnu_ld" 1>&6 +echo "$ac_t$with_gnu_ld" 1>&6 # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 allow_undefined_flag= archive_cmds= +old_archive_from_new_cmds= export_dynamic_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_separator= @@ -634,30 +690,30 @@ hardcode_shlibpath_var=unsupported runpath_var= +case "$host_os" in +amigaos* | sunos4*) + # On these operating systems, we should treat GNU ld like the system ld. + gnu_ld_acts_native=yes + ;; +*) + gnu_ld_acts_native=no + ;; +esac + ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # See if GNU ld supports shared libraries. +if test "$with_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then - case "$host_os" in - sunos4*) + # See if GNU ld supports shared libraries. + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes ld_shlibs=yes - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - else - ld_shlibs=no - fi - ;; - esac + else + ld_shlibs=no + fi if test "$ld_shlibs" = yes; then - archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs' hardcode_libdir_flag_spec='${wl}-rpath $wl$libdir' export_dynamic_flag_spec='${wl}-export-dynamic' fi @@ -666,7 +722,7 @@ case "$host_os" in aix3*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE -lc$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes @@ -679,17 +735,24 @@ aix4*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname' hardcode_direct=yes hardcode_minus_L=yes ;; + amigaos*) + archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # doesn't break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs /usr/lib/c++rt0.o' + archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -697,7 +760,7 @@ # Unfortunately, older versions of FreeBSD 2 don't have this feature. freebsd2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -705,7 +768,7 @@ # FreeBSD 3, at last, uses gcc -shared to do shared libraries. freebsd3*) - archive_cmds='$CC -shared -o $lib$libobjs$deplibs' + archive_cmds='$CC -shared -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -713,65 +776,98 @@ ;; hpux9*) - archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs;mv $objdir/$soname $lib' + archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; hpux10*) - archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' + archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6*) - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs -lc$deplibs' + archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ;; - netbsd* | openbsd*) + netbsd*) # Tested with NetBSD 1.2 ld - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + openbsd*) + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' + ;; + osf3* | osf4*) - allow_undefined_flag=' -expect_unresolved' - archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs -lc$deplibs' + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; sco3.2v5*) - archive_cmds='$LD -G -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -o $lib$libobjs' hardcode_direct=yes ;; solaris2*) - archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no ;; sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + if test "$with_gcc" = yes; then + archive_cmds='$CC -shared -o $lib$libobjs' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + fi + + if test "$with_gnu_ld" = yes; then + export_dynamic_flag_spec='${wl}-export-dynamic' + fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; + uts4*) + archive_cmds='$LD -G -h $soname -o $lib$libobjs' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=no + ;; + *) ld_shlibs=no can_build_shared=no ;; esac fi -echo $ac_t "$ld_shlibs" 1>&6 +echo "$ac_t$ld_shlibs" 1>&6 if test -z "$NM"; then echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 @@ -779,13 +875,15 @@ /*) ;; # Let the user override the test with a path. *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in /usr/ucb:$PATH:/bin; do + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && dir=. if test -f $ac_dir/nm; then # Check to see if the nm accepts a BSD-compat flag. - if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + # Adding the `sed 1!d' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -p" else NM="$ac_dir/nm" @@ -820,6 +918,10 @@ aix*) symcode='[BCDTU]' ;; +irix*) + # Cannot use undefined symbols on IRIX because inlined functions mess us up. + symcode='[BCDEGRST]' + ;; solaris2*) symcode='[BDTU]' ;; @@ -827,36 +929,39 @@ # If we're using GNU nm, then use its standard symbol codes. if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTU]' + symcode='[ABCDGISTUW]' fi -# Delete symbols that are not valid C identifiers. -global_symbol_pipe="sed -e '/^.* $symcode $sympat$/!d'" - # Write the raw and C identifiers. -global_symbol_pipe="$global_symbol_pipe -e 's/^.* $symcode $sympat$/$symxfrm/'" +global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no $rm conftest* cat > conftest.c <&5 -if { (eval echo $progname:849: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then +echo "$progname:953: checking if global_symbol_pipe works" >&5 +if { (eval echo $progname:954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then # Now try to grab the symbols. nlist=conftest.nm - if { echo "$progname:852: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + if { echo "$progname:957: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - test "$wcout" = "$count" && count=-1 + (test "$count" -ge 0) 2>/dev/null || count=-1 else rm -f "$nlist"T count=-1 @@ -865,8 +970,14 @@ # Make sure that we snagged all the symbols we need. if egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.c +#ifdef __cplusplus +extern "C" { +#endif + +EOF # Now generate the symbol file. - sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" > conftest.c + sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> conftest.c cat <> conftest.c #if defined (__STDC__) && __STDC__ @@ -886,10 +997,14 @@ dld_preloaded_symbols[] = { EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> conftest.c + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c cat <<\EOF >> conftest.c {0}, }; + +#ifdef __cplusplus +} +#endif EOF # Now try linking the two files. mv conftest.o conftestm.o @@ -897,19 +1012,21 @@ save_CFLAGS="$CFLAGS" LIBS='conftestm.o' CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo $progname:1015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 cat conftest.c >&5 fi LIBS="$save_LIBS" + else + echo "cannot find nm_test_func in $nlist" >&5 fi else - echo "cannot find nm_test_func in $nlist" >&5 + echo "cannot find nm_test_var in $nlist" >&5 fi else - echo "cannot find nm_test_var in $nlist" >&5 + echo "cannot run $global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 @@ -947,7 +1064,7 @@ # We can only hardcode existing directories. hardcode_action=relink fi -echo $ac_t "$hardcode_action" 1>&6 +echo "$ac_t$hardcode_action" 1>&6 test "$hardcode_action" = unsupported && can_build_shared=no @@ -956,14 +1073,17 @@ echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 # PORTME Some linker may need a different reload flag. reload_flag='-r' -echo $ac_t "$reload_flag" +echo "$ac_t$reload_flag" test -n "$reload_flag" && reload_flag=" $reload_flag" # PORTME Fill in your ld.so characteristics library_names_spec= +libname_spec='lib$name' soname_spec= postinstall_cmds= +postuninstall_cmds= finish_cmds= +finish_eval= shlibpath_var= version_type=none dynamic_linker="$host_os ld.so" @@ -979,6 +1099,12 @@ soname_spec='$libname.so.$major' ;; +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "$lib" | sed '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + freebsd2* | freebsd3*) version_type=sunos library_names_spec='$libname.so.$versuffix $libname.so' @@ -1042,6 +1168,13 @@ shlibpath_var=LD_LIBRARY_PATH ;; +os2*) + libname_spec='$name' + library_names_spec='$libname.dll $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + osf3* | osf4*) version_type=osf soname_spec='$libname.so' @@ -1070,43 +1203,34 @@ shlibpath_var=LD_LIBRARY_PATH ;; +uts4*) + version_type=linux + library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + *) dynamic_linker=no ;; esac -echo "$ac_t""$dynamic_linker" +echo "$ac_t$dynamic_linker" test "$dynamic_linker" = no && can_build_shared=no -# FIXME need to add library stripping features +# FIXME add checks for striplib and old_striplib here. # strip -x works for most platforms, though not for static libraries on NetBSD # HP-UX requires "-r" for library stripping striplib= old_striplib= -#echo $ac_n "checking for static library strip program... $ac_c" 1>&6 -#if test -n "$old_striplib"; then -# echo $ac_t "$old_striplib" 1>&6 -#else -# echo $ac_t none 1>&6 -#fi - -#if test "$can_build_shared" = yes; then -# echo $ac_n "checking for shared library strip program... $ac_c" 1>&6 -# -# if test -n "$striplib"; then -# echo $ac_t "$striplib" 1>&6 -# else -# echo $ac_t none 1>&6 -# fi -#fi - -# Report the consequences. +# Report the final consequences. echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 test "$can_build_shared" = "no" && enable_shared=no -# On AIX, shared libraries and static libraries use the same namespace. +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. case "$host_os" in aix*) test "$enable_shared" = yes && enable_static=no @@ -1117,23 +1241,51 @@ ;; esac -echo "$ac_t""$enable_shared" 1>&6 +echo "$ac_t$enable_shared" 1>&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "checking whether to build static libraries... $enable_static" 1>&6 +echo $ac_n "checking for objdir... $ac_c" 1>&6 +rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + objdir=_libs +fi +rmdir .libs 2>/dev/null +echo "$ac_t$objdir" 1>&6 + +# Copy echo and quote the copy, instead of the original, because it is +# used later. +ltecho="$echo" + # Now quote all the things that may contain metacharacters. -for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ +for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ link_static_flag no_builtin_flag export_dynamic_flag_spec \ - profile_flag_pattern library_names_spec soname_spec RANLIB \ - old_archive_cmds old_postinstall_cmds archive_cmds postinstall_cmds \ - allow_undefined_flag finish_cmds global_symbol_pipe striplib old_striplib \ + profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \ + old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ + old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ + allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \ + striplib old_striplib \ hardcode_libdir_flag_spec hardcode_libdir_separator; do - eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + case "$var" in + reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \ + postinstall_cmds | postuninstall_cmds | finish_cmds) + # Double-quote double-evaled strings. + eval "$var=\`\$echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" + ;; + *) + eval "$var=\`\$echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + ;; + esac done ofile=libtool @@ -1156,9 +1308,15 @@ # Compiler and other test output produced by $progname, useful for # debugging $progname, is in ./config.log if it exists. +# An echo program that doesn't interpret backslashes. +echo="$ltecho" + # The version of $progname that generated this script. LTCONFIG_VERSION="$VERSION" +# Shell to use when invoking shell scripts. +SHELL=${CONFIG_SHELL-/bin/sh} + # Whether or not to build libtool libraries. build_libtool_libs=$enable_shared @@ -1184,6 +1342,9 @@ # A BSD-compatible nm program. NM="$NM" +# The name of the directory that contains temporary libtool files. +objdir="$objdir" + # How to create reloadable object files. reload_flag="$reload_flag" reload_cmds="$reload_cmds" @@ -1209,6 +1370,9 @@ # Library versioning type. version_type=$version_type +# Format of library name prefix. +libname_spec="$libname_spec" + # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec="$library_names_spec" @@ -1220,10 +1384,15 @@ RANLIB="$RANLIB" old_archive_cmds="$old_archive_cmds" old_postinstall_cmds="$old_postinstall_cmds" +old_postuninstall_cmds="$old_postuninstall_cmds" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="$old_archive_from_new_cmds" # Commands used to build and install a shared archive. archive_cmds="$archive_cmds" postinstall_cmds="$postinstall_cmds" +postuninstall_cmds="$postuninstall_cmds" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="$allow_undefined_flag" @@ -1231,7 +1400,10 @@ # Commands used to finish a libtool library installation in a directory. finish_cmds="$finish_cmds" -# Take the output of nm and produce a listing of raw symbols and C names +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval="$finish_eval" + +# Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="$global_symbol_pipe" # How to strip a library file. @@ -1272,21 +1444,36 @@ EOF +case "$host_os" in +aix*) + cat <<\EOF >> $ofile +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "${COLLECT_NAMES+set}" != set; then + COLLECT_NAMES= + export COLLECT_NAMES +fi + +EOF + ;; +esac + # Detect if we are using a relative or absolute path to ltmain.sh. case "$ltmain" in -/*) cat <> $ofile +/*) cat <> $ofile # Execute the libtool backend. . $ltmain -EOF2 +EOF ;; -*) cat <> $ofile +*) cat <> $ofile # Find the path to this script. -thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\` +thisdir=\`$echo "\$0" | sed -e 's%/[^/]*\$%%'\` test "X\$0" = "X\$thisdir" && thisdir=. # Execute the libtool backend. . \$thisdir/$ltmain -EOF3 +EOF ;; esac diff -uNr gnome-0.11/ltmain.sh gnome-0.12/ltmain.sh --- gnome-0.11/ltmain.sh Sat Dec 6 09:01:49 1997 +++ gnome-0.12/ltmain.sh Tue Jan 20 22:04:18 1998 @@ -22,52 +22,25 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -#FIXME: echo=echo -echo='printf %s\n' -if test "X`$echo '\t'`" = 'X\t'; then : -else - # The Solaris and AIX default echo program unquotes backslashes. - # This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # So, we emulate echo with printf '%s\n' - echo='printf %s\n' - if test "X`$echo '\t'`" = 'X\t'; then : - else - # Oops. We have no working printf. Try to find a not-so-buggy echo. - echo=echo - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - save_PATH="$PATH" - PATH="$PATH":/usr/ucb - for dir in $PATH; do - if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - PATH="$save_PATH" - fi -fi - # The name of this program. progname=`$echo "$0" | sed 's%^.*/%%'` +modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.0c +VERSION=1.0h default_mode= help="Try \`$progname --help' for more information." magic="%%%MAGIC variable%%%" mkdir="mkdir" mv="mv -f" -objdir=_libs rm="rm -f" # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$]\)/\\\1/g' +sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -77,15 +50,14 @@ if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "$LTCONFIG_VERSION" != "$VERSION"; then - $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi -# if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - $echo "$progname: not configured to build any kind of library" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: not configured to build any kind of library" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi @@ -133,7 +105,7 @@ ;; --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION" + echo "$PROGRAM (GNU $PACKAGE) $VERSION" exit 0 ;; @@ -142,16 +114,16 @@ ;; --features) - $echo "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" + echo "enable shared libraries" else - $echo "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $echo "enable static libraries" + echo "enable static libraries" else - $echo "disable static libraries" + echo "disable static libraries" fi exit 0 ;; @@ -171,7 +143,7 @@ ;; -*) - $echo "$progname: unrecognized option \`$arg'" 1>&2 + $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -184,7 +156,7 @@ done if test -n "$prevopt"; then - $echo "$progname: option \`$prevopt' requires an argument" 1>&2 + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -194,7 +166,7 @@ # Infer the operation mode. if test -z "$mode"; then case "$nonopt" in - *cc) + *cc | *++) mode=link for arg do @@ -222,9 +194,9 @@ # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then - $echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else - $echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; @@ -233,20 +205,20 @@ # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$progname: unrecognized option \`-dlopen'" 1>&2 + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." + help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case "$mode" in # libtool compile mode compile) - progname="$progname: compile" + modename="$modename: compile" # Get the compilation command and the source file. base_compile= lastarg= @@ -257,7 +229,7 @@ do # The only flag that cannot be specified is the output filename. if test "X$arg" = "X-o"; then - $echo "$progname: you cannot specify the output filename with \`-o'" 1>&2 + $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -309,13 +281,13 @@ case "$libobj" in *.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;; *) - $echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2 + $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then - $echo "$progname: you must specify a compilation command" 1>&2 + $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -331,6 +303,9 @@ # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + # All platforms use -DPIC, to notify preprocessed assembler code. $show "$base_compile$pic_flag -DPIC $srcfile" if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then : @@ -368,8 +343,8 @@ # Create an invalid libtool object if no PIC, so that we don't accidentally # link it into a program. if test "$build_libtool_libs" != yes; then - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > \$libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > \$libobj" || exit $? fi exit 0 @@ -377,9 +352,9 @@ # libtool link mode link) - progname="$progname: link" + modename="$modename: link" CC="$nonopt" - allow_undefined=no + allow_undefined=yes compile_command="$CC" finalize_command="$CC" @@ -407,7 +382,7 @@ case "$arg" in -all-static | -static) if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$progname: warning: complete static linking is impossible in this configuration" 1>&2 + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 fi build_libtool_libs=no build_old_libs=yes @@ -416,6 +391,9 @@ esac done + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + # Go through the arguments, transforming them on the way. for arg do @@ -440,7 +418,7 @@ esac ;; rpath) - rpath="$rpath $arg" + rpath="$rpath $arg" prev= continue ;; @@ -464,7 +442,8 @@ ;; -allow-undefined) - allow_undefined=yes + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; @@ -481,7 +460,11 @@ -export-dynamic) if test "$export_dynamic" != yes; then export_dynamic=yes - arg=`eval \\$echo "$export_dynamic_flag_spec"` + if test -n "$export_dynamic_flag_spec"; then + arg=`eval \\$echo "$export_dynamic_flag_spec"` + else + arg= + fi # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" @@ -493,9 +476,10 @@ dir=`$echo "$arg" | sed 's%^-L\(.*\)$%\1%'` case "$dir" in /*) + # Add the corresponding hardcode_libdir_flag, if it is not identical. ;; *) - $echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2 + $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 exit 1 ;; esac @@ -504,6 +488,11 @@ -l*) deplibs="$deplibs $arg" ;; + -no-undefined) + allow_undefined=no + continue + ;; + -o) prev=output ;; -rpath) @@ -512,7 +501,11 @@ ;; -static) - # We already handled this flag above. + # If we have no pic_flag, then this is the same as -all-static. + if test -z "$pic_flag" && test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi continue ;; @@ -522,7 +515,7 @@ ;; # Some other compiler flag. - -*) + -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "$arg" | sed "$sed_quote_subst"` @@ -568,9 +561,9 @@ old_library= # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $arg >/dev/null 2>&1; then : + if egrep '^# Generated by ltmain.sh' $arg >/dev/null 2>&1; then : else - $echo "$progname: \`$arg' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 exit 1 fi @@ -581,7 +574,7 @@ esac if test -z "$libdir"; then - $echo "$progname: \`$arg' contains no -rpath information" 1>&2 + $echo "$modename: \`$arg' contains no -rpath information" 1>&2 exit 1 fi @@ -592,7 +585,7 @@ done if test -z "$linklib"; then - $echo "$progname: cannot find name of link library for \`$arg'" 1>&2 + $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 exit 1 fi @@ -635,12 +628,12 @@ if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in - "* $dir *") ;; + *" $dir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi - # FIXME: This is the magic to use -rpath. + # This is the magic to use -rpath. if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then @@ -648,8 +641,14 @@ hardcode_libdirs="$libdir" libdir="@HARDCODE_LIBDIRS@" else - # Just accumulate the libdirs. - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + # Just accumulate the unique libdirs. + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac libdir= fi fi @@ -663,7 +662,7 @@ elif test "$hardcode_runpath_var" = yes; then # Do the same for the permanent run path. case "$perm_rpath " in - "* $libdir *") ;; + *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi @@ -688,7 +687,7 @@ *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - $echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2 + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" @@ -706,7 +705,7 @@ ;; *) - $echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2 + $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 exit 1 ;; esac @@ -726,17 +725,18 @@ else # Transform directly to old archives if we don't build new libraries. if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$progname: cannot find static library for \`$arg'" 1>&2 + $echo "$modename: cannot find static library for \`$arg'" 1>&2 exit 1 fi + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_command="$compile_command $dir/$linklib" finalize_command="$finalize_command $dir/$linklib" else - # Here we assume that "$hardcode_minus_L" != unsupported. - # This is valid on all known static and shared platforms. compile_command="$compile_command -L$dir -l$name" finalize_command="$finalize_command -L$dir -l$name" fi @@ -744,20 +744,28 @@ continue ;; + # Some other compiler argument. *) - $echo "$progname: unknown file suffix for \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "$arg" | sed "$sed_quote_subst"` + case "$arg" in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac ;; esac # Now actually substitute the argument into the commands. - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi done if test -n "$prev"; then - $echo "$progname: the \`$prevarg' option requires an argument" 1>&2 + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -766,18 +774,29 @@ oldobjs= case "$output" in "") - $echo "$progname: you must specify an output file" 1>&2 + $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; */*) - $echo "$progname: output file \`$output' must have no directory components" 1>&2 + $echo "$modename: output file \`$output' must have no directory components" 1>&2 exit 1 ;; *.la) - libname=`$echo "$output" | sed 's/\.la$//'` + # Make sure we only generate libraries of the form `libNAME.la'. + case "$output" in + lib*) ;; + *) + $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + + name=`$echo "$output" | sed -e 's/\.la$//' -e 's/^lib//'` + libname=`eval \\$echo \"$libname_spec\"` # All the library-specific variables (install_libdir is set above). library_names= @@ -788,32 +807,35 @@ age=0 if test -n "$objs"; then - $echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 exit 1 fi # How the heck are we supposed to write a wrapper for a shared library? if test -n "$link_against_libtool_libs"; then - $echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 + $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 exit 1 fi + # Add libc to deplibs on all systems. + deplibs="$deplibs -lc" + if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` fi if test -z "$rpath"; then - $echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2 + $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 $echo "$help" 1>&2 exit 1 fi set dummy $rpath if test $# -gt 2; then - $echo "$progname: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" @@ -823,7 +845,7 @@ IFS="$save_ifs" if test -n "$5"; then - $echo "$progname: too many parameters to \`-version-info'" 1>&2 + $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -836,8 +858,8 @@ case "$current" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -845,8 +867,8 @@ case "$revision" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -854,15 +876,15 @@ case "$age" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then - $echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi @@ -902,25 +924,30 @@ ;; *) - $echo "$progname: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Create the output directory, or remove our outputs if we need to. if test -d $objdir; then - $show "$rm $objdir/$libname.*" - $run $rm $objdir/$libname.* + $show "$rm $objdir/$output $objdir/$libname.*" + $run $rm $objdir/$output $objdir/$libname.* else $show "$mkdir $objdir" - $run $mkdir $objdir || exit $? + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then - $echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi @@ -943,11 +970,10 @@ fi lib="$objdir/$realname" - linknames= - for link - do - linknames="$linknames $link" - done + for link + do + linknames="$linknames $link" + done # Use standard objects if they are PIC. test -z "$pic_flag" && libobjs=`$echo "$libobjs " | sed -e 's/\.lo /.o /g' -e 's/ $//g'` @@ -963,9 +989,9 @@ IFS="$save_ifs" # Create links to the real library. - for link in $linknames; do - $show "(cd $objdir && $LN_S $realname $link)" - $run eval '(cd $objdir && $LN_S $realname $link)' || exit $? + for linkname in $linknames; do + $show "(cd $objdir && $LN_S $realname $linkname)" + $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? done # If -export-dynamic was specified, set the dlname. @@ -978,33 +1004,33 @@ *.lo | *.o) if test -n "$link_against_libtool_libs"; then - $echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2 + $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 exit 1 fi if test -n "$deplibs"; then - $echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` fi if test -n "$rpath"; then - $echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 fi if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 fi case "$output" in *.lo) if test -n "$objs"; then - $echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2 + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" @@ -1038,8 +1064,8 @@ if test "$build_libtool_libs" != yes; then # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > $libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > $libobj" || exit $? exit 0 fi @@ -1066,7 +1092,7 @@ *) if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 fi if test -n "$rpath"; then @@ -1079,8 +1105,14 @@ hardcode_libdirs="$libdir" libdir="@HARDCODE_LIBDIRS@" else - # Just accumulate the libdirs. - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + # Just accumulate the unique libdirs. + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac libdir= fi fi @@ -1093,7 +1125,7 @@ fi elif test "$hardcode_runpath_var" = yes; then case "$perm_rpath " in - "* $libdir *") ;; + *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi @@ -1112,51 +1144,79 @@ finalize_command=`$echo "$finalize_command " | sed -e 's/\.lo /.o /g' -e 's/ $//'` fi - if test "$export_dynamic" = yes && test -n "$global_symbol_pipe" && test -n "$NM"; then + if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${output}S.c" + else + dlsyms= + fi + + if test -n "$dlsyms"; then # Add our own program objects to the preloaded list. dlprefiles=`$echo "$objs$dlprefiles " | sed -e 's/\.lo /.o /g' -e 's/ $//'` - # Discover the nlist of each of the dlfiles. - dlsyms="$objdir/${output}S.c" + # Discover the nlist of each of the dlfiles. nlist="$objdir/${output}.nm" - $run rm -f "$nlist" "$nlist"T + if test -d $objdir; then + $show "$rm $nlist ${nlist}T" + $run $rm "$nlist" "${nlist}T" + else + $show "$mkdir $objdir" + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi + fi + for arg in $dlprefiles; do - $echo "extracting global symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done - # Parse the name list into a C file. - $echo "creating $dlsyms" + # Parse the name list into a source file. + $show "creating $objdir/$dlsyms" if test -z "$run"; then + # Make sure we at least have an empty file. + test -f "$nlist" || : > "$nlist" + # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - test "$wcout" = "$count" && count=-1 + count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` + (test "$count" -ge 0) 2>/dev/null || count=-1 else - rm -f "$nlist"T + $rm "$nlist"T count=-1 fi - cat < "$dlsyms" + case "$dlsyms" in + "") ;; + *.c) + cat < "$objdir/$dlsyms" /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ -/* Prevent the only kind of circular reference mistakes we can make. */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ #define dld_preloaded_symbol_count some_other_symbol #define dld_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */ EOF - if test -f "$nlist"; then - sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$dlsyms" - else - $echo "/* NONE */" >> "$dlsyms" - fi + if test -f "$nlist"; then + sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" + else + echo '/* NONE */' >> "$objdir/$dlsyms" +EOF + fi - cat <> "$dlsyms" + cat <> "$objdir/$dlsyms" #undef dld_preloaded_symbol_count #undef dld_preloaded_symbols @@ -1179,31 +1239,41 @@ { EOF - if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> "$dlsyms" - fi + if test -f "$nlist"; then + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" + fi - cat <<\EOF >> "$dlsyms" + cat <<\EOF >> "$objdir/$dlsyms" {0}, }; + +#ifdef __cplusplus +} +#endif EOF + ;; + + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit 1 + ;; + esac fi - $run rm -f "$nlist" "$nlist"T # Now compile the dynamic symbol file. - $show "(cd $objdir && $CC -c$no_builtin_flag \"${output}S.c\")" - $run eval '(cd $objdir && $CC -c$no_builtin_flag "${output}S.c")' || exit $? + $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")" + $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? # Transform the symbol file into the correct name. compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` elif test "$export_dynamic" != yes; then - test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 + test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 else # We keep going just in case the user didn't refer to # dld_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. - $echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2 + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` @@ -1273,8 +1343,8 @@ case "$hardcode_action" in relink) # AGH! Flame the AIX and HP-UX people for me, will ya? - $echo "$progname: warning: using a buggy system linker" 1>&2 - $echo "$progname: relinking will be required before \`$output' can be installed" 1>&2 + $echo "$modename: warning: using a buggy system linker" 1>&2 + $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 ;; esac @@ -1282,7 +1352,7 @@ $run eval "$compile_command" || exit $? # Now create the wrapper script. - $echo "creating $output" + $show "creating $output" # Quote the finalize command for shipping. finalize_command=`$echo "$finalize_command" | sed "$sed_quote_subst"` @@ -1321,6 +1391,23 @@ thisdir=\`\$echo "\$file" | sed 's%/[^/]*$%%'\` test "x\$thisdir" = "x\$file" && thisdir=. + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld "\$file" | sed -n 's/.*-> //p'\` + while test -n "\$file"; do + destdir=\`\$echo "\$file" | sed 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test "x\$destdir" != "x\$file"; then + case "\$destdir" in + /*) thisdir="\$destdir" ;; + *) thisdir="\$thisdir/\$destdir" ;; + esac + fi + + file=\`\$echo "\$file" | sed 's%^.*/%%'\` + file=\`ls -ld "\$thisdir/\$file" | sed -n 's/.*-> //p'\` + done + # Try to get the absolute directory name. absdir=\`cd "\$thisdir" && pwd\` test -n "\$absdir" && thisdir="\$absdir" @@ -1328,14 +1415,6 @@ progdir="\$thisdir/$objdir" program='$output' - # If the \$file dir failed (maybe due to symlink), try a hardcoded dir. - oprogdir="\$progdir" - if test -f "\$progdir/\$program"; then : - else - thisdir='`pwd`' - progdir="\$thisdir/$objdir" - fi - if test -f "\$progdir/\$program"; then EOF @@ -1376,9 +1455,9 @@ fi else # The program doesn't exist. - \$echo "\$0: error: neither \$oprogdir/\$program nor \$progdir/\$program exists" 1>&2 + \$echo "\$0: error: \$progdir/\$program does not exist" 1>&2 \$echo "This script is just a wrapper for \$program." 1>&2 - \$echo "See the $PACKAGE documentation for more information." 1>&2 + echo "See the $PACKAGE documentation for more information." 1>&2 exit 1 fi fi @@ -1407,7 +1486,11 @@ fi # Do each command in the archive commands. - cmds=`eval \\$echo \"$old_archive_cmds\"` + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=`eval \\$echo \"$old_archive_from_new_cmds\"` + else + cmds=`eval \\$echo \"$old_archive_cmds\"` + fi IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -1423,7 +1506,7 @@ old_library= test "$build_old_libs" = yes && old_library="$libname.a" - $echo "creating $output" + $show "creating $output" # Only create the output if not a dry run. if test -z "$run"; then @@ -1461,17 +1544,35 @@ # libtool install mode install) - progname="$progname: install" + modename="$modename: install" + + # There may be an optional /bin/sh argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL"; then + # Aesthetically quote it. + arg=`$echo "$nonopt" | sed "$sed_quote_subst"` + case "$arg" in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg="$nonopt" + fi - # The first argument is the name of the installation program. + # The real first argument should be the name of the installation program. # Aesthetically quote it. - arg=`$echo "$nonopt" | sed "$sed_quote_subst"` + arg=`$echo "$arg" | sed "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac - install_prog="$arg" + install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= @@ -1523,22 +1624,22 @@ done if test -z "$install_prog"; then - $echo "$progname: you must specify an install program" 1>&2 + $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then - $echo "$progname: the \`$prev' option requires an argument" 1>&2 + $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then - $echo "$progname: no file or destination specified" 1>&2 + $echo "$modename: no file or destination specified" 1>&2 else - $echo "$progname: you must specify a destination" 1>&2 + $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 @@ -1560,7 +1661,7 @@ # Not a directory, so check to see that there is only one file specified. set dummy $files if test $# -gt 2; then - $echo "$progname: \`$dest' is not a directory" 1>&2 + $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1572,7 +1673,7 @@ case "$file" in *.lo) ;; *) - $echo "$progname: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1599,9 +1700,9 @@ *.la) # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then : + if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : else - $echo "$progname: \`$file' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1617,13 +1718,13 @@ # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in - "* $libdir *") ;; + *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in - "* $libdir *") ;; + *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi @@ -1650,7 +1751,7 @@ $show "$striplib $destdir/$realname" $run $striplib $destdir/$realname || exit $? else - $echo "$progname: warning: no library stripping program" 1>&2 + $echo "$modename: warning: no library stripping program" 1>&2 fi fi @@ -1721,7 +1822,7 @@ destfile= ;; *) - $echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1758,7 +1859,7 @@ # Check the variables that should have been set. if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - $echo "$progname: invalid libtool wrapper script \`$file'" 1>&2 + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 exit 1 fi @@ -1775,26 +1876,26 @@ fi libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`" if test -z "$libdir"; then - $echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2 + $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 elif test -f "$libfile"; then : else - $echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done if test "$hardcode_action" = relink; then if test "$finalize" = yes; then - $echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 $show "$finalize_command" if $run eval "$finalize_command"; then : else - $echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2 + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 continue fi file="$objdir/$file"T else - $echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 fi else # Install the binary that we compiled earlier. @@ -1823,7 +1924,7 @@ $show "$old_striplib $oldlib" $run $old_striplib $oldlib || exit $? else - $echo "$progname: warning: no static library stripping program" 1>&2 + $echo "$modename: warning: no static library stripping program" 1>&2 fi fi @@ -1839,13 +1940,13 @@ done if test -n "$future_libdirs"; then - $echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" - exec $0 --finish$current_libdirs + exec $SHELL $0 --finish$current_libdirs exit 1 fi @@ -1854,44 +1955,51 @@ # libtool finish mode finish) - progname="$progname: finish" + modename="$modename: finish" libdirs="$nonopt" - if test -n "$finish_cmds" && test -n "$libdirs"; then + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do - # Do each command in the postinstall commands. - cmds=`eval \\$echo \"$finish_cmds\"` - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=`eval \\$echo \"$finish_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + cmds=`eval \\$echo \"$finish_eval\"` + $run eval "$cmds" + fi done fi - $echo "To link against installed libraries in LIBDIR, users may have to:" + echo "To link against installed libraries in LIBDIR, users may have to:" if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to their \`$shlibpath_var' environment variable" + echo " - add LIBDIR to their \`$shlibpath_var' environment variable" fi - $echo " - use the \`-LLIBDIR' linker flag" + echo " - use the \`-LLIBDIR' linker flag" exit 0 ;; # libtool execute mode execute) - progname="$progname: execute" + modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then - $echo "$progname: you must specify a COMMAND" 1>&2 + $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi @@ -1900,7 +2008,7 @@ for file in $execute_dlfiles; do if test -f "$file"; then : else - $echo "$progname: \`$file' is not a file" 1>&2 + $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1909,9 +2017,9 @@ case "$file" in *.la) # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then : + if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : else - $echo "$progname: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1929,7 +2037,7 @@ # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. - test -n "$library_names" && $echo "$progname: warning: \`$file' was not linked with \`-export-dynamic'" + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi @@ -1939,7 +2047,7 @@ if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else - $echo "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; @@ -1951,7 +2059,7 @@ ;; *) - $echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac @@ -2003,7 +2111,7 @@ # Now actually exec the command. eval "exec \$cmd$args" - $echo "$progname: cannot exec \$cmd$args" + $echo "$modename: cannot exec \$cmd$args" exit 1 else # Display what would be done. @@ -2016,7 +2124,7 @@ # libtool uninstall mode uninstall) - progname="$progname: uninstall" + modename="$modename: uninstall" rm="$nonopt" files= @@ -2029,7 +2137,7 @@ done if test -z "$rm"; then - $echo "$progname: you must specify an RM program" 1>&2 + $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -2044,7 +2152,7 @@ case "$name" in *.la) # Possibly a libtool archive, so verify it. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then + if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. @@ -2055,6 +2163,33 @@ test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" + $show "$rm $rmfiles" + $run $rm $rmfiles + + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=`eval \\$echo \"$postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=`eval \\$echo \"$old_postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. fi ;; @@ -2064,23 +2199,27 @@ oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'` rmfiles="$rmfiles $dir/$oldobj" fi + $show "$rm $rmfiles" + $run $rm $rmfiles ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles + *) + $show "$rm $rmfiles" + $run $rm $rmfiles + ;; + esac done exit 0 ;; "") - $echo "$progname: you must specify a MODE" 1>&2 + $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac - $echo "$progname: invalid operation mode \`$mode'" 1>&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi # test -z "$show_help" @@ -2088,7 +2227,7 @@ # We need to display help for each of the modes. case "$mode" in "") cat <&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac -$echo -$echo "Try \`$progname --help' for more information about other modes." +echo +$echo "Try \`$modename --help' for more information about other modes." exit 0 diff -uNr gnome-0.11/obgnome/Makefile.am gnome-0.12/obgnome/Makefile.am --- gnome-0.11/obgnome/Makefile.am Wed Jan 7 20:21:18 1998 +++ gnome-0.12/obgnome/Makefile.am Wed Jan 14 18:24:50 1998 @@ -47,5 +47,4 @@ obgnomeTerm.h \ obgnomeVtEmu.h -libobgnome_la_LDFLAGS = -version-info 0:0:0 $(GTK_LIBS) $(X_LIBS) $(x_libs) - +libobgnome_la_LDFLAGS = -version-info 0:0:0 diff -uNr gnome-0.11/obgnome/Makefile.in gnome-0.12/obgnome/Makefile.in --- gnome-0.11/obgnome/Makefile.in Wed Jan 7 20:30:59 1998 +++ gnome-0.12/obgnome/Makefile.in Wed Jan 21 21:13:20 1998 @@ -83,6 +83,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -139,7 +140,7 @@ obgnomeTerm.h \ obgnomeVtEmu.h -libobgnome_la_LDFLAGS = -version-info 0:0:0 $(GTK_LIBS) $(X_LIBS) $(x_libs) +libobgnome_la_LDFLAGS = -version-info 0:0:0 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = @@ -171,7 +172,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .m .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps obgnome/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/obgnome/obgnomeAppWin.m gnome-0.12/obgnome/obgnomeAppWin.m --- gnome-0.11/obgnome/obgnomeAppWin.m Mon Jan 5 11:12:30 1998 +++ gnome-0.12/obgnome/obgnomeAppWin.m Fri Jan 16 18:24:45 1998 @@ -50,7 +50,7 @@ gtk_widget_realize(GTK_WIDGET(app)); gtk_object_set_data(GTK_OBJECT(parent_widget), - "objc_id", + "obgtk_callback_relay", msgobject); for(i = 0; tbinfo[i].type != GNOME_APP_TOOLBAR_ENDOFINFO; i++) @@ -67,12 +67,15 @@ (char *)tbinfo[i].pixmap_info); else pmap = NULL; - gtk_toolbar_append_item(GTK_TOOLBAR(parent_widget), - tbinfo[i].text, - tbinfo[i].tooltip_text, - GTK_PIXMAP(pmap), - (GtkSignalFunc)obgtk_signal_relay, - tbinfo[i].clicked_callback); + gtk_object_set_data( + gtk_toolbar_append_item(GTK_TOOLBAR(parent_widget), + tbinfo[i].text, + tbinfo[i].tooltip_text, + pmap?GTK_PIXMAP(pmap):NULL, + (GtkSignalFunc)obgtk_callback_relay, + tbinfo[i].clicked_callback), + "obgtk_callback_relay", + msgobject); } else if(tbinfo[i].type == GNOME_APP_TOOLBAR_SPACE) { diff -uNr gnome-0.11/obgnome/obgnomeTerm.h gnome-0.12/obgnome/obgnomeTerm.h --- gnome-0.11/obgnome/obgnomeTerm.h Wed Jan 7 13:21:10 1998 +++ gnome-0.12/obgnome/obgnomeTerm.h Wed Jan 21 17:45:21 1998 @@ -38,7 +38,7 @@ - set_bold:(gboolean) bold; - set_underline:(gboolean) underline; - set_reverse:(gboolean) reverse; -- set_inversed:(gboolean) term_inversed; +- invert; - insert_lines:(guint) n; - delete_lines:(guint) n; - scroll:(guint) n diff -uNr gnome-0.11/obgnome/obgnomeTerm.m gnome-0.12/obgnome/obgnomeTerm.m --- gnome-0.11/obgnome/obgnomeTerm.m Wed Jan 7 13:21:10 1998 +++ gnome-0.12/obgnome/obgnomeTerm.m Wed Jan 21 17:45:21 1998 @@ -97,9 +97,9 @@ return self; } -- set_inversed:(gboolean) term_inversed +- invert { - gtk_term_set_inversed(gtkterm, term_inversed); + gtk_term_invert(gtkterm); return self; } diff -uNr gnome-0.11/obgtk/ChangeLog gnome-0.12/obgtk/ChangeLog --- gnome-0.11/obgtk/ChangeLog Wed Dec 31 18:00:00 1969 +++ gnome-0.12/obgtk/ChangeLog Wed Jan 21 17:45:21 1998 @@ -0,0 +1,32 @@ +Wed Jan 21 17:32:38 1998 Federico Mena + + * obgtkFixed.m ([Gtk_Fixed -move:widget:x:y]): Add missing return + self. + + * obgtkFixed.h: Change ancestor of Gtk_Fixed to Gtk_Container. + + * obgtkEventBox.h: Change ancestor of Gtk_EventBox to Gtk_Bin. + + * obgtkEventBox.m ([Gtk_EventBox -init]): Add missing cast to + GTK_EVENT_BOX. + + * obgtkCList.m ([Gtk_CList -set_border:border]): Add missing + return self. + + * obgtkCombo.m: New Gtk_Combo object for ObGtk (GtkComboBox was + deprecated). + +Tue Jan 20 18:23:36 1998 Federico Mena + + * obgtkCList.m ([Gtk_CList + -initWithCListInfoTitles:ncolumnsTitles:titles]): Added + initWithCListInfoTitles method, to be in sync with the new GtkCList. + +Wed Jan 14 21:36:05 1998 Miguel de Icaza + + * obgtkLabel.m (set_justify): Sync with gtk + +Mon Jan 12 23:26:02 1998 Miguel de Icaza + + * obgtk/obgtkFrame.[ch]: Provide init methods. + diff -uNr gnome-0.11/obgtk/Makefile.am gnome-0.12/obgtk/Makefile.am --- gnome-0.11/obgtk/Makefile.am Tue Jan 6 20:03:03 1998 +++ gnome-0.12/obgtk/Makefile.am Wed Jan 21 17:45:22 1998 @@ -45,6 +45,7 @@ obgtkCList.m \ obgtkColorSelection.m \ obgtkColorSelectionDialog.m \ + obgtkCombo.m \ obgtkContainer.m \ obgtkCurve.m \ obgtkData.m \ @@ -124,6 +125,7 @@ obgtkCList.h \ obgtkColorSelection.h \ obgtkColorSelectionDialog.h \ + obgtkCombo.h \ obgtkContainer.h \ obgtkCurve.h \ obgtkData.h \ diff -uNr gnome-0.11/obgtk/Makefile.in gnome-0.12/obgtk/Makefile.in --- gnome-0.11/obgtk/Makefile.in Wed Jan 7 20:30:55 1998 +++ gnome-0.12/obgtk/Makefile.in Wed Jan 21 21:13:18 1998 @@ -83,6 +83,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -137,6 +138,7 @@ obgtkCList.m \ obgtkColorSelection.m \ obgtkColorSelectionDialog.m \ + obgtkCombo.m \ obgtkContainer.m \ obgtkCurve.m \ obgtkData.m \ @@ -216,6 +218,7 @@ obgtkCList.h \ obgtkColorSelection.h \ obgtkColorSelectionDialog.h \ + obgtkCombo.h \ obgtkContainer.h \ obgtkCurve.h \ obgtkData.h \ @@ -298,16 +301,17 @@ obgtkAlignment.lo obgtkApp.lo obgtkArrow.lo obgtkAspectFrame.lo \ obgtkBin.lo obgtkBox.lo obgtkButton.lo obgtkButtonBox.lo \ obgtkCheckButton.lo obgtkCheckMenuItem.lo obgtkCList.lo \ -obgtkColorSelection.lo obgtkColorSelectionDialog.lo obgtkContainer.lo \ -obgtkCurve.lo obgtkData.lo obgtkDialog.lo obgtkDrawingArea.lo \ -obgtkEntry.lo obgtkEventBox.lo obgtkFileSelection.lo obgtkFixed.lo \ -obgtkFrame.lo obgtkGammaCurve.lo obgtkHandleBox.lo obgtkHBox.lo \ -obgtkHButtonBox.lo obgtkHPaned.lo obgtkHRuler.lo obgtkHScale.lo \ -obgtkHScrollbar.lo obgtkHSeparator.lo obgtkImage.lo obgtkInputDialog.lo \ -obgtkItem.lo obgtkLabel.lo obgtkList.lo obgtkListItem.lo obgtkMenu.lo \ -obgtkMenuBar.lo obgtkMenuItem.lo obgtkMenuShell.lo obgtkMisc.lo \ -obgtkNotebook.lo obgtkObject.lo obgtkOptionMenu.lo obgtkPaned.lo \ -obgtkPixmap.lo obgtkPreview.lo obgtkProgressBar.lo obgtkRadioButton.lo \ +obgtkColorSelection.lo obgtkColorSelectionDialog.lo obgtkCombo.lo \ +obgtkContainer.lo obgtkCurve.lo obgtkData.lo obgtkDialog.lo \ +obgtkDrawingArea.lo obgtkEntry.lo obgtkEventBox.lo \ +obgtkFileSelection.lo obgtkFixed.lo obgtkFrame.lo obgtkGammaCurve.lo \ +obgtkHandleBox.lo obgtkHBox.lo obgtkHButtonBox.lo obgtkHPaned.lo \ +obgtkHRuler.lo obgtkHScale.lo obgtkHScrollbar.lo obgtkHSeparator.lo \ +obgtkImage.lo obgtkInputDialog.lo obgtkItem.lo obgtkLabel.lo \ +obgtkList.lo obgtkListItem.lo obgtkMenu.lo obgtkMenuBar.lo \ +obgtkMenuItem.lo obgtkMenuShell.lo obgtkMisc.lo obgtkNotebook.lo \ +obgtkObject.lo obgtkOptionMenu.lo obgtkPaned.lo obgtkPixmap.lo \ +obgtkPreview.lo obgtkProgressBar.lo obgtkRadioButton.lo \ obgtkRadioMenuItem.lo obgtkRange.lo obgtkRuler.lo obgtkScale.lo \ obgtkScrollbar.lo obgtkScrolledWindow.lo obgtkSeparator.lo \ obgtkTable.lo obgtkText.lo obgtkToggleButton.lo obgtkToolbar.lo \ @@ -317,7 +321,7 @@ obgtkWindow.lo HEADERS = $(libobgtkinclude_HEADERS) -DIST_COMMON = README COPYING INSTALL Makefile.am Makefile.in +DIST_COMMON = README COPYING ChangeLog INSTALL Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) @@ -331,7 +335,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .m .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps obgtk/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/obgtk/obgtkBox.m gnome-0.12/obgtk/obgtkBox.m --- gnome-0.11/obgtk/obgtkBox.m Sat Dec 6 09:03:35 1997 +++ gnome-0.12/obgtk/obgtkBox.m Mon Jan 12 20:01:14 1998 @@ -32,11 +32,6 @@ return self; } -- add:(Gtk_Widget *) child -{ - return [self pack_start_defaults:child]; -} - - pack_end_defaults:(Gtk_Widget *) child { gtk_box_pack_end_defaults(gtkbox, child->gtkwidget); diff -uNr gnome-0.11/obgtk/obgtkCList.h gnome-0.12/obgtk/obgtkCList.h --- gnome-0.11/obgtk/obgtkCList.h Tue Jan 6 20:03:03 1998 +++ gnome-0.12/obgtk/obgtkCList.h Tue Jan 20 21:52:32 1998 @@ -11,8 +11,9 @@ } - castGtkCList:(GtkCList *) castitem; -- initWithCListInfo:(gint) ncolumns - :(gchar **) column_titles; +- initWithCListInfo:(gint) ncolumns; +- initWithCListInfoTitles:(gint) ncolumns + Titles:(char **) titles; - set_border:(GtkShadowType) border; - set_selection_mode:(GtkSelectionMode) mode; - set_policy:(GtkPolicyType) vscrollbar_policy @@ -53,9 +54,9 @@ :(gint) column :(gint) vertical :(gint) horizontal; -- (gint)append:(gchar **) text; -- insert:(gint) row - :(gchar **) text; +- (gint)appendCListRow:(gchar **) text; +- insertCListRow:(gchar **) text + :(gint) row; - remove:(gint) row; - set_row_data:(gint) row :(gpointer) data; diff -uNr gnome-0.11/obgtk/obgtkCList.m gnome-0.12/obgtk/obgtkCList.m --- gnome-0.11/obgtk/obgtkCList.m Tue Jan 6 20:03:03 1998 +++ gnome-0.12/obgtk/obgtkCList.m Wed Jan 21 17:45:24 1998 @@ -8,14 +8,20 @@ } - initWithCListInfo:(gint) ncolumns - :(gchar **) column_titles { - return [self castGtkCList:GTK_CLIST(gtk_clist_new(ncolumns, column_titles))]; + return [self castGtkCList:GTK_CLIST(gtk_clist_new(ncolumns))]; +} + +- initWithCListInfoTitles:(gint) ncolumns + Titles:(char **) titles +{ + return [self castGtkCList:GTK_CLIST(gtk_clist_new_with_titles(ncolumns, titles))]; } - set_border:(GtkShadowType) border { gtk_clist_set_border(gtkclist, border); + return self; } - set_selection_mode:(GtkSelectionMode) mode @@ -140,13 +146,13 @@ return self; } -- (gint)append:(gchar **) text +- (gint)appendCListRow:(gchar **) text { return gtk_clist_append(gtkclist, text); } -- insert:(gint) row - :(gchar **) text +- insertCListRow:(gchar **) text + :(gint) row { gtk_clist_insert(gtkclist, row, text); return self; diff -uNr gnome-0.11/obgtk/obgtkCombo.h gnome-0.12/obgtk/obgtkCombo.h --- gnome-0.11/obgtk/obgtkCombo.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/obgtk/obgtkCombo.h Wed Jan 21 17:45:24 1998 @@ -0,0 +1,26 @@ +#ifndef OBGTK_COMBO_H +#define OBGTK_COMBO_H + +#include +#include +#include + +@interface Gtk_Combo : Gtk_HBox +{ +@public + GtkCombo *gtkcombo; +} +- castGtkCombo:(GtkCombo *) castitem; +- init; +- set_value_in_list:(gint) val + okIfEmpty:(gint) ok_if_empty; +- set_use_arrows:(gint) val; +- set_use_arrows_always:(gint) val; +- set_case_sensitive:(gint) val; +- set_item_string:(Gtk_Item *) item + itemValue:(const gchar *) item_value; +- set_popdown_strings:(GList *) strings; +@end + +#endif /* OBGTK_COMBO_H */ + diff -uNr gnome-0.11/obgtk/obgtkCombo.m gnome-0.12/obgtk/obgtkCombo.m --- gnome-0.11/obgtk/obgtkCombo.m Wed Dec 31 18:00:00 1969 +++ gnome-0.12/obgtk/obgtkCombo.m Wed Jan 21 17:45:24 1998 @@ -0,0 +1,54 @@ +#include "obgtkCombo.h" + +@implementation Gtk_Combo + +- castGtkCombo:(GtkCombo *) castitem +{ + gtkcombo = castitem; + return [super castGtkHBox:GTK_HBOX(castitem)]; +} + +- init +{ + return [self castGtkCombo:GTK_COMBO(gtk_combo_new())]; +} + +- set_value_in_list:(gint) val + okIfEmpty:(gint) ok_if_empty +{ + gtk_combo_set_value_in_list(gtkcombo, val, ok_if_empty); + return self; +} + +- set_use_arrows:(gint) val +{ + gtk_combo_set_use_arrows(gtkcombo, val); + return self; +} + +- set_use_arrows_always:(gint) val +{ + gtk_combo_set_use_arrows_always(gtkcombo, val); + return self; +} + +- set_case_sensitive:(gint) val +{ + gtk_combo_set_case_sensitive(gtkcombo, val); + return self; +} + +- set_item_string:(Gtk_Item *) item + itemValue:(const gchar *) item_value +{ + gtk_combo_set_item_string(gtkcombo, item->gtkitem, item_value); + return self; +} + +- set_popdown_strings:(GList *) strings +{ + gtk_combo_set_popdown_strings(gtkcombo, strings); + return self; +} + +@end diff -uNr gnome-0.11/obgtk/obgtkEntry.h gnome-0.12/obgtk/obgtkEntry.h --- gnome-0.11/obgtk/obgtkEntry.h Tue Jan 6 20:03:04 1998 +++ gnome-0.12/obgtk/obgtkEntry.h Mon Jan 12 20:01:15 1998 @@ -10,12 +10,15 @@ GtkEntry *gtkentry; } - castGtkEntry:(GtkEntry *) castitem; -- init; +- initWithMaxLength:(guint16) max_length; - set_text:(gchar *) text; - append_text:(gchar *) text; - prepend_text:(gchar *) text; - set_position:(gint) position; - (gchar *) get_text; +- set_visibility:(BOOL) visible; +- set_editable:(BOOL) editable; +- select_region:(gint) start :(gint) end; @end #endif /* OBGTK_ENTRY_H */ diff -uNr gnome-0.11/obgtk/obgtkEntry.m gnome-0.12/obgtk/obgtkEntry.m --- gnome-0.11/obgtk/obgtkEntry.m Tue Jan 6 20:03:04 1998 +++ gnome-0.12/obgtk/obgtkEntry.m Mon Jan 12 20:01:15 1998 @@ -7,6 +7,11 @@ return [super castGtkWidget:GTK_WIDGET(castitem)]; } +- initWithMaxLength:(guint16) max_length +{ + return [self castGtkEntry:GTK_ENTRY(gtk_entry_new_with_max_length(max_length))]; +} + - init { return [self castGtkEntry:GTK_ENTRY(gtk_entry_new())]; @@ -39,5 +44,23 @@ - (gchar *) get_text { return gtk_entry_get_text(gtkentry); +} + +- select_region:(gint) start :(gint) end +{ + gtk_entry_select_region(gtkentry, start, end); + return self; +} + +- set_visibility:(BOOL) visible +{ + gtk_entry_set_visibility(gtkentry, visible); + return self; +} + +- set_editable:(BOOL) editable +{ + gtk_entry_set_editable(gtkentry, editable); + return self; } @end diff -uNr gnome-0.11/obgtk/obgtkEventBox.h gnome-0.12/obgtk/obgtkEventBox.h --- gnome-0.11/obgtk/obgtkEventBox.h Tue Dec 30 21:16:14 1997 +++ gnome-0.12/obgtk/obgtkEventBox.h Wed Jan 21 17:45:24 1998 @@ -3,7 +3,7 @@ #include #include -@interface Gtk_EventBox : Gtk_Container +@interface Gtk_EventBox : Gtk_Bin { @public GtkEventBox *gtkeventbox; diff -uNr gnome-0.11/obgtk/obgtkEventBox.m gnome-0.12/obgtk/obgtkEventBox.m --- gnome-0.11/obgtk/obgtkEventBox.m Wed Dec 17 14:54:55 1997 +++ gnome-0.12/obgtk/obgtkEventBox.m Wed Jan 21 17:45:24 1998 @@ -3,7 +3,7 @@ @implementation Gtk_EventBox - init { - return [self castGtkEventBox:gtk_event_box_new()]; + return [self castGtkEventBox:GTK_EVENT_BOX(gtk_event_box_new())]; } - castGtkEventBox:(GtkEventBox *) castitem diff -uNr gnome-0.11/obgtk/obgtkFixed.h gnome-0.12/obgtk/obgtkFixed.h --- gnome-0.11/obgtk/obgtkFixed.h Wed Dec 17 14:54:55 1997 +++ gnome-0.12/obgtk/obgtkFixed.h Wed Jan 21 17:45:24 1998 @@ -4,7 +4,7 @@ #include #include -@interface Gtk_Fixed : Gtk_Widget +@interface Gtk_Fixed : Gtk_Container { @public GtkFixed *gtkfixed; diff -uNr gnome-0.11/obgtk/obgtkFixed.m gnome-0.12/obgtk/obgtkFixed.m --- gnome-0.11/obgtk/obgtkFixed.m Thu Dec 18 14:34:45 1997 +++ gnome-0.12/obgtk/obgtkFixed.m Wed Jan 21 17:45:25 1998 @@ -25,5 +25,6 @@ :(gint16) y { gtk_fixed_move(gtkfixed, widget->gtkwidget, x, y); + return self; } @end diff -uNr gnome-0.11/obgtk/obgtkFrame.h gnome-0.12/obgtk/obgtkFrame.h --- gnome-0.11/obgtk/obgtkFrame.h Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkFrame.h Mon Jan 12 23:21:21 1998 @@ -9,6 +9,7 @@ @public GtkFrame *gtkframe; } +- initWithLabel:(gchar *) str; - castGtkFrame:(GtkFrame *)castitem; - set_label:(gchar *) label; - set_label_align:(gfloat) xalign diff -uNr gnome-0.11/obgtk/obgtkFrame.m gnome-0.12/obgtk/obgtkFrame.m --- gnome-0.11/obgtk/obgtkFrame.m Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkFrame.m Mon Jan 12 23:22:28 1998 @@ -7,6 +7,17 @@ [super castGtkBin:GTK_BIN(gtkframe)]; return self; } + +- init +{ + return [self initWithLabel:""]; +} + +- initWithLabel:(gchar *) str +{ + return [self castGtkFrame:GTK_FRAME(gtk_frame_new(str))]; +} + - set_label:(gchar *) label { gtk_frame_set_label(gtkframe, label); diff -uNr gnome-0.11/obgtk/obgtkLabel.h gnome-0.12/obgtk/obgtkLabel.h --- gnome-0.11/obgtk/obgtkLabel.h Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkLabel.h Wed Jan 14 21:25:34 1998 @@ -14,6 +14,7 @@ - initWithLabel:(gchar *) str; - set:(gchar *) str; - get:(gchar **) str; +- set_justify:(GtkJustification) just; @end #endif /* OBGTK_LABEL_H */ diff -uNr gnome-0.11/obgtk/obgtkLabel.m gnome-0.12/obgtk/obgtkLabel.m --- gnome-0.11/obgtk/obgtkLabel.m Tue Jan 6 20:03:04 1998 +++ gnome-0.12/obgtk/obgtkLabel.m Wed Jan 14 21:26:40 1998 @@ -28,4 +28,11 @@ gtk_label_get(gtklabel, str); return self; } + +- set_justify:(GtkJustification) just +{ + gtk_label_set_justify (gtklabel, just); + return self; +} + @end diff -uNr gnome-0.11/obgtk/obgtkList.m gnome-0.12/obgtk/obgtkList.m --- gnome-0.11/obgtk/obgtkList.m Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkList.m Mon Jan 12 20:01:16 1998 @@ -14,13 +14,6 @@ return self; } -- add:(Gtk_Widget *)widget -{ - GList *alist = g_list_append(NULL, (gpointer) widget->gtkwidget); - [self append_items:alist]; - return self; -} - - append_items:(GList *) items { gtk_list_append_items(gtklist, items); diff -uNr gnome-0.11/obgtk/obgtkMenu.h gnome-0.12/obgtk/obgtkMenu.h --- gnome-0.11/obgtk/obgtkMenu.h Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkMenu.h Mon Jan 12 20:01:16 1998 @@ -15,10 +15,6 @@ } - init; - castGtkMenu:(GtkMenu *) castitem; -- append:(Gtk_Widget *) child; -- prepend:(Gtk_Widget *) child; -- insert:(Gtk_Widget *) child - aPos:(gint) position; - popup :(Gtk_MenuShell *) parent_menu_shell menuItem:(Gtk_MenuItem *) parent_menu_item posFunc:(GtkMenuPositionFunc) func diff -uNr gnome-0.11/obgtk/obgtkMenuBar.h gnome-0.12/obgtk/obgtkMenuBar.h --- gnome-0.11/obgtk/obgtkMenuBar.h Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkMenuBar.h Mon Jan 12 20:01:16 1998 @@ -10,11 +10,6 @@ @public GtkMenuBar *gtkmenubar; } -- init; -- append:(Gtk_Widget *) child; -- prepend:(Gtk_Widget *) child; -- insert:(Gtk_Widget *) child - aPos:(gint) position; @end #endif /* OBGTK_MENU_BAR_H */ diff -uNr gnome-0.11/obgtk/obgtkMenuShell.h gnome-0.12/obgtk/obgtkMenuShell.h --- gnome-0.11/obgtk/obgtkMenuShell.h Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkMenuShell.h Mon Jan 12 20:01:16 1998 @@ -3,6 +3,9 @@ #include #include +#include + +@class Gtk_MenuItem; @interface Gtk_MenuShell : Gtk_Container { @@ -10,10 +13,10 @@ GtkMenuShell *gtkmenushell; } - castGtkMenuShell:(GtkMenuShell *) castitem; -- append:(Gtk_Widget *) child; -- prepend:(Gtk_Widget *) child; -- insert:(Gtk_Widget *) child - aPos:(gint) position; +- appendMenuItem:(Gtk_MenuItem *) child; +- prependMenuItem:(Gtk_MenuItem *) child; +- insertMenuItem:(Gtk_MenuItem *) child + aPos:(gint) position; - deactivate; @end diff -uNr gnome-0.11/obgtk/obgtkMenuShell.m gnome-0.12/obgtk/obgtkMenuShell.m --- gnome-0.11/obgtk/obgtkMenuShell.m Sat Dec 6 09:03:36 1997 +++ gnome-0.12/obgtk/obgtkMenuShell.m Mon Jan 12 20:01:16 1998 @@ -7,20 +7,20 @@ return [super castGtkContainer:GTK_CONTAINER(castitem)]; } -- append:(Gtk_Widget *) child +- appendMenuItem:(Gtk_MenuItem *) child { gtk_menu_shell_append(gtkmenushell, child->gtkwidget); return self; } -- prepend:(Gtk_Widget *) child +- prependMenuItem:(Gtk_MenuItem *) child { gtk_menu_shell_prepend(gtkmenushell, child->gtkwidget); return self; } -- insert:(Gtk_Widget *) child - aPos:(gint) position +- insertMenuItem:(Gtk_MenuItem *) child + aPos:(gint) position { gtk_menu_shell_insert(gtkmenushell, child->gtkwidget, position); return self; diff -uNr gnome-0.11/obgtk/obgtkObject.h gnome-0.12/obgtk/obgtkObject.h --- gnome-0.11/obgtk/obgtkObject.h Wed Dec 31 17:51:51 1997 +++ gnome-0.12/obgtk/obgtkObject.h Fri Jan 16 13:10:53 1998 @@ -12,6 +12,12 @@ gint nparams, GtkArg *args); +/* You can pass this in as a GtkSignalFunc and have the user_data be + the name of the method to call... However it's not perfect */ +gint +obgtk_callback_relay(GtkObject *object, + gpointer data); + @interface Gtk_Object : Object { @public diff -uNr gnome-0.11/obgtk/obgtkObject.m gnome-0.12/obgtk/obgtkObject.m --- gnome-0.11/obgtk/obgtkObject.m Tue Jan 6 20:03:05 1998 +++ gnome-0.12/obgtk/obgtkObject.m Fri Jan 16 18:24:45 1998 @@ -67,6 +67,56 @@ return retval; } +gint +obgtk_callback_relay(GtkObject *object, + gpointer data) +{ + id anobj = nil, sigobj = nil; + gint retval; + char *selname; + IMP callfunc; + SEL callsel; + g_return_if_fail(object != NULL); + g_return_if_fail(data != NULL); + + sigobj = gtk_object_get_data(object, "objc_id"); + selname = g_malloc(strlen(data) + 30); + + anobj = gtk_object_get_data(object, "obgtk_callback_relay"); +#ifdef DEBUG + printf("We got data %#x for %s\n", anobj, selname); +#endif + + if(!anobj) + anobj = sigobj; + +#ifdef DEBUG + printf("Call to method %s on %#x\n", data, anobj); +#endif + + if(!anobj) + { + printf("We don't even have anobj for callback %s\n", data); + return; + } + + sprintf(selname, "%s:", (char *)data); + callsel = sel_get_uid(selname); + if(!callsel) { + g_free(selname); + objc_error(anobj, 99, "Couldn't find method %s on object.", data); + return; + } + callfunc = objc_msg_lookup(anobj, callsel); + + if(callfunc) + retval = (gint)callfunc(anobj, callsel, sigobj); + else + objc_error(anobj, 99, "Couldn't find method %s on object.", data); + g_free(selname); + return retval; +} + @implementation Gtk_Object - init { diff -uNr gnome-0.11/obgtk/obgtkTree.h gnome-0.12/obgtk/obgtkTree.h --- gnome-0.11/obgtk/obgtkTree.h Sat Dec 6 09:03:37 1997 +++ gnome-0.12/obgtk/obgtkTree.h Mon Jan 12 20:01:19 1998 @@ -11,10 +11,10 @@ GtkTree *gtktree; } - init; -- append:(Gtk_TreeItem *) child; -- prepend:(Gtk_TreeItem *) child; -- insert :(Gtk_TreeItem *) child - childPos:(gint) position; +- appendTreeItem:(Gtk_TreeItem *) child; +- prependTreeItem:(Gtk_TreeItem *) child; +- insertTreeItem:(Gtk_TreeItem *) child + childPos:(gint) position; @end #endif /* OBGTK_TREE_H */ diff -uNr gnome-0.11/obgtk/obgtkTree.m gnome-0.12/obgtk/obgtkTree.m --- gnome-0.11/obgtk/obgtkTree.m Sat Dec 6 09:03:37 1997 +++ gnome-0.12/obgtk/obgtkTree.m Mon Jan 12 20:01:19 1998 @@ -7,20 +7,20 @@ return [super castGtkContainer:GTK_CONTAINER(gtktree)]; } -- append:(Gtk_TreeItem *) child +- appendTreeItem:(Gtk_TreeItem *) child { gtk_tree_append(gtktree, child->gtkwidget); return self; } -- prepend:(Gtk_TreeItem *) child +- prependTreeItem:(Gtk_TreeItem *) child { gtk_tree_prepend(gtktree, child->gtkwidget); return self; } -- insert :(Gtk_TreeItem *) child - childPos:(gint) position +- insertTreeItem:(Gtk_TreeItem *) child + childPos:(gint) position { gtk_tree_insert(gtktree, child->gtkwidget, position); return self; diff -uNr gnome-0.11/obgtk/obgtkWidget.h gnome-0.12/obgtk/obgtkWidget.h --- gnome-0.11/obgtk/obgtkWidget.h Tue Dec 30 21:16:20 1997 +++ gnome-0.12/obgtk/obgtkWidget.h Wed Jan 21 20:17:04 1998 @@ -40,7 +40,6 @@ - (gint) basic; - grab_focus; - grab_default; -- restore_state; - set_name:(gchar *)name; - set_state:(GtkStateType) state; - set_sensitive:(gint)sensitive; diff -uNr gnome-0.11/obgtk/obgtkWidget.m gnome-0.12/obgtk/obgtkWidget.m --- gnome-0.11/obgtk/obgtkWidget.m Tue Jan 6 20:03:05 1998 +++ gnome-0.12/obgtk/obgtkWidget.m Wed Jan 21 20:17:04 1998 @@ -156,12 +156,6 @@ return self; } -- restore_state -{ - gtk_widget_restore_state(gtkwidget); - return self; -} - - set_name:(gchar *)name { gtk_widget_set_name(gtkwidget, name); diff -uNr gnome-0.11/po/ChangeLog gnome-0.12/po/ChangeLog --- gnome-0.11/po/ChangeLog Sat Dec 6 09:03:38 1997 +++ gnome-0.12/po/ChangeLog Mon Jan 19 10:34:10 1998 @@ -1,3 +1,17 @@ +Sat Jan 17 16:17:36 1998 Eckehard Berns + + * de.po: German language support. Partly finished. + +Wed Jan 14 13:07:02 1998 Ville Hautamaki + + * fi.po: Finnish language support (done with the help of + tigert@gimp.org) + +Wed Jan 14 12:47:59 1998 Miguel de Icaza + + * POTFILES.in: Updated to include gnometalk, panel, panel applets, + gnomine, and same-gnome. + Mon Dec 1 12:49:20 1997 Tom Tromey * POTFILES.in: Mention property-keyboard.c, property-mouse.c. diff -uNr gnome-0.11/po/POTFILES.in gnome-0.12/po/POTFILES.in --- gnome-0.11/po/POTFILES.in Sat Dec 6 09:03:38 1997 +++ gnome-0.12/po/POTFILES.in Mon Jan 19 10:34:10 1998 @@ -7,3 +7,23 @@ programs/desktop-properties/xlockmore.cc programs/desktop-properties/property-keyboard.c programs/desktop-properties/property-mouse.c +programs/gtt/app.c +programs/gtt/toolbar.c +programs/gtt/main.c +programs/gtt/menucmd.c +programs/gtt/menus.c +programs/gtt/proj.c +programs/gtt/log.c +programs/gtt/options.c +programs/gtt/prop.c +programs/gnometalk/talk.c +programs/gnometalk/names.c +programs/gnometalk/protocol.c +programs/gnomine/gnomine.c +programs/panel/panel.c +programs/panel/batmon/batmon.c +programs/panel/launcher/launcher.c +programs/panel/mailcheck/mailcheck.c +programs/panel/menu/main.c +programs/same-gnome/same-gnome.c + diff -uNr gnome-0.11/po/cat-id-tbl.c gnome-0.12/po/cat-id-tbl.c --- gnome-0.11/po/cat-id-tbl.c Sat Jan 3 13:42:53 1998 +++ gnome-0.12/po/cat-id-tbl.c Wed Jan 21 20:19:54 1998 @@ -61,6 +61,217 @@ {"Small", 52}, {"Large", 53}, {"Mouse", 54}, + {"no project selected", 55}, + {"empty", 56}, + {"Error", 57}, + {"\ +An error occured while reading the configuration file.\n\ +Shall I setup a new configuration?", 58}, + {"Yes", 59}, + {"No", 60}, + {"error in geometry string \"%s\"\n", 61}, + {"unknown arg: %s\n", 62}, + {"New", 63}, + {"New Project...", 64}, + {"
/File/New Project...", 65}, + {"Reload", 66}, + {"Reload Configuration File", 67}, + {"
/File/Reload Configuration File", 68}, + {"Save", 69}, + {"Save Configuration File", 70}, + {"
/File/Save Configuration File", 71}, + {"Cut", 72}, + {"Cut Selected Project", 73}, + {"
/Edit/Cut", 74}, + {"Copy", 75}, + {"Copy Selected Project", 76}, + {"
/Edit/Copy", 77}, + {"Paste", 78}, + {"Paste Project", 79}, + {"
/Edit/Paste", 80}, + {"Props", 81}, + {"Edit Properties...", 82}, + {"
/Edit/Properties...", 83}, + {"Timer", 84}, + {"Start/Stop Timer", 85}, + {"
/Timer/Timer running", 86}, + {"Prefs", 87}, + {"Edit Preferences...", 88}, + {"
/Edit/Preferences...", 89}, + {"Help Contents...", 90}, + {"
/Help/Contents...", 91}, + {"About", 92}, + {"About...", 93}, + {"
/Help/About...", 94}, + {"Exit", 95}, + {"Exit GTimeTracker", 96}, + {"
/File/Exit", 97}, + {"\ +There seems to be another GTimeTracker running.\n\ +Please remove the pid file, if that is not correct.", 98}, + {"Oops", 99}, + {"Notice", 100}, + {"Not implemented yet", 101}, + {"Close", 102}, + {"Warning", 103}, + {"I could not write the configuration file!", 104}, + {"version", 105}, + {"OK", 106}, + {"Cancel", 107}, + {"Please enter the name of the new project:", 108}, + {"I could not read the configuration file", 109}, + {"\ +This will overwrite your current set of projects.\n\ +Do you really want to reload the configuration file?", 110}, + {"
/Timer/Start", 111}, + {"
/Timer/Stop", 112}, + {"/Paste", 113}, + {"
/Edit/Clear Daily Counter", 114}, + {"/Clear Daily Counter", 115}, + {"N", 116}, + {"
/File/", 117}, + {"R", 118}, + {"S", 119}, + {"Q", 120}, + {"X", 121}, + {"C", 122}, + {"V", 123}, + {"
/Edit/", 124}, + {"E", 125}, + {"A", 126}, + {"P", 127}, + {"
/Timer/Timer running", 128}, + {"T", 129}, + {"
/Help/Help on Help...", 130}, + {"H", 131}, + {"
/Help/", 132}, + {"/Properties...", 133}, + {"/", 134}, + {"/Cut", 135}, + {"/Copy", 136}, + {"
/Help", 137}, + {"stopped project", 138}, + {"program exited", 139}, + {"Apply", 140}, + {"Display", 141}, + {"Show Seconds", 142}, + {"Show Toolbar Icons", 143}, + {"Show Toolbar Texts", 144}, + {"Show Status Bar", 145}, + {"Shell Commands", 146}, + {"Switch Project Command:", 147}, + {"No Project Command:", 148}, + {"Logfile", 149}, + {"Use Logfile", 150}, + {"Filename:", 151}, + {"Timeout in secs:", 152}, + {"Preferences", 153}, + {"Properties", 154}, + {"Project Title:", 155}, + {"Project Description:", 156}, + {"Project Time today:", 157}, + {"hours", 158}, + {"mins", 159}, + {"secs", 160}, + {"Project Time ever:", 161}, + {"Talk", 162}, + {"Talking to ", 163}, + {"Talk to", 164}, + {"Specify TTY", 165}, + {"Ok", 166}, + {"could not create socket", 167}, + {"init_control_socket: could not bind()", 168}, + {"getsockname() failed", 169}, + {"could not bind ()", 170}, + {"Error sending", 171}, + {"Error when reading from talk daemon", 172}, + {"Error trying to listen for caller", 173}, + {"Trying to connect to your party's talk daemon", 174}, + {"Lost connection", 175}, + {"Unable to connect with your party", 176}, + {"Waiting for your party to respond", 177}, + {"response uses an invalid network address", 178}, + {"CANCEL CALLBACK:Answer:%d\n", 179}, + {"Your party is not logged on", 180}, + {"Target machine is too confused to talk to us", 181}, + {"Target machine does not recognize us", 182}, + {"Your party is refusing messages", 183}, + {"Target machine can not handle remote talk", 184}, + {"Target machine indicates protocol mismatch", 185}, + {"Target machine indicates protocol botch (addr)", 186}, + {"Target machine indicates protocol botch (ctl_addr)", 187}, + {"Tiny", 188}, + {"Medium", 189}, + {"Biiiig", 190}, + {"Gnome mines", 191}, + {"Gnome mines setup", 192}, + {"Custom size", 193}, + {"Field size", 194}, + {"Custom", 195}, + {"Horizontal:", 196}, + {"Vertical:", 197}, + {"Number of mines:", 198}, + {"Top ten...", 199}, + {"Game", 200}, + {"Flags:", 201}, + {"Time:", 202}, + {"Move applet", 203}, + {"Remove from panel", 204}, + {"Applet properties...", 205}, + {"Panel properties...", 206}, + {"Log out", 207}, + {"Can't open /proc/apm; can't get data.", 208}, + {"Something wrong with /proc/apm; can't get data.", 209}, + {"There is no battery?!?", 210}, + {"High and charging.", 211}, + {"High.", 212}, + {"Low and charging.", 213}, + {"Low.", 214}, + {"Critical and charging.", 215}, + {"Critical!!", 216}, + {"Charging.", 217}, + {"%d minutes of battery", 218}, + {"More than 100,000,000 minutes of battery life?!?", 219}, + {"APM Stats", 220}, + {"Linux APM Driver Version:", 221}, + {"APM BIOS Version:", 222}, + {"Battery Status:", 223}, + {"App", 224}, + {"Launcher properties", 225}, + {"Execute", 226}, + {"Icon", 227}, + {"Documentation", 228}, + {"Description", 229}, + {"Run inside terminal", 230}, + {"You have new mail.", 231}, + {"You have mail.", 232}, + {"No mail.", 233}, + {"Notification", 234}, + {"Select animation", 235}, + {"Mail check properties", 236}, + {"No bitmap, use only text", 237}, + {"Add to panel", 238}, + {"Add applet", 239}, + {"Configure", 240}, + {"Panel", 241}, + {"Lock screen", 242}, + {"Menu properties", 243}, + {"Enable small icons in menu", 244}, + {"The Same Gnome", 245}, + {"High Scores", 246}, + {"You win!", 247}, + {"The Game Is Over", 248}, + {"Could not find the '%s' theme for SameGnome\n", 249}, + {"Scenario", 250}, + {"Select scenario:", 251}, + {"Make it the default scenario", 252}, + {"Do you really want to quit?", 253}, + {"Game/New", 254}, + {"Game/Scenario", 255}, + {"Game/Top Ten", 256}, + {"Game/", 257}, + {"Game/Quit", 258}, + {"Score: ", 259}, }; -int _msg_tbl_length = 54; +int _msg_tbl_length = 259; Binary files gnome-0.11/po/cs.gmo and gnome-0.12/po/cs.gmo differ diff -uNr gnome-0.11/po/cs.po gnome-0.12/po/cs.po --- gnome-0.11/po/cs.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/po/cs.po Wed Jan 21 21:13:04 1998 @@ -0,0 +1,1093 @@ +msgid "" +msgstr "" +"Date: 1997-09-17 19:34:49-0500\n" +"From: Federico Mena \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=gnome --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: programs/desktop-properties/property-background.c\n" + +#: programs/desktop-properties/property-background.c:327 +msgid "Color" +msgstr " Barva " + +#: programs/desktop-properties/property-background.c:351 +msgid "Flat" +msgstr "jednoduchá" + +#: programs/desktop-properties/property-background.c:357 +msgid "Gradient" +msgstr "barevný pøechod" + +#: programs/desktop-properties/property-background.c:372 +msgid "Vertical" +msgstr "svislý" + +#: programs/desktop-properties/property-background.c:378 +msgid "Horizontal" +msgstr "vodorovný" + +#: programs/desktop-properties/property-background.c:512 +msgid "Wallpaper Selection" +msgstr "" + +#: programs/desktop-properties/property-background.c:551 +msgid "Wallpaper" +msgstr " Tapeta " + +#: programs/desktop-properties/property-background.c:554 +msgid " Browse... " +msgstr "" + +#: programs/desktop-properties/property-background.c:559 +msgid "none" +msgstr "" + +#: programs/desktop-properties/property-background.c:603 +msgid "Centered" +msgstr "" + +#: programs/desktop-properties/property-background.c:609 +msgid "Tiled" +msgstr "" + +#: programs/desktop-properties/property-background.c:850 +msgid " Background " +msgstr " Pozadí " + +#: programs/desktop-properties/property-screensaver.cc:140 +msgid "Settings" +msgstr " Nastavení " + +#: programs/desktop-properties/property-screensaver.cc:142 +msgid "Wait" +msgstr "èekej" + +#: programs/desktop-properties/property-screensaver.cc:143 +msgid "Min" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:155 +msgid "Requires Password" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:164 +msgid "Use DPMS" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:173 +msgid "Priority" +msgstr "priorita" + +#: programs/desktop-properties/property-screensaver.cc:181 +msgid "Normal" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:182 +msgid "Low" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:228 +msgid "Screensavers" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 +msgid "Setup..." +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:244 +msgid "Test" +msgstr "Test" + +#: programs/desktop-properties/property-screensaver.cc:344 +msgid " Screensaver " +msgstr "" + +#: programs/desktop-properties/xlockmore.cc:151 +msgid "XLockMore Properties" +msgstr "" + +#: programs/desktop-properties/xlockmore.cc:169 +msgid " OK " +msgstr "" + +#: programs/desktop-properties/xlockmore.cc:170 +msgid " Apply " +msgstr " Pou¾ij " + +#: programs/desktop-properties/xlockmore.cc:171 +msgid " Cancel " +msgstr " Zru¹ " + +#: programs/desktop-properties/xlockmore.cc:172 +msgid " Defaults " +msgstr " Poèáteèní nastavení " + +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 +msgid "Help" +msgstr "" + +#: programs/desktop-properties/xlockmore.cc:178 programs/desktop-properties/xlockmore.cc:190 +msgid " Mode " +msgstr " ©etøiè " + +#: programs/desktop-properties/xlockmore.cc:179 +msgid " XLockMore " +msgstr "" + +#: programs/desktop-properties/xlockmore.cc:188 +msgid " Options " +msgstr " Mo¾nosti " + +#: programs/desktop-properties/xlockmore.cc:189 +msgid " Preview " +msgstr " Ukázka " + +#: programs/desktop-properties/property-keyboard.c:154 +msgid "Speed" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:160 +msgid "Auto repeat" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:172 +msgid "Repeat rate" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:186 +msgid "Repeat delay" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:211 +msgid "Click" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:217 +msgid "Click on keypress" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:227 +msgid "Click volume" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:255 +msgid " Keyboard " +msgstr "" + +#. Frame for choosing button mapping. +#: programs/desktop-properties/property-mouse.c:181 +msgid "Buttons" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:183 +msgid "Left handed" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:185 +msgid "Right handed" +msgstr "" + +#. Frame for setting pointer acceleration. +#: programs/desktop-properties/property-mouse.c:205 +msgid "Motion" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Acceleration" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Slow" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Fast" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Threshold" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Small" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Large" +msgstr "" + +#: programs/desktop-properties/property-mouse.c:228 +msgid "Mouse" +msgstr "" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "" + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "" + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "" + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "" + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "" + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "" + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "" + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "" + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "" + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "" + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "" + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "" + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "" + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "" + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "" + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "" + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "" + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "" + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "" + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "" + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " +msgstr "" +# msgid "low" +# msgstr "nízká" +# +# msgid "tiled" +# msgstr "opakovat" +# +# msgid "Screen savers" +# msgstr " ©etøièe " +# +# msgid " Ok " +# msgstr " Ok " +# +# msgid " Screen saver " +# msgstr " ©etøení obrazovky " +# +# msgid "requires password" +# msgstr "po¾adovat heslo" +# +# msgid "min" +# msgstr "minut" +# +# msgid "normal" +# msgstr "normální" +# +# msgid "centered" +# msgstr "uprostøed" +# +# msgid "Setup" +# msgstr "Nastav" +# Binary files gnome-0.11/po/de.gmo and gnome-0.12/po/de.gmo differ diff -uNr gnome-0.11/po/de.po gnome-0.12/po/de.po --- gnome-0.11/po/de.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/po/de.po Wed Jan 21 21:13:05 1998 @@ -0,0 +1,1098 @@ +msgid "" +msgstr "" +"Date: 1998-01-16 01:28:11+0100\n" +"From: Eckehard Berns \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=gnome --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: programs/desktop-properties/property-background.c programs/desktop-properties/property-screensaver.cc programs/desktop-properties/xlockmore.cc programs/desktop-properties/property-keyboard.c programs/desktop-properties/property-mouse.c programs/gtt/app.c programs/gtt/toolbar.c programs/gtt/menucmd.c programs/gtt/menus.c programs/gtt/proj.c programs/gtt/log.c programs/gtt/options.c programs/gtt/prop.c programs/gnometalk/talk.c programs/gnometalk/names.c programs/gnometalk/protocol.c programs/gnomine/gnomine.c programs/panel/panel.c programs/panel/batmon/batmon.c programs/panel/launcher/launcher.c programs/panel/mailcheck/mailcheck.c programs/panel/menu/main.c programs/same-gnome/same-gnome.c\n" + +#: programs/desktop-properties/property-background.c:327 +msgid "Color" +msgstr "Farbe" + +#: programs/desktop-properties/property-background.c:351 +msgid "Flat" +msgstr "Einfarbig" + +#: programs/desktop-properties/property-background.c:357 +msgid "Gradient" +msgstr "Gradient" + +#: programs/desktop-properties/property-background.c:372 +msgid "Vertical" +msgstr "vertikal" + +#: programs/desktop-properties/property-background.c:378 +msgid "Horizontal" +msgstr "horizontal" + +#: programs/desktop-properties/property-background.c:512 +msgid "Wallpaper Selection" +msgstr "Hintergrundbild auswählen" + +#: programs/desktop-properties/property-background.c:551 +msgid "Wallpaper" +msgstr "Hintergrundbild" + +#: programs/desktop-properties/property-background.c:554 +msgid " Browse... " +msgstr " Durchsuchen... " + +#: programs/desktop-properties/property-background.c:559 +msgid "none" +msgstr "keine" + +#: programs/desktop-properties/property-background.c:603 +msgid "Centered" +msgstr "Zentriert" + +#: programs/desktop-properties/property-background.c:609 +msgid "Tiled" +msgstr "Kachel" + +#: programs/desktop-properties/property-background.c:850 +msgid " Background " +msgstr " Hintergrund " + +#: programs/desktop-properties/property-screensaver.cc:140 +msgid "Settings" +msgstr "Einstellungen" + +#: programs/desktop-properties/property-screensaver.cc:142 +msgid "Wait" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:143 +msgid "Min" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:155 +msgid "Requires Password" +msgstr "Kennwort benötigt" + +#: programs/desktop-properties/property-screensaver.cc:164 +msgid "Use DPMS" +msgstr "DPMS benutzen" + +#: programs/desktop-properties/property-screensaver.cc:173 +msgid "Priority" +msgstr "Priorität" + +#: programs/desktop-properties/property-screensaver.cc:181 +msgid "Normal" +msgstr "normal" + +#: programs/desktop-properties/property-screensaver.cc:182 +msgid "Low" +msgstr "niedrig" + +#: programs/desktop-properties/property-screensaver.cc:228 +msgid "Screensavers" +msgstr "Bildschirmschoner" + +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 +msgid "Setup..." +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:244 +msgid "Test" +msgstr "Testen" + +#: programs/desktop-properties/property-screensaver.cc:344 +msgid " Screensaver " +msgstr " Bildschirmschoner " + +#: programs/desktop-properties/xlockmore.cc:151 +msgid "XLockMore Properties" +msgstr "Eigenschaften von XLockMore" + +#: programs/desktop-properties/xlockmore.cc:169 +msgid " OK " +msgstr " OK " + +#: programs/desktop-properties/xlockmore.cc:170 +msgid " Apply " +msgstr " Übernehmen " + +#: programs/desktop-properties/xlockmore.cc:171 +msgid " Cancel " +msgstr " Abbrechen " + +#: programs/desktop-properties/xlockmore.cc:172 +msgid " Defaults " +msgstr " Voreinstellungen " + +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 +msgid "Help" +msgstr "Hilfe" + +#: programs/desktop-properties/xlockmore.cc:178 programs/desktop-properties/xlockmore.cc:190 +msgid " Mode " +msgstr "" + +#: programs/desktop-properties/xlockmore.cc:179 +msgid " XLockMore " +msgstr " XLockMore " + +#: programs/desktop-properties/xlockmore.cc:188 +msgid " Options " +msgstr " Einstellungen " + +#: programs/desktop-properties/xlockmore.cc:189 +msgid " Preview " +msgstr " Voransicht " + +#: programs/desktop-properties/property-keyboard.c:154 +msgid "Speed" +msgstr "Geschwindigkeit" + +#: programs/desktop-properties/property-keyboard.c:160 +msgid "Auto repeat" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:172 +msgid "Repeat rate" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:186 +msgid "Repeat delay" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:211 +msgid "Click" +msgstr " Klick " + +#: programs/desktop-properties/property-keyboard.c:217 +msgid "Click on keypress" +msgstr " Tastaturklick " + +#: programs/desktop-properties/property-keyboard.c:227 +msgid "Click volume" +msgstr " Lautstärke " + +#: programs/desktop-properties/property-keyboard.c:255 +msgid " Keyboard " +msgstr " Tastatur " + +#. Frame for choosing button mapping. +#: programs/desktop-properties/property-mouse.c:181 +msgid "Buttons" +msgstr "Buttons" + +#: programs/desktop-properties/property-mouse.c:183 +msgid "Left handed" +msgstr "Linkshänder" + +#: programs/desktop-properties/property-mouse.c:185 +msgid "Right handed" +msgstr "Rechtshänder" + +#. Frame for setting pointer acceleration. +#: programs/desktop-properties/property-mouse.c:205 +msgid "Motion" +msgstr "Bewegung" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Acceleration" +msgstr "Beschleunigung" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Slow" +msgstr "Langsam" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Fast" +msgstr "Schnell" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Threshold" +msgstr "Verzug" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Small" +msgstr "Klein" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Large" +msgstr "Groß" + +#: programs/desktop-properties/property-mouse.c:228 +msgid "Mouse" +msgstr "Mouse" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "kein Projekt ausgewählt" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "leeres Projekt" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "Fehler" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "Ja" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "Nein" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "Fehler in der Angabe -geometry \"%s\"\n" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "Unbekannter Parameter: %s\n" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "Neu" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "Neues Projekt..." + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "
/Datei/Neues Projekt..." + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "Einlesen" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "Konfigurationsdatei neu einlesen" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "
/Datei/Konfigurationsdatei neu einlesen" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "Speichern" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "Konfigurationsdatei speichern" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "
/Datei/Konfigurationsdatei speichern" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "Aussch." + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "Gewähltes Project ausschneiden" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "
/Bearbeiten/Ausschneiden" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "kopieren" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "Gewähltes Projekt kopieren" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "
/Bearbeiten/Kopieren" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "Einf." + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "Project einfügen" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "
/Bearbeiten/Einfügen" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "Eigen." + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "Eigenschaften bearbeiten..." + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "
/Bearbeiten/Eigenschaften..." + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "Uhr" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "Stoppuhr starten/stoppen" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "
/Stoppuhr/Stoppuhr läuft" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "Einst." + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "Einstellungen bearbeiten..." + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "
/Bearbeiten/Einstellungen..." + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "
/Hilfe/Inhalt..." + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "Info" + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "Info..." + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "
/Hilfe/Info..." + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "Beenden" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "GTimeTracker beenden" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "
/Datei/Beenden" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" +"Es scheint als wuerde eine anderer GTimerTracker laufen.\n" +"Bitte löschen Sie die PID Datei, falls das nicht der Fall ist." + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "Oops" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "Info" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "Noch nicht implementiert" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "Schließen" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "Warnung" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "Die Konfigurationsdatei konnte nicht geschrieben werden!" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "Version" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "OK" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "Abbruch" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "Bitte geben Sie einen Namen für das neue Projekt ein:" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "Die Konfigurationsdatei konnte nicht gelesen werden" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" +"Wenn sie fortsetzen, wird die Liste Ihrer Projekte überschrieben\n" +"Wollen Sie die Konfigurationsdatei trotzdem neu einlesen?" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "
/Stoppuhr/Starten" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "
/Stoppuhr/Stoppen" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "/Einfügen" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "
/Bearbeiten/Tageszähler zurücksetzen" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "/Tageszähler zurücksetzen" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "N" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "
/Datei/" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "L" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "S" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "Q" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "X" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "C" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "V" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "
/Bearbeiten/" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "E" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "A" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "P" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "
/Stoppuhr/Stoppuhr läuft" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "U" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "
/Hilfe/Hilfe über Hilfe..." + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "H" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "
/Hilfe/" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "/Eigenschaften..." + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "/" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "/Ausschneiden" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "/Kopieren" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "
/Hilfe" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "Project angehalten" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "Programm beendet" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "Übernehmen" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "Ansicht" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "Sekunden zeigen" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "Toolbaricons zeigen" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "Toolbartexte zeigen" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "Statusbalken zeigen" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "Befehlszeilen" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "Befehl bei gewechseltem Projekt:" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "Befehl ohne Projekt:" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "Logdatei" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "Logdatei benutzen" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "Dateiname:" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "Mindestzeit in Sek.:" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "Einstellungen" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "Eigenschaften" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "Projekttitel:" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "Projektbeschreibung:" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "Projektzeit heute:" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "Stunden" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "Minuten" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "Sekunden" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "Projektzeit insgesammt:" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "Unterhaltung mit " + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "TTY spezifizieren" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "OK" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "Klein" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "Mittel" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "Groooß" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "Gnome Mines" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "Gnome Mines Setup" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "Andere Größe" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "Feldgröße" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "Andere" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "horizontal:" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "vertikal:" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "Anzahl der Minen" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "" + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "Fahnen:" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "Zeit:" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "Modul Verschieben" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "Entfernen" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "Eigenschaften des Moduls" + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "" + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "Sitzung beenden" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "Kann /proc/apm nicht öffnen; bekomme keine Daten" + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "Unbestimmter Fehler in /proc/apm; bekomme keine Daten" + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "Keine Batterie?!?" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "Voll und ladend." + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "Voll." + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "Niedrig und ladend." + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "Niedrig." + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "Kritisch und ladend." + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "Kritisch!!" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "Ladevorgang läuft." + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "Lebensdauer der Batterie: %d Minuten" + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "Die Batterie hat mehr als 100.000.000 Minuten Lebendauer?" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "APM Daten" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "Version des Linux APM Treibers:" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "Version des APM BIOS:" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "Batterie Status:" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "Eigenschaften des Programmstarters" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "Kommandozeile" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "Icon" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "Dokumentation" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "Beschreibung" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "Sie haben neue Post." + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "Sie haben Post." + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "Keine Post." + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "Modul hinzufügen" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "Konfiguration" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "Bildschirm schonen" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "Szenario auswählen:" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "Wollen Sie wirklich aufhören?" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " +msgstr "Punkte: " +# msgid "You got onto the high score list with a score of %.0f!" +# msgstr "Sie haben es in die Highscore Liste geschafft - Ihre Punktzahl beträgt %.0f!" +# +# msgid "" +# "I could not read the init file.\n" +# "Shall I install a new init file?" +# msgstr "" +# "Die Konfigurationsdatei konnte nicht gelesen werden.\n" +# "Soll eine neue Konfigurationsdatei angelegt werden?" +# +# msgid "No, just quit!" +# msgstr "Nein" +# +# msgid "Quit" +# msgstr "Ende" +# +# msgid "Confirmation Request" +# msgstr "Sind Sie sicher?" +# +# msgid "Confirmation request" +# msgstr "Sind Sie sicher?" +# +# msgid "Reload configuration" +# msgstr "Konfiuration neu einlesen" +# +# msgid "
/File/Quit" +# msgstr "
/Datei/Beenden" +# +# msgid "Quit GTimeTracker" +# msgstr "GTimeTracker beenden" +# Binary files gnome-0.11/po/es.gmo and gnome-0.12/po/es.gmo differ diff -uNr gnome-0.11/po/es.po gnome-0.12/po/es.po --- gnome-0.11/po/es.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/po/es.po Wed Jan 21 21:13:05 1998 @@ -0,0 +1,1080 @@ +msgid "" +msgstr "" +"Date: 1998-01-19 18:31:40-0600\n" +"From: Federico Mena \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=gnome --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: programs/desktop-properties/property-background.c programs/desktop-properties/property-screensaver.cc programs/desktop-properties/xlockmore.cc programs/desktop-properties/property-keyboard.c programs/desktop-properties/property-mouse.c programs/gtt/app.c programs/gtt/toolbar.c programs/gtt/main.c programs/gtt/menucmd.c programs/gtt/menus.c programs/gtt/proj.c programs/gtt/log.c programs/gtt/options.c programs/gtt/prop.c programs/gnometalk/talk.c programs/gnometalk/names.c programs/gnometalk/protocol.c programs/gnomine/gnomine.c programs/panel/panel.c programs/panel/batmon/batmon.c programs/panel/launcher/launcher.c programs/panel/mailcheck/mailcheck.c programs/panel/menu/main.c programs/same-gnome/same-gnome.c\n" + +#: programs/desktop-properties/property-background.c:327 +msgid "Color" +msgstr "Color" + +#: programs/desktop-properties/property-background.c:351 +msgid "Flat" +msgstr "Liso" + +#: programs/desktop-properties/property-background.c:357 +msgid "Gradient" +msgstr "Degradado" + +#: programs/desktop-properties/property-background.c:372 +msgid "Vertical" +msgstr "Vertical" + +#: programs/desktop-properties/property-background.c:378 +msgid "Horizontal" +msgstr "Horizontal" + +#: programs/desktop-properties/property-background.c:512 +msgid "Wallpaper Selection" +msgstr "Selección de Tapiz" + +#: programs/desktop-properties/property-background.c:551 +msgid "Wallpaper" +msgstr "Tapiz" + +#: programs/desktop-properties/property-background.c:554 +msgid " Browse... " +msgstr " Buscar... " + +#: programs/desktop-properties/property-background.c:559 +msgid "none" +msgstr "ninguno" + +#: programs/desktop-properties/property-background.c:603 +msgid "Centered" +msgstr "Centrado" + +#: programs/desktop-properties/property-background.c:609 +msgid "Tiled" +msgstr "Mosaico" + +#: programs/desktop-properties/property-background.c:850 +msgid " Background " +msgstr " Fondo " + +#: programs/desktop-properties/property-screensaver.cc:140 +msgid "Settings" +msgstr "Opciones" + +#: programs/desktop-properties/property-screensaver.cc:142 +msgid "Wait" +msgstr "Esperar" + +#: programs/desktop-properties/property-screensaver.cc:143 +msgid "Min" +msgstr "Min" + +#: programs/desktop-properties/property-screensaver.cc:155 +msgid "Requires Password" +msgstr "Requiere contraseña" + +#: programs/desktop-properties/property-screensaver.cc:164 +msgid "Use DPMS" +msgstr "Usar DPMS" + +#: programs/desktop-properties/property-screensaver.cc:173 +msgid "Priority" +msgstr "Prioridad" + +#: programs/desktop-properties/property-screensaver.cc:181 +msgid "Normal" +msgstr "Normal" + +#: programs/desktop-properties/property-screensaver.cc:182 +msgid "Low" +msgstr "Baja" + +#: programs/desktop-properties/property-screensaver.cc:228 +msgid "Screensavers" +msgstr "Protectores de pantalla" + +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 +msgid "Setup..." +msgstr "Configurar..." + +#: programs/desktop-properties/property-screensaver.cc:244 +msgid "Test" +msgstr "Probar" + +#: programs/desktop-properties/property-screensaver.cc:344 +msgid " Screensaver " +msgstr " Protector de pantalla " + +#: programs/desktop-properties/xlockmore.cc:151 +msgid "XLockMore Properties" +msgstr "Propiedades de XLockMore" + +#: programs/desktop-properties/xlockmore.cc:169 +msgid " OK " +msgstr " Aceptar " + +#: programs/desktop-properties/xlockmore.cc:170 +msgid " Apply " +msgstr " Aplicar " + +#: programs/desktop-properties/xlockmore.cc:171 +msgid " Cancel " +msgstr " Cancelar " + +#: programs/desktop-properties/xlockmore.cc:172 +msgid " Defaults " +msgstr " Valores predefinidos " + +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 +msgid "Help" +msgstr "Ayuda" + +#: programs/desktop-properties/xlockmore.cc:178 programs/desktop-properties/xlockmore.cc:190 +msgid " Mode " +msgstr " Modo " + +#: programs/desktop-properties/xlockmore.cc:179 +msgid " XLockMore " +msgstr " XLockMore " + +#: programs/desktop-properties/xlockmore.cc:188 +msgid " Options " +msgstr " Opciones " + +#: programs/desktop-properties/xlockmore.cc:189 +msgid " Preview " +msgstr " Vista preliminar " + +#: programs/desktop-properties/property-keyboard.c:154 +msgid "Speed" +msgstr "Velocidad" + +#: programs/desktop-properties/property-keyboard.c:160 +msgid "Auto repeat" +msgstr "Repetición automática" + +#: programs/desktop-properties/property-keyboard.c:172 +msgid "Repeat rate" +msgstr "Frecuencia de repetición" + +#: programs/desktop-properties/property-keyboard.c:186 +msgid "Repeat delay" +msgstr "Espera para repetición" + +#: programs/desktop-properties/property-keyboard.c:211 +msgid "Click" +msgstr "Clic" + +#: programs/desktop-properties/property-keyboard.c:217 +msgid "Click on keypress" +msgstr "Clic de teclado" + +#: programs/desktop-properties/property-keyboard.c:227 +msgid "Click volume" +msgstr "Volumen de click" + +#: programs/desktop-properties/property-keyboard.c:255 +msgid " Keyboard " +msgstr " Teclado " + +#. Frame for choosing button mapping. +#: programs/desktop-properties/property-mouse.c:181 +msgid "Buttons" +msgstr "Botones" + +#: programs/desktop-properties/property-mouse.c:183 +msgid "Left handed" +msgstr "Mano izquierda" + +#: programs/desktop-properties/property-mouse.c:185 +msgid "Right handed" +msgstr "Mano derecha" + +#. Frame for setting pointer acceleration. +#: programs/desktop-properties/property-mouse.c:205 +msgid "Motion" +msgstr "Movimiento" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Acceleration" +msgstr "Aceleración" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Slow" +msgstr "Lento" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Fast" +msgstr "Rápido" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Threshold" +msgstr "Retardo" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Small" +msgstr "Pequeño" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Large" +msgstr "Grande" + +#: programs/desktop-properties/property-mouse.c:228 +msgid "Mouse" +msgstr "Ratón" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "Ningún proyecto seleccionado" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "vacío" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "Error" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "Sí" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "No" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "error en la cadena de geometría \"%s\"\n" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "argumento desconocido: \"%s\"\n" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "Nuevo" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "Nuevo proyecto..." + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "
/Archivo/Nuevo proyecto..." + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "Re-leer" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "Re-leer archivo de configuración" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "
/Archivo/Re-leer archivo de configuración" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "Guardar" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "Guardar archivo de configuración" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "
/Archivo/Guardar archivo de configuración" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "Cortar" + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "Cortar proyecto seleccionado" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "
/Edición/Cortar" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "Copiar" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "Copiar proyecto seleccionado" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "
/Edición/Copiar" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "Pegar" + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "Pegar proyecto" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "
/Edición/Pegar" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "Propiedades" + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "Editar propiedades..." + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "
/Edición/Propiedades..." + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "Cronómetro" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "Arrancar/Detener cronómetro" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "
/Cronómetro/Cronómetro activo" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "Preferencias" + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "Editar preferencias..." + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "
/Edición/Preferencias..." + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "
/Ayuda/Índice..." + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "Acerca de" + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "Acerca de..." + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "
/Ayuda/Acerca de..." + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "Salir" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "Salir de GTimeTracker" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "
/Archivo/Salir" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" +"Parece ser que hay otro GTimeTracker corriendo.\n" +"Por favor borre el archivo de pid, si lo anterior no es correcto." + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "Oops" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "Aviso" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "Esta función no ha sido implementada" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "Cerrar" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "Advertencia" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "¡No se pudo escribir al archivo de configuración!" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "versión" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "Aceptar" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "Cancelar" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "Por favor escriba el nombre del nuevo proyecto:" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "No se pudo leer el archivo de configuración" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" +"Esto sobre-escribirá sus proyectos actuales.\n" +"¿Desea realmente re-cargar el archivo de configuración?" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "
/Cronómetro/Activar" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "
/Cronómetro/Detener" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "/Pegar" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "
/Edición/Re-iniciar contador de días" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "/Re-iniciar contador de días" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "N" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "
/Archivo/" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "R" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "S" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "Q" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "X" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "C" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "V" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "
/Edición/" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "E" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "A" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "P" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "
/Cronómetro/Cronómetro activo" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "T" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "
/Ayuda/Ayuda sobre la ayuda..." + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "H" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "
/Ayuda/" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "/Propiedades..." + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "/" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "/Cortar" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "/Copiar" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "
/Ayuda" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "proyecto detenido" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "salida del programa" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "Aplicar" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "Despliegue" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "Mostrar segundos" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "Mostrar íconos en la barra de herramientas" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "Mostrar texto en la barra de herramientas" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "Mostrar barra de herramientas" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "Instrucciones del shell" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "Instrucción al cambiar de proyecto" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "Instrucción al no haber proyectos" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "Bitácora" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "Utilizar bitácora" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "Archivo:" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "Intervalo en segundos:" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "Preferencias" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "Propiedades" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "Título del proyecto:" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "Descripción del proyecto:" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "Tiempo del proyecto para hoy:" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "horas" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "minutos" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "segundos" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "Tiempo total del proyecto" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "Conversar" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "Conversando con" + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "Conversar con" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "Especificar TTY" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "Aceptar" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "no se pudo crear el socket" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "init_control_socket: no se pudo hacer bind()" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "getsockname() falló" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "no se pudo hacer bind()" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "Error al enviar" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "Error al leer del demonio de talk" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "Error al tratar de escuchar la llamada" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "Intentando conectarse al demonio de talk de su contraparte" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "Se perdió la conexión" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "No se pudo conectarse con su contraparte" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "Esperando a que su contraparte responda" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "la respuesta utiliza una dirección de red inválida" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "CANCEL CALLBACK:Respuesta:%d\n" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "Su contraparte no está en sesión" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "La máquina de destino está demasiado confundida para conversar" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "La máquina de destino no nos reconoce" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "Su contraparte no está aceptando mensajes" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "La máquina de destino no puede manejar talk remoto" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "La máquina de destino indica incompatibilidad en el protocolo" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "La máquina de destino indica error en el protocolo (addr)" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "La máquina de destino indica error en el protocolo (ctl_addr)" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "Pequeño" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "Mediano" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "Graaaande" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "Gnome Minas" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "Opciones de Gnome Minas" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "Tamaño personalizado" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "Tamaño del tablero" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "Personalizado" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "Horizontal:" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "Vertical:" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "Número de minas:" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "Primeros diez..." + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "Juego" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "Banderas:" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "Tiempo:" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "Mover applet" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "Eliminar del panel" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "Propiedades del applet..." + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "Propiedades del panel..." + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "Salir de sesión" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "No se pudo abrir /proc/apm; no se pueden obtener datos." + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "Algo está mal con /proc/apm; no se pueden obtener datos." + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "¿¡No hay batería!?" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "Alta y cargando." + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "Alta." + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "Baja y cargando." + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "Baja." + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "Crítica y cargando." + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "¡¡Crítica!!" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "Cargando." + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "%d minutos de batería" + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "¿¡¿Más de 100,000,000 minutos de batería?!?" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "Estado del APM" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "Versión del controlador Linux APM" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "Versión del APM BIOS" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "Estado de la batería" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "Aplicación" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "Propiedades del lanzador" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "Ejecutar" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "Ícono" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "Documentación" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "Descripción" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "Ejecutar dentro de una terminal" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "Tiene correo nuevo." + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "Tiene correo." + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "No hay correo." + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "Añadir al panel" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "Añadir applet" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "Configurar" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "Panel" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "Bloquear pantalla" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "Propiedades del menú" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "Habilitar íconos pequeños en el menú" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "El Same Gnome" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "Puntuaciones altas" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "¡Usted gana!" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "El juego se ha terminado" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "No se pudo encontrar el tema `%s' para el SameGnome" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "Seleccione escenario:" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "Hacerlo el escenario predefinido" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "¿Realmente desea salir?" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "Juego/Nuevo" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "Juego/Escenario" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "Juego/Primeros diez" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "Juego/" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "Juego/Salir" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " +msgstr "Puntuación: " +# msgid "Gnome Mines" +# msgstr "Gnome Minas" +# +# msgid "" +# "I could not read the init file.\n" +# "Shall I install a new init file?" +# msgstr "" +# "No se pudo leer el archivo de inicialización.\n" +# "¿Instalar un nuevo archivo de inicialización?" +# +# msgid "No, just quit!" +# msgstr "¡No, salir!" +# Binary files gnome-0.11/po/fi.gmo and gnome-0.12/po/fi.gmo differ diff -uNr gnome-0.11/po/fi.po gnome-0.12/po/fi.po --- gnome-0.11/po/fi.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/po/fi.po Wed Jan 21 21:13:05 1998 @@ -0,0 +1,1084 @@ +msgid "" +msgstr "" +"Date: 1998-01-16 09:26:25+0200\n" +"From: Ville Hautamaki,M209,, \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=gnome --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: programs/desktop-properties/property-background.c programs/desktop-properties/property-screensaver.cc programs/desktop-properties/xlockmore.cc programs/desktop-properties/property-keyboard.c programs/desktop-properties/property-mouse.c programs/gtt/app.c programs/gtt/toolbar.c programs/gtt/menucmd.c programs/gtt/menus.c programs/gtt/proj.c programs/gtt/log.c programs/gtt/options.c programs/gtt/prop.c programs/gnometalk/talk.c programs/gnometalk/names.c programs/gnometalk/protocol.c programs/gnomine/gnomine.c programs/panel/panel.c programs/panel/batmon/batmon.c programs/panel/launcher/launcher.c programs/panel/mailcheck/mailcheck.c programs/panel/menu/main.c programs/same-gnome/same-gnome.c\n" + +#: programs/desktop-properties/property-background.c:327 +msgid "Color" +msgstr "Väri" + +#: programs/desktop-properties/property-background.c:351 +msgid "Flat" +msgstr "Tasainen" + +#: programs/desktop-properties/property-background.c:357 +msgid "Gradient" +msgstr "Liukuväri" + +#: programs/desktop-properties/property-background.c:372 +msgid "Vertical" +msgstr "Pysty" + +#: programs/desktop-properties/property-background.c:378 +msgid "Horizontal" +msgstr "Vaaka" + +#: programs/desktop-properties/property-background.c:512 +msgid "Wallpaper Selection" +msgstr "Taustakuvan valinta" + +#: programs/desktop-properties/property-background.c:551 +msgid "Wallpaper" +msgstr "Taustakuva" + +#: programs/desktop-properties/property-background.c:554 +msgid " Browse... " +msgstr "Selaa" + +#: programs/desktop-properties/property-background.c:559 +msgid "none" +msgstr "ei mitään" + +#: programs/desktop-properties/property-background.c:603 +msgid "Centered" +msgstr "Keskitetty" + +#: programs/desktop-properties/property-background.c:609 +msgid "Tiled" +msgstr "Vierekkäin" + +#: programs/desktop-properties/property-background.c:850 +msgid " Background " +msgstr " Tausta " + +#: programs/desktop-properties/property-screensaver.cc:140 +msgid "Settings" +msgstr "Asetukset" + +#: programs/desktop-properties/property-screensaver.cc:142 +msgid "Wait" +msgstr "Odota" + +#: programs/desktop-properties/property-screensaver.cc:143 +msgid "Min" +msgstr "Minimi" + +#: programs/desktop-properties/property-screensaver.cc:155 +msgid "Requires Password" +msgstr "Tarvitsee Salasanan" + +#: programs/desktop-properties/property-screensaver.cc:164 +msgid "Use DPMS" +msgstr "Käytä DPMS" + +#: programs/desktop-properties/property-screensaver.cc:173 +msgid "Priority" +msgstr "Tärkeysjärjestys" + +#: programs/desktop-properties/property-screensaver.cc:181 +msgid "Normal" +msgstr "Normaali" + +#: programs/desktop-properties/property-screensaver.cc:182 +msgid "Low" +msgstr "Alhainen" + +#: programs/desktop-properties/property-screensaver.cc:228 +msgid "Screensavers" +msgstr "Näytönsäästäjä" + +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 +msgid "Setup..." +msgstr "Aseta..." + +#: programs/desktop-properties/property-screensaver.cc:244 +msgid "Test" +msgstr "Testaa" + +#: programs/desktop-properties/property-screensaver.cc:344 +msgid " Screensaver " +msgstr " Näytönsäästäjä " + +#: programs/desktop-properties/xlockmore.cc:151 +msgid "XLockMore Properties" +msgstr "XLockMore Asetukset" + +#: programs/desktop-properties/xlockmore.cc:169 +msgid " OK " +msgstr " OK " + +#: programs/desktop-properties/xlockmore.cc:170 +msgid " Apply " +msgstr " Muuta " + +#: programs/desktop-properties/xlockmore.cc:171 +msgid " Cancel " +msgstr " Ohita " + +#: programs/desktop-properties/xlockmore.cc:172 +msgid " Defaults " +msgstr " Alkuarvot " + +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 +msgid "Help" +msgstr "Apua" + +#: programs/desktop-properties/xlockmore.cc:178 programs/desktop-properties/xlockmore.cc:190 +msgid " Mode " +msgstr " Moodi " + +#: programs/desktop-properties/xlockmore.cc:179 +msgid " XLockMore " +msgstr " XLockMore " + +#: programs/desktop-properties/xlockmore.cc:188 +msgid " Options " +msgstr " Vaihtoehdot " + +#: programs/desktop-properties/xlockmore.cc:189 +msgid " Preview " +msgstr " Esikatselu" + +#: programs/desktop-properties/property-keyboard.c:154 +msgid "Speed" +msgstr "Nopeus" + +#: programs/desktop-properties/property-keyboard.c:160 +msgid "Auto repeat" +msgstr "Toista Automaattisesti" + +#: programs/desktop-properties/property-keyboard.c:172 +msgid "Repeat rate" +msgstr "Toiston nopeus" + +#: programs/desktop-properties/property-keyboard.c:186 +msgid "Repeat delay" +msgstr "Toiston aika" + +#: programs/desktop-properties/property-keyboard.c:211 +msgid "Click" +msgstr "Napsauta" + +#: programs/desktop-properties/property-keyboard.c:217 +msgid "Click on keypress" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:227 +msgid "Click volume" +msgstr "Äänen voimakkuus" + +#: programs/desktop-properties/property-keyboard.c:255 +msgid " Keyboard " +msgstr " Näppäimistö " + +#. Frame for choosing button mapping. +#: programs/desktop-properties/property-mouse.c:181 +msgid "Buttons" +msgstr "Napit" + +#: programs/desktop-properties/property-mouse.c:183 +msgid "Left handed" +msgstr "Vasenkätinen" + +#: programs/desktop-properties/property-mouse.c:185 +msgid "Right handed" +msgstr "Oikeakätinen" + +#. Frame for setting pointer acceleration. +#: programs/desktop-properties/property-mouse.c:205 +msgid "Motion" +msgstr "Liikkeet" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Acceleration" +msgstr "Kiihdytys" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Slow" +msgstr "Hidas" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Fast" +msgstr "Nopea" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Threshold" +msgstr "Tarkkuus" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Small" +msgstr "Pieni" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Large" +msgstr "Suuri" + +#: programs/desktop-properties/property-mouse.c:228 +msgid "Mouse" +msgstr "Hiiri" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "Projektia ei ole valittu" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "tyhjä" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "Kyllä" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "Ei" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "virhe geometria merkkijonossa \"%s\"\n" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "tuntematon argumentti: %s\n" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "Uusi" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "Uusi Projekti..." + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "" + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "Päivitä" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "Päivitä Asetustiedosto" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "Tallenna" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "Tallenna Asetustiedosto" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "Leikkaa" + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "Leikkaa Valittu Projekti" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "Kopioi" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "Liimaa" + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "Liimaa Projekti" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "Ominaisuudet" + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "Muuta Ominaisuuksia ..." + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "" + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "Ajastin" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "Aloita/Lopeta Ajastin" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "Asetukset" + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "Muuta Ominaisuuksia..." + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "" + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "Tekijänoikeudet" + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "Tekijänoikeudet..." + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "Oops" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "Huomaa" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "Ei ole vielä implementoitu" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "Sulje" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "Varoitus" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "En voinut kirjoittaa asetustiedotostoa!" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "versio" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "OK" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "Ohita" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "Kirjoita nimi uudelle projektille" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "En voinut lukea asetustiedostoa" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" +"Tämä kirjoittaa nykyisten projektiese päälle.\n" +"Haluatko todellakin päivttää asetustiedostosi?" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "" + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "" + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "" + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "" + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "" + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "" + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "" + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "" + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "" + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " +msgstr "" +# msgid "Confirmation request" +# msgstr "Varmista" +# +# msgid "Quit" +# msgstr "Poistu" +# +# msgid "" +# "I could not read the init file.\n" +# "Shall I install a new init file?" +# msgstr "" +# "En voinut lukea alustus tiedostoa.\n" +# "Asennako uuden alustus tiedoston?" +# +# msgid "No, just quit!" +# msgstr "Ei, poistu!" +# +# msgid "Quit GTimeTracker" +# msgstr "Poistu GTimeTrackerista" +# Binary files gnome-0.11/po/fr.gmo and gnome-0.12/po/fr.gmo differ diff -uNr gnome-0.11/po/fr.po gnome-0.12/po/fr.po --- gnome-0.11/po/fr.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/po/fr.po Wed Jan 21 21:13:05 1998 @@ -0,0 +1,1096 @@ +msgid "" +msgstr "" +"Date: 1998-01-20 01:28:11+0100\n" +"From: Vincent Renardias \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=gnome --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: programs/desktop-properties/property-background.c programs/desktop-properties/property-screensaver.cc programs/desktop-properties/xlockmore.cc programs/desktop-properties/property-keyboard.c programs/desktop-properties/property-mouse.c programs/gtt/app.c programs/gtt/toolbar.c programs/gtt/menucmd.c programs/gtt/menus.c programs/gtt/proj.c programs/gtt/log.c programs/gtt/options.c programs/gtt/prop.c programs/gnometalk/talk.c programs/gnometalk/names.c programs/gnometalk/protocol.c programs/gnomine/gnomine.c programs/panel/panel.c programs/panel/batmon/batmon.c programs/panel/launcher/launcher.c programs/panel/mailcheck/mailcheck.c programs/panel/menu/main.c programs/same-gnome/same-gnome.c\n" + +#: programs/desktop-properties/property-background.c:327 +msgid "Color" +msgstr "Couleur" + +#: programs/desktop-properties/property-background.c:351 +msgid "Flat" +msgstr "Unie" + +#: programs/desktop-properties/property-background.c:357 +msgid "Gradient" +msgstr "Gradient" + +#: programs/desktop-properties/property-background.c:372 +msgid "Vertical" +msgstr "Vertical" + +#: programs/desktop-properties/property-background.c:378 +msgid "Horizontal" +msgstr "Horizontal" + +#: programs/desktop-properties/property-background.c:512 +msgid "Wallpaper Selection" +msgstr "Sélection du Papier peint" + +#: programs/desktop-properties/property-background.c:551 +msgid "Wallpaper" +msgstr "Papier peint" + +#: programs/desktop-properties/property-background.c:554 +msgid " Browse... " +msgstr " Parcourir... " + +#: programs/desktop-properties/property-background.c:559 +msgid "none" +msgstr "aucun" + +#: programs/desktop-properties/property-background.c:603 +msgid "Centered" +msgstr "Centré" + +#: programs/desktop-properties/property-background.c:609 +msgid "Tiled" +msgstr "Kachel" + +#: programs/desktop-properties/property-background.c:850 +msgid " Background " +msgstr " Fond d'écran " + +#: programs/desktop-properties/property-screensaver.cc:140 +msgid "Settings" +msgstr "Einstellungen" + +#: programs/desktop-properties/property-screensaver.cc:142 +msgid "Wait" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:143 +msgid "Min" +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:155 +msgid "Requires Password" +msgstr "Mot de passe requit" + +#: programs/desktop-properties/property-screensaver.cc:164 +msgid "Use DPMS" +msgstr "Utiliser DPMS" + +#: programs/desktop-properties/property-screensaver.cc:173 +msgid "Priority" +msgstr "Priorité" + +#: programs/desktop-properties/property-screensaver.cc:181 +msgid "Normal" +msgstr "Normal" + +#: programs/desktop-properties/property-screensaver.cc:182 +msgid "Low" +msgstr "Basse" + +#: programs/desktop-properties/property-screensaver.cc:228 +msgid "Screensavers" +msgstr "Econmiseurs d'écran" + +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 +msgid "Setup..." +msgstr "" + +#: programs/desktop-properties/property-screensaver.cc:244 +msgid "Test" +msgstr "Test" + +#: programs/desktop-properties/property-screensaver.cc:344 +msgid " Screensaver " +msgstr " Economiseur d'écran " + +#: programs/desktop-properties/xlockmore.cc:151 +msgid "XLockMore Properties" +msgstr "Propriétés de XLockMore" + +#: programs/desktop-properties/xlockmore.cc:169 +msgid " OK " +msgstr " OK " + +#: programs/desktop-properties/xlockmore.cc:170 +msgid " Apply " +msgstr " Appliquer " + +#: programs/desktop-properties/xlockmore.cc:171 +msgid " Cancel " +msgstr " Annuler " + +#: programs/desktop-properties/xlockmore.cc:172 +msgid " Defaults " +msgstr " Defauts " + +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 +msgid "Help" +msgstr " Aide " + +#: programs/desktop-properties/xlockmore.cc:178 programs/desktop-properties/xlockmore.cc:190 +msgid " Mode " +msgstr "" + +#: programs/desktop-properties/xlockmore.cc:179 +msgid " XLockMore " +msgstr " XLockMore " + +#: programs/desktop-properties/xlockmore.cc:188 +msgid " Options " +msgstr " Options " + +#: programs/desktop-properties/xlockmore.cc:189 +msgid " Preview " +msgstr " Aperçu " + +#: programs/desktop-properties/property-keyboard.c:154 +msgid "Speed" +msgstr "Vitesse" + +#: programs/desktop-properties/property-keyboard.c:160 +msgid "Auto repeat" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:172 +msgid "Repeat rate" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:186 +msgid "Repeat delay" +msgstr "" + +#: programs/desktop-properties/property-keyboard.c:211 +msgid "Click" +msgstr " Clic " + +#: programs/desktop-properties/property-keyboard.c:217 +msgid "Click on keypress" +msgstr " Clics sonores " + +#: programs/desktop-properties/property-keyboard.c:227 +msgid "Click volume" +msgstr " Volumes des clics " + +#: programs/desktop-properties/property-keyboard.c:255 +msgid " Keyboard " +msgstr " Clavier " + +#. Frame for choosing button mapping. +#: programs/desktop-properties/property-mouse.c:181 +msgid "Buttons" +msgstr "Boutons" + +#: programs/desktop-properties/property-mouse.c:183 +msgid "Left handed" +msgstr "Gaucher" + +#: programs/desktop-properties/property-mouse.c:185 +msgid "Right handed" +msgstr "Droitier" + +#. Frame for setting pointer acceleration. +#: programs/desktop-properties/property-mouse.c:205 +msgid "Motion" +msgstr "Mouvements" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Acceleration" +msgstr "Accélération" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Slow" +msgstr "Lent" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Fast" +msgstr "Rapide" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Threshold" +msgstr "Délai" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Small" +msgstr "Petit" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Large" +msgstr "Grand" + +#: programs/desktop-properties/property-mouse.c:228 +msgid "Mouse" +msgstr "Souris" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "aucun projet sélectionné" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "vide" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "Oui" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "Non" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "erreur dans l'argument geometry \"%s\"\n" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "Paramérte inconnu: %s\n" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "Nouveau" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "Nouveau projet..." + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "
/Fichier/Nouveau Projet..." + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "Recharger" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "Recharger le fichier de configuration" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "
/Fichier/Recharger le fichier de configuration" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "Enregistrer" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "Enregistrer le fichier de configuration" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "
/Fichier/Enregistrer le fichier de configuration" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "Couper" + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "Couper les projets sélectionnés" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "
/Edition/Couper" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "Copier" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "Copier les projets sélectionnés" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "
/Edition/Copier" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "Coller" + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "Coller le projet" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "
/Edition/Coller" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "Propriétés" + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "Editer les propiétés..." + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "
/Edition/Propriétés..." + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "Horloge" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "Lancer/Arrete l'horloge" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "
/Timer/Timer running" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "Prefs" + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "Editer les préférences..." + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "
/Edition/Préférences..." + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "
/Aide/Sommaire..." + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "A propos..." + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "A propos..." + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "
/Aide/A propos..." + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "Quitter" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "Oops" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "Info" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "Pas Encore Implémenté" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "Fermer" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "Avertissement" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "Je n'ai pas pu écrire le fichier de configuration!" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "version" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "OK" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "Cancel" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "Entrez le nom du nouveau projet:" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "Je n'ai pas pu lire le fichier de configuration" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" +"Cela écrasera vos projets.\n" +"Voulez-vous vraiment recharger votre fichier de configuration?" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "
/Timer/Start" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "
/Timer/Stop" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "/Coller" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "
/Edition/Réinitialiser le compteur journalier" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "/R\xe9initialiser le compteur journalier" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "N" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "
/Fichier/" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "R" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "E" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "Q" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "X" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "C" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "V" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "
/Edition/" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "E" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "A" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "P" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "
/Timer/Timer running" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "T" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "
/Aide/Aide sur l'Aide..." + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "H" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "
/Aide/" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "/Propriétés..." + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "/" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "/Couper" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "/Copier" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "
/Aide" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "projet arrété" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "program exited" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "Appliquer" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "Affichage" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "Afficher les secondes" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "Show Toolbar Icons" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "Show Toolbar Texts" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "Show Status Bar" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "Commandes Shell" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "Switch Project Command:" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "No Project Command:" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "Historique" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "Utiliser l'historique" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "Nom Du Fichier:" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "Timeout in secs.:" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "Préférences" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "Propriétés" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "Titre du projet:" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "Description du projet:" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "Project Time today:" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "heures" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "minutes" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "secondes" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "Project Time ever:" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "Talk" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "En conversation avec " + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "Parler à" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "Spécifiez le Terminal" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "OK" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "Votre correspondant n'est pas connecté" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "Votre correspondant refuse les messages" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "Petite" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "Moyenne" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "Graaaande" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "Gnome Mines" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "Gnome Mines Setup" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "Taille personnalisée" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "Taille de la grille" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "Personnalisée" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "Horizontal:" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "Vertical:" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "Nombre de mines:" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "" + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "Jeu" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "Drapeaux:" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "Temps:" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "Déplacer l'applet" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "Enlever" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "Propriétés des Applets..." + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "" + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "Fin de session" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "Impossible d'ouvrir /proc/apm; ne peut obtenir les informations." + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "Probléme avec /proc/apm; impossible d'obtenir les données." + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "Pas de batterie?!?" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "Haut et en chargement." + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "Haut." + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "Bas et en chargement." + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "Bas." + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "Critique et en chargement." + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "Critique!!" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "En chargement." + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "Autonomie: %d minutes" + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "Plus de 100 000 000 minutes d'autonomie?!?" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "Statistiques APM" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "Version des Pilotes Linux APM:" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "Version du BIOS APM:" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "Etat de la batterie:" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "Propriétés du lanceur" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "Exécuter" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "Icone" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "Documentation" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "Description" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "Vous avez un nouveau mail." + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "Vous avez du mail." + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "Pas de mail." + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "Ajouter applet" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "Configuration" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "Vérouiller l'écran" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "Sélection du scénario:" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "Voulez-vous vraiment quitter?" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " +msgstr "Score: " +# msgid "You got onto the high score list with a score of %.0f!" +# msgstr "Vous êtes sur la liste des meilleurs scores avec un score de %.0f!" +# +# msgid "Quit" +# msgstr "Quitter" +# +# msgid "" +# "I could not read the init file.\n" +# "Shall I install a new init file?" +# msgstr "" +# "Je n'ai pas pu lire votre fichier init.\n" +# "Doit-je installer un nouveau fichier init?" +# +# msgid "Confirmation Request" +# msgstr "Confirmation" +# +# msgid "Confirmation request" +# msgstr "Confirmation" +# +# msgid "Reload configuration" +# msgstr "Recharger la configuration" +# +# msgid "
/File/Quit" +# msgstr "
/Fichier/Quitter" +# +# msgid "No, just quit!" +# msgstr "Non, quitter!" +# +# msgid "Quit GTimeTracker" +# msgstr "Quitter GTimeTracker" +# diff -uNr gnome-0.11/po/gnome.pot gnome-0.12/po/gnome.pot --- gnome-0.11/po/gnome.pot Sat Jan 3 14:05:42 1998 +++ gnome-0.12/po/gnome.pot Wed Jan 21 20:42:51 1998 @@ -1,10 +1,10 @@ msgid "" msgstr "" -"Date: 1998-01-03 14:05:42-0600\n" +"Date: 1998-01-21 20:42:51-0600\n" "From: Miguel de Icaza,computo,622-4680 \n" "Content-Type: text/plain; charset=\n" "Xgettext-Options: --default-domain=gnome --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" -"Files: programs/desktop-properties/property-background.c programs/desktop-properties/property-screensaver.cc programs/desktop-properties/xlockmore.cc programs/desktop-properties/property-keyboard.c programs/desktop-properties/property-mouse.c\n" +"Files: programs/desktop-properties/property-background.c programs/desktop-properties/property-screensaver.cc programs/desktop-properties/xlockmore.cc programs/desktop-properties/property-keyboard.c programs/desktop-properties/property-mouse.c programs/gtt/app.c programs/gtt/toolbar.c programs/gtt/main.c programs/gtt/menucmd.c programs/gtt/menus.c programs/gtt/proj.c programs/gtt/log.c programs/gtt/options.c programs/gtt/prop.c programs/gnometalk/talk.c programs/gnometalk/names.c programs/gnometalk/protocol.c programs/gnomine/gnomine.c programs/panel/panel.c programs/panel/batmon/batmon.c programs/panel/launcher/launcher.c programs/panel/mailcheck/mailcheck.c programs/panel/menu/main.c programs/same-gnome/same-gnome.c\n" #: programs/desktop-properties/property-background.c:327 msgid "Color" @@ -90,7 +90,7 @@ msgid "Screensavers" msgstr "" -#: programs/desktop-properties/property-screensaver.cc:240 +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 msgid "Setup..." msgstr "" @@ -122,7 +122,7 @@ msgid " Defaults " msgstr "" -#: programs/desktop-properties/xlockmore.cc:173 +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 msgid "Help" msgstr "" @@ -218,4 +218,846 @@ #: programs/desktop-properties/property-mouse.c:228 msgid "Mouse" +msgstr "" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "" + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "" + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "" + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "" + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "" + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "" + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "" + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "" + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "" + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "" + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "" + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "" + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "" + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "" + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "" + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "" + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "" + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "" + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "" + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "" + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " msgstr "" Binary files gnome-0.11/po/it.gmo and gnome-0.12/po/it.gmo differ diff -uNr gnome-0.11/po/it.po gnome-0.12/po/it.po --- gnome-0.11/po/it.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/po/it.po Wed Jan 21 21:13:04 1998 @@ -0,0 +1,1075 @@ +msgid "" +msgstr "" +"Date: 1997-11-04 10:05:49+0100\n" +"From: Tristan Tarrant \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=gnome --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: programs/desktop-properties/property-background.c\n" + +#: programs/desktop-properties/property-background.c:327 +msgid "Color" +msgstr " Colore " + +#: programs/desktop-properties/property-background.c:351 +msgid "Flat" +msgstr "Tinta unita" + +#: programs/desktop-properties/property-background.c:357 +msgid "Gradient" +msgstr "Sfumato" + +#: programs/desktop-properties/property-background.c:372 +msgid "Vertical" +msgstr "Verticale" + +#: programs/desktop-properties/property-background.c:378 +msgid "Horizontal" +msgstr "Orizzontale" + +#: programs/desktop-properties/property-background.c:512 +msgid "Wallpaper Selection" +msgstr "Selezione sfondo" + +#: programs/desktop-properties/property-background.c:551 +msgid "Wallpaper" +msgstr "Immagine di sfondo" + +#: programs/desktop-properties/property-background.c:554 +msgid " Browse... " +msgstr " Sfoglia... " + +#: programs/desktop-properties/property-background.c:559 +msgid "none" +msgstr "nessuna" + +#: programs/desktop-properties/property-background.c:603 +msgid "Centered" +msgstr "Centrata" + +#: programs/desktop-properties/property-background.c:609 +msgid "Tiled" +msgstr "Affiancata" + +#: programs/desktop-properties/property-background.c:850 +msgid " Background " +msgstr " Sfondo " + +#: programs/desktop-properties/property-screensaver.cc:140 +msgid "Settings" +msgstr " Opzioni " + +#: programs/desktop-properties/property-screensaver.cc:142 +msgid "Wait" +msgstr "Attesa" + +#: programs/desktop-properties/property-screensaver.cc:143 +msgid "Min" +msgstr "Min" + +#: programs/desktop-properties/property-screensaver.cc:155 +msgid "Requires Password" +msgstr "Richiede password" + +#: programs/desktop-properties/property-screensaver.cc:164 +msgid "Use DPMS" +msgstr "Usa DPMS" + +#: programs/desktop-properties/property-screensaver.cc:173 +msgid "Priority" +msgstr "priorità" + +#: programs/desktop-properties/property-screensaver.cc:181 +msgid "Normal" +msgstr "Normale" + +#: programs/desktop-properties/property-screensaver.cc:182 +msgid "Low" +msgstr "Bassa" + +#: programs/desktop-properties/property-screensaver.cc:228 +msgid "Screensavers" +msgstr "Salva schermo" + +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 +msgid "Setup..." +msgstr "Configura..." + +#: programs/desktop-properties/property-screensaver.cc:244 +msgid "Test" +msgstr "Prova" + +#: programs/desktop-properties/property-screensaver.cc:344 +msgid " Screensaver " +msgstr " Salva schermo " + +#: programs/desktop-properties/xlockmore.cc:151 +msgid "XLockMore Properties" +msgstr "Proprietà XLockMore" + +#: programs/desktop-properties/xlockmore.cc:169 +msgid " OK " +msgstr " OK " + +#: programs/desktop-properties/xlockmore.cc:170 +msgid " Apply " +msgstr " Applica " + +#: programs/desktop-properties/xlockmore.cc:171 +msgid " Cancel " +msgstr " Annulla " + +#: programs/desktop-properties/xlockmore.cc:172 +msgid " Defaults " +msgstr " Valori originali " + +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 +msgid "Help" +msgstr "Aiuto" + +#: programs/desktop-properties/xlockmore.cc:178 programs/desktop-properties/xlockmore.cc:190 +msgid " Mode " +msgstr " Modo " + +#: programs/desktop-properties/xlockmore.cc:179 +msgid " XLockMore " +msgstr " XLockMore " + +#: programs/desktop-properties/xlockmore.cc:188 +msgid " Options " +msgstr " Opzioni " + +#: programs/desktop-properties/xlockmore.cc:189 +msgid " Preview " +msgstr " Anteprima " + +#: programs/desktop-properties/property-keyboard.c:154 +msgid "Speed" +msgstr "Velocità" + +#: programs/desktop-properties/property-keyboard.c:160 +msgid "Auto repeat" +msgstr "Ripetizione automatica" + +#: programs/desktop-properties/property-keyboard.c:172 +msgid "Repeat rate" +msgstr " Frequenza di ripetizione " + +#: programs/desktop-properties/property-keyboard.c:186 +msgid "Repeat delay" +msgstr "Ritardo di ripetizione" + +#: programs/desktop-properties/property-keyboard.c:211 +msgid "Click" +msgstr "Suono" + +#: programs/desktop-properties/property-keyboard.c:217 +msgid "Click on keypress" +msgstr "Suono su battitura" + +#: programs/desktop-properties/property-keyboard.c:227 +msgid "Click volume" +msgstr "Volume suono" + +#: programs/desktop-properties/property-keyboard.c:255 +msgid " Keyboard " +msgstr " Tastiera " + +#. Frame for choosing button mapping. +#: programs/desktop-properties/property-mouse.c:181 +msgid "Buttons" +msgstr "Bottoni" + +#: programs/desktop-properties/property-mouse.c:183 +msgid "Left handed" +msgstr "Mancino" + +#: programs/desktop-properties/property-mouse.c:185 +msgid "Right handed" +msgstr "Destro" + +#. Frame for setting pointer acceleration. +#: programs/desktop-properties/property-mouse.c:205 +msgid "Motion" +msgstr "Movimento" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Acceleration" +msgstr "Accelerazione" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Slow" +msgstr "Lento" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Fast" +msgstr "Veloce" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Threshold" +msgstr "Soglia" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Small" +msgstr "Bassa" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Large" +msgstr "Alta" + +#: programs/desktop-properties/property-mouse.c:228 +msgid "Mouse" +msgstr "Mouse" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "Sì" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "No" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "Nuovo" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "" + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "" + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "" + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "" + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "" + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "" + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "" + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "" + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "" + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "" + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "" + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "Esci" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "Chiudi" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "Ok" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "Annulla" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "" + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "" + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "Talk" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "Parlando con " + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "Parla con" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "Specifica TTY" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "Ok" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "impossibile creare socket" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "init_control_socket: impossibile effettuare bind()" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "chiamata a getsockname() fallita" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "impossibile effettuare bind ()" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "Errore durante spedizione" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "Errore in lettura dal daemon talk" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "Errore durante attesa del chiamante" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "Connessione in corso con il talk daemon dell'utente chiamato" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "Connessione perduta" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "Impossibile effettuare connessione con l'utente chiamato" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "Attesa della risposta dell'utente chiamato" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "risposta utilizza un indirizzo di rete non valido" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "ANNULLAMENTO CALLBACK:Risposta:%d\n" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "L'utente chiamato non è collegato" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "La macchina remota è troppo confusa per parlare con noi" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "La macchina remota non ci riconosce" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "L'utente chiamato rifiuta messaggi" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "La macchina remota non può gestire talk remoto" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "La macchina remota ha identificato un'incongruenza di protocollo" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "La macchina remota ha identificato un protocollo non valido (addr)" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "La macchina remota ha identificato un protocollo non valido (ctl_addr)" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "Piccolo" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "Medio" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "Graaande" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "Campo minato Gnome" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "Configurazione campo minato" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "Dimensione personalizzata" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "Dimensione campo" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "Personalizzato" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "Orizzontale" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "Verticale" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "Numero di mine:" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "" + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "Gioco" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "Bandiere" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "Tempo:" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "Muovi applet" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "Rimuovi dal pannello" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "Proprietà applet..." + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "" + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "Chiudi sessione" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "Impossibile aprire /proc/apm; impossibile ottenere dati." + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "Errore in /proc/apm; impossibile ottenere dati." + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "Non c'è la batteria?!?" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "Alta in caricamento." + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "Alta." + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "Bassa in caricamento." + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "Bassa." + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "Livello critico in caricamento." + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "Livello critico!!!" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "In caricamento." + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "%d minuti di batteria." + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "Più di 100.000.000 minuti di carica nella batteria?!?" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "Statistiche APM" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "Versione Driver Linux APM:" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "Versione BIOS APM:" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "Stato Batteria:" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "Proprietà esecutore" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "Esegui" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "Icona" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "Documentazione" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "Descrizione" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "Hai nuova posta." + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "Hai posta." + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "Niente posta." + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "Aggiungi al pannello" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "Aggiungi applet" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "Configura" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "Pannello" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "Blocca schermo" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "Seleziona scenario:" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "Vuoi davvero uscire?" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " +msgstr "Punteggio:" +# msgid "You got onto the high score list with a score of %.0f!" +# msgstr "Hai raggiunto la lista di high score con un punteggio di %.0f!" +# +# msgid "Reload configuration" +# msgstr "Ricarica configurazione" +# +# msgid "Screen savers" +# msgstr "Salva schermo" +# +# msgid "Setup" +# msgstr "Configura" +# Binary files gnome-0.11/po/ko.gmo and gnome-0.12/po/ko.gmo differ diff -uNr gnome-0.11/po/ko.po gnome-0.12/po/ko.po --- gnome-0.11/po/ko.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/po/ko.po Wed Jan 21 21:13:04 1998 @@ -0,0 +1,1070 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 1998-01-03 11:05+0900\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=euc-kr\n" +"Content-Transfer-Encoding: 8bit\n" + +#: programs/desktop-properties/property-background.c:327 +msgid "Color" +msgstr "»ö»ó" + +#: programs/desktop-properties/property-background.c:351 +msgid "Flat" +msgstr "ÇÑ°¡Áö »ö" + +#: programs/desktop-properties/property-background.c:357 +msgid "Gradient" +msgstr "¼­¼­È÷ º¯È­" + +#: programs/desktop-properties/property-background.c:372 +msgid "Vertical" +msgstr "¼öÁ÷" + +#: programs/desktop-properties/property-background.c:378 +msgid "Horizontal" +msgstr "¼öÆò" + +#: programs/desktop-properties/property-background.c:512 +msgid "Wallpaper Selection" +msgstr "º®Áö °í¸£±â" + +#: programs/desktop-properties/property-background.c:551 +msgid "Wallpaper" +msgstr "º®Áö" + +#: programs/desktop-properties/property-background.c:554 +msgid " Browse... " +msgstr " ã¾Æº¸±â... " + +#: programs/desktop-properties/property-background.c:559 +msgid "none" +msgstr "¾øÀ½" + +#: programs/desktop-properties/property-background.c:603 +msgid "Centered" +msgstr "Áß¾Ó" + +#: programs/desktop-properties/property-background.c:609 +msgid "Tiled" +msgstr "ŸÀÏ" + +#: programs/desktop-properties/property-background.c:850 +msgid " Background " +msgstr "¹è°æ" + +#: programs/desktop-properties/property-screensaver.cc:140 +msgid "Settings" +msgstr "¼³Á¤" + +#: programs/desktop-properties/property-screensaver.cc:142 +msgid "Wait" +msgstr "±â´Ù¸²: " + +#: programs/desktop-properties/property-screensaver.cc:143 +msgid "Min" +msgstr "ºÐ" + +#: programs/desktop-properties/property-screensaver.cc:155 +msgid "Requires Password" +msgstr "¾ÏÈ£ ÇÊ¿ä" + +#: programs/desktop-properties/property-screensaver.cc:164 +msgid "Use DPMS" +msgstr "DPMS »ç¿ë" + +#: programs/desktop-properties/property-screensaver.cc:173 +msgid "Priority" +msgstr "¿ì¼±¼øÀ§" + +#: programs/desktop-properties/property-screensaver.cc:181 +msgid "Normal" +msgstr "º¸Åë" + +#: programs/desktop-properties/property-screensaver.cc:182 +msgid "Low" +msgstr "³·°Ô" + +#: programs/desktop-properties/property-screensaver.cc:228 +msgid "Screensavers" +msgstr "È­¸é º¸È£±â" + +#: programs/desktop-properties/property-screensaver.cc:240 programs/gnomine/gnomine.c:338 +msgid "Setup..." +msgstr "¼³Á¤..." + +#: programs/desktop-properties/property-screensaver.cc:244 +msgid "Test" +msgstr "Å×½ºÆ®" + +#: programs/desktop-properties/property-screensaver.cc:344 +msgid " Screensaver " +msgstr " È­¸é º¸È£±â " + +#: programs/desktop-properties/xlockmore.cc:151 +msgid "XLockMore Properties" +msgstr "XLockMore ¼ºÁú" + +#: programs/desktop-properties/xlockmore.cc:169 +msgid " OK " +msgstr " È®ÀÎ " + +#: programs/desktop-properties/xlockmore.cc:170 +msgid " Apply " +msgstr " Àû¿ë " + +#: programs/desktop-properties/xlockmore.cc:171 +msgid " Cancel " +msgstr " Ãë¼Ò " + +#: programs/desktop-properties/xlockmore.cc:172 +msgid " Defaults " +msgstr " ±âº»°ª " + +#: programs/desktop-properties/xlockmore.cc:173 programs/gtt/options.c:122 programs/gtt/prop.c:203 programs/gtt/toolbar.c:424 +msgid "Help" +msgstr "µµ¿ò¸»" + +#: programs/desktop-properties/xlockmore.cc:178 programs/desktop-properties/xlockmore.cc:190 +msgid " Mode " +msgstr " ¸ðµå " + +#: programs/desktop-properties/xlockmore.cc:179 +msgid " XLockMore " +msgstr " XLockMore " + +#: programs/desktop-properties/xlockmore.cc:188 +msgid " Options " +msgstr " ¿É¼Ç " + +#: programs/desktop-properties/xlockmore.cc:189 +msgid " Preview " +msgstr " ¹Ì¸®º¸±â " + +#: programs/desktop-properties/property-keyboard.c:154 +msgid "Speed" +msgstr "¼Óµµ" + +#: programs/desktop-properties/property-keyboard.c:160 +msgid "Auto repeat" +msgstr "ÀÚµ¿¹Ýº¹" + +#: programs/desktop-properties/property-keyboard.c:172 +msgid "Repeat rate" +msgstr " ¹Ýº¹Á¤µµ " + +#: programs/desktop-properties/property-keyboard.c:186 +msgid "Repeat delay" +msgstr "¹Ýº¹ Áö¿¬" + +#: programs/desktop-properties/property-keyboard.c:211 +msgid "Click" +msgstr "Ŭ¸¯" + +#: programs/desktop-properties/property-keyboard.c:217 +msgid "Click on keypress" +msgstr "´©¸¦¶§ ¼Ò¸® ³»±â" + +#: programs/desktop-properties/property-keyboard.c:227 +msgid "Click volume" +msgstr "´©¸¦¶§ ¼Ò¸® Å©±â" + +#: programs/desktop-properties/property-keyboard.c:255 +msgid " Keyboard " +msgstr " Å°º¸µå " + +#. Frame for choosing button mapping. +#: programs/desktop-properties/property-mouse.c:181 +msgid "Buttons" +msgstr "¹öÆ°" + +#: programs/desktop-properties/property-mouse.c:183 +msgid "Left handed" +msgstr "¿Þ¼ÕÀâÀÌ" + +#: programs/desktop-properties/property-mouse.c:185 +msgid "Right handed" +msgstr "¿À¸¥¼ÕÀâÀÌ" + +#. Frame for setting pointer acceleration. +#: programs/desktop-properties/property-mouse.c:205 +msgid "Motion" +msgstr "¿òÁ÷ÀÓ" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Acceleration" +msgstr "¸¶¿ì½º ¼Óµµ" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Slow" +msgstr "´À¸®°Ô" + +#: programs/desktop-properties/property-mouse.c:210 +msgid "Fast" +msgstr "ºü¸£°Ô" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Threshold" +msgstr "óÀ½ ¿òÁ÷ÀÓ" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Small" +msgstr "ÀÛ°Ô" + +#: programs/desktop-properties/property-mouse.c:216 +msgid "Large" +msgstr "Å©°Ô" + +#: programs/desktop-properties/property-mouse.c:228 +msgid "Mouse" +msgstr "¸¶¿ì½º" + +#: programs/gtt/app.c:70 +msgid "no project selected" +msgstr "" + +#. define one empty project on the first start +#: programs/gtt/app.c:257 programs/gtt/prop.c:59 +msgid "empty" +msgstr "" + +#. not DEBUG +#: programs/gtt/app.c:299 programs/gtt/main.c:76 +msgid "Error" +msgstr "" + +#: programs/gtt/app.c:300 +msgid "" +"An error occured while reading the configuration file.\n" +"Shall I setup a new configuration?" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "Yes" +msgstr "" + +#: programs/gtt/app.c:303 programs/gtt/menucmd.c:165 programs/same-gnome/same-gnome.c:577 +msgid "No" +msgstr "" + +#: programs/gtt/app.c:371 programs/gtt/app.c:386 programs/gtt/app.c:396 programs/gtt/app.c:402 +msgid "error in geometry string \"%s\"\n" +msgstr "" + +#. TODO: parsing more arguments? +#: programs/gtt/app.c:409 +msgid "unknown arg: %s\n" +msgstr "" + +#. not WANT_STOCK +#: programs/gnomine/gnomine.c:337 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New" +msgstr "" + +#: programs/gtt/menucmd.c:116 programs/gtt/toolbar.c:356 programs/gtt/toolbar.c:386 +msgid "New Project..." +msgstr "" + +#: programs/gtt/menus.c:69 programs/gtt/toolbar.c:358 programs/gtt/toolbar.c:387 +msgid "
/File/New Project..." +msgstr "" + +#: programs/gtt/toolbar.c:360 programs/gtt/toolbar.c:389 +msgid "Reload" +msgstr "" + +#: programs/gtt/menucmd.c:162 programs/gtt/toolbar.c:361 programs/gtt/toolbar.c:389 +msgid "Reload Configuration File" +msgstr "" + +#: programs/gtt/menus.c:71 programs/gtt/toolbar.c:363 programs/gtt/toolbar.c:391 +msgid "
/File/Reload Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save" +msgstr "" + +#: programs/gtt/toolbar.c:364 programs/gtt/toolbar.c:392 +msgid "Save Configuration File" +msgstr "" + +#: programs/gtt/menus.c:72 programs/gtt/toolbar.c:366 programs/gtt/toolbar.c:394 +msgid "
/File/Save Configuration File" +msgstr "" + +#: programs/gtt/toolbar.c:368 programs/gtt/toolbar.c:396 +msgid "Cut" +msgstr "" + +#: programs/gtt/toolbar.c:369 programs/gtt/toolbar.c:396 +msgid "Cut Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:358 programs/gtt/menus.c:75 programs/gtt/toolbar.c:371 programs/gtt/toolbar.c:398 +msgid "
/Edit/Cut" +msgstr "" + +#: programs/gtt/toolbar.c:372 programs/gtt/toolbar.c:399 +msgid "Copy" +msgstr "" + +#: programs/gtt/toolbar.c:373 programs/gtt/toolbar.c:400 +msgid "Copy Selected Project" +msgstr "" + +#: programs/gtt/menucmd.c:359 programs/gtt/menus.c:76 programs/gtt/toolbar.c:375 programs/gtt/toolbar.c:402 +msgid "
/Edit/Copy" +msgstr "" + +#: programs/gtt/toolbar.c:376 programs/gtt/toolbar.c:403 +msgid "Paste" +msgstr "" + +#: programs/gtt/toolbar.c:377 programs/gtt/toolbar.c:403 +msgid "Paste Project" +msgstr "" + +#: programs/gtt/menucmd.c:360 programs/gtt/menus.c:77 programs/gtt/toolbar.c:379 programs/gtt/toolbar.c:405 +msgid "
/Edit/Paste" +msgstr "" + +#: programs/gtt/toolbar.c:381 programs/gtt/toolbar.c:407 +msgid "Props" +msgstr "" + +#: programs/gtt/toolbar.c:382 programs/gtt/toolbar.c:408 +msgid "Edit Properties..." +msgstr "" + +#: programs/gtt/menucmd.c:364 programs/gtt/menus.c:80 programs/gtt/toolbar.c:384 programs/gtt/toolbar.c:411 +msgid "
/Edit/Properties..." +msgstr "" + +#. not WANT_STOCK +#: programs/gtt/toolbar.c:413 +msgid "Timer" +msgstr "" + +#: programs/gtt/toolbar.c:414 +msgid "Start/Stop Timer" +msgstr "" + +#: programs/gtt/menucmd.c:355 programs/gtt/menus.c:128 programs/gtt/toolbar.c:417 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Prefs" +msgstr "" + +#: programs/gtt/toolbar.c:419 +msgid "Edit Preferences..." +msgstr "" + +#: programs/gtt/menus.c:82 programs/gtt/toolbar.c:421 +msgid "
/Edit/Preferences..." +msgstr "" + +#: programs/gtt/toolbar.c:424 +msgid "Help Contents..." +msgstr "" + +#: programs/gtt/menus.c:88 programs/gtt/toolbar.c:426 +msgid "
/Help/Contents..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gtt/menucmd.c:66 programs/gtt/toolbar.c:428 +msgid "About" +msgstr "" + +#: programs/gtt/toolbar.c:428 +msgid "About..." +msgstr "" + +#: programs/gtt/menus.c:91 programs/gtt/toolbar.c:430 +msgid "
/Help/About..." +msgstr "" + +#. not USE_GTT_HELP +#: programs/gnomine/gnomine.c:340 programs/gtt/toolbar.c:432 +msgid "Exit" +msgstr "" + +#: programs/gtt/toolbar.c:432 +msgid "Exit GTimeTracker" +msgstr "" + +#: programs/gtt/menus.c:74 programs/gtt/toolbar.c:434 +msgid "
/File/Exit" +msgstr "" + +#: programs/gtt/main.c:76 +msgid "" +"There seems to be another GTimeTracker running.\n" +"Please remove the pid file, if that is not correct." +msgstr "" + +#: programs/gtt/main.c:78 programs/gtt/menucmd.c:51 programs/gtt/menucmd.c:148 programs/gtt/menucmd.c:178 +msgid "Oops" +msgstr "" + +#: programs/gtt/menucmd.c:39 +msgid "Notice" +msgstr "" + +#: programs/gtt/menucmd.c:40 +msgid "Not implemented yet" +msgstr "" + +#: programs/gtt/menucmd.c:41 programs/gtt/menucmd.c:67 programs/panel/batmon/batmon.c:325 programs/panel/launcher/launcher.c:332 programs/panel/menu/main.c:819 +msgid "Close" +msgstr "" + +#: programs/gtt/menucmd.c:49 programs/gtt/menucmd.c:147 programs/gtt/menucmd.c:177 +msgid "Warning" +msgstr "" + +#: programs/gtt/menucmd.c:50 programs/gtt/menucmd.c:179 +msgid "I could not write the configuration file!" +msgstr "" + +#: programs/gtt/menucmd.c:74 programs/gtt/menucmd.c:77 +msgid "version" +msgstr "" + +#: programs/gtt/menucmd.c:117 programs/gtt/options.c:100 programs/gtt/prop.c:186 +msgid "OK" +msgstr "" + +#: programs/gnometalk/names.c:126 programs/gnomine/gnomine.c:321 programs/gtt/menucmd.c:119 programs/gtt/options.c:115 programs/gtt/prop.c:197 programs/panel/mailcheck/mailcheck.c:452 programs/same-gnome/same-gnome.c:564 +msgid "Cancel" +msgstr "" + +#: programs/gtt/menucmd.c:120 +msgid "Please enter the name of the new project:" +msgstr "" + +#: programs/gtt/menucmd.c:149 +msgid "I could not read the configuration file" +msgstr "" + +#: programs/gtt/menucmd.c:163 +msgid "" +"This will overwrite your current set of projects.\n" +"Do you really want to reload the configuration file?" +msgstr "" + +#: programs/gtt/menucmd.c:356 programs/gtt/menus.c:83 +msgid "
/Timer/Start" +msgstr "" + +#: programs/gtt/menucmd.c:357 programs/gtt/menus.c:84 +msgid "
/Timer/Stop" +msgstr "" + +#: programs/gtt/menucmd.c:361 programs/gtt/menus.c:96 +msgid "/Paste" +msgstr "" + +#: programs/gtt/menucmd.c:362 programs/gtt/menus.c:79 +msgid "
/Edit/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menucmd.c:363 programs/gtt/menus.c:98 +msgid "/Clear Daily Counter" +msgstr "" + +#: programs/gtt/menus.c:69 +msgid "N" +msgstr "" + +#: programs/gtt/menus.c:70 programs/gtt/menus.c:73 +msgid "
/File/" +msgstr "" + +#: programs/gtt/menus.c:71 +msgid "R" +msgstr "" + +#: programs/gtt/menus.c:72 +msgid "S" +msgstr "" + +#: programs/gtt/menus.c:74 +msgid "Q" +msgstr "" + +#: programs/gtt/menus.c:75 +msgid "X" +msgstr "" + +#: programs/gtt/menus.c:76 +msgid "C" +msgstr "" + +#: programs/gtt/menus.c:77 +msgid "V" +msgstr "" + +#: programs/gtt/menus.c:78 programs/gtt/menus.c:81 +msgid "
/Edit/" +msgstr "" + +#: programs/gtt/menus.c:80 +msgid "E" +msgstr "" + +#: programs/gtt/menus.c:83 +msgid "A" +msgstr "" + +#: programs/gtt/menus.c:84 +msgid "P" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "
/Timer/Timer running" +msgstr "" + +#: programs/gtt/menus.c:85 +msgid "T" +msgstr "" + +#: programs/gtt/menus.c:87 +msgid "
/Help/Help on Help..." +msgstr "" + +#: programs/gtt/menus.c:88 +msgid "H" +msgstr "" + +#: programs/gtt/menus.c:89 +msgid "
/Help/" +msgstr "" + +#: programs/gtt/menus.c:92 +msgid "/Properties..." +msgstr "" + +#: programs/gtt/menus.c:93 programs/gtt/menus.c:97 +msgid "/" +msgstr "" + +#: programs/gtt/menus.c:94 +msgid "/Cut" +msgstr "" + +#: programs/gtt/menus.c:95 +msgid "/Copy" +msgstr "" + +#: programs/gtt/menus.c:125 +msgid "
/Help" +msgstr "" + +#: programs/gtt/log.c:73 +msgid "stopped project" +msgstr "" + +#: programs/gtt/log.c:102 +msgid "program exited" +msgstr "" + +#: programs/gtt/options.c:108 programs/gtt/prop.c:192 programs/panel/launcher/launcher.c:341 programs/panel/menu/main.c:827 +msgid "Apply" +msgstr "" + +#: programs/gtt/options.c:137 +msgid "Display" +msgstr "" + +#: programs/gtt/options.c:145 +msgid "Show Seconds" +msgstr "" + +#: programs/gtt/options.c:150 +msgid "Show Toolbar Icons" +msgstr "" + +#: programs/gtt/options.c:155 +msgid "Show Toolbar Texts" +msgstr "" + +#: programs/gtt/options.c:160 +msgid "Show Status Bar" +msgstr "" + +#: programs/gtt/options.c:173 +msgid "Shell Commands" +msgstr "" + +#: programs/gtt/options.c:181 +msgid "Switch Project Command:" +msgstr "" + +#: programs/gtt/options.c:190 +msgid "No Project Command:" +msgstr "" + +#: programs/gtt/options.c:219 +msgid "Logfile" +msgstr "" + +#: programs/gtt/options.c:227 +msgid "Use Logfile" +msgstr "" + +#: programs/gtt/options.c:239 +msgid "Filename:" +msgstr "" + +#: programs/gtt/options.c:253 +msgid "Timeout in secs:" +msgstr "" + +#: programs/gtt/options.c:300 +msgid "Preferences" +msgstr "" + +#: programs/gtt/prop.c:174 +msgid "Properties" +msgstr "" + +#: programs/gtt/prop.c:217 +msgid "Project Title:" +msgstr "" + +#: programs/gtt/prop.c:226 +msgid "Project Description:" +msgstr "" + +#: programs/gtt/prop.c:235 +msgid "Project Time today:" +msgstr "" + +#: programs/gtt/prop.c:248 programs/gtt/prop.c:277 +msgid "hours" +msgstr "" + +#: programs/gtt/prop.c:256 programs/gtt/prop.c:285 +msgid "mins" +msgstr "" + +#: programs/gtt/prop.c:264 programs/gtt/prop.c:293 +msgid "secs" +msgstr "" + +#: programs/gtt/prop.c:268 +msgid "Project Time ever:" +msgstr "" + +#: programs/gnometalk/talk.c:154 +msgid "Talk" +msgstr "" + +#: programs/gnometalk/talk.c:167 +msgid "Talking to " +msgstr "" + +#: programs/gnometalk/names.c:78 programs/gnometalk/names.c:93 +msgid "Talk to" +msgstr "" + +#: programs/gnometalk/names.c:102 +msgid "Specify TTY" +msgstr "" + +#: programs/gnometalk/names.c:117 programs/gnomine/gnomine.c:316 programs/panel/mailcheck/mailcheck.c:451 programs/same-gnome/same-gnome.c:563 +msgid "Ok" +msgstr "" + +#: programs/gnometalk/protocol.c:108 programs/gnometalk/protocol.c:133 +msgid "could not create socket" +msgstr "" + +#: programs/gnometalk/protocol.c:111 +msgid "init_control_socket: could not bind()" +msgstr "" + +#: programs/gnometalk/protocol.c:116 programs/gnometalk/protocol.c:141 +msgid "getsockname() failed" +msgstr "" + +#: programs/gnometalk/protocol.c:136 +msgid "could not bind ()" +msgstr "" + +#: programs/gnometalk/protocol.c:164 +msgid "Error sending" +msgstr "" + +#: programs/gnometalk/protocol.c:183 +msgid "Error when reading from talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:205 +msgid "Error trying to listen for caller" +msgstr "" + +#: programs/gnometalk/protocol.c:211 +msgid "Trying to connect to your party's talk daemon" +msgstr "" + +#: programs/gnometalk/protocol.c:232 programs/gnometalk/protocol.c:237 +msgid "Lost connection" +msgstr "" + +#: programs/gnometalk/protocol.c:254 +msgid "Unable to connect with your party" +msgstr "" + +#: programs/gnometalk/protocol.c:260 programs/gnometalk/protocol.c:334 +msgid "Waiting for your party to respond" +msgstr "" + +#: programs/gnometalk/protocol.c:297 +msgid "response uses an invalid network address" +msgstr "" + +#: programs/gnometalk/protocol.c:342 +msgid "CANCEL CALLBACK:Answer:%d\n" +msgstr "" + +#. NOT_HERE +#: programs/gnometalk/protocol.c:413 +msgid "Your party is not logged on" +msgstr "" + +#. FAILED +#: programs/gnometalk/protocol.c:416 +msgid "Target machine is too confused to talk to us" +msgstr "" + +#. MACHINE_UNKNOWN +#: programs/gnometalk/protocol.c:419 +msgid "Target machine does not recognize us" +msgstr "" + +#. PERMISSION_REFUSED +#: programs/gnometalk/protocol.c:422 +msgid "Your party is refusing messages" +msgstr "" + +#. UNKNOWN_REQUEST +#: programs/gnometalk/protocol.c:425 +msgid "Target machine can not handle remote talk" +msgstr "" + +#. BADVERSION +#: programs/gnometalk/protocol.c:428 +msgid "Target machine indicates protocol mismatch" +msgstr "" + +#. BADADDR +#: programs/gnometalk/protocol.c:431 +msgid "Target machine indicates protocol botch (addr)" +msgstr "" + +#. BADCTLADDR +#: programs/gnometalk/protocol.c:434 +msgid "Target machine indicates protocol botch (ctl_addr)" +msgstr "" + +#: programs/gnomine/gnomine.c:41 programs/gnomine/gnomine.c:232 +msgid "Tiny" +msgstr "" + +#: programs/gnomine/gnomine.c:42 programs/gnomine/gnomine.c:240 +msgid "Medium" +msgstr "" + +#: programs/gnomine/gnomine.c:43 programs/gnomine/gnomine.c:248 +msgid "Biiiig" +msgstr "" + +#: programs/gnomine/gnomine.c:80 programs/gnomine/gnomine.c:472 +msgid "Gnome mines" +msgstr "" + +#: programs/gnomine/gnomine.c:215 +msgid "Gnome mines setup" +msgstr "" + +#: programs/gnomine/gnomine.c:224 +msgid "Custom size" +msgstr "" + +#: programs/gnomine/gnomine.c:226 +msgid "Field size" +msgstr "" + +#: programs/gnomine/gnomine.c:256 +msgid "Custom" +msgstr "" + +#: programs/gnomine/gnomine.c:274 +msgid "Horizontal:" +msgstr "" + +#: programs/gnomine/gnomine.c:287 +msgid "Vertical:" +msgstr "" + +#: programs/gnomine/gnomine.c:300 +msgid "Number of mines:" +msgstr "" + +#: programs/gnomine/gnomine.c:339 +msgid "Top ten..." +msgstr "" + +#: programs/gnomine/gnomine.c:345 +msgid "Game" +msgstr "" + +#: programs/gnomine/gnomine.c:559 +msgid "Flags:" +msgstr "" + +#: programs/gnomine/gnomine.c:570 +msgid "Time:" +msgstr "" + +#: programs/panel/panel.c:728 +msgid "Move applet" +msgstr "" + +#: programs/panel/panel.c:735 +msgid "Remove from panel" +msgstr "" + +#: programs/panel/panel.c:748 +msgid "Applet properties..." +msgstr "" + +#: programs/panel/panel.c:807 +msgid "Panel properties..." +msgstr "" + +#: programs/panel/menu/main.c:532 programs/panel/panel.c:818 +msgid "Log out" +msgstr "" + +#: programs/panel/batmon/batmon.c:96 +msgid "Can't open /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:102 +msgid "Something wrong with /proc/apm; can't get data." +msgstr "" + +#: programs/panel/batmon/batmon.c:150 +msgid "There is no battery?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:153 +msgid "High and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:156 +msgid "High." +msgstr "" + +#: programs/panel/batmon/batmon.c:159 +msgid "Low and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:162 +msgid "Low." +msgstr "" + +#: programs/panel/batmon/batmon.c:165 +msgid "Critical and charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:168 +msgid "Critical!!" +msgstr "" + +#: programs/panel/batmon/batmon.c:171 +msgid "Charging." +msgstr "" + +#: programs/panel/batmon/batmon.c:179 +msgid "%d minutes of battery" +msgstr "" + +#: programs/panel/batmon/batmon.c:181 +msgid "More than 100,000,000 minutes of battery life?!?" +msgstr "" + +#: programs/panel/batmon/batmon.c:256 +msgid "APM Stats" +msgstr "" + +#: programs/panel/batmon/batmon.c:272 +msgid "Linux APM Driver Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:284 +msgid "APM BIOS Version:" +msgstr "" + +#: programs/panel/batmon/batmon.c:301 +msgid "Battery Status:" +msgstr "" + +#: programs/panel/launcher/launcher.c:261 +msgid "App" +msgstr "" + +#: programs/panel/launcher/launcher.c:305 +msgid "Launcher properties" +msgstr "" + +#: programs/panel/launcher/launcher.c:316 +msgid "Execute" +msgstr "" + +#: programs/panel/launcher/launcher.c:317 +msgid "Icon" +msgstr "" + +#: programs/panel/launcher/launcher.c:318 +msgid "Documentation" +msgstr "" + +#: programs/panel/launcher/launcher.c:319 +msgid "Description" +msgstr "" + +#: programs/panel/launcher/launcher.c:322 +msgid "Run inside terminal" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:216 +msgid "You have new mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:218 +msgid "You have mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:220 +msgid "No mail." +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:420 +msgid "Notification" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:432 +msgid "Select animation" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:447 +msgid "Mail check properties" +msgstr "" + +#: programs/panel/mailcheck/mailcheck.c:470 +msgid "No bitmap, use only text" +msgstr "" + +#: programs/panel/menu/main.c:467 +msgid "Add to panel" +msgstr "" + +#: programs/panel/menu/main.c:472 +msgid "Add applet" +msgstr "" + +#: programs/panel/menu/main.c:480 +msgid "Configure" +msgstr "" + +#: programs/panel/menu/main.c:520 +msgid "Panel" +msgstr "" + +#: programs/panel/menu/main.c:527 +msgid "Lock screen" +msgstr "" + +#: programs/panel/menu/main.c:789 +msgid "Menu properties" +msgstr "" + +#. the different properties go here +#: programs/panel/menu/main.c:802 +msgid "Enable small icons in menu" +msgstr "" + +#: programs/same-gnome/same-gnome.c:247 +msgid "The Same Gnome" +msgstr "" + +#: programs/same-gnome/same-gnome.c:253 +msgid "High Scores" +msgstr "" + +#: programs/same-gnome/same-gnome.c:285 +msgid "You win!" +msgstr "" + +#: programs/same-gnome/same-gnome.c:288 +msgid "The Game Is Over" +msgstr "" + +#: programs/same-gnome/same-gnome.c:387 +msgid "Could not find the '%s' theme for SameGnome\n" +msgstr "" + +#: programs/same-gnome/same-gnome.c:536 +msgid "Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:542 +msgid "Select scenario:" +msgstr "" + +#: programs/same-gnome/same-gnome.c:548 +msgid "Make it the default scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:575 +msgid "Do you really want to quit?" +msgstr "" + +#: programs/same-gnome/same-gnome.c:587 +msgid "Game/New" +msgstr "" + +#: programs/same-gnome/same-gnome.c:588 +msgid "Game/Scenario" +msgstr "" + +#: programs/same-gnome/same-gnome.c:589 +msgid "Game/Top Ten" +msgstr "" + +#: programs/same-gnome/same-gnome.c:590 +msgid "Game/" +msgstr "" + +#: programs/same-gnome/same-gnome.c:591 +msgid "Game/Quit" +msgstr "" + +#: programs/same-gnome/same-gnome.c:641 +msgid "Score: " +msgstr "" diff -uNr gnome-0.11/programs/Makefile.am gnome-0.12/programs/Makefile.am --- gnome-0.11/programs/Makefile.am Fri Jan 2 15:48:15 1998 +++ gnome-0.12/programs/Makefile.am Tue Jan 20 19:56:56 1998 @@ -14,6 +14,9 @@ gulp \ notepad \ gtt \ + gtop \ + freecell \ + scottfree \ test-suite if HAVE_LIBGMP diff -uNr gnome-0.11/programs/Makefile.in gnome-0.12/programs/Makefile.in --- gnome-0.11/programs/Makefile.in Wed Jan 7 20:31:03 1998 +++ gnome-0.12/programs/Makefile.in Wed Jan 21 21:13:21 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -121,6 +122,9 @@ gulp \ notepad \ gtt \ + gtop \ + freecell \ + scottfree \ test-suite @HAVE_LIBGMP_TRUE@SUBDIRS = $(regular_SUBDIRS) genius @@ -137,13 +141,14 @@ GZIP = --best DIST_SUBDIRS = desktop-properties network-utilities gmix gemvt \ find-file gnometalk cromagnon panel gnomine same-gnome phaser-chess \ -linux-conf gulp notepad gtt test-suite genius desktop-properties \ -network-utilities gmix gemvt find-file gnometalk cromagnon panel \ -gnomine same-gnome phaser-chess linux-conf gulp notepad gtt test-suite +linux-conf gulp notepad gtt gtop freecell scottfree test-suite genius \ +desktop-properties network-utilities gmix gemvt find-file gnometalk \ +cromagnon panel gnomine same-gnome phaser-chess linux-conf gulp notepad \ +gtt gtop freecell scottfree test-suite default: all .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/programs/cromagnon/Makefile.in gnome-0.12/programs/cromagnon/Makefile.in --- gnome-0.11/programs/cromagnon/Makefile.in Wed Jan 7 20:31:41 1998 +++ gnome-0.12/programs/cromagnon/Makefile.in Wed Jan 21 21:14:00 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -129,7 +130,7 @@ default: all .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/cromagnon/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/programs/desktop-properties/Makefile.am gnome-0.12/programs/desktop-properties/Makefile.am --- gnome-0.11/programs/desktop-properties/Makefile.am Mon Dec 8 11:35:54 1997 +++ gnome-0.12/programs/desktop-properties/Makefile.am Wed Jan 14 18:25:06 1998 @@ -43,7 +43,7 @@ $(X_LIBS) $(x_libs) \ @XF86MISC_LIBS@ \ @LEXLIB@ \ - @INTLLIBS@ + $(INTLLIBS) EXTRA_DIST = background.desktop keyboard.desktop mouse.desktop diff -uNr gnome-0.11/programs/desktop-properties/Makefile.in gnome-0.12/programs/desktop-properties/Makefile.in --- gnome-0.11/programs/desktop-properties/Makefile.in Wed Jan 7 20:31:35 1998 +++ gnome-0.12/programs/desktop-properties/Makefile.in Wed Jan 21 21:13:55 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -150,7 +151,7 @@ $(X_LIBS) $(x_libs) \ @XF86MISC_LIBS@ \ @LEXLIB@ \ - @INTLLIBS@ + $(INTLLIBS) EXTRA_DIST = background.desktop keyboard.desktop mouse.desktop @@ -208,7 +209,7 @@ .SUFFIXES: .SUFFIXES: .S .c .cc .ll .lo .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/desktop-properties/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -342,7 +343,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ ../../libgnomeui/gnome-properties.h app-keyboard.o app-keyboard.lo: app-keyboard.c gnome-desktop.h \ ../../gnome.h ../../libgnome/libgnome.h \ @@ -357,7 +359,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ ../../libgnomeui/gnome-properties.h app-mouse.o app-mouse.lo: app-mouse.c gnome-desktop.h ../../gnome.h \ ../../libgnome/libgnome.h ../../libgnome/gnome-defs.h \ @@ -372,7 +375,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ ../../libgnomeui/gnome-properties.h ghash.o ghash.lo: ghash.c ghash.h main.o main.lo: main.c ../../gnome.h ../../libgnome/libgnome.h \ @@ -387,7 +391,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ gnome-desktop.h ../../libgnomeui/gnome-properties.h \ ../../libgnomeui/gnome-session.h property-background.o property-background.lo: property-background.c \ @@ -403,7 +408,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ ../../libgnomeui/gnome-properties.h gdkx.h property-keyboard.o property-keyboard.lo: property-keyboard.c gdkx.h \ ../../config.h ../../gnome.h ../../libgnome/libgnome.h \ @@ -418,7 +424,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ gnome-desktop.h ../../libgnomeui/gnome-properties.h property-mouse.o property-mouse.lo: property-mouse.c gnome-desktop.h \ ../../gnome.h ../../libgnome/libgnome.h \ @@ -433,7 +440,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ ../../libgnomeui/gnome-properties.h gdkx.h property-screensaver.o property-screensaver.lo: property-screensaver.cc \ property-screensaver.h screensaver.h ghash.h ../../gnome.h \ @@ -449,7 +457,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ gnome-desktop.h ../../libgnomeui/gnome-properties.h xlockmore.h xlockmore.o xlockmore.lo: xlockmore.cc xlockmore.h screensaver.h ghash.h \ gnome-desktop.h ../../gnome.h ../../libgnome/libgnome.h \ @@ -464,7 +473,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ ../../libgnomeui/gnome-properties.h xlockparse.o xlockparse.lo: xlockparse.cc xlockmore.h screensaver.h \ ghash.h diff -uNr gnome-0.11/programs/desktop-properties/property-screensaver.cc gnome-0.12/programs/desktop-properties/property-screensaver.cc --- gnome-0.11/programs/desktop-properties/property-screensaver.cc Mon Dec 8 11:36:00 1997 +++ gnome-0.12/programs/desktop-properties/property-screensaver.cc Wed Jan 21 17:45:27 1998 @@ -109,7 +109,7 @@ ConfigScreenSaver::nice_changed (GtkWidget *adj, ConfigScreenSaver *th) { // printf ("nice changed %d\n", (gint)GTK_ADJUSTMENT (adj)->value); - th->nice = (gint)GTK_ADJUSTMENT (adj)->value; + th->niceV = (gint)GTK_ADJUSTMENT (adj)->value; property_changed (); } @@ -362,7 +362,7 @@ if(dpmsV) { cmdLine = g_malloc(40); system("xset +dpms"); - snprintf(39, cmdLine, "xset dpms 0 0 %s", waitV); + g_snprintf(39, cmdLine, "xset dpms 0 0 %s", waitV); system(cmdLine); g_free(cmdLine); } else { @@ -474,10 +474,10 @@ return 1; } -extern "C" { - void - screensaver_register (GnomePropertyConfigurator *c) - { - css = new ConfigScreenSaver (c); - } +extern "C" void screensaver_register (GnomePropertyConfigurator *c); + +void +screensaver_register (GnomePropertyConfigurator *c) +{ + css = new ConfigScreenSaver (c); } diff -uNr gnome-0.11/programs/desktop-properties/screensaver.h gnome-0.12/programs/desktop-properties/screensaver.h --- gnome-0.11/programs/desktop-properties/screensaver.h Sat Dec 6 09:03:41 1997 +++ gnome-0.12/programs/desktop-properties/screensaver.h Wed Jan 21 17:45:28 1998 @@ -1,6 +1,7 @@ #ifndef __SCREENSAVER_H__ #define __SCREENSAVER_H__ +#include #include "ghash.h" #include diff -uNr gnome-0.11/programs/find-file/Makefile.in gnome-0.12/programs/find-file/Makefile.in --- gnome-0.11/programs/find-file/Makefile.in Wed Jan 7 20:31:39 1998 +++ gnome-0.12/programs/find-file/Makefile.in Wed Jan 21 21:13:59 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -127,7 +128,7 @@ default: all .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/find-file/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status diff -uNr gnome-0.11/programs/freecell/ABOUT-NLS gnome-0.12/programs/freecell/ABOUT-NLS --- gnome-0.11/programs/freecell/ABOUT-NLS Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/ABOUT-NLS Mon Jan 19 10:45:47 1998 @@ -0,0 +1,225 @@ +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. + +One advise in advance +===================== + + 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 or message inheritance) 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 provides +usable `catgets' (if using this is selected by the installer) or +`gettext' functions. If neither is available, 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 --with-catgets + ./configure --disable-nls + +will respectively bypass any pre-existing `catgets' or `gettext' to use +the internationalizing routines provided within this package, enable +the use of the `catgets' functions (if found on the locale system), 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. + + By default the configuration process will not test for the `catgets' +function and therefore they will not be used. The reasons are already +given above: the emulation on top of `catgets' cannot provide all the +extensions provided by the GNU `gettext' library. If you nevertheless +want to use the `catgets' functions use + + ./configure --with-catgets + +to enable the test for `catgets' (this causes no harm if `catgets' is +not available on your system). If you really select this option we +would like to hear about the reasons because we cannot think of any +good one ourself. + + 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 +ISO 639 `LL' two-letter code prior to using the programs in the +package. For example, let's suppose that you speak German. At the +shell prompt, merely execute `setenv LANG de' (in `csh'), +`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This +can be done from your `.login' or `.profile' file, once and for all. + + An operating system might already offer message localization for +many of its programs, while other programs have been installed locally +with the full capabilities of GNU `gettext'. Just using `gettext' +extended syntax for `LANG' would break proper localization of already +available operating system programs. In this case, users should set +both `LANGUAGE' and `LANG' variables in their environment, as programs +using GNU `gettext' give preference to `LANGUAGE'. For example, some +Swedish users would rather read translations in German than English for +when Swedish is not available. This is easily accomplished by setting +`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'. + +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, courtesy of Linux +International. You may reach your translation team at the address +`LL@li.org', replacing LL by the two-letter ISO 639 code for your +language. Language codes are *not* the same as the country codes given +in ISO 3166. The following translation teams exist, as of August 1997: + + Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en', + Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian + `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja', + Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish + `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es', + Swedish `sv', and Turkish `tr'. + +For example, you may reach the Chinese translation team by writing to +`zh@li.org'. + + 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 August +1997. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination. + + Ready PO files cs da de en es fi fr it ja ko nl no pl pt sl sv + .-------------------------------------------------. + bash | [] [] [] | 3 + bison | [] [] [] | 3 + clisp | [] [] [] [] | 4 + cpio | [] [] [] [] [] | 5 + diffutils | [] [] [] [] [] | 5 + enscript | [] [] [] [] [] [] | 6 + fileutils | [] [] [] [] [] [] [] [] [] [] | 10 + findutils | [] [] [] [] [] [] [] [] | 8 + flex | [] [] [] [] | 4 + gcal | [] [] [] [] [] | 5 + gettext | [] [] [] [] [] [] [] [] [] [] | 11 + grep | [] [] [] [] [] [] [] [] [] | 9 + hello | [] [] [] [] [] [] [] [] [] [] | 10 + id-utils | [] [] [] | 3 + indent | [] [] [] [] | 4 + libc | [] [] [] [] [] [] [] | 7 + m4 | [] [] [] [] [] | 5 + make | [] [] [] [] [] [] | 6 + music | [] [] | 2 + ptx | [] [] [] [] [] [] [] [] | 8 + recode | [] [] [] [] [] [] [] [] [] | 9 + sh-utils | [] [] [] [] [] [] [] | 7 + sharutils | [] [] [] [] [] | 5 + tar | [] [] [] [] [] [] [] [] [] [] | 10 + texinfo | [] | 1 + textutils | [] [] [] [] [] [] [] [] [] | 9 + wdiff | [] [] [] [] [] [] [] [] | 8 + `-------------------------------------------------' + 16 languages cs da de en es fi fr it ja ko nl no pl pt sl sv + 27 packages 3 2 24 1 17 1 26 2 1 11 20 9 19 7 7 17 167 + + 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 August 1997 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. + diff -uNr gnome-0.11/programs/freecell/AUTHORS gnome-0.12/programs/freecell/AUTHORS --- gnome-0.11/programs/freecell/AUTHORS Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/AUTHORS Mon Jan 19 10:45:47 1998 @@ -0,0 +1 @@ +* Ryu Changwoo \ No newline at end of file diff -uNr gnome-0.11/programs/freecell/COPYING gnome-0.12/programs/freecell/COPYING --- gnome-0.11/programs/freecell/COPYING Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/COPYING Mon Jan 19 10:45:49 1998 @@ -0,0 +1,340 @@ + 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) 19yy + + 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) 19yy 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. diff -uNr gnome-0.11/programs/freecell/ChangeLog gnome-0.12/programs/freecell/ChangeLog --- gnome-0.11/programs/freecell/ChangeLog Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/ChangeLog Mon Jan 19 10:45:49 1998 @@ -0,0 +1,4 @@ +Sat Jan 17 11:48:11 1998 Tom Tromey + + * configure.scan: Removed. + diff -uNr gnome-0.11/programs/freecell/INSTALL gnome-0.12/programs/freecell/INSTALL --- gnome-0.11/programs/freecell/INSTALL Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/INSTALL Mon Jan 19 10:45:51 1998 @@ -0,0 +1,183 @@ +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. + diff -uNr gnome-0.11/programs/freecell/Makefile.am gnome-0.12/programs/freecell/Makefile.am --- gnome-0.11/programs/freecell/Makefile.am Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/Makefile.am Mon Jan 19 10:45:51 1998 @@ -0,0 +1,2 @@ +SUBDIRS = image intl po src + diff -uNr gnome-0.11/programs/freecell/Makefile.in gnome-0.12/programs/freecell/Makefile.in --- gnome-0.11/programs/freecell/Makefile.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/Makefile.in Wed Jan 21 21:14:18 1998 @@ -0,0 +1,333 @@ +# Makefile.in generated automatically by automake 1.2d from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997 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 = /bin/sh + +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 + +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@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOME_LIBS = @GNOME_LIBS@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +X_LIBS = @X_LIBS@ +l = @l@ +x_libs = @x_libs@ + +SUBDIRS = image intl po src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL \ +Makefile.am Makefile.in NEWS TODO acconfig.h acinclude.m4 aclocal.m4 \ +config.h.in configure configure.in install-sh missing mkinstalldirs \ +stamp-h.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +default: all + +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(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.in acinclude.m4 + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +config.h: stamp-h + @: +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 +$(srcdir)/config.h.in: $(srcdir)/stamp-h.in +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f config.h + +maintainer-clean-hdr: + +# 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; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + target=`echo $@ | sed s/-recursive//`; \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + done; \ + for subdir in $$rev; do \ + target=`echo $@ | sed s/-recursive//`; \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$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 \ + (cd $$subdir && $(MAKE) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + done; \ + test -z "$(ETAGS_ARGS)config.h.in$(SOURCES)$(HEADERS)$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $(SOURCES) $(HEADERS) $(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) $(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) \ + && $(MAKE) dvi \ + && $(MAKE) check \ + && $(MAKE) install \ + && $(MAKE) installcheck \ + && $(MAKE) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(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); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + for subdir in $(SUBDIRS); do \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + done +info: info-recursive +dvi: dvi-recursive +check: all-am + $(MAKE) check-recursive +installcheck: installcheck-recursive +all-recursive-am: config.h + $(MAKE) all-recursive + +all-am: Makefile config.h + +install-exec: install-exec-recursive + @$(NORMAL_INSTALL) + +install-data: install-data-recursive + @$(NORMAL_INSTALL) + +install: install-recursive + @: + +uninstall: uninstall-recursive + +all: all-recursive-am all-am + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: installdirs-recursive + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic + +clean-am: clean-hdr clean-tags clean-generic mostlyclean-am + +distclean-am: distclean-hdr distclean-tags distclean-generic clean-am + +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ + maintainer-clean-generic distclean-am + +mostlyclean: mostlyclean-recursive mostlyclean-am + +clean: clean-recursive clean-am + +distclean: distclean-recursive distclean-am + -rm -f config.status + +maintainer-clean: maintainer-clean-recursive maintainer-clean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: default mostlyclean-hdr distclean-hdr clean-hdr \ +maintainer-clean-hdr 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 dvi \ +installcheck all-recursive-am all-am install-exec install-data install \ +uninstall 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: diff -uNr gnome-0.11/programs/freecell/NEWS gnome-0.12/programs/freecell/NEWS --- gnome-0.11/programs/freecell/NEWS Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/NEWS Mon Jan 19 10:45:53 1998 @@ -0,0 +1,36 @@ +Changes in release 0.7: +* It is now GNOME only. + +Changes in release 0.6: +* fixed score/option in the case of no GNOME. + +Changes in release 0.5: +* count score, score dialog. + - If GNOME installed, it uses gnome_config_set_* and + gnome_config_get_*. Or it uses simply fprintf & fscanf. + - It ask a question if player is about to lose (new, quit). + * error message when invalid move +* option dialog. +* It checks the end of game. +* It stops game when there is no card to move. +* it have accelerator, for new game (C-N) and quit game (C-q). But +user cannot know about this... I will change GTK's menu factory +interface soon (for using with gettext). + +Changes in release 0.4: +* A right button bug in 0.3 fixed. +* from now, xpat2's beautiful images are used than spider's. + +Changes in release 0.3: +* it change cursor at possible move. +* about dialog box added. +* now, selected card is identified from others. +* card round clipping is corrected. +* bug about selecting empty freecell or field fixed. + +Changes in release 0.2: +* error.h added. +* A bug fixed about right button. + +Release 0.1: +* initial release. diff -uNr gnome-0.11/programs/freecell/README gnome-0.12/programs/freecell/README --- gnome-0.11/programs/freecell/README Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/README Mon Jan 19 10:45:53 1998 @@ -0,0 +1,5 @@ +This is Freecell game for GNOME, which means `GNU Network Object +Modeling Environment'. + + +This is a Free Software. diff -uNr gnome-0.11/programs/freecell/TODO gnome-0.12/programs/freecell/TODO --- gnome-0.11/programs/freecell/TODO Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/TODO Mon Jan 19 10:45:53 1998 @@ -0,0 +1,2 @@ +* animation? +* hint? diff -uNr gnome-0.11/programs/freecell/acconfig.h gnome-0.12/programs/freecell/acconfig.h --- gnome-0.11/programs/freecell/acconfig.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/acconfig.h Mon Jan 19 10:45:53 1998 @@ -0,0 +1,10 @@ +#undef ENABLE_NLS +#undef HAVE_CATGETS +#undef HAVE_GETTEXT +#undef HAVE_LC_MESSAGES +#undef HAVE_STPCPY +#undef PACKAGE +#undef VERSION +#undef HAVE_GNOME +#undef HAVE_GTK_REFCOUNTING +#undef HAVE_LIBINTL_H diff -uNr gnome-0.11/programs/freecell/acinclude.m4 gnome-0.12/programs/freecell/acinclude.m4 --- gnome-0.11/programs/freecell/acinclude.m4 Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/acinclude.m4 Mon Jan 19 10:45:57 1998 @@ -0,0 +1,374 @@ +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 3 + +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) + + USE_INCLUDED_LIBINTL=no + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + AC_DEFINE(ENABLE_NLS) + 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 gettext or catgets are available (in this order) we + dnl use this. Else we have to fall back to GNU NLS library. + dnl catgets is only used if permitted by option --with-catgets. + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + AC_CHECK_HEADER(libintl.h, + [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, + [AC_TRY_LINK([#include ], [return (int) gettext ("")], + gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) + + if test "$gt_cv_func_gettext_libc" != "yes"; then + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CACHE_CHECK([for gettext in libintl], + gt_cv_func_gettext_libintl, + [AC_TRY_LINK([], [return (int) gettext ("")], + gt_cv_func_gettext_libintl=yes, + gt_cv_func_gettext_libintl=no)])]) + fi + + if test "$gt_cv_func_gettext_libc" = "yes" \ + || test "$gt_cv_func_gettext_libintl" = "yes"; then + AC_DEFINE(HAVE_GETTEXT) + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + INSTOBJEXT=.mo + fi + fi + ]) + + if test "$CATOBJEXT" = "NONE"; then + AC_MSG_CHECKING([whether catgets can be used]) + AC_ARG_WITH(catgets, + [ --with-catgets use catgets functions if available], + nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) + AC_MSG_RESULT($nls_cv_use_catgets) + + if test "$nls_cv_use_catgets" = "yes"; then + dnl No gettext in C library. Try catgets next. + AC_CHECK_LIB(i, main) + AC_CHECK_FUNC(catgets, + [AC_DEFINE(HAVE_CATGETS) + INTLOBJS="\$(CATOBJS)" + AC_PATH_PROG(GENCAT, gencat, no)dnl + if test "$GENCAT" != "no"; then + AC_PATH_PROG(GMSGFMT, gmsgfmt, no) + if test "$GMSGFMT" = "no"; then + AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) + fi + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.cat + INSTOBJEXT=.cat + DATADIRNAME=lib + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi]) + fi + fi + + if test "$CATOBJEXT" = "NONE"; then + dnl Neither gettext nor catgets in included 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, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_SUBST(MSGFMT) + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.gmo + INSTOBJEXT=.mo + DATADIRNAME=share + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + 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 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + # If this is used in GNU gettext we have to set USE_NLS to `yes' + # because some of the sources are only built for this goal. + if test "$PACKAGE" = gettext; then + USE_NLS=yes + USE_INCLUDED_LIBINTL=yes + 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(USE_INCLUDED_LIBINTL) + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLDEPS) + AC_SUBST(INTLLIBS) + AC_SUBST(INTLOBJS) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +AC_DEFUN(AM_GNU_GETTEXT, + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_CC])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_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h values.h sys/param.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next]) + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + AC_CHECK_FUNCS(stpcpy) + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + AC_DEFINE(HAVE_STPCPY) + fi + + AM_LC_MESSAGES + AM_WITH_NLS + + 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 lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + 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 The reference to in the installed file + dnl must be resolved because we cannot expect the users of this + dnl to define HAVE_LOCALE_H. + if test $ac_cv_header_locale_h = yes; then + INCLUDE_LOCALE_H="#include " + else + INCLUDE_LOCALE_H="\ +/* The system does not provide the header . Take care yourself. */" + fi + AC_SUBST(INCLUDE_LOCALE_H) + + dnl Determine which catalog format we have (if any is needed) + dnl For now we know about two different formats: + dnl Linux libc-5 and the normal X/Open format + test -d intl || mkdir intl + if test "$CATOBJEXT" = ".cat"; then + AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) + + dnl Transform the SED scripts while copying because some dumb SEDs + dnl cannot handle comments. + sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed + fi + dnl po2tbl.sed is always needed. + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed + + dnl In the intl/Makefile.in we have a special dependency which makes + dnl only sense for gettext. We comment this out for non-gettext + dnl packages. + if test "$PACKAGE" = "gettext"; then + GT_NO="#NO#" + GT_YES= + else + GT_NO= + GT_YES="#YES#" + fi + AC_SUBST(GT_NO) + AC_SUBST(GT_YES) + + 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 *** For now the libtool support in intl/Makefile is not for real. + l= + AC_SUBST(l) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) +# Check whether LC_MESSAGES is available in . +# Ulrich Drepper , 1995. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +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) + fi + fi]) +# Search path for a program which passes the given test. +# Ulrich Drepper , 1996. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +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 -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) diff -uNr gnome-0.11/programs/freecell/aclocal.m4 gnome-0.12/programs/freecell/aclocal.m4 --- gnome-0.11/programs/freecell/aclocal.m4 Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/aclocal.m4 Wed Jan 21 18:31:08 1998 @@ -0,0 +1,511 @@ +dnl aclocal.m4 generated automatically by aclocal 1.2d + +dnl Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. +dnl This Makefile.in 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. + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 3 + +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) + + USE_INCLUDED_LIBINTL=no + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + AC_DEFINE(ENABLE_NLS) + 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 gettext or catgets are available (in this order) we + dnl use this. Else we have to fall back to GNU NLS library. + dnl catgets is only used if permitted by option --with-catgets. + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + AC_CHECK_HEADER(libintl.h, + [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, + [AC_TRY_LINK([#include ], [return (int) gettext ("")], + gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) + + if test "$gt_cv_func_gettext_libc" != "yes"; then + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CACHE_CHECK([for gettext in libintl], + gt_cv_func_gettext_libintl, + [AC_TRY_LINK([], [return (int) gettext ("")], + gt_cv_func_gettext_libintl=yes, + gt_cv_func_gettext_libintl=no)])]) + fi + + if test "$gt_cv_func_gettext_libc" = "yes" \ + || test "$gt_cv_func_gettext_libintl" = "yes"; then + AC_DEFINE(HAVE_GETTEXT) + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + INSTOBJEXT=.mo + fi + fi + ]) + + if test "$CATOBJEXT" = "NONE"; then + AC_MSG_CHECKING([whether catgets can be used]) + AC_ARG_WITH(catgets, + [ --with-catgets use catgets functions if available], + nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) + AC_MSG_RESULT($nls_cv_use_catgets) + + if test "$nls_cv_use_catgets" = "yes"; then + dnl No gettext in C library. Try catgets next. + AC_CHECK_LIB(i, main) + AC_CHECK_FUNC(catgets, + [AC_DEFINE(HAVE_CATGETS) + INTLOBJS="\$(CATOBJS)" + AC_PATH_PROG(GENCAT, gencat, no)dnl + if test "$GENCAT" != "no"; then + AC_PATH_PROG(GMSGFMT, gmsgfmt, no) + if test "$GMSGFMT" = "no"; then + AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) + fi + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.cat + INSTOBJEXT=.cat + DATADIRNAME=lib + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi]) + fi + fi + + if test "$CATOBJEXT" = "NONE"; then + dnl Neither gettext nor catgets in included 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, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_SUBST(MSGFMT) + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.gmo + INSTOBJEXT=.mo + DATADIRNAME=share + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + 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 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + # If this is used in GNU gettext we have to set USE_NLS to `yes' + # because some of the sources are only built for this goal. + if test "$PACKAGE" = gettext; then + USE_NLS=yes + USE_INCLUDED_LIBINTL=yes + 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(USE_INCLUDED_LIBINTL) + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLDEPS) + AC_SUBST(INTLLIBS) + AC_SUBST(INTLOBJS) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +AC_DEFUN(AM_GNU_GETTEXT, + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_CC])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_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h values.h sys/param.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next]) + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + AC_CHECK_FUNCS(stpcpy) + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + AC_DEFINE(HAVE_STPCPY) + fi + + AM_LC_MESSAGES + AM_WITH_NLS + + 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 lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + 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 The reference to in the installed file + dnl must be resolved because we cannot expect the users of this + dnl to define HAVE_LOCALE_H. + if test $ac_cv_header_locale_h = yes; then + INCLUDE_LOCALE_H="#include " + else + INCLUDE_LOCALE_H="\ +/* The system does not provide the header . Take care yourself. */" + fi + AC_SUBST(INCLUDE_LOCALE_H) + + dnl Determine which catalog format we have (if any is needed) + dnl For now we know about two different formats: + dnl Linux libc-5 and the normal X/Open format + test -d intl || mkdir intl + if test "$CATOBJEXT" = ".cat"; then + AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) + + dnl Transform the SED scripts while copying because some dumb SEDs + dnl cannot handle comments. + sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed + fi + dnl po2tbl.sed is always needed. + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed + + dnl In the intl/Makefile.in we have a special dependency which makes + dnl only sense for gettext. We comment this out for non-gettext + dnl packages. + if test "$PACKAGE" = "gettext"; then + GT_NO="#NO#" + GT_YES= + else + GT_NO= + GT_YES="#YES#" + fi + AC_SUBST(GT_NO) + AC_SUBST(GT_YES) + + 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 *** For now the libtool support in intl/Makefile is not for real. + l= + AC_SUBST(l) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) +# Check whether LC_MESSAGES is available in . +# Ulrich Drepper , 1995. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +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) + fi + fi]) +# Search path for a program which passes the given test. +# Ulrich Drepper , 1996. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +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 -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# 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([,]))]) + +# 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([AM_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") +AC_DEFINE_UNQUOTED(VERSION, "$VERSION")) +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])]) + + +# serial 1 + +AC_DEFUN(AM_PROG_INSTALL, +[AC_REQUIRE([AC_PROG_INSTALL]) +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' +AC_SUBST(INSTALL_SCRIPT)dnl +]) + +# +# 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)]) + diff -uNr gnome-0.11/programs/freecell/config.h.in gnome-0.12/programs/freecell/config.h.in --- gnome-0.11/programs/freecell/config.h.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/config.h.in Tue Jan 20 13:12:29 1998 @@ -0,0 +1,145 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define if using alloca.c. */ +#undef C_ALLOCA + +/* Define to empty if the keyword does not work. */ +#undef const + +/* 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 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 don't have vprintf but do have _doprnt. */ +#undef HAVE_DOPRNT + +/* Define if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* Define if you have the vprintf function. */ +#undef HAVE_VPRINTF + +/* Define as __inline if that's what the C compiler calls it. */ +#undef inline + +/* Define to `long' if doesn't define. */ +#undef off_t + +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE + +/* Define to `unsigned' if doesn't define. */ +#undef size_t + +/* 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 + +/* Define if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + +#undef ENABLE_NLS +#undef HAVE_CATGETS +#undef HAVE_GETTEXT +#undef HAVE_LC_MESSAGES +#undef HAVE_STPCPY +#undef PACKAGE +#undef VERSION +#undef HAVE_GNOME +#undef HAVE_GTK_REFCOUNTING +#undef HAVE_LIBINTL_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 if you have the dcgettext function. */ +#undef HAVE_DCGETTEXT + +/* Define if you have the getcwd function. */ +#undef HAVE_GETCWD + +/* Define if you have the getpagesize function. */ +#undef HAVE_GETPAGESIZE + +/* Define if you have the getwd function. */ +#undef HAVE_GETWD + +/* Define if you have the munmap function. */ +#undef HAVE_MUNMAP + +/* 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 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 strerror function. */ +#undef HAVE_STRERROR + +/* Define if you have the header file. */ +#undef HAVE_ARGZ_H + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H + +/* 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_NL_TYPES_H + +/* Define if you have the header file. */ +#undef HAVE_STRING_H + +/* Define if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the header file. */ +#undef HAVE_VALUES_H + +/* Define if you have the i library (-li). */ +#undef HAVE_LIBI diff -uNr gnome-0.11/programs/freecell/configure gnome-0.12/programs/freecell/configure --- gnome-0.11/programs/freecell/configure Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/configure Wed Jan 21 18:31:10 1998 @@ -0,0 +1,5458 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.12 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --disable-nls do not use Native Language Support" +ac_help="$ac_help + --with-included-gettext use the GNU gettext library included here" +ac_help="$ac_help + --with-catgets use catgets functions if available" +ac_help="$ac_help + --with-x use the X Window System" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +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' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +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 + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # 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 ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$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" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) 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) + # 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 << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$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 ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.12" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + 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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# 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 + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=src/freecell.c + +# 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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# 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 "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + + + + +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 + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$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 +# 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 $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:564: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + for ac_prog in ginstall installbsd scoinst install; do + if test -f $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. + # OSF/1 installbsd also uses dspmsg, but is usable. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +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 "$ac_t""$INSTALL" 1>&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_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:617: checking whether build environment is sane" >&5 +# 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 "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +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 "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:674: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 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 conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + +PACKAGE=freecell + +VERSION=0.7 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <> confdefs.h <&6 +echo "configure:720: checking for working aclocal" >&5 +# 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 "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:733: checking for working autoconf" >&5 +# 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 "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:746: checking for working automake" >&5 +# 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 "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:759: checking for working autoheader" >&5 +# 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 "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:772: checking for working makeinfo" >&5 +# 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 "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +ALL_LINGUAS="ko" + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:791: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + 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 + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:820: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + ac_prog_rejected=no + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +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 $# -gt 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" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:868: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:902: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:907: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:931: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + +# 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 +# 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 $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:969: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + for ac_prog in ginstall installbsd scoinst install; do + if test -f $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. + # OSF/1 installbsd also uses dspmsg, but is usable. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +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 "$ac_t""$INSTALL" 1>&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_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +echo "configure:1019: checking whether ln -s works" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + rm -f conftestdata +if ln -s X conftestdata 2>/dev/null +then + rm -f conftestdata + ac_cv_prog_LN_S="ln -s" +else + ac_cv_prog_LN_S=ln +fi +fi +LN_S="$ac_cv_prog_LN_S" +if test "$ac_cv_prog_LN_S" = "ln -s"; then + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:1040: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 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 conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1069: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + 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 + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:1097: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1118: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 +echo "configure:1158: checking for POSIXized ISC" >&5 +if test -d /etc/conf/kconfig.d && + grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 +then + echo "$ac_t""yes" 1>&6 + ISC=yes # If later tests want to check for ISC. + cat >> confdefs.h <<\EOF +#define _POSIX_SOURCE 1 +EOF + + if test "$GCC" = yes; then + CC="$CC -posix" + else + CC="$CC -Xp" + fi +else + echo "$ac_t""no" 1>&6 + ISC= +fi + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1179: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#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); } + +EOF +if { (eval echo configure:1259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +echo $ac_n "checking for working const""... $ac_c" 1>&6 +echo "configure:1283: checking for working const" >&5 +if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <j = 5; +} +{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +} + +; return 0; } +EOF +if { (eval echo configure:1337: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_c_const=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_c_const" 1>&6 +if test $ac_cv_c_const = no; then + cat >> confdefs.h <<\EOF +#define const +EOF + +fi + +echo $ac_n "checking for inline""... $ac_c" 1>&6 +echo "configure:1358: checking for inline" >&5 +if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_inline=$ac_kw; break +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +done + +fi + +echo "$ac_t""$ac_cv_c_inline" 1>&6 +case "$ac_cv_c_inline" in + inline | yes) ;; + no) cat >> confdefs.h <<\EOF +#define inline +EOF + ;; + *) cat >> confdefs.h <&6 +echo "configure:1398: checking for off_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_off_t=yes +else + rm -rf conftest* + ac_cv_type_off_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_off_t" 1>&6 +if test $ac_cv_type_off_t = no; then + cat >> confdefs.h <<\EOF +#define off_t long +EOF + +fi + +echo $ac_n "checking for size_t""... $ac_c" 1>&6 +echo "configure:1431: checking for size_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_size_t=yes +else + rm -rf conftest* + ac_cv_type_size_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_size_t" 1>&6 +if test $ac_cv_type_size_t = no; then + cat >> confdefs.h <<\EOF +#define size_t unsigned +EOF + +fi + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 +echo "configure:1466: checking for working alloca.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +char *p = alloca(2 * sizeof(int)); +; return 0; } +EOF +if { (eval echo configure:1478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_cv_header_alloca_h=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_alloca_h=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_alloca_h" 1>&6 +if test $ac_cv_header_alloca_h = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_ALLOCA_H 1 +EOF + +fi + +echo $ac_n "checking for alloca""... $ac_c" 1>&6 +echo "configure:1499: checking for alloca" >&5 +if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +#endif + +int main() { +char *p = (char *) alloca(1); +; return 0; } +EOF +if { (eval echo configure:1527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_cv_func_alloca_works=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_func_alloca_works=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_func_alloca_works" 1>&6 +if test $ac_cv_func_alloca_works = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_ALLOCA 1 +EOF + +fi + +if test $ac_cv_func_alloca_works = no; then + # 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.o + cat >> confdefs.h <<\EOF +#define C_ALLOCA 1 +EOF + + +echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 +echo "configure:1559: checking whether alloca needs Cray hooks" >&5 +if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5 | + egrep "webecray" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_os_cray=yes +else + rm -rf conftest* + ac_cv_os_cray=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_os_cray" 1>&6 +if test $ac_cv_os_cray = yes; then +for ac_func in _getb67 GETB67 getb67; do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1589: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <&6 +fi + +done +fi + +echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 +echo "configure:1644: checking stack direction for C alloca" >&5 +if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + ac_cv_c_stack_direction=0 +else + cat > conftest.$ac_ext < addr) ? 1 : -1; +} +main () +{ + exit (find_stack_direction() < 0); +} +EOF +if { (eval echo configure:1671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + ac_cv_c_stack_direction=1 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_c_stack_direction=-1 +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_c_stack_direction" 1>&6 +cat >> confdefs.h <&6 +echo "configure:1696: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1706: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in getpagesize +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1735: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +echo "configure:1788: checking for working mmap" >&5 +if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_mmap_fixed_mapped=no +else + cat > conftest.$ac_ext < +#include +#include + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include +# endif + +/* Assume that all systems that can run configure have sys/param.h. */ +# ifndef HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# ifdef 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 */ + +#ifdef __cplusplus +extern "C" { void *malloc(unsigned); } +#else +char *malloc(); +#endif + +int +main() +{ + char *data, *data2, *data3; + int i, pagesize; + int fd; + + pagesize = getpagesize(); + + /* + * First, make a file with some known garbage in it. + */ + data = malloc(pagesize); + if (!data) + exit(1); + for (i = 0; i < pagesize; ++i) + *(data + i) = rand(); + umask(0); + fd = creat("conftestmmap", 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("conftestmmap", O_RDWR); + if (fd < 0) + exit(1); + data2 = 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 = 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); + unlink("conftestmmap"); + exit(0); +} + +EOF +if { (eval echo configure:1936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + ac_cv_func_mmap_fixed_mapped=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_func_mmap_fixed_mapped=no +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6 +if test $ac_cv_func_mmap_fixed_mapped = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_MMAP 1 +EOF + +fi + + + for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h values.h sys/param.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1964: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1974: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2004: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + for ac_func in stpcpy +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2061: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + cat >> confdefs.h <<\EOF +#define HAVE_STPCPY 1 +EOF + + fi + + if test $ac_cv_header_locale_h = yes; then + echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 +echo "configure:2123: checking for LC_MESSAGES" >&5 +if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +return LC_MESSAGES +; return 0; } +EOF +if { (eval echo configure:2135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + am_cv_val_LC_MESSAGES=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + am_cv_val_LC_MESSAGES=no +fi +rm -f conftest* +fi + +echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6 + if test $am_cv_val_LC_MESSAGES = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_LC_MESSAGES 1 +EOF + + fi + fi + echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 +echo "configure:2156: checking whether NLS is requested" >&5 + # 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 "$ac_t""$USE_NLS" 1>&6 + + + USE_INCLUDED_LIBINTL=no + + if test "$USE_NLS" = "yes"; then + cat >> confdefs.h <<\EOF +#define ENABLE_NLS 1 +EOF + + echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 +echo "configure:2176: checking whether included gettext is requested" >&5 + # 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 "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6 + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 +echo "configure:2195: checking for libintl.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 +echo "configure:2222: checking for gettext in libc" >&5 +if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +return (int) gettext ("") +; return 0; } +EOF +if { (eval echo configure:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + gt_cv_func_gettext_libc=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + gt_cv_func_gettext_libc=no +fi +rm -f conftest* +fi + +echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6 + + if test "$gt_cv_func_gettext_libc" != "yes"; then + echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 +echo "configure:2250: checking for bindtextdomain in -lintl" >&5 +ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lintl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 +echo "configure:2285: checking for gettext in libintl" >&5 +if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + gt_cv_func_gettext_libintl=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + gt_cv_func_gettext_libintl=no +fi +rm -f conftest* +fi + +echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + fi + + if test "$gt_cv_func_gettext_libc" = "yes" \ + || test "$gt_cv_func_gettext_libintl" = "yes"; then + cat >> confdefs.h <<\EOF +#define HAVE_GETTEXT 1 +EOF + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2325: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; 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="no" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test -n "$MSGFMT"; then + echo "$ac_t""$MSGFMT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + if test "$MSGFMT" != "no"; then + for ac_func in dcgettext +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2359: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2414: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$GMSGFMT" in + /*) + ac_cv_path_GMSGFMT="$GMSGFMT" # 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 + ac_cv_path_GMSGFMT="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT="$ac_cv_path_GMSGFMT" +if test -n "$GMSGFMT"; then + echo "$ac_t""$GMSGFMT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2446: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; 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 -n "$XGETTEXT"; then + echo "$ac_t""$XGETTEXT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + CATOBJEXT=.gmo + DATADIRNAME=share +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CATOBJEXT=.mo + DATADIRNAME=lib +fi +rm -f conftest* + INSTOBJEXT=.mo + fi + fi + +else + echo "$ac_t""no" 1>&6 +fi + + + if test "$CATOBJEXT" = "NONE"; then + echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 +echo "configure:2509: checking whether catgets can be used" >&5 + # Check whether --with-catgets or --without-catgets was given. +if test "${with_catgets+set}" = set; then + withval="$with_catgets" + nls_cv_use_catgets=$withval +else + nls_cv_use_catgets=no +fi + + echo "$ac_t""$nls_cv_use_catgets" 1>&6 + + if test "$nls_cv_use_catgets" = "yes"; then + echo $ac_n "checking for main in -li""... $ac_c" 1>&6 +echo "configure:2522: checking for main in -li" >&5 +ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-li $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo i | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for catgets""... $ac_c" 1>&6 +echo "configure:2565: checking for catgets" >&5 +if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char catgets(); + +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_catgets) || defined (__stub___catgets) +choke me +#else +catgets(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_catgets=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_catgets=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'catgets`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_CATGETS 1 +EOF + + INTLOBJS="\$(CATOBJS)" + # Extract the first word of "gencat", so it can be a program name with args. +set dummy gencat; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2615: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$GENCAT" in + /*) + ac_cv_path_GENCAT="$GENCAT" # 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 + ac_cv_path_GENCAT="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_GENCAT" && ac_cv_path_GENCAT="no" + ;; +esac +fi +GENCAT="$ac_cv_path_GENCAT" +if test -n "$GENCAT"; then + echo "$ac_t""$GENCAT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + if test "$GENCAT" != "no"; then + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2647: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$GMSGFMT" in + /*) + ac_cv_path_GMSGFMT="$GMSGFMT" # 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 + ac_cv_path_GMSGFMT="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no" + ;; +esac +fi +GMSGFMT="$ac_cv_path_GMSGFMT" +if test -n "$GMSGFMT"; then + echo "$ac_t""$GMSGFMT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test "$GMSGFMT" = "no"; then + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2680: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$GMSGFMT" in + /*) + ac_cv_path_GMSGFMT="$GMSGFMT" # 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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_GMSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no" + ;; +esac +fi +GMSGFMT="$ac_cv_path_GMSGFMT" +if test -n "$GMSGFMT"; then + echo "$ac_t""$GMSGFMT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + fi + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2715: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; 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 -n "$XGETTEXT"; then + echo "$ac_t""$XGETTEXT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.cat + INSTOBJEXT=.cat + DATADIRNAME=lib + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi +else + echo "$ac_t""no" 1>&6 +fi + + 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2773: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; 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="msgfmt" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test -n "$MSGFMT"; then + echo "$ac_t""$MSGFMT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2807: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$GMSGFMT" in + /*) + ac_cv_path_GMSGFMT="$GMSGFMT" # 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 + ac_cv_path_GMSGFMT="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT="$ac_cv_path_GMSGFMT" +if test -n "$GMSGFMT"; then + echo "$ac_t""$GMSGFMT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2839: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; 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 -n "$XGETTEXT"; then + echo "$ac_t""$XGETTEXT" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.gmo + INSTOBJEXT=.mo + DATADIRNAME=share + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + echo "$ac_t""found xgettext programs is not GNU xgettext; ignore it" 1>&6 + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + # If this is used in GNU gettext we have to set USE_NLS to `yes' + # because some of the sources are only built for this goal. + if test "$PACKAGE" = gettext; then + USE_NLS=yes + USE_INCLUDED_LIBINTL=yes + fi + + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + + + + + + + + + + + + + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 +echo "configure:2929: checking for catalogs to be installed" >&5 + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + echo "$ac_t""$LINGUAS" 1>&6 + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + if test $ac_cv_header_locale_h = yes; then + INCLUDE_LOCALE_H="#include " + else + INCLUDE_LOCALE_H="\ +/* The system does not provide the header . Take care yourself. */" + fi + + + test -d intl || mkdir intl + if test "$CATOBJEXT" = ".cat"; then + ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 +echo "configure:2957: checking for linux/version.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2967: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + msgformat=linux +else + echo "$ac_t""no" 1>&6 +msgformat=xopen +fi + + + sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed + fi + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed + + if test "$PACKAGE" = "gettext"; then + GT_NO="#NO#" + GT_YES= + else + GT_NO= + GT_YES="#YES#" + 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 + + + l= + + + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + + + +if test GT_YES="#YES#" +then + cat >> confdefs.h <<\EOF +#define HAVE_LIBINTL_H 1 +EOF + +fi + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:3042: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:3055: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#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); } + +EOF +if { (eval echo configure:3122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +for ac_hdr in fcntl.h limits.h malloc.h strings.h unistd.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:3149: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:3159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + +echo $ac_n "checking for working const""... $ac_c" 1>&6 +echo "configure:3187: checking for working const" >&5 +if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <j = 5; +} +{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +} + +; return 0; } +EOF +if { (eval echo configure:3241: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_c_const=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_c_const" 1>&6 +if test $ac_cv_c_const = no; then + cat >> confdefs.h <<\EOF +#define const +EOF + +fi + +echo $ac_n "checking for inline""... $ac_c" 1>&6 +echo "configure:3262: checking for inline" >&5 +if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_inline=$ac_kw; break +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +done + +fi + +echo "$ac_t""$ac_cv_c_inline" 1>&6 +case "$ac_cv_c_inline" in + inline | yes) ;; + no) cat >> confdefs.h <<\EOF +#define inline +EOF + ;; + *) cat >> confdefs.h <&6 +echo "configure:3302: checking for off_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_off_t=yes +else + rm -rf conftest* + ac_cv_type_off_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_off_t" 1>&6 +if test $ac_cv_type_off_t = no; then + cat >> confdefs.h <<\EOF +#define off_t long +EOF + +fi + +echo $ac_n "checking for size_t""... $ac_c" 1>&6 +echo "configure:3335: checking for size_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_size_t=yes +else + rm -rf conftest* + ac_cv_type_size_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_size_t" 1>&6 +if test $ac_cv_type_size_t = no; then + cat >> confdefs.h <<\EOF +#define size_t unsigned +EOF + +fi + + + + + +if test "$USE_GNOME" = "yes" +then + X_LIBS=$xX_LIBS + + x_libs=$xx_libs + + GTK_LIBS=$xGTK_LIBS + + GNOME_LIBS="-L../../../libgnome/.libs -lgnome \ +-L../../../libgnomeui/.libs/ -lgnomeui -lSM -lICE" + +else + # If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:3388: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:3455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + + if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + cat >> confdefs.h <<\EOF +#define X_DISPLAY_MISSING 1 +EOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + case "`(uname -sr) 2>/dev/null`" in + "SunOS 5"*) + echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 +echo "configure:3637: checking whether -R must be followed by a space" >&5 + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_R_nospace=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_nospace=no +fi +rm -f conftest* + if test $ac_R_nospace = yes; then + echo "$ac_t""no" 1>&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_R_space=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_space=no +fi +rm -f conftest* + if test $ac_R_space = yes; then + echo "$ac_t""yes" 1>&6 + X_LIBS="$X_LIBS -R $x_libraries" + else + echo "$ac_t""neither works" 1>&6 + fi + fi + LIBS="$ac_xsave_LIBS" + esac + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And karl@cs.umb.edu says + # the Alpha needs dnet_stub (dnet does not exist). + echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 +echo "configure:3702: checking for dnet_ntoa in -ldnet" >&5 +ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 +echo "configure:3743: checking for dnet_ntoa in -ldnet_stub" >&5 +ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet_stub $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to dickey@clark.net. + echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 +echo "configure:3791: checking for gethostbyname" >&5 +if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +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_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +gethostbyname(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_gethostbyname=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_gethostbyname=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +echo "configure:3840: checking for gethostbyname in -lnsl" >&5 +ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says simon@lia.di.epfl.ch: it contains + # gethostby* variants that don't use the nameserver (or something). + # -lsocket must be given before -lnsl if both are needed. + # We assume that if connect needs -lnsl, so does gethostbyname. + echo $ac_n "checking for connect""... $ac_c" 1>&6 +echo "configure:3889: checking for connect" >&5 +if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect(); + +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_connect) || defined (__stub___connect) +choke me +#else +connect(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_connect=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_connect=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_connect = no; then + echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +echo "configure:3938: checking for connect in -lsocket" >&5 +ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. + echo $ac_n "checking for remove""... $ac_c" 1>&6 +echo "configure:3981: checking for remove" >&5 +if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char remove(); + +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_remove) || defined (__stub___remove) +choke me +#else +remove(); +#endif + +; return 0; } +EOF +if { (eval echo configure:4009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_remove=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_remove=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_remove = no; then + echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +echo "configure:4030: checking for remove in -lposix" >&5 +ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lposix $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo $ac_n "checking for shmat""... $ac_c" 1>&6 +echo "configure:4073: checking for shmat" >&5 +if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shmat(); + +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_shmat) || defined (__stub___shmat) +choke me +#else +shmat(); +#endif + +; return 0; } +EOF +if { (eval echo configure:4101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_shmat=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_shmat=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_shmat = no; then + echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +echo "configure:4122: checking for shmat in -lipc" >&5 +ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lipc $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +else + echo "$ac_t""no" 1>&6 +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS="$LDFLAGS" + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. + echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 +echo "configure:4174: checking for IceConnectionNumber in -lICE" >&5 +ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +else + echo "$ac_t""no" 1>&6 +fi + + LDFLAGS="$ac_save_LDFLAGS" + +fi + + X_LIBS=-L$x_libraries + + + saved_LDFLAGS=$LDFLAGS + LDFLAGS=$X_LIBS + + echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 +echo "configure:4224: checking for XOpenDisplay in -lX11" >&5 +ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lX11 $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + x_libs="-lX11 $X_EXTRA_LIBS" + +else + echo "$ac_t""no" 1>&6 +{ echo "configure: error: Can not find X11." 1>&2; exit 1; } +fi + + + + echo $ac_n "checking for gtk_init in -lgtk""... $ac_c" 1>&6 +echo "configure:4268: checking for gtk_init in -lgtk" >&5 +ac_lib_var=`echo gtk'_'gtk_init | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lgtk -lgdk -lglib $x_libs -lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + GTK_LIBS="-lgtk -lgdk -lglib -lm" + +else + echo "$ac_t""no" 1>&6 +{ echo "configure: error: Can not find gtk/gdk/glib." 1>&2; exit 1; } + +fi + + + + echo $ac_n "checking for gnome_init in -lgnomeui""... $ac_c" 1>&6 +echo "configure:4313: checking for gnome_init in -lgnomeui" >&5 +ac_lib_var=`echo gnomeui'_'gnome_init | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lgnomeui -lgnome $GTK_LIBS $x_libs -lSM -lICE $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + GNOME_LIBS="-lgnomeui -lgnome -lSM -lICE" + +else + echo "$ac_t""no" 1>&6 +{ echo "configure: error: Can not find GNOME." 1>&2; exit 1; } + +fi + + + LDFLAGS=$saved_LDFLAGS +fi + + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 +echo "configure:4363: checking for working alloca.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +char *p = alloca(2 * sizeof(int)); +; return 0; } +EOF +if { (eval echo configure:4375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_cv_header_alloca_h=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_alloca_h=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_alloca_h" 1>&6 +if test $ac_cv_header_alloca_h = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_ALLOCA_H 1 +EOF + +fi + +echo $ac_n "checking for alloca""... $ac_c" 1>&6 +echo "configure:4396: checking for alloca" >&5 +if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +#endif + +int main() { +char *p = (char *) alloca(1); +; return 0; } +EOF +if { (eval echo configure:4424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_cv_func_alloca_works=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_func_alloca_works=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_func_alloca_works" 1>&6 +if test $ac_cv_func_alloca_works = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_ALLOCA 1 +EOF + +fi + +if test $ac_cv_func_alloca_works = no; then + # 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.o + cat >> confdefs.h <<\EOF +#define C_ALLOCA 1 +EOF + + +echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 +echo "configure:4456: checking whether alloca needs Cray hooks" >&5 +if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5 | + egrep "webecray" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_os_cray=yes +else + rm -rf conftest* + ac_cv_os_cray=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_os_cray" 1>&6 +if test $ac_cv_os_cray = yes; then +for ac_func in _getb67 GETB67 getb67; do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:4486: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:4514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <&6 +fi + +done +fi + +echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 +echo "configure:4541: checking stack direction for C alloca" >&5 +if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + ac_cv_c_stack_direction=0 +else + cat > conftest.$ac_ext < addr) ? 1 : -1; +} +main () +{ + exit (find_stack_direction() < 0); +} +EOF +if { (eval echo configure:4568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + ac_cv_c_stack_direction=1 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_c_stack_direction=-1 +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_c_stack_direction" 1>&6 +cat >> confdefs.h <&6 +echo "configure:4593: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:4603: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in getpagesize +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:4632: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:4660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +echo "configure:4685: checking for working mmap" >&5 +if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_mmap_fixed_mapped=no +else + cat > conftest.$ac_ext < +#include +#include + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include +# endif + +/* Assume that all systems that can run configure have sys/param.h. */ +# ifndef HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# ifdef 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 */ + +#ifdef __cplusplus +extern "C" { void *malloc(unsigned); } +#else +char *malloc(); +#endif + +int +main() +{ + char *data, *data2, *data3; + int i, pagesize; + int fd; + + pagesize = getpagesize(); + + /* + * First, make a file with some known garbage in it. + */ + data = malloc(pagesize); + if (!data) + exit(1); + for (i = 0; i < pagesize; ++i) + *(data + i) = rand(); + umask(0); + fd = creat("conftestmmap", 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("conftestmmap", O_RDWR); + if (fd < 0) + exit(1); + data2 = 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 = 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); + unlink("conftestmmap"); + exit(0); +} + +EOF +if { (eval echo configure:4833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + ac_cv_func_mmap_fixed_mapped=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_func_mmap_fixed_mapped=no +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6 +if test $ac_cv_func_mmap_fixed_mapped = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_MMAP 1 +EOF + +fi + +echo $ac_n "checking for vprintf""... $ac_c" 1>&6 +echo "configure:4856: checking for vprintf" >&5 +if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char vprintf(); + +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_vprintf) || defined (__stub___vprintf) +choke me +#else +vprintf(); +#endif + +; return 0; } +EOF +if { (eval echo configure:4884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_vprintf=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_vprintf=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_VPRINTF 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + +if test "$ac_cv_func_vprintf" != yes; then +echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 +echo "configure:4908: checking for _doprnt" >&5 +if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char _doprnt(); + +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__doprnt) || defined (__stub____doprnt) +choke me +#else +_doprnt(); +#endif + +; return 0; } +EOF +if { (eval echo configure:4936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func__doprnt=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func__doprnt=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_DOPRNT 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + +fi + +for ac_func in getcwd getwd putenv strerror +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:4963: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* 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(); + +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 +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:4991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + +trap '' 1 2 15 +cat > confcache <<\EOF +# 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. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# 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) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +DEFS=-DHAVE_CONFIG_H + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.12" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile src/Makefile + image/Makefile intl/Makefile po/Makefile.in config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@LN_S@%$LN_S%g +s%@RANLIB@%$RANLIB%g +s%@CPP@%$CPP%g +s%@ALLOCA@%$ALLOCA%g +s%@USE_NLS@%$USE_NLS%g +s%@MSGFMT@%$MSGFMT%g +s%@GMSGFMT@%$GMSGFMT%g +s%@XGETTEXT@%$XGETTEXT%g +s%@GENCAT@%$GENCAT%g +s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g +s%@CATALOGS@%$CATALOGS%g +s%@CATOBJEXT@%$CATOBJEXT%g +s%@DATADIRNAME@%$DATADIRNAME%g +s%@GMOFILES@%$GMOFILES%g +s%@INSTOBJEXT@%$INSTOBJEXT%g +s%@INTLDEPS@%$INTLDEPS%g +s%@INTLLIBS@%$INTLLIBS%g +s%@INTLOBJS@%$INTLOBJS%g +s%@POFILES@%$POFILES%g +s%@POSUB@%$POSUB%g +s%@INCLUDE_LOCALE_H@%$INCLUDE_LOCALE_H%g +s%@GT_NO@%$GT_NO%g +s%@GT_YES@%$GT_YES%g +s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g +s%@l@%$l%g +s%@X_LIBS@%$X_LIBS%g +s%@x_libs@%$x_libs%g +s%@GTK_LIBS@%$GTK_LIBS%g +s%@GNOME_LIBS@%$GNOME_LIBS%g +s%@X_CFLAGS@%$X_CFLAGS%g +s%@X_PRE_LIBS@%$X_PRE_LIBS%g +s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g + +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_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # 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" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + 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 "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +# 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='\3' +ac_dD='%g' +# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='\([ ]\)%\1#\2define\3' +ac_uC=' ' +ac_uD='\4%g' +# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_eB='$%\1#\2define\3' +ac_eC=' ' +ac_eD='%g' + +if test "${CONFIG_HEADERS+set}" != set; then +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +fi +for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + echo creating $ac_file + + rm -f conftest.frag conftest.in conftest.out + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + cat $ac_file_inputs > conftest.in + +EOF + +# Transform confdefs.h into a sed script conftest.vals that substitutes +# the proper values into config.h.in to produce config.h. 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.vals +cat > conftest.hdr <<\EOF +s/[\\&%]/\\&/g +s%[\\$`]%\\&%g +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp +s%ac_d%ac_u%gp +s%ac_u%ac_e%gp +EOF +sed -n -f conftest.hdr confdefs.h > conftest.vals +rm -f conftest.hdr + +# 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.vals <<\EOF +s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% +EOF + +# Break up conftest.vals because some shells have a limit on +# the size of here documents, and old seds have small limits too. + +rm -f conftest.tail +while : +do + ac_lines=`grep -c . conftest.vals` + # grep -c gives empty output for an empty file on some AIX systems. + if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi + # Write a limited-size here document to conftest.frag. + echo ' cat > conftest.frag <> $CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS + echo 'CEOF + sed -f conftest.frag conftest.in > conftest.out + rm -f conftest.in + mv conftest.out conftest.in +' >> $CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail + rm -f conftest.vals + mv conftest.tail conftest.vals +done +rm -f conftest.vals + +cat >> $CONFIG_STATUS <<\EOF + rm -f conftest.frag conftest.h + echo "/* $ac_file. Generated automatically by configure. */" > conftest.h + cat conftest.in >> conftest.h + rm -f conftest.in + if cmp -s $ac_file conftest.h 2>/dev/null; then + echo "$ac_file is unchanged" + rm -f conftest.h + else + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + fi + rm -f $ac_file + mv conftest.h $ac_file + fi +fi; done + +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +srcdir=$ac_given_srcdir +while test -n "$ac_sources"; do + set $ac_dests; ac_dest=$1; shift; ac_dests=$* + set $ac_sources; ac_source=$1; shift; ac_sources=$* + + echo "linking $srcdir/$ac_source to $ac_dest" + + if test ! -r $srcdir/$ac_source; then + { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; } + fi + rm -f $ac_dest + + # Make relative symlinks. + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'` + if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then + # The dest file is in a subdirectory. + test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir" + ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dest_dir_suffix. + ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dest_dir_suffix= ac_dots= + fi + + case "$srcdir" in + [/$]*) ac_rel_source="$srcdir/$ac_source" ;; + *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;; + esac + + # Make a symlink if possible; otherwise try a hard link. + if ln -s $ac_rel_source $ac_dest 2>/dev/null || + ln $srcdir/$ac_source $ac_dest; then : + else + { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; } + fi +done +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h +sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + + diff -uNr gnome-0.11/programs/freecell/configure.in gnome-0.12/programs/freecell/configure.in --- gnome-0.11/programs/freecell/configure.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/configure.in Wed Jan 21 18:29:50 1998 @@ -0,0 +1,110 @@ +dnl Process this file with autoconf to produce a configure script. + +dnl **************************************************************** +dnl **************** configure.in of Freecell **************** +dnl **************************************************************** + +AC_INIT(src/freecell.c) +AM_CONFIG_HEADER(config.h) +AC_PREREQ(2.12) +AM_INIT_AUTOMAKE([freecell], [0.7]) + +dnl **************** Set available languages. **************** +ALL_LINGUAS="ko" + +dnl **************** Checks for programs. **************** +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +AC_PROG_RANLIB + +dnl **************** I18N matters **************** +AM_GNU_GETTEXT +AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) + +dnl * FIXME: GNOME library needs HAVE_LIBINTL_H. Is it correct? +if test GT_YES="#YES#" +then + AC_DEFINE(HAVE_LIBINTL_H, 1) +fi + +dnl **************** Checks for header files. **************** +AC_HEADER_STDC +AC_CHECK_HEADERS(fcntl.h limits.h malloc.h strings.h unistd.h) + +dnl **************** Checks for typedefs, structures, **************** +dnl **************** and compiler characteristics. **************** +AC_C_CONST +AC_C_INLINE +AC_TYPE_OFF_T +AC_TYPE_SIZE_T + +dnl **************** Check GNOME. **************** + +dnl It is now GNOME only. Check whether it is in GNOME tree +dnl (in programs/freecell) or it is builde out of the box. + +dnl GNOME's configure export USE_GNOME when freecell is builded in GNOME tree. + +if test "$USE_GNOME" = "yes" +then +dnl GNOME's configure kindly passes X11, GTK library paths. + X_LIBS=$xX_LIBS + AC_SUBST(X_LIBS) + x_libs=$xx_libs + AC_SUBST(x_libs) + GTK_LIBS=$xGTK_LIBS + AC_SUBST(GTK_LIBS) + GNOME_LIBS="-L../../../libgnome/.libs -lgnome \ +-L../../../libgnomeui/.libs/ -lgnomeui -lSM -lICE" + AC_SUBST(GNOME_LIBS) +else + dnl **************** Find the X11. **************** + AC_PATH_X + AC_PATH_XTRA + X_LIBS=-L$x_libraries + AC_SUBST(X_LIBS) + + dnl * GTK might be in X11 library directory? + saved_LDFLAGS=$LDFLAGS + LDFLAGS=$X_LIBS + + AC_CHECK_LIB(X11, XOpenDisplay, + x_libs="-lX11 $X_EXTRA_LIBS" + , + [AC_MSG_ERROR(Can not find X11.)], + $X_EXTRA_LIBS) + AC_SUBST(x_libs) + + dnl **************** Find GTK. **************** + AC_CHECK_LIB(gtk, gtk_init, + GTK_LIBS="-lgtk -lgdk -lglib -lm" + , + [AC_MSG_ERROR(Can not find gtk/gdk/glib.)] + , + -lgdk -lglib $x_libs -lm) + AC_SUBST(GTK_LIBS) + + dnl **************** Find GNOME. **************** + AC_CHECK_LIB(gnomeui, gnome_init, + GNOME_LIBS="-lgnomeui -lgnome -lSM -lICE" + , + [AC_MSG_ERROR(Can not find GNOME.)] + , + -lgnome $GTK_LIBS $x_libs -lSM -lICE) + AC_SUBST(GNOME_LIBS) + LDFLAGS=$saved_LDFLAGS +fi + + +dnl Checks for library functions. +AC_FUNC_ALLOCA +AC_FUNC_MMAP +AC_FUNC_VPRINTF +AC_CHECK_FUNCS(getcwd getwd putenv strerror) + +AC_OUTPUT([Makefile src/Makefile + image/Makefile intl/Makefile po/Makefile.in], +[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile]) + diff -uNr gnome-0.11/programs/freecell/image/Background.xpm gnome-0.12/programs/freecell/image/Background.xpm --- gnome-0.11/programs/freecell/image/Background.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Background.xpm Mon Jan 19 10:46:11 1998 @@ -0,0 +1,133 @@ +/* XPM */ +static char *card_2_1[] = { +/* width height num_colors chars_per_pixel */ +"79 123 4 1", +/* colors */ +" c #ffffff", +". c None", +"R c #ff0000", +"B c #000000", +"......BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB......", +"...BBB BBB...", +"..B B..", +".B B.", +".B B.", +".B B.", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +"B B", +".B B.", +".B B.", +".B B.", +"..B B..", +"...BBB BBB...", +"......BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB......", +}; diff -uNr gnome-0.11/programs/freecell/image/Cardback1.xpm gnome-0.12/programs/freecell/image/Cardback1.xpm --- gnome-0.11/programs/freecell/image/Cardback1.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Cardback1.xpm Mon Jan 19 10:46:26 1998 @@ -0,0 +1,129 @@ +/* XPM */ +static char * Ca2_xpm[] = { +"79 123 3 1", +" c white", +". c #3CF349245D75", +"X c moccasin", +" ", +" ", +" ", +" ", +" ", +" ............................................................... ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" .XX...............................................................XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX.XXXX....XXXXX.....XXXXX.....XXXXX.....XXXXX.....XXXXX....XXXX.XX. ", +" .XX.XXX.XXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXX.XXX.XX. ", +" .XX.XX.XXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXX.XX.XX. ", +" .XX.XX.XXXXX..X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX.XXX.XX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXX....XXX.XXXXXXXX.XXXXXXXX.XXX....XXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXX.XXXX.XXX.XXXXXXX.XXXXXXX.XXX.XXXX.XXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.XX..XX.XXX..XXXX.X.XXXX..XXX.XX..XX.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.XXXX.XXXXX....XXX....XXXXX.XXXX.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.XXX.XXXX..XXXXXXXXXXX..XXXX.XXX.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXX.XX...XXXX.XXXXXXXXXXXXXXX.XXXX...XX.XXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XX.XXXXXXX.XXXXXXX.X.XXXXXXX.XXXXXXX.XX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXX.XXXXXXX.XX..XXXX.XXXX..XX.XXXXXXX.XXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXX.XXXXXX.XX...XXX.XXX...XX.XXXXXX.XXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXX.X.XXXXX.XXXXX.XX.XX.XXXXX.XXXXX.X.XXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XX.X.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.X.XX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXX.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.XXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XX.XXXXXX.XX.XXX.XXX.XX.XXXXXX.XX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.X.XXXXXXX..XXX.X.XXX..XXXXXXX.X.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.X.XXXXXXXXXXX..X..XXXXXXXXXXX.X.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXX.XX.XXX.XXXXXXX.XXX.XXXXXXX.XXX.XX.XXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXXX.XXXX..XXXX..XXXXX..XXXX..XXXX.XXXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXX.XXXXX.....XXXXXXXXX.....XXXXX.XXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..X.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXX....XXXXXXXXXXXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXX.XXX.X.XXXXXXXXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXXXXX....XX.XX...XXXXXXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXX.XXX.X.X.XXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXX.XXX.X.X.XXXXXXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXX.....XXXX.XXX.X.X.XXXXXXXX.....XXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXX.XXXX..XXX.XXX.X.XX...XXXX..XXXX.XXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXX.XXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXX.XXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XXX..XX.XXXXXXXXXXXXXXXXX.XX..XXX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXX.XXX.XXX..XXXXXXXXXXXXX..XXX.XXX.XXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXX.....XXXXX.............XXXXX.....XXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXX..XXXXXXXXXXXXX..XXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXX.XX..XXXX.XXXX..XX.XXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXX..XXXXX..X.X.X..XXXXX..XXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXX.X.X.X...XX..X..XX.X.X.XX..X..XX...X.X.X.XXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXX..XXXXX..X.X.X..XXXXX..XXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXX.XX..XXXX.XXXX..XX.XXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXX..XXXXXXXXXXXXX..XXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXX.....XXXXX.............XXXXX.....XXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXX.XXX.XXX..XXXXXXXXXXXXX..XXX.XXX.XXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XXX..XX.XXXXXXXXXXXXXXXXX.XX..XXX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXX.XXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXX.XXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXX.XXXX..XXXX...XX.X.XXX.XXX..XXXX.XXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXX.....XXXXXXXX.X.X.XXX.XXXX.....XXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXXXXXX.X.X.XXX.XXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXX.X.X.XXX.XXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXXXXXX...XX.XX....XXXXXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXXXXXXXX.X.XXX.XXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXXXXXXXXXXX....XXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..X.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXX.XXXXX.....XXXXXXXXX.....XXXXX.XXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXXX.XXXX..XXXX..XXXXX..XXXX..XXXX.XXXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXX.XX.XXX.XXXXXXX.XXX.XXXXXXX.XXX.XX.XXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.X.XXXXXXXXXXX..X..XXXXXXXXXXX.X.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.X.XXXXXXX..XXX.X.XXX..XXXXXXX.X.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XX.XXXXXX.XX.XXX.XXX.XX.XXXXXX.XX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXX.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.XXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XX.X.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.X.XX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXX.X.XXXXX.XXXXX.XX.XX.XXXXX.XXXXX.X.XXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXX.XXXXXX.XX...XXX.XXX...XX.XXXXXX.XXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXX.XXXXXXX.XX..XXXX.XXXX..XX.XXXXXXX.XXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XX.XXXXXXX.XXXXXXX.X.XXXXXXX.XXXXXXX.XX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXX.XX...XXXX.XXXXXXXXXXXXXXX.XXXX...XX.XXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.XXX.XXXX..XXXXXXXXXXX..XXXX.XXX.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.XXXX.XXXXX....XXX....XXXXX.XXXX.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.XX..XX.XXX..XXXX.X.XXXX..XXX.XX..XX.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXX.XXXX.XXX.XXXXXXX.XXXXXXX.XXX.XXXX.XXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXX....XXX.XXXXXXXX.XXXXXXXX.XXX....XXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XX.XXX.XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X..XXXXX.XX.XX. ", +" .XX.XX.XXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXX.XX.XX. ", +" .XX.XXX.XXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXX.XXX.XX. ", +" .XX.XXXX....XXXXX.....XXXXX.....XXXXX.....XXXXX.....XXXXX....XXXX.XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX...............................................................XX. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" ............................................................... ", +" ", +" ", +" ", +" ", +" "}; diff -uNr gnome-0.11/programs/freecell/image/Cardback2.xpm gnome-0.12/programs/freecell/image/Cardback2.xpm --- gnome-0.11/programs/freecell/image/Cardback2.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Cardback2.xpm Mon Jan 19 10:47:46 1998 @@ -0,0 +1,308 @@ +/* XPM */ +static char *amber[] = { +/* width height ncolors chars_per_pixel */ +"79 123 178 2", +/* colors */ +"`` c #000000", +"`a c #604830", +"`b c #A85D38", +"`c c #603030", +"`d c #B87858", +"`e c #701818", +"`f c #502620", +"`g c #D08780", +"`h c #C86040", +"`i c #481E18", +"`j c #A86848", +"`k c #C85040", +"`l c #A88780", +"`m c #402010", +"`n c #581600", +"`o c #401010", +"`p c #380E08", +"`q c #301800", +"`r c #A04040", +"`s c #801F10", +"`t c #885828", +"`u c #E08878", +"`v c #C09680", +"`w c #A84020", +"`x c #A86758", +"`y c #685030", +"`z c #A83020", +"a` c #804020", +"aa c #684030", +"ab c #C88860", +"ac c #B08070", +"ad c #783818", +"ae c #603828", +"af c #802820", +"ag c #B07070", +"ah c #785750", +"ai c #583620", +"aj c #F0C0A8", +"ak c #782018", +"al c #503818", +"am c #702810", +"an c #986E58", +"ao c #806868", +"ap c #501818", +"aq c #985E58", +"ar c #E09E98", +"as c #886848", +"at c #A85040", +"au c #C07768", +"av c #583730", +"aw c #702720", +"ax c #201010", +"ay c #B83E28", +"az c #F8BD98", +"b` c #681F18", +"ba c #984030", +"bb c #784E38", +"bc c #180008", +"bd c #601F10", +"be c #100000", +"bf c #884820", +"bg c #704630", +"bh c #E8AD88", +"bi c #684828", +"bj c #703630", +"bk c #381710", +"bl c #F8D0A8", +"bm c #B84738", +"bn c #682E28", +"bo c #984F40", +"bp c #D06060", +"bq c #A87860", +"br c #602620", +"bs c #582E18", +"bt c #887868", +"bu c #581E18", +"bv c #701808", +"bw c #502610", +"bx c #803728", +"by c #B84E48", +"bz c #481808", +"c` c #982D18", +"ca c #301818", +"cb c #C8A0A0", +"cc c #782F20", +"cd c #281810", +"ce c #401600", +"cf c #F09878", +"cg c #201808", +"ch c #D0A080", +"ci c #885040", +"cj c #705050", +"ck c #200808", +"cl c #B89090", +"cm c #181000", +"cn c #E09868", +"co c #B86558", +"cp c #804838", +"cq c #F8E0C8", +"cr c #E08868", +"cs c #784030", +"ct c #601708", +"cu c #C08870", +"cv c #C87878", +"cw c #F0D0C0", +"cx c #F09F88", +"cy c #883818", +"cz c #885750", +"d` c #683820", +"da c #985D38", +"db c #A07878", +"dc c #E8BEB8", +"dd c #C87850", +"de c #603618", +"df c #E09578", +"dg c #C86650", +"dh c #482828", +"di c #906868", +"dj c #C85650", +"dk c #D09768", +"dl c #601818", +"dm c #F0AE98", +"dn c #402020", +"do c #581610", +"dp c #D87770", +"dq c #F09E98", +"dr c #382018", +"ds c #986048", +"dt c #500E08", +"du c #E09E88", +"dv c #301010", +"dw c #886038", +"dx c #A85030", +"dy c #706048", +"dz c #E08E88", +"e` c #904040", +"ea c #A890A0", +"eb c #A83E30", +"ec c #805030", +"ed c #685040", +"ee c #200000", +"ef c #984020", +"eg c #F8AD88", +"eh c #784828", +"ei c #704020", +"ej c #D87C58", +"ek c #A08870", +"el c #E8A778", +"em c #901E18", +"en c #C06868", +"eo c #683018", +"ep c #380700", +"eq c #987868", +"er c #984D30", +"es c #603010", +"et c #483020", +"eu c #A87850", +"ev c #403018", +"ew c #582008", +"ex c #601010", +"ey c #902F28", +"ez c #A85650", +"f` c #401818", +"fa c #502000", +"fb c #B85838", +"fc c #302008", +"fd c #D06F60", +"fe c #802F18", +"ff c #C8A090", +"fg c #B0A0A0", +"fh c #300808", +"fi c #281000", +"fj c #784E48", +"fk c #781710", +"fl c #B86D48", +"fm c #884630", +"fn c #D08870", +"fo c #B85D48", +/* pixels */ +"dabods`j`jfofofoflflflddflflfldddgddddfdddababejcrcrcrcrcrcncndfdfcxcfcfcfdfdfelcxdfdfdfelcxdfcnelelelbhbhdudfdfdfdfdf`ufncrejco`dfo`bdafmfmehd`eo`f`mbz`p`pee", +"dabods`j`jfofofoflflflddflflfldddgddddfdddababejcrcrcrcrcrcncndfdfcxcfcfcfdfdfelcxdfdfdfelcxdfcnelelelbhbhdudfdfdfdfdf`ufncrejco`dfo`bdafmfmehd`eo`f`mbz`p`pee", +"dabodaez`j`jcoflflcofldddgfldgdgddddddddddejddabejabcrcrcncncndfdfdfdfdfelelcxeleldfdfelelcxdfdfdfeleleleldfdfcndfdfdf`ufnfnejfl`dcofo`berfmbfd`eobrbwbzce`pfi", +"boda`b`b`jfoflflfldgfldddgflddddddddddfdddejcrcrcrcrcrcrcrdfdfdfdfdfdfdfdfcxcxbhelelbhdfelelelelcxeleleleldudfdfdfcneldf`ufnababdddg`j`bdxfmbxa`adesbw`ice`pee", +"daat`j`jfofofocofldddgfldgddfldddddgddddejabcrcrcrcrcr`u`ucfcnelcxdfdudfdfbhelelelbhdubhbhcxelducxcxcxcxcxbhcxelbhcfeleldfcnababdddgfo`bboerfma`adde`fbwbzbkfi", +"er`b`b`jfofofocoflddfldgfldddgddddddddejejejcrcrcrcrcrcrcrdfcfelelelcxelelelelelcxcxelelelelelcxelelelbhelcxcxcxeleleldfdfcncrfnddddflfbboerbfa`adeobwbwbzbkfi", +"er`b`b`bfococofldddgflddddddddddddfdddejddejcrcrcrcrcr`udfdfdfdfdfdubhbhbhelbhelbhbhelelelelbhbhbhbhelbhcxcxelcxbhelcfeldfcrcrcrdddddg`j`berfmbxadadesbrbz`ofi", +"er`b`b`j`b`jflflddcoflddcoddddddauddejejejabcrcrcrcrcrcndfdfelelelelcxbhbhdmbhcxcxegcxegbhbhelbhbhbhbhbhbheleleleleleldfdfdfdffnabdddgfofbdaerbfa`awesbubwbzce", +"da`b`b`b`j`jflfldgfldd`dddddauddddabejejejabcrejcrdfdfcfdfdfelbhelcxcxcxdmegbhcxegegcxegbhbhbhbhcxegegbhegcxegbhelbhbhelelcncrcrabddddfl`jaterbfa`d`eobwfabz`p", +"bods`jfofo`jflfocoddddddddejfdejababcrcrcrcrcrcrcrcncfcxdfelcfelelbhdmegegegegbhdmdmegdmelelbhdmdmegegdmegegegegbhcxcxcxelelcfcncrabdddddd`bdabfbxadeobrbwbz`p", +"bobo`j`j`bflflfocoddauddabddejfdejejfncrcrfncncncrdfdfdfelcxelbhbhbhcxbhegbhazegdmbhcxcxcxcxbhdmegbhegegdmegdmdmdmbhbheldfeldf`u`uejababcofoaterfmadeobrbwcece", +"dabo`b`j`b`jflfldd`dabddddabddejejejejcrfnfncndfcncndfdudfdfelbhbhcxdmdmegdmdmdmdmbhbhcxcxcxbhbhdmbhbhbhegbhdmdmbhbhelbheldfdfcrcrcrababddflaterbfeiawesbwbzce", +"bobo`jfo`j`j`jflddfdcocoddabejfdcrabejfnfnfncrcrcrdfcfelbhcxcxegbhdmcxdmbhegbhbhbhbhcxcxcxcxbhazbhbhdmdmdmegegdmdmbhbhcxelcxdudfdfcncnfnabco`bdaerbxd`brbd`m`p", +"erda`b`b`b`jflfofo`jat`j`jfl`dabdkcrfdababejcrcndfdfdfdfelcxdmbhbhdmdmdmdmdmcxdmdmbhelbhbhcxcxdmdmegegegegdmdmdmbhbhbhcxcxcxduelcxdfdfcrejddcofoerbfd`brbd`m`p", +"daboerat`j`jfo`bater`batatezfocoddejddfdabcrcrfncncrdfdfdfelbhelbhcxcxegegdmbhbhbhbhbhbhbhcxcxdmazegegegdmbhbhbhcxcxcxcxcxcxcxelcxdudkfnfnabdd`jerbfaddeew`ibk", +"dabodsbobafmfmbfbxeibxd`d`bxbxcida`xfo`ddgabdkcrcncndudfdudfduelcxbhbhdmdmdmdmdmcxdmdmbhcxbhdmdmegdmdmazdmegbhdmdmcxegdmbhbhdubhdudfcrfnfnddco`bbofma`adbw`mce", +"erdaerbxbxbfbfa`bxeid`eoeobrbwbrd`csfmbo`jcoflabfncrdfdfelelcxbhcxdmcxbhbhbhdmegdmdmcxbhcxcxdmdmdmbhbhdmbhbhdmdmdmdmbhcxelelcxcncndkcnfdau`jdafmfmbabxeobd`mce", +"daboehfmehfmfmbfeieha`adeoesbrbrbrdeeobfer`batez`dfnfndfdfduelcxbhcxegbhbhbhbhcxegbhbhbheldmdmdmazazbhbhdmbhbhbhdmbhelduelcxdfdfabdgaudg`jbofmbxa`a`adadbdbwce", +"ererfmfmbafmerfmererfmerbfd`eoesbs`ibwbwbweod`ehfmboezabfndfelcxduelcxbhcxcxcxdmdmdmdmdmbhbhbhbhdmazdmcxdmbheldubhdudfdkab`j`jboerfmbxbxbxbxfma`a`eobrewbz`obk", +"erciereratat`jat`b`b`bdaboererbfehd`esbwbwbw`faid`bjfmbocoabdzdfelbhbhbhbhcxbhcxdmdmbhbhbhbhdmbhbhdmdmdueldffnabau`d`jboehbiadehehd`eibxfmcierbfeid`bwfabz`oep", +"erbobobobo`j`jfo`jfo`jflfo`b`jaterbfeieo`fbwbw`fesd`bjfmbo`d`udfdudfduducxbhcfbhcxcxbhbhbhbhbhdmdmdmbhdudffnauezbocifmbjd`d`d`eiehadfmcpci`t`terbfa`brewbzbkfi", +"`jez`j`jfofofo`jfl`jcofl`d`d`dcoco`j`jbobfehd`esbsbsd`d`cpbofndfdzdfdfdfelelcxelcxcxcxdmcxcxcxegdmbhdfab`jerbxehd`brd`bjbja`bfehfmerdacida`j`jdadafmadeobrapce", +"`b`j`j`j`jfocococofofoflco`dcococo`dfo`bdsbobofmbxd`d`eheherau`udfdffncrdudfduduelbhbhbhdmbhbhcxcxdffn`jfmbxd`d`d`d`adeh`tda`b`j`d`d`d`dabau`dau`x`beradeobu`m", +"`jez`jez`j`jcocofofofocococo`jcococo`jdsdsdadacicifmehehfmda`dfndfcnfndfdfdudfelcxcxbhbhegdubhcxdufn`dbobxeieid`csbffmer`j`j`x`dababddabfnfnauab`j`bfmd`awbubz", +"`jez`j`j`jez`j`jatatcifmbxbjbrbubrbrd`d`bjbjcsfmerbobobods`jcoauaufnfnfndfdfdfelbhcxdmdmeleldududffncobofmfmdadsezdada`j`jflauauauabfnabfnfnfnaufl`bera`adeo`f", +"dadsdsdsdadaboerbjapbwapap`mbkdvbk`m`mevaibjbjd`brcscidada`j`jco`dabfnfndfdfdzdubhbhegbhbhbhdfdufnfnddfl`j`j`jdsbocifmcscpcpcids`jcoauddaudd`dcocodacicsccd`bu", +"ez`b`jatbocicibjapbw`f`i`mdvcgfifififibkbk`fehcpd`buehboez`j`j`jcoaudpfn`gdfdfelbhbhbhbhbheldudfdkfnddddflco`jbobjbrbu`i`fbu`faebjcpcidsez`jfo`xezbofmbxeid`bs", +"`j`jatatcifmbj`mbwbuf`bkbkfccmfc`mfcaxevai`mcd`caabxbrfmboez`b`j`jcofdfncrdfelbhdmdmdmdmdmdudf`ufnabau`d`xbobxbdeo`f`mdvdvdvfibkfccg`fbwbwapapbncsfmehehd`esbd", +"fo`j`jerercsawbu`mce`m`mbifjcgalbwcacmdraifgdraqbrd`cibxecbobodsez`j`dabfndfdfelbhdmazdmbhbhdfdfabaucofl`jbxccbj`fbwcgce`maxax`ievfiaxbk`ocececefhbud`d`esdebu", +"`j`j`jatcibxd`brcebkbk`yciczcdalbsf`axald`eaetaccid`erfmfmerdada`j`jddabfndfdudubhazajazdmbhdfdffnauddflezbfbxadbicibk`m`ibcax`fdydvax`mbkdvfc`p`p`pbrd`eobrbu", +"fleu`jboerehd`dn`meseofjeqdiavalbsbtaoaade`fan`vacdwccererdadadsez`jflfdfndfbhdmdmajazazegbhdudfauabdd`jerfmcsdwbqacbwaibs`idh`fcjdrevfjaifififififi`ibddeesbs", +"flco`j`jboererbxd`eseocsaqdbandr`fd`bsbwbw`acb`g`xboafakdafo`j`j`j`jflddfncreldmazazblblazbhdudffnabau`jdabxbo`xcu`vasbsaoah`cd``ifccidifjbsfieeeeepepbwbdeses", +"flflfl`j`b`bdaa`ehd`buadbxaqeked`m`f`f`i`iekclcuatbaafamfm`j`j`x`jcocoddabcrdubhazblblblajcxbhchfnfnfnddercybadsacffacalbsd`bsd`ev`meqeqfjbrbzficmfi`p`iesd`eo", +"dd`d`dcoco`j`j`bfmbxccd`fmbobo`xcieheibfbofoflfofbdxdx`bdxflddco`jcoflfdejcrcxegdmazajajazdmbhdufndfdfflefefefef`bcocuanalev`m`i`fek`laqbjbrbzepcefabwbreoeoeo", +"fl`d`d`dcoflcofobobofmfmadfmadfmbxerfodaau`j`d`dfdcodddd`dddcoflcocodgauabcrcxcxdmazblajajdmbhbhdfeldfcrddfofofofo`jfo`j`jatboaqagageze`bjbwbudtbwbreod`d`d`d`", +"dddddd`dcoflflcofobocifmbffmbfbfbfboatercocodgdgco`d`d`dauddflflfoddddddcrcncxbhegajcwajdmazdmbheldfcncnabcofofofofofoatatfo`j`j`j`jbofmbrbdbdbubreod`bxadadd`", +"flfdddddddauddddflco`jdsdsda`b`jatfocococodgdgdgcoflflcococoflddcoauddabdkdfcxegazazblajazdmdmeldmdudufnddddfofbfoco`j`jfoatbocicibxfmbfadadeibxbxadadadehbxad", +"fdddauddauauddddddddfl`j`j`jcococo`ddddddddddgfofofl`ddddd`dcodddpfdejdpcrdfcxcxazblblajazazazdmdmcxbhdfabddco`j`b`b`jfofo`j`jat`bfmaterfmfmfmfmfmfmfmfma`ehad", +"ddauauddfdauddddddaudgflcofocofococodddg`dcocofofofddd`d`d`d`dabejabfnabfndfcxdmazblblblazdmegdmdmegcxdffnaudgcocoatatfofofoco`jfobo`bdaciciererfmfmbffmbfbxei", +"dgauauauauauabfdababddaudgdgfldg`ddgfldgcocofldddddgaudgauddejfdcrfdcrejfndfcxegazblblajajajegdmdmbhbhdfdffnddaufldgcofofofocoflfl`j`j`j`jez`jboererererefbfbx", +"coauddfnababauddfnfnabababababababddddddddddfnddfdauddddddejejdpcrcrdpfncrdfcfbhazazajajazazajazazazazbhel`ufnfdejdpddauababdddd`d`dflcofo`j`b`berererererfmfm", +"ddejfdababababfdfdababfdfdfnfnfnfnabfnababababddfdabddejddejabejcrcrcrejfndfbhcxazajazajajazazazazdmdmdmdmdffndpfnfnfnababababejddauddcofofo`b`bdxdaerererbafm", +"cofdababababfndpfnabfnabejcrdkfndfdkcrfnfnababfdddabcrejejabfnfnfnfnfnfnab`uducxegazblajajdmdmajajajegajazazdfcrcrcrcrcr`ucrdkdkababfddddddgfofoatataterererfm", +"auauaudddpababfnfndkcrcrdfdfdffndfdfcrejfnabejababfncrejcrfncrfncrcrcrabcr`udfelegazajajajazazajajazazajazegbheldfdfdfcrcncncncndkcrejejdd`ddgflflfo`berererfm", +"coddfdfdejdpababcrcrcrcndkdffndfdffnfnejfnejfdejabfnabfnfnfndpfncrcrfnabfd`udfelegazajazdmdmdmajblajajajdmegegegcxcfdfcrcncndfdfdkabcrfddddgfodgflfofodxdxerfm", +"ddddauaucrdpfnfn`u`u`udfcncndfcncrcrcrabcrcrejcrdfcrcrfnabfnfddpfndffnababfndfcxegazazdmdmdmazazajazdmblazegazazegeldfelcxdfcrcrcrabejejejdgdgfofofofofo`berfm", +"`dauddfnfndpcrfnfncrcrdf`ucrcrcrcrcrcrejcrcrcr`u`ucrfndpcrfnfnfnfndffnfndpfndfelbhdmegdmdmdmazazajazazblajazazdmazazbhbhelcndfdfcncncrababejdddgdgflfobyboboer", +"ddfdfdejdpdpfncrcrfncrdfdfcndfdfdfcncrcrcrcncrducrcrcrcrdpcrdpcr`u`ucrfnfncrdfdfcxegcxegdmdmdmazajajajajblazazajazajazcxcxcxcf`u`u`ucrdpejfddgdgdgat`batatdxer", +"ddfdddejabejfdfncr`u`u`u`u`u`u`u`udfcrcrcrdfdfcrcrcrdpfnfdfncrcrdfdffnfnfnfndfcrducfbhdmegazajazajajazajajazajajblazdqdmcxcxelelcncrejejejejdgdgfofofo`bat`bba", +"coenabfdfnababcrdp`udf`ucrej`u`ucfcfdfcncndfcncrcrcrejfncrfnfnfnfnfnfnfnfncrcrcrcfcxegdmdmazazazajajajajajazajblblajdmegegdmdudfcrcr`ucrejejdgdgfofo`batbobobo", +"cocoauabauabfdejcrcrcncrcrejcncndfcr`u`u`u`u`ucrcrcrfnejejcr`u`u`ucrfnabfnfnfncrcfcxegdmcxdmazazajazajblajdmazajblazazcxazcxcxcx`u`ucrcrfnfdfdddfofoatatatbobo", +"codgauauaudpfdfddpdpcrcrcrdf`u`ucrdfdfdfdfcrcr`u`u`ucrfncrcrcrcrcrfnababfdabcrdfcxbhcxdmegdmajdmazajajajazegazazajazazazazcxdmdfdfdfdpcrfndpejfdfo`batatbobofm", +"coauddauaufdejfddpdp`u`u`udfdfdfej`u`u`udfdfcncrdpcrdffnfnfnabcrcrdpababfnfnfncfcxdmdmdmdmdmajdmdmdmegegegcxdmdmdmdmdmdmdmdmdqcxcxcfcrdffnejfddgcofofb`bdxerfm", +"coauauaufdaudpdpdpcrdpcrfnfndfcrcrdfdf`u`u`ufncr`ufn`ucrcrfdabfnababauabfndpfncfegdmajdmdmdmdmdmdmdmdmdmdmbhdmdmdmdmdmdmdmdmdmbhcxcfdf`ucrfddddddgfoatatbobobf", +"`jcocoenauauaufdejfnfncrcrcr`u`ucrdf`udfdfdfdfdfcrcnfnfnfdfddpdpau`dabababcrdfcxdmajblajazdmdmdmdqdmdmcxcxbhegdmdmcxegdmdmdmegdmcxdudfcrdpfdddfddgfo`b`bererfm", +"foco`d`d`dabfdfdababejfn`ucrcncrcrcrdfcrcn`ucncrcnfnfnfnauauaufdfd`d`dabfncrelegazazcwcwajdmdmdmducxdmcxcfcxcxdmdmdmdmdmdmdmdmcxbhbh`u`ufdejfdcoco`j`berererfm", +"`j`xcoddcoauabfdababfncrfn`u`ucrcrcrdfcr`ucrcrcrcncrfnfdfdfdejfddgcofdabfncrcxegdmblblcwajdmdmcxcxcxdqdu`ucfcxcxegdmdmdmdmdmdmdmdqcx`u`ufdejejcodgfo`bdxerfmeh", +"`jcocoauauaufdaufdfnfnfnfndf`u`u`u`u`udf`udfdfcrcrfnababdgfdfdabdgauauaudpcrcxazajajcqcqdcajdmdmcxcxcxdudfcrcfcxcxegegegdmdmdmdmcxcfcfcrdpfnabfdfofo`jererfmbx", +"`j`jcocoddfdcoaufdejdpcr`udfdf`ucrdfdfdfdfdfdfcnfnfnabfdddfdejfdababababfnfncxazazajcqcqcwajdmdmcxdmbhdmdfcrcfcxcxegdmdmdmdmazdmcxcfdfcrcrabejfdfofoatatbafmbx", +"dsez`jco`dddddfdabababcrcrfndf`u`u`u`ucrcrcrcrfncrfnauenddfdejdpdpdpfndkfn`ucxdmazblcqcqcwdcdmdmcxcxcxcx`u`ucfcxdqdmdmdmdmdmajdmdm`u`u`ucrejejdgco`j`bererfmbx", +"dsezez`jcococofdfdababejfnfncncndfcrdfcrcrfnfnfncrabej`dddfdfncrcrfnfnfnfndfcxazajblcwcqcwajazazcxdqegcxdfcncrcxcxcxegcxdmdmdmcxcxdfdz`u`uejfddgdgfoezdxerfmbx", +"dadsez`jcocoddfdfdabababcrcrcrcrcrcrcrcrcrcr`ucrcrfnfdcoaufncrcrcrfnfnfnfn`ubhazajajajcwajajdmajdmdmdmdm`ucrcfcxducxdqcxdmdmbhbhdudfdzcrejfdabcofofoaterfmcsd`", +"boez`jezfocoddabddfdfnfndpcrcrcr`ucr`u`ucrfn`ucrcrfnfdcoabfncrcrfndpdpabdp`ududmazajajajajdqcxdmdmdmdmdm`ucfcfcfdfcfcxcxdmdmdmbhdududfcrejfdfddgco`jaterfmbxcc", +"boboezezcococodgcofdfdfnfnfnfndp`gfnfncrcrcrcrcrcrfnfdfdddfdejfdcoco`dauaufndfcxdqdmdmajdmbhcxcfcxcxcxcxcfcxelcxdfduducxdmdmbhbhdududzcrcrfdejfdco`jdaerfmbxd`", +"bo`bezez`jcocoflfdfdaufnfnejcrcrcrdfdfcncnfnfnfnfnfnfnddcofdddfobfccbjauaufncrdzdzcxcxbhbh`g`r`rfd`udqducxcxdmelcxcxdfcxcxbhelcfcxeldf`ucrfdabcoco`bdaerfmawbr", +"atbobo`jfo`xfodg`ddgaudpdpfnfn`u`udf`udfcncncncnfnfnfnfdcoendgfbebefbx`xabfnfn`udzdzdududuatefebfofndzcxcxcxcxcxdfducxbhelcxcxcfcxcxdfcrcrabddcocoezdxerbxd`br", +"`bez`b`j`jfococodgddfdabfnfnfndpcrcrcr`u`ufndfdfdkfncrcrdpdgcocofoco`jezcocofddp`gfndfdufnfddgdgdgcrcxbhbhdmdmbhbhducxcfcxcfcxcfcfcfcrfncrabaudgfoatbofmbxbrbw", +"atezds`jezezfoco`dauauaufncrcrcrcr`udf`ucr`u`ufnfn`ucrcrfnfnddflezfocoflcoauauaufnfndududucrdpabdfcxdmdmdmegdmdmbhdududuelcfcfcxcf`u`u`ufnfnaudgfoatbofmadd`bd", +"at`b`bezezezfocoddddfdababfndpdpfn`ufncr`u`ufn`ucrcrcrcrfnfnfdddddfoflcodd`dauaufndfbhcxdu`udpcrbhdmdmdmazazazazdmduelcxcxcfcxcfdfdffndffnfdddfl`bbocifmccbres", +"atat`j`bezezco`jcocofdddfnfnfndpfnfn`u`udfcrcrcrcrfn`ucrfnfnabfnauddendgaufnabab`ubhbhdmbhbhbhbhdmdmbhazazdmdmdmdmcxcxdfdfdfdzdzdfdffnfnfnfddgfo`jboe`bxd`eoeo", +"dsdsda`jez`j`jcocodgdgfdauabejdpejfnfndfdfdfcncncncncnfncrcrdpfnababddababdfdudfducxazazajegegdmdmdmazazajdmdmdmdmdmcxdudzdfdfdzdfdf`ucrdpau`d`j`jatfmbxadeod`", +"dada`b`jez`jcoco`d`d`d`dddejdpababdkfnfndfdfdfcrcrfnfnfncrcrdpejfdejdpabfndfcxeldudmdmazazdmdmdmdmazazazazajazdmdmdmcxcxdfdfdz`u`ufndkfnabfdfdcoezatfmadd`eod`", +"bodsdsfo`jfo`j`jcocoddfdddfdababfnabfnfndffncncncncrcrcrfnfnfnabcrfncrcrdfcxdmelcregazazazdmegdmegazazazajajazdmdmdmegdmeldfdfdfdf`u`ucrfnauau`j`jerfmbxawcccc", +"boda`b`jfoezcococoflddddfdabababfnabcrfnfndfcrfncrcrcrfncrabcrfnfnfnfndfcxbhbhbhdfcxegdmdmazazazegegazazazazazazazdmdmbhcxcxdzdfdffndkfnfdabco`j`berfmadawadaw", +"boatat`j`jcoco`jco`d`dauauauaufdfnabfncrcrcrcrfnfnfnfnfnfnfncrabcncrfndfbhazegcxdfcfdmdmdmdmazajegazazazazdmazazdmegcxcxcxcxcfcf`u`ufncrdpau`d`xboerbxadeoamd`", +"daat`jfofoezfofo`jcoauddaufdfdaufdfndkdkabfnfnfncrfnfnfncrfncrabfncrcrduazazazcxdf`ucxazazazajazajazajajazajajajajdmdmcxcxcxdfdzdfcncncrejfdcofodaerfmadccd`aw", +"cida`batfo`jcoflcofl`d`dauabfddgauababfnababcrfnfnabfnabfnfncrfncrcrcrcxazegdmcxcrdfegazazajajajajazajazajajajazazdmdmbheldudzcfdf`udfcnfnaudgfodaerfmadd`d`d`", +"fmbobo`jezcoco`jcofl`d`dauauauddfdabababfnfnfnfnfnfnfnfnfnabcrcrcrfdab`udmdmegcxcfcxegazazdmazazazdmblajajajajajajdmegbhdududfdzdf`u`u`ufnab`dezatbobxadeoeid`", +"fmbobo`jfo`j`jcoco`dddddddejauddfdejfnababdpejejejabababababfncobyatbydjbpdpducxcfdf`udp`udzdzajajajajazblajazazazdmdmdmcxdfdudfdz`ucr`ufnabcoatatbabxadadadd`", +"csbobo`jezfococo`dfl`dfdabddfdabfnababauauddauddauaudpau`x`rbababaeyafbaebbydjfdbpdjdjbybybybycodpardmajajajajdmdmbhegbhbhcxcfdfdzdz`ufnabauco`jatfmbxadadades", +"bicidada`j`jcofl`dcocoddauauddaufnababau`d`d`d`dddauauezbaafafafafawafcyey`ratbybyatbmebat`rbababyen`gardmajajbhdudubhbhbhcxdfdfeldfdffncraufl`jbofmbxadd`adbu", +"bkfmda`b`b`j`jflcoflcocoddfdfdababababababcofodsboe`bxakamb`b`b``e`eamamafafeyebbabaeyefeyeybxafafeyey`rezencvauaufndudfcxelcxelcxdzcndkfnabco`bbobabxbjd`br`m", +"bebberda`jez`jcococofldd`dauddddababababdddg`bbxdldododtdodobddlb`ex`eb`ccafafcyeyeyey`eafafafakamamamakbxafcceyfbejdkcndfelcxbhcx`u`u`uabauco`bdafmbxbxawbree", +"bed`cida`b`j`j`j`dcofl`d`dddababababababcofo`bef`edodtdtdtdt`nctexexdtex`eakamafafafdldlafemem`scyafakakawbxefbacofdcrdfdfbhbhcxbhcx`ufnfncofo`bbobfbxbxd`bwbe", +"``fcecerat`j`j`j`jfococodg`d`dauabddddauflddflfbef`sb`cccyfecy`s`s`s`s`sfkfkbv`s`semc``zayayayaybmbybmbmfb`kdgejejcrcrcrdudfbhcxcfdfdfcnabco`xatbobfbxbjd`bk``", +"``beaeerdaboezcococococoflflflddauau`dflddddflflfbefaffebxafeyefefeb`w`way`z`zayeb`zaybmbm`h`h`hbybybybyfofdcrducr`ucrcrdfdudfdudzdffnfnabfl`jbobofmbxd`bube``", +"``be`icibobods`j`j`j`j`jfl`dcocofddd`dflddcodgfldgercycccyafccefeybmbm`kfbebbmbmbmfbfbbmfbdjdgfobyezbyfodgcrcxcfcfdfcr`udfcndfeldfdffnfnabflfoboerfmadad`mbe``", +"bebecmeiboboez`j`j`j`j`j`xcoco`d`dcocoflddcodddgdgfldxcybxcycccyey`rebbm`kbmdg`kbmbmbm`kdjdjdjbmatatbybycrcxcxcxelcfcrcrcr`udfdfdf`ufnauaufl`jbofmbxbjbrckbe``", +"````bebkcperda`b`j`j`j`x`j`j`jflflflddcoflddddddflddcodxcyafeyafeyefeb`rbmbaatbyatebbmebbmeybmbmbybybyejcxbhegbhelducrcrcrdfdfdfdfdkfndd`d`j`berfmehd`bkck````", +"````becmcscibo`j`j`j`j`j`j`j`j`xcococofldddgcoddflddfofbeyafeyafcyc`efebebey`rbaebbaebeb`rebbmatbybm`hdfdmdmcxcxcxcfcncrcrfndfdfdkfnauabdd`j`berfmehbrdveebe``", +"bebebebef`cpcibo`j`j`j`j`j`j`j`jcocococofldgfldgflfofl`j`bbabxafcyafcyefefeyefeybababababaebat`rbaddelelcxcxcxcxbhelcrcncnfnfn`ufnfnab`dfl`jatfmbxd``ofiee````", +"bebebebebe`fecerdadadada`jez`j`j`jeuflfococococodgflco`j`jfoereyawbxafafafeyafeycyeyeyeyeyeybxerejdfdudfdudfcfeldudfcrdfdf`ufn`u`gab`d`d`x`berbfbjbwdvfieebe``", +"``bebebebecgbgcicidadadadsda`j`j`j`jflcoflflflfldgflco`j`b`j`bdxccawafafafafawawawafbxafeyafbfflcrdfdfelelcxelcxelcxdfdfcndkdkdkfnab`dcofobocibxd`f`dvficm````", +"````bebebebebkaacicibodsdsdsezezezfoflflflflflflcoflcoflflfofo`j`j`j`b`b`j`b`j`jez`b`b`b`bflfdfnfncrcrdfdfdudfdueldfdfcndfdfcnfnfnau`d`x`jbofmbj`ibkdvfhbe````", +"``````bebebeeebwehcicidadadadadsez`j`j`xfocococoflflcofofofocofofocococoflddflcocoflcocodgddababdk`udfelcfcxdfdfdfdf`udfdf`g`gababaueufobociehbu`mcedvfibe````", +"``````bebebeeebwd`cpcicidabodsda`j`jfofocoflflflfoflcodgflfldgcoflflflcodgflddfldgfldddd`dddabcrfndfdfdudfdfdudfdfdfdfdfdffn`ufnauddfl`jbofmd`bw`mcedvfhee````", +"````bebebebeckbzbwd`ehfmciboda`b`j`j`jcocococoflflflddddcoddcoddddddddddddddfdddddddfdfdejcrcrdfdfdfdfdfeldfcfdfdfdfdzdffndkfnab`dcofobofmbjbrbzcecefheeee````", +"be``bebebebeeecebwesd`csehcicibodads`j`j`x`j`jflcococoflddddabejfdejddabcrejdpcrcrejcrcrcrdfdfdfdfdfdudfelelcxdfdfdfdfdfdffnfnau`dcodscibjbubwbwbzbk`qeeee````", +"bebebebebebeeebkapesd`eiehecfmerbobo`j`j`j`j`jcocofldddgdgejabcrcrejabcrcrcrcrcr`ucrcfcfelelelelcxeleldfdudfdudfdfdfdfdffnfnab`d`d`jatfmeobubwbw`mcefieebe````", +"bebebebebebeee`p`ibweod`bjehfmcicicidsdaez`jfococoflflddddejejcrcrdfcrcrcncndf`ucfcfcxelelelegcxcxcxdmdmcxduelcxdudfdf`ufnfnabco`jbofmd`brbubwapcefcdveeeebe``", +"bebebebebebeeeepbzbueoadd`bjcsfmcpfmerboez`b`jcofococodgdddpabcrdfdf`ucrdfdfcfcfcfcfcxegdmegdmegdmegegbhbhbhcxdududfdf`ucuauco`jbocsd`eoeobrbrbzbzfcdvcmbe````", +"bebebe````beeeepbzbweoadd`d`bjehfmfmcidadads`jcofococodgaufnfncr`udfcncr`ucxcxcfcfcxcxegdmegegegegegegegdmdmdmbhdudfdfdffnabfldsciehadd`esbrbwfabzfcfibebebe``", +"bebebebebebeeeepbzbweseod`adeiadbicsehfmbobo`j`jfococoflfdejdp`udfcfcfcfcfcfcfcfcfegcxegdmdmdmdmdmdmdmdmbhbhbhbhdudfdffnau`xdscieheiadeoeobrbdbw`obkfibe``````", +"bebeeebebebeeeepcebdbdeoadd`eid`d`eiehfmcicibo`j`jfocoflddauejcr`ucfcfcfcfcxcxbhcxcxcxegdmdmdmdmdmdmegcxcxegbhardfdffnau`xdscifmbxeid`d`eo`fbwbwcecefibebe````", +"bebeeebebebeeeficebweseoadadehd`d`d`eiehcsciboez`j`j`j`j`ddddddp`udfcfcfcfcfcfcxcxcxcxcxdmdmdmdmdmdmegdmdmdmdmdudfdfaucoezcifmbfeheid`d`eobdbdbwbzbkckbebe````", +"bebebebebebeeeficebwbreoadadehbxadadadeiehcscpcidadsez`jfoflddejcr`ucfcfcfcfcfcfcfcfcfcxdmegdmdmdmdmdmdmdmbhbhdu`gau`xaqcici`tbfbfeibxadeobrbwapceceee````````", +"bebebebebebebefi`obzbweoadd`eheheheheheheiehcscpcibo`jezfococoddejfndfcxcfcx`u`ufnfndfdzcxdmdmdmegdmdmdmbhbhdu`ucu`xdsdacicifmbfbfehadadeobrbwbzce`qbe````````", +"beeeeeeebebebefice`mbweoeod`eieieieieiadccadeiehfmboda`b`j`jfofdaucr`u`u`udf`ufnfnfncrdfcxcxcxdmdmdmdmdmarduchfnagdsboerdaererfmbfa`adadeobrbwapcefibebebe````", +"bebeeebecmcmeeeefibzbweseoadadadadbxeieieibxd`d`bxfmcierboatfocoddfdcrfnfn`u`ufnauauaufn`udududqdmdmarardz`ucu`xdsboboboerererbfbfehd`d`eo`fbwfacefibebebe````", +"bebebebebebecmfiepcebwbdeoadada`a`a`a`a`eieieieieiehcsfmciboat`jco`daufn`u`u`gabaucodgaufn`udududududuchfnau`xdsdsdsdsdaboerfmfmbfeibxadeobrbwbz`peebebe``````", +"bebeeebebecmcmfi`pcebwbdeoeoadada`a`a`bxa`eha`bxadadbxehfmerdaezco`daucufnfnfnau`d`d`dddej`ududzdzdzdf`g`gco`j`bdadadaboererfmfmehehadadeobrbdbzbkeebe````````", +"eeeebeeebebebeeeep`pbzbdeoeod`a`a`eha`a`ehehehbxbxeiehehehfmfmciboezco`dauabcuco`x`xcocoaufdaufn`g`gau`dfo`j`jez`bdadadaerererfmeheiadadeobrbdbz`pbe``````````", +"bebebebebebecmeefificebdeoeoadeibxbfbfcya`a`a`eheheha`bxehehbxfmfmerdaezco`d`xdsbodadsez`xcoauauenbq`x`j`j`j`j`j`j`b`b`bererfmfmeha`adadeobrbd`ofibe``````````", +"becmeeeecmeeeeeeeedvcefabreoadeia`bfbfbfbfa`eheheheheha`ehehehfmfmfmerdsez`jdsciciciboezez`x`x`x`d`j`j`j`j`jfl`x`j`j`b`bdafmerbfbxa`bxd`eobrbwcefibe``````````", +"eecmeeeeeeeecmeeeefi`pbzbdeoadadadbffmfmfmbffmeheheheha`ehehehehehfmfmbodadadabodadadadsez`j`jcococofofofoflfofo`jfo`jatdaererbfa`eiehadeobrbwcefibe````````be", +"bebecmbebebecmeeeefiepbzbueoada`a`bfbfefbfbfbfbfbfbfbfbfbfehehehfmfmfmfmererda`b`b`j`jfofofoflflcoflcocococoflco`x`j`jbodaerfmfmbxa`eid`eobwbwcefibe``````````", +"eeeeeebebebebeeeeefifibzapbreoa`bffmfmbfbfbffmfmfmfmfmfmfmbxbxbffmfmfmfmererdadada`b`jfofofl`jflfoflcoflflflflcocofo`bdadaerfmfmbxa`a`adeobwbwepeebe``````````", +"bebeeecmcmeeeecmeeeeepcefabweoadbxfmfmfmfmfmfmfmfmfmfmfmfmfmbfbffmfmbffmererdadada`jfofoflflflflflflcoflflflflflfofb`j`jboererfmbxa`adadbrbwbwepeebe````````be", +"eecmeeeeeebebeeecmcmfiepbzbwb`d`a`bferereffmfmeffmfmbffmfmfmbxfmfmfmfmfmerdabodsez`j`j`xcoco`dcocococococoflflfl`j`b`batdaerfmfma`ehadadesbwfa`qeebe``bebebebe", +"beeeeeeecmcmeeeeeefifiepbzdobreoadbfererfmfmfmbafmerfmfmfmfmbxfmfmerererbodabodsez`jfl`jflfl`dflflflflddcocococofo`bdsboerererfma`a`adeoesbwbzficmbe``````bebe", +"bebebebecmbebebefififiepbzbubdeoadbffmererererfmfmererbfbfbfbferererererdadads`j`bfoflco`dflflddflflflflflflfl`j`j`bdadadaererbfa`eiadeoesbwbzfibebebebebe``be" +"bebebebecmbebebefififiepbzbubdeoadbffmererererfmfmererbfbfbfbferererererdadads`j`bfoflco`dflflddflflflflflflfl`j`j`bdadadaererbfa`eiadeoesbwbzfibebebebebe``be" +"bebebebecmbebebefififiepbzbubdeoadbffmererererfmfmererbfbfbfbferererererdadads`j`bfoflco`dflflddflflflflflflfl`j`j`bdadadaererbfa`eiadeoesbwbzfibebebebebe``be" +}; diff -uNr gnome-0.11/programs/freecell/image/Cardback3.xpm gnome-0.12/programs/freecell/image/Cardback3.xpm --- gnome-0.11/programs/freecell/image/Cardback3.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Cardback3.xpm Mon Jan 19 10:48:02 1998 @@ -0,0 +1,139 @@ +/* XPM */ +static char * Cardback1_xpm[] = { +/* width height ncolors chars_per_pixel */ +"79 123 10 1", +/* colors */ +" c red", +". c black", +"X c #FFAA55", +"o c #00AEFF", +"O c #AAFF55", +"+ c #555500", +"@ c blue", +"# c #AA55FF", +"$ c magenta", +"% c #FF5100", +/* pixels */ +" .XXXX..oooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@.#####. ", +" .XXX.oooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@..###. ", +"$. ...oooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@@....%%", +"$$..oooooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@@@..%%%", +"$$$$..oooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@@..%%%%", +"$$$$$...oooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@..%%%%%%", +"$$$$$$$$..oooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@...%%%%%%%%", +"$$$$$$$$$$.ooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@..%%%%%%%%%%", +"$$$$$$$$$$$..ooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@...%%%%%%%%%%%", +"$$$$$$$$$$$$$..ooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@..%%%%%%%%%%%%%", +"$$$$$$$$$$$$$$$..ooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@...%%%%%%%%%%%%%%%", +".$$$$$$$$$$$$$$$$.oooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@...%%%%%%%%%%%%%%%.", +"#..$$$$$$$$$$$$$$$..oooooooooo.OOOOOOOO.++++++++.@@@@@@@@@...%%%%%%%%%%%%%%%..X", +"##...$$$$$$$$$$$$$$$..oooooooo.OOOOOOOO.++++++++.@@@@@@@@..%%%%%%%%%%%%%%%..XXX", +"#####..$$$$$$$$$$$$$$$.ooooooo.OOOOOOOO.++++++++.@@@@@.%..%%%%%%%%%%%%%%..XXXXX", +"######...$$$$$$$$$$$$$$..ooooo.OOOOOOOO.++++++++.@@@....%%%%%%%%%%%%%%..XXXXXXX", +"########..$$$$$$$$$$$$$$$..ooo.OOOOOOOO.++++++++.@@...%%%%%%%%%%%%%%..XXXXXXXXX", +"#########...$$$$$$$$$$$$$$$....OOOOOOOO.++++++++....%%%%%%%%%%%%%%%..XXXXXXXXXX", +"############..$$$$$$$$$$$$$$...OOOOOOOO.++++++++...%%%%%%%%%%%%%%..XXXXXXXXXXXX", +"##############..$$$$$$$$$$$. .OOOOOOOO.++++++++. .%%%%%%%%%%%..XXXXXXXXXXXXXX", +"###############...$$$$$$$.. .OOOOOOOO.++++++++. ..%%%%%%%..XXXXXXXXXXXXXXX.", +".################...$$$$. .OOOOOOOO.++++++++. .%%%%...XXXXXXXXXXXXXX...", +"o..#################.. .OOOOOOOO.++++++++. ....XXXXXXXXXXXXXXXX..@@", +"ooo..################... .OOOOOOO.+++++++. ...XXXXXXXXXXXXXXX..@@@@", +"ooooo..##############. .. ..OOOOO.+++++.. .. .XXXXXXXXXXXXX...@@@@@", +"oooooo...############. . ..OOO.+++.. . .XXXXXXXXXXXX..@@@@@@@", +"ooooooooo..##########. .. ..O.+.. .. .XXXXXXXXXX..@@@@@@@@@", +"oooooooooo..#########. .. ... .. .XXXXXXXXX.@@@@@@@@@@@", +"oooooooooooo..#######. . . .. .XXXXXXX..@@@@@@@@@@@@", +"ooooooooooooo...#####. .. . .XXXXX..@@@@@@@@@@@@@@", +"oooooooooooooooo..###. . . .. . .XXX..@@@@@@@@@@@@@@@@", +"oooooooooooooooooo..#. ..%.. .. .. ..$.. .XX..@@@@@@@@@@@@@@@@@", +"ooooooooooooooooooo....%%%%%.. .. . ..$$$$.. ...@@@@@@@@@@@@@@@@@@@", +"ooooooooooooooooooo...%%%%%%%... . ...$$$$$$$..@@@@@@@@@@@@@@@@@@@@@", +"ooooooooooooooooo..%%%%%%%%%%%%%.. . ..$$$$$$$$$$$$...@@@@@@@@@@@@@@@@@@", +"oooooooooooooooo..%%%%%%%%%%%%%%%%. . .$$$$$$$$$$$$$$$$..@@@@@@@@@@@@@@@@@", +"oooooooooooooo..%%%%%%%%%%%%%%%%... . ...$$$$$$$$$$$$$$$$..@@@@@@@@@@@@@@@", +"oooooooooooo..%%%%%%%%%%%%%%%%..XX. . .##..$$$$$$$$$$$$$$$..@@@@@@@@@@@@@@", +"oooooooooo..%%%%%%%%%%%%%%%%..XXXX. . .####..$$$$$$$$$$$$$$$...@@@@@@@@@@@", +"ooooooooo..%%%%%%%%%%%%%%%%.XXXXXX. . .######..$$$$$$$$$$$$$$$...@@@@@@@@@", +"ooooooo..%%%%%%%%%%%%%%%%..XXXXXXX. . .#######..$$$$$$$$$$$$$$$$...@@@@@@@", +"oooooo.%%%%%%%%%%%%%%%%..XXXXXXXXX. . .#########..$$$$$$$$$$$$$$$...@@@@@@", +"ooo...%%%%%%%%%%%%%%%..XXXXXXXXXXX. . .###########..$$$$$$$$$$$$$$$..$.@@@", +"o...%%%%%%%%%%%%%%%..XXXXXXXXXXXXX. . .#############..$$$$$$$$$$$$$$$....@", +"..%%%%%%%%%%%%%%%%.XXXXXXXXXXXXXXX. . .##############..$$$$$$$$$$$$$$$$...", +"%%%%%%%%%%%%%%%%..XXXXXXXXXXXXXXXX. . .################..$$$$$$$$$$$$$$$$.", +"%%%%%%%%%%%%%%..XXXXXXXXXXXXXXX. . ...###############...$$$$$$$$$$$$$$", +"%%%%%%%%%%%%..XXXXXXXXXXXXXXXX. . ...##############...$$$$$$$$$$$$$", +"%%%%%%%%%%%.XXXXXXXXXXXXXXXX.... . ...###############...$$$$$$$$$$$", +"%%%%%%%%%..XXXXXXXXXXXXXXXX..o.O.. . ..+.@..###############..$$$$$$$$$$", +"%%%%%%...XXXXXXXXXXXXXXX...ooo.OOO.. . ..+++.@@@..###############.#.$$$$$$$", +"..%%%..XXXXXXXXXXXXXXXX..ooooo.OOOOO.. . ..+++++.@@@@@..##############....$$$..", +" .%.XXXXXXXXXXXXXXXX..ooooooo.OOOOOOO...+++++++.@@@@@@..###############...$. ", +" ..XXXXXXXXXXXXXXX..ooooooooo.OOOOOOOO.++++++++.@@@@@@@@...##############... ", +". .XXXXXXXXXXXXX..ooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@...#############. .", +" .XXXXXXXXXXX..ooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@..############. ", +" .XXXXXXXXX..ooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@..##########. ", +" .XXXXXXX...oooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@...########. ", +" .XXXXX..ooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@...######. ", +" .XXX...oooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@...####. ", +" .X...oooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@...##. ", +". ..X.ooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@..#. ..", +"$$..oooooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@@@..%%%", +"$$$$..oooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@@.%%%%%", +"$$$$$...oooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@..%%%%%%", +"$$$$$$$...oooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@.%%%%%%%%", +"$$$$$$$$$$.ooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@.%%%%%%%%%%%", +"$$$$$$$$$$$..ooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@..%%%%%%%%%%%%", +"$$$$$$$$$$$$$..ooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@.%%%%%%%%%%%%%%", +"$$$$$$$$$$$$$$..oooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@.%%%%%%%%%%%%%%.", +".$$$$$$$$$$$$$$$...ooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@.%%%%%%%%%%%%%%%...", +"#.$$$$$$$$$$$$$$$$...ooooooooo.OOOOOOOO.++++++++.@@@@@@@@@..%%%%%%%%%%%%%%....X", +"##..$$$$$$$$$$$$$$$$..oooooooo.OOOOOOOO.++++++++.@@@@@@@@.%%%%%%%%%%%%%%%.%.XXX", +"###...$$$$$$$$$$$$$$$$..oooooo.OOOOOOOO.++++++++.@@@@@@..%%%%%%%%%%%%%%....XXXX", +"######..$$$$$$$$$$$$$$$....ooo.OOOOOOOO.++++++++.@@@..%%%%%%%%%%%%%%%%..XXXXXXX", +"########..$$$$$$$$$$$$$$$...oo.OOOOOOOO.++++++++.@@.%%%%%%%%%%%%%%%%..XXXXXXXXX", +"#########...$$$$$$$$$$$$$$$....OOOOOOOO.++++++++...%%%%%%%%%%%%%%%...XXXXXXXXXX", +"###########..$$$$$$$$$$$$$$$$..OOOOOOOO.++++++++.%%%%%%%%%%%%%%%%...XXXXXXXXXXX", +"#############..$$$$$$$$$$$$.. .OOOOOOOO.++++++++. ..%%%%%%%%%%%..XXXXXXXXXXXXXX", +"###############..$$$$$$$$$. .OOOOOOOO.++++++++. .%%%%%%%%%.XXXXXXXXXXXXXXXX", +"#################..$$$$$$. .OOOOOOOO.++++++++. .%%%%%%..XXXXXXXXXXXXXXXX.", +"..################...$$.. .OOOOOOOO.++++++++. ..%%..XXXXXXXXXXXXXXXX..@", +"oo...################.. .OOOOOOOO.++++++++. ..XXXXXXXXXXXXXXXX..@@@", +"oooo..###############... ..OOOOOO.++++++.. ...XXXXXXXXXXXXXX..@@@@@", +"oooooo..#############. ... .OOOOO.+++++. ... .XXXXXXXXXXXX..@@@@@@@", +"oooooooo..###########. .. ..OOO.+++.. .. .XXXXXXXXXXX..@@@@@@@@", +"oooooooooo..#########. ... ..... ... .XXXXXXXXX..@@@@@@@@@@", +"ooooooooooo..########. .. . ... .XXXXXXX..@@@@@@@@@@@@", +"ooooooooooooo..######. .. .. .XXXXX..@@@@@@@@@@@@@@", +"ooooooooooooooo..####. .. .. .XXX...@@@@@@@@@@@@@@@", +"ooooooooooooooooo..##. ..%.. .. .. ..... .XX.@@@@@@@@@@@@@@@@@@", +"ooooooooooooooooooo.....%%%%. .. .. ...$$.. ...@@@@@@@@@@@@@@@@@@@", +"ooooooooooooooooooooo..%%%%%%.. . ...$$$$$$..@@@@@@@@@@@@@@@@@@@@@", +"ooooooooooooooooooo..%%%%%%%%%%. . ..$$$$$$$$$$..@@@@@@@@@@@@@@@@@@@", +"oooooooooooooooo...%%%%%%%%%%%%%%%. . ...$$$$$$$$$$$$$$..@@@@@@@@@@@@@@@@@", +"ooooooooooooooo..%%%%%%%%%%%%%%%... . ...$$$$$$$$$$$$$$$$.@@@@@@@@@@@@@@@@", +"ooooooooooooo..%%%%%%%%%%%%%%%%..X. . .##.$$$$$$$$$$$$$$$$..@@@@@@@@@@@@@@", +"ooooooooooo...%%%%%%%%%%%%%%%..XXX. . .###..$$$$$$$$$$$$$$$$..@@@@@@@@@@@@", +"ooooooooo..%%%%%%%%%%%%%%%%..XXXXX. . .######..$$$$$$$$$$$$$$$..@@@@@@@@@@", +"ooooooo..%%%%%%%%%%%%%%%%..XXXXXXX. . .########.$$$$$$$$$$$$$$$$..@@@@@@@@", +"ooooo...%%%%%%%%%%%%%%%%.XXXXXXXXX. . .#########..$$$$$$$$$$$$$$$..@@@@@@@", +"ooo...%%%%%%%%%%%%%%%%..XXXXXXXXXX. . .###########.$$$$$$$$$$$$$$$$..@@@@@", +"o...%%%%%%%%%%%%%%%...XXXXXXXXXXXX. . .#############..$$$$$$$$$$$$$$$..@@@", +"..%%%%%%%%%%%%%%%%..XXXXXXXXXXXXXX. . .###############.$$$$$$$$$$$$$$$$..@", +".%%%%%%%%%%%%%%%..XXXXXXXXXXXXXXX.. . ..###############..$$$$$$$$$$$$$$$$.", +"%%%%%%%%%%%%%%..XXXXXXXXXXXXXXX... . ...###############.$$$$$$$$$$$$$$$$", +"%%%%%%%%%%%%..XXXXXXXXXXXXXXX.. . ..################.$$$$$$$$$$$$$", +"%%%%%%%%%%%..XXXXXXXXXXXXXXX... . ...###############..$$$$$$$$$$$", +"%%%%%%%%%..XXXXXXXXXXXXXXX..oo... . ...@...###############.$$$$$$$$$$", +"%%%%%%%..XXXXXXXXXXXXXXXX..ooo.OO. . .++.@@....##############..$$$$$$$$", +".%%%%..XXXXXXXXXXXXXXXX..ooooo.OOOOO. . .+++++.@@@@@..################..$$$$.", +" ..%.XXXXXXXXXXXXXXXX..ooooooo.OOOOOO.....++++++.@@@@@@@..################.$.. ", +" ..XXXXXXXXXXXXXXXX.ooooooooo.OOOOOOOO.++++++++.@@@@@@@@...###############.. ", +" . .XXXXXXXXXXXXXX..oooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@...#############. . ", +" .XXXXXXXXXXX...oooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@..###########. ", +" .XXXXXXXXXX...ooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@..##########. ", +" .XXXXXXXXX..ooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@..########. ", +" .XXXXXXX..ooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@...######. ", +" .XXXX....oooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@..####. ", +" .XXX.o.oooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@...##. ", +". .XX...ooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@.... ..", +"$. ....ooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@@....%%", +"$$$$.ooooooooooooooooooooooooo.OOOOOOOO.++++++++.@@@@@@@@@@@@@@@@@@@@@@@@..%%%%"}; diff -uNr gnome-0.11/programs/freecell/image/Cardback4.xpm gnome-0.12/programs/freecell/image/Cardback4.xpm --- gnome-0.11/programs/freecell/image/Cardback4.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Cardback4.xpm Mon Jan 19 10:48:05 1998 @@ -0,0 +1,175 @@ +/* XPM */ +static char * hand_xpm[] = { +/* width height ncolors chars_per_pixel */ +"79 123 46 1", +/* colors */ +" c white", +". c #D9D9D9", +"X c #DDDDDD", +"o c #D1D1D1", +"O c #D7D7D7", +"+ c #CDCDCD", +"@ c #C5C5C5", +"# c #C9C9C9", +"$ c #C1C1C1", +"% c #747474", +"& c #585858", +"* c #828282", +"= c #6C6C6C", +"- c #686868", +"; c #7C7C7C", +": c #A8A8A8", +"? c #9C9C9C", +"> c #B9B9B9", +", c #BDBDBD", +"< c #ACACAC", +"1 c #4A4A4A", +"2 c #545454", +"3 c #525252", +"4 c #404040", +"5 c #3D3D3D", +"6 c #929292", +"7 c #B5B5B5", +"8 c #A0A0A0", +"9 c #787878", +"0 c #949494", +"q c #707070", +"w c #646464", +"e c #4C4C4C", +"r c #444444", +"t c #383838", +"y c #A4A4A4", +"u c #606060", +"i c #B0B0B0", +"p c #888888", +"a c #8C8C8C", +"s c #5C5C5C", +"d c #989898", +"f c #343434", +"g c #848484", +"h c #E1E1E1", +"j c #E4E4E4", +/* pixels */ +" ", +" ..XX..oXX..o..XX..oXX..XX..oXX..oX....XX..oXX..oXX..o..XX..oXX..o..XX..oXX..o ", +" X...o.X.XX..O.O+oo+OOX...oo+OO.ooO.oX...oo+OO.ooOO.ooX...oo+OO.ooX...oo+OO.oo ", +" O...o..XX..oXX..o.OO+O...o.OO+ooo+ooO...o.OO+oooO+oooO...o.OO+oooO...o.OO+ooo ", +" ++++o.X.XX..OO.oo+@##++++o+@##+@##+@++++o+@##+@###+@#++++o+@##+@#++++o+@##+@# ", +" #oO.o..XX..oX+oooo+o+#oO.oo+o+o+#+o+#oO.oo+o+o+#o+o+##oO.oo+o+o+##oO.oo+o+o+# ", +" @O+o+X...oo+O#+@#@+oo@O+o+@+oooO#ooO@O+o+@+oooO#oooO#@O+o+@+oooO#@O+o+@+oooO# ", +" ##+O#O...o.OO+o+##@o###+O##@o#oo$#oo##+O##@o#oo$o#oo$##+O##@o#oo$##+O#.X.XX.. ", +" oo+.#++++o+@#ooO#.Oo+oo+.#.Oo+o.o+o.oo+.#.Oo+o.oo+o.ooo+.#.Oo+o.ooo+.#..XX..o ", +" +++o+#oO.oo+o#oo$#+oo+++o+#+oooo+ooo+++o+#+oooo+oooo++++o+#+oooo++++o+X...oo+ ", +" oo+.O@O+o+@+o+o.o#oo+oo+.O#oo+#+++#+oo+.O#oo+#++o+#++oo+.O#oo+#++oo+.OO...o.O ", +" #+#+###+O##@oooo+Oooo.+oo..O..o%&*=-==;:?>+.O.......o,>,<,#$o....#+#+#++++o+@ ", +" o#$o+oo+.#.Oo+#++o#+,@+#o.X..123415133=*67+.o.Oo.O.o>;*890,$#....o#$o+#oO.oo+ ", +" @o@@$+++o+#+o..Oo#$$<$:$o..Xq&&wer5tr42q*y@O....oOO$0q%-u9,@+OooO#+.##34&e4r1w=;>oOo*-w22=4t5f51s*7@o+OO2&2145t543&%:@##oO.oooo+.O#o ", +" o+$@+@o+oOo#+r33r4t4rr229<++.=sw-%-&tt5rr2a,#+ooOs222t4555r3=i,#@O+o+@+oooO#+ ", +" +#,$@#$o@o#$&w&er4ft4r13;d@@o2%y8a%eftf451w:+ooo>s1*s11ttt4ew0$+##+O##@o#oo$$ ", +" +,$##>@oo++Ou-u121fft541&6$@+17?:0=e5tftr1=,#oOo9;s%2ue5t54rsd@ooo+.#.Oo+o.oO ", +" ,,$7,:$@##@os-&22e1tfttr3q:7@r@:9;w45tf55rw:#+Oo3da;e-24t5t42q>#+++o+#+oooo+, ", +" $,,$@>,@#+@$e=2e3rrtfftte-d7,$>i7?<,i<@a=s=w34tfff42g8d$a:-s&r4ffft520+++O4#o#$o++####+>> ", +" >i::>:apa8da>2=6gg2effff5rw;?$d,-q1rtfftf54a$+#or9 ", +" $7:78%uw-%;9g>*%q=wefff55r&9?<*y71ue5fffftr=,+oo2$d=4rfttt551q>#+@+##@@#,$$8< ", +" <@oOs:@a2e55ffft1%>+##@$#,>#7$7:0 ", +" <:y892e22&w=9q4p*2r4tfftf412qds+>g33rtfff51wy++#wy$wsettfff4e=>#@o$#@,,#,,>ya ", +" >?i>###,,@,>><>4t5f11r3&&s-q%?qw&ttfft5t1-q1+,qw14tffff4&d#o+?#>71&5ffff5rw?7@$,,$,:<0?e4r5fffft20>#+>+0=se5tfft54q:i,,>7$7d?9p09- ", +" :&24rrfftt44e2e3ayssreffft54r24o,%554fffff51p,$si:=sr4tffftt3w68,?aa;%9w2 ", +" ?&2re14fttft43e3qip=ee5ffff5rr57@-r2sfffff54q074y?=s254tfft5rwayd?6yya%;=sw2e ", +" >e34rrrtfttt44re=0?&1erfftt5r4fuiuer2fffff5rq7#3%urer54fftt4e90::8:<0p9*9-qs2 ", +" drwr&1rett5ft4111?>9srtfffftt5fw=2rrq4fffff4qd,2w231et5ffft52qy:dyy?:g%;%%u&3 ", +" 8:=ree&r4fft411r1p$93r44tfftt559:?=sw1fffftr=7qiyr&q2tftff5429yiy:d?y;*g-sw2& ", +" ??1se2w&5f5ft54rru:pu112ftftttt,#p?q21tffff4wy5p0w1w&55ffft4s*yy0dd00q;===213 ", +" <:8a-9*25ttft555r3>,=er145ffftt$.>,%924ffft4&:e7?;pg1tfffft4&9?6:d0a0*qq&2211 ", +" <8?10=d-t5ftttt44t0pp-e34ttfft5dOO@6w15ffft4spw#aygpq4144ttft545ua-9etwrtfft5y@#,6%e5tfft5206$i:a=5ttfff51up6:00;g;q==&3e11 ", +" y:66eqw4&234t5t5t5re@8wwe44fftts@@p:q35tfft4eg>@088y48-s&&15ftf5t5s$,d?,u3tfff5d$$;92ttffft4r$@@aa=e5tff542%0y809a;=se3&r444 ", +" yyy:gg-*d3ue45fftt5&>o#$?q3tffffpyyyqe5fffft45o+i%?w44ftf442;dd?d;a=sef55tf5t ", +" ::y?dgr=6wu214tftt53%+@>,*95ffffu::yerfffftf5t@>>0?=15ffftrs0yi8ag9wsf4454tft ", +" y7:??a*-yd9=345ttf5ta,++@a;1ffffrd<*=effffff5;@>ypy=1tffft4w68::0a9&f51w42tf5 ", +" 7>8?0y640i;;1454tttt&0$,,y02tfft1;7w&-ffffff19?d9=ww15fff5rua8y8a*151sq=q1tf5 ", +" 7e=qs45ffftq$>+@8e5ftf1q$0w2453239*q99w21e5fttf5rs*08a;5&q9wg@y=55t ", +" yi$0454*ps%q214ew-%q=%=9q&2e5tt5t5rwpa865uqgw=*@:wfft ", +" y>:dp&55fttqg:8$@g=%a*q2=2e2up*p*y0<7;-s155fft4rs9*842=d;d0?+ytttt ", +" ?0ay0qwe213u*p%pa8:d?s2r55ftft5squ=r&p0;><$O9tfft ", +" g0p:i88<<<7&@,08y155frs9*ay=-27y**u3-r2&q?0d%$a-*s2rtttfftt4r411s7>6<@#o4tttf ", +" 9;9?0a0<7<8ep>#=7%sre@d:w3s=wqi$ia%3&e4-wg0d:?d#@7queu42ddy8?:p8=q&15fttft4&-=-216ya<>74ft5t4 ", +" dg09;9a0pdg0uO$+7<7?6d,dy$,ssa>o7>ps=r&qp*6d,y00p2-e55ttf541wwr2s9$,y7%4f5554 ", +" 6dp8dda?8dy:%o.+io+$y7y8,#O:u%?#$:a%q33*@?7$$+>pu&3e4tttt453uw=agq:ydq15555r4 ", +" pp9dg08:y224t454rr ", +" ?0a6dpd::d7aypi..O#>a,+o7@#+:3;g,>a=qgd<>?ypqwwr%s1=2r455t541-#+#Ood;25tt5r41 ", +" g0ppp98dy:8p0sO.o><,,@>$>7#$,9esp*22@,?70*%q*;qyggsrt5t4tft4r$o>7o$%wrf5t5411 ", +" 9;9a0pdgy::08w..+g$#@#@$1e-126$@**&e288$,$7aq2r5t5tt55=,+o<.?istft555t4 ", +" 8dda?8dyd>yd?2oOO:+$.+@,$+$@o$wer2<8,>aq&3d:,%-&rr54tt5:+.o$#,grtt454r13 ", +" 6dpd::d7<>:d:?#XX@O.Oo@#++o>;15ttt44ee& ", +" g*g00ada0><88g>Xh..$$:##$,$*;2r542w>+.o$p2e5ttt541e& ", +" q;;pppp008y0886XX.O,O+$+#,@6=oipa&1;,@i+.#XhX...>$$$:,q141q1qy#O,as5ttttr112u ", +" *q**dgpqpy06ad=Xhh..#@@i#@$#w0%3-*,p$$>#O+XXX.XX#,>.$6210%2rs0o>$?155t54r12&- ", +" %ga0yad60yy?p8wXhX.o+$o#@O$+$16s9O,d@@,.$OhhO..#,OO+79..+=wuwd:7%w15tt54r32uq ", +" ;p*086gap80?*6p.hX+o@@#@o+.o+a&d9$O+X.@+<.hhXoO@.#o@-XhX7$7gs<00w1r4t54rr3uw= ", +" *p9%*aa*aa?ada;#XXo+++oO@#,$+:4q=w,i.+>#6hhO>Xo+XO2XX..XOoX#9i$q144tf5441sw== ", +" ga;*g9p*98a*0aa#X..#,,o.#oi#y$;r0a,:+.+?qXX.OO+OysXX.OOX..X.#d#w1545t54re&uw= ", +" %0*6p**pp?6*?a?,XX..+o@.O,OO,#,dw9i7X..oXX.o.h..XhXXXXX.d2455r1111sww-q= ", +" ;pp;a%pggd0pdaa%oXXX.+OX..#.o.7O##$=$O.oXhXOXOXX.XXh.XhXXXX++q315rrrre2uwq=qu ", +" q%g=q%p9*90pp;g*OXXh.@o..Oo.$$.O@$@8=@o@Xh.O.OOXXXhhXhXXXX.X+w34t41131euw-w%% ", +" q-ww%%==-;9q%9=q#XXXOO.@.oO+o.o.O#o$q:>@+.#....o..XXXX.XXX.O*345t45411e2&u=-& ", +" w-=--sw-wq==q;9=aXhX#+OOO.O.,#X.@.$+*77<;O7o#oXX.X.XX.X.O.o>-155t44r4r33&2sus ", +" 2-&uww-wq%;9q%=q=.X.oo@O...oooXoOOOo7.@#d.>,+oo.X.X.......+;3555t5444ee2e&u&& ", +" w-=s===9-q;;*;q9w#XX.#ohOXXOX..XXhhX.X+.+Xo#@#..o.XXO.#.#.9-e444rr441e2ws-ssu ", +" uwusq=w=q9;q*%pqqyXhho#OhhhhO+..Xhh.XX.h.d@@oO+,......XXo+%2r44544r1r1e23ssw& ", +" uw-uuu==q;;%;9;=90XhX.O.XhXX.ohhhhhhhhjhXXoO+OO+O..o..XOy8;*9sr11e3111e111ee322s&232 ", +" 2&&ss3ssuqq-wq-suse&*7XhhhhXhhhhhXX.X..a9&?:@80=ag=%2w211123rer1r4r142ee2es&3 ", +" &&es2s2ssu=u&su&222erd.XXXXh.hXhhhXXXO$6%&3pdq;qs23214e11ee11e111e11ee322&2e2 ", +" 32&33e3e&22&&213&see4q#XX.XXXX.hXXX.+7=%u1rwsw22rr4r4411eeee1e1e1r4111112ee12 ", +" e333233e&s&ee&&113eer=?+.XXX.Xhhh.X,g0uwer1-2311e44r4rr2e123ee14rrr1re113e332 ", +" 31e22e11eseee32e21314wq=<.XXXXhXX7<7q2w;&1r32eer1541r1re1rr1111114141e32213ee ", +" e2r2r11rr33e1ere11141=?<9++#OXO>:yqe2es=451ee14rt44144e31r4111e15rre11ee3r3ee ", +" e21er3r1ee1ee1e23ee43s9yOio@>g2wwqs22up&1e1124r45t5r41re1r1rrr11414eeer1e2211 ", +" e1rr22e11r12442r11re12=9.+i?p-wu2&31w;-u1341rr5445rr5r411114r1r45r11e121e3e22 ", +" 114r2e1e33eee23eerr1e3a>y>Op&s22s-2s-w=sr41r11rrt4rr41ee1rr141e3r12444eeeseee ", +" 1err1e3r1111231r1eer1eq>.XO$,*%e3e2ew%u33r4r3r1e4tr5rrr1r11rrrr13eeer4ree1e11 ", +" 31e2rr13esee31e22e11e31e22e11eseee22e11esee22e1111eseee1r3r1e1e311122e11eseee ", +" e2r21e31133eee1rr141e3r1241e3e33e12e1e3e33e2e1e3e3e33e1322e1111esee3e1e3e33e1 ", +" e21e11esee1ee114r11rr13eeee23ee1eee2e23ee1e1e3r123ee1eee2e1e3e3ee1rr141e3r124 ", +" 1rr1e3e33124e1err3r1e3111241e3r124r1e1rr141rr13e4e3r124e1e3r123e114r11rr13eee ", +" 14r123ee1eee1e3r12411esee31rr13eeer1114r11r1e311r141e3r3rr13e11e1err3r1e31112 ", +" err311ese1122413eeee3e33e1rr141e3r121err3r111eser11rr13e1e311e3e31e22e11esee3 ", +" 1e22e11esee3ee3111223ee1114r11rr13ee31e22e1e3e33r3r1e31e11ese23ee2r2e1e3e33ee ", +" 2r2e1e3e33ee12esee311ese1err3r1e3111e2r2e1e23ee122e11esee3e331e3e21e2e23ee1ee ", +" 21e2e23ee1eee3e33eee3e3331e22e11ee1rr141e3r11ese2e1e3e3123ee1141e3r12411eseee ", +" 1e22e11eseeeee1rr141e3r124r2e1e3e114r11rr13eee21e2e23ee111ese11rr13eeee3e33e1 ", +" 2r2e1e3e33ee1114r11rr13eee1e2e23e1err3r1e311121e22e11esee1err3r1ee1rr141e3r12 ", +" 21e2e23ee1e111err3r1e31112e22e11e31e22e11esee31rr141e3r12441e3r12414r11rr13ee ", +" 1rr141e3r121e31e22e11esee3r2e1e3ee2r2e1e3e33eer1241rr13eee1rr13eeeerr3r1e3111 ", +" 14r11rr13ee31e2r2e1e3e33ee141e3r1e21e2e23ee1ee3eeer1e31112r1e311121e22e11esee ", +" ee1rr141e3re2e21e2e23ee1ee11rr13e31e22e11eseee1112e11esee3e11esee32r2e1e3e33e ", +" 3114r11rr13e231e22e11eseee3r1e311e2r2e1e3e33e1see31e3e33ee1e3e33ee21e2e23ee1e ", +" e2r2e1e3e3331e2r2e1e3e33e12e11esee32e11esee33e33eee23ee1eee23ee1ee1e22e11esee ", +" e21e2e23ee1e2r2e1e3e33e2r2e1e3e33eee1e3e33ee3ee1eee11eseeee11eseee2r2e1e3e33e ", +" e1rr141e3r1e21e2e23ee1e21e2e23ee1ee2e23ee1ee1eseee1e3e33e11e3e33e121e2e23ee1e ", +" 114r11rr13ee1rr141e3r131e22e11eseee2e11eseee3e33e1e23ee1eee23ee1ee1rr141e3r12 ", +" "}; diff -uNr gnome-0.11/programs/freecell/image/Cardback5.xpm gnome-0.12/programs/freecell/image/Cardback5.xpm --- gnome-0.11/programs/freecell/image/Cardback5.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Cardback5.xpm Mon Jan 19 10:48:17 1998 @@ -0,0 +1,129 @@ +/* XPM */ +static char * Ca2_xpm[] = { +"79 123 3 1", +" c white", +". c #3CF349245D75", +"X c Grey", +" ", +" ", +" ", +" ", +" ", +" ............................................................... ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" .XX...............................................................XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX.XXXX....XXXXX.....XXXXX.....XXXXX.....XXXXX.....XXXXX....XXXX.XX. ", +" .XX.XXX.XXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXX.XXX.XX. ", +" .XX.XX.XXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXX.XX.XX. ", +" .XX.XX.XXXXX..X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX.XXX.XX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXX....XXX.XXXXXXXX.XXXXXXXX.XXX....XXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXX.XXXX.XXX.XXXXXXX.XXXXXXX.XXX.XXXX.XXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.XX..XX.XXX..XXXX.X.XXXX..XXX.XX..XX.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.XXXX.XXXXX....XXX....XXXXX.XXXX.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.XXX.XXXX..XXXXXXXXXXX..XXXX.XXX.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXX.XX...XXXX.XXXXXXXXXXXXXXX.XXXX...XX.XXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XX.XXXXXXX.XXXXXXX.X.XXXXXXX.XXXXXXX.XX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXX.XXXXXXX.XX..XXXX.XXXX..XX.XXXXXXX.XXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXX.XXXXXX.XX...XXX.XXX...XX.XXXXXX.XXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXX.X.XXXXX.XXXXX.XX.XX.XXXXX.XXXXX.X.XXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XX.X.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.X.XX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXX.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.XXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XX.XXXXXX.XX.XXX.XXX.XX.XXXXXX.XX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.X.XXXXXXX..XXX.X.XXX..XXXXXXX.X.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.X.XXXXXXXXXXX..X..XXXXXXXXXXX.X.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXX.XX.XXX.XXXXXXX.XXX.XXXXXXX.XXX.XX.XXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXXX.XXXX..XXXX..XXXXX..XXXX..XXXX.XXXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXX.XXXXX.....XXXXXXXXX.....XXXXX.XXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..X.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXX....XXXXXXXXXXXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXX.XXX.X.XXXXXXXXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXXXXX....XX.XX...XXXXXXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXX.XXX.X.X.XXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXX.XXX.X.X.XXXXXXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXX.....XXXX.XXX.X.X.XXXXXXXX.....XXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXX.XXXX..XXX.XXX.X.XX...XXXX..XXXX.XXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXX.XXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXX.XXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XXX..XX.XXXXXXXXXXXXXXXXX.XX..XXX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXX.XXX.XXX..XXXXXXXXXXXXX..XXX.XXX.XXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXX.....XXXXX.............XXXXX.....XXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXX..XXXXXXXXXXXXX..XXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXX.XX..XXXX.XXXX..XX.XXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXX..XXXXX..X.X.X..XXXXX..XXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXX.X.X.X...XX..X..XX.X.X.XX..X..XX...X.X.X.XXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXX..XXXXX..X.X.X..XXXXX..XXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXX.XX..XXXX.XXXX..XX.XXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXX..XXXXXXXXXXXXX..XXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXX.....XXXXX.............XXXXX.....XXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXX.XXX.XXX..XXXXXXXXXXXXX..XXX.XXX.XXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XXX..XX.XXXXXXXXXXXXXXXXX.XX..XXX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXX.XXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXX.XXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXX.XXXX..XXXX...XX.X.XXX.XXX..XXXX.XXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXX.....XXXXXXXX.X.X.XXX.XXXX.....XXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXXXXXX.X.X.XXX.XXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXX.X.X.XXX.XXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXXXXXXXXXXXX...XX.XX....XXXXXXXXXXXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXXXXXXXXXXXXXXXXXX.X.XXX.XXXXXXXXXXXXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXXXXXXXXXXX....XXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..X.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXX.XXXXX.....XXXXXXXXX.....XXXXX.XXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XXXX.XXXX..XXXX..XXXXX..XXXX..XXXX.XXXX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXXX.XX.XXX.XXXXXXX.XXX.XXXXXXX.XXX.XX.XXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.X.XXXXXXXXXXX..X..XXXXXXXXXXX.X.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.X.XXXXXXX..XXX.X.XXX..XXXXXXX.X.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.XX.XX.XXXXXX.XX.XXX.XXX.XX.XXXXXX.XX.XX.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXXXX.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.XXXXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XX.X.XXXXXX.XXXX.XX.XX.XXXX.XXXXXX.X.XX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXX.X.XXXXX.XXXXX.XX.XX.XXXXX.XXXXX.X.XXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.XXX.XXXXXX.XX...XXX.XXX...XX.XXXXXX.XXX.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXX.XXXXXXX.XX..XXXX.XXXX..XX.XXXXXXX.XXXXXXX.X.XXX.XX. ", +" .XX.XXX.XX.XXX.XX.XXXXXXX.XXXXXXX.X.XXXXXXX.XXXXXXX.XX.XXX.XX.XXX.XX. ", +" .XX.XX.XXX.XXXXX.XX...XXXX.XXXXXXXXXXXXXXX.XXXX...XX.XXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.X.XXX.XXXX..XXXXXXXXXXX..XXXX.XXX.X.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XXXX.X.XXXX.XXXXX....XXX....XXXXX.XXXX.X.XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXX.XX.X.XX..XX.XXX..XXXX.X.XXXX..XXX.XX..XX.X.XX.XXXX.XX.XX. ", +" .XX.XX.XXX.XXXXXX.XXXX.XXX.XXXXXXX.XXXXXXX.XXX.XXXX.XXXXXX.XXX.XX.XX. ", +" .XX.XXX.XX.XXX.XXX....XXX.XXXXXXXX.XXXXXXXX.XXX....XXX.XXX.XX.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXXX.XXXXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXXX.XXXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XX. ", +" .XX.XX.XXX.XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX...XXXXXXX.XXX.XX.XX. ", +" .XX.XX.XXXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXX..XXXX.XXXX.XX.XX. ", +" .XX.XX.XXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X.XXXXXXX.X..XXXXX.XX.XX. ", +" .XX.XX.XXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXX.XX.XX. ", +" .XX.XXX.XXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXXX..X..XXXX.XXX.XX. ", +" .XX.XXXX....XXXXX.....XXXXX.....XXXXX.....XXXXX.....XXXXX....XXXX.XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX. ", +" .XX...............................................................XX. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", +" ............................................................... ", +" ", +" ", +" ", +" ", +" "}; diff -uNr gnome-0.11/programs/freecell/image/Makefile.am gnome-0.12/programs/freecell/image/Makefile.am --- gnome-0.11/programs/freecell/image/Makefile.am Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Makefile.am Mon Jan 19 10:48:17 1998 @@ -0,0 +1,8 @@ +pixmapdir = $(datadir)/pixmaps/cards +pixmap_DATA = Background.xpm Cardback3.xpm Ranks.xpm \ +Cardback4.xpm Suits.xpm Cardback1.xpm \ +Cardback5.xpm Cardback2.xpm Pictures.xpm + + + +EXTRA_DIST = $(pixmap_DATA) diff -uNr gnome-0.11/programs/freecell/image/Makefile.in gnome-0.12/programs/freecell/image/Makefile.in --- gnome-0.11/programs/freecell/image/Makefile.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Makefile.in Wed Jan 21 21:14:19 1998 @@ -0,0 +1,208 @@ +# Makefile.in generated automatically by automake 1.2d from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997 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 = /bin/sh + +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 + +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@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOME_LIBS = @GNOME_LIBS@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +X_LIBS = @X_LIBS@ +l = @l@ +x_libs = @x_libs@ + +pixmapdir = $(datadir)/pixmaps/cards +pixmap_DATA = Background.xpm Cardback3.xpm Ranks.xpm \ +Cardback4.xpm Suits.xpm Cardback1.xpm \ +Cardback5.xpm Cardback2.xpm Pictures.xpm + +EXTRA_DIST = $(pixmap_DATA) +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 = --best +default: all + +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps image/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) $(pixmapdir) + @list='$(pixmap_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(pixmapdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(pixmapdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(pixmapdir)/$$p"; \ + $(INSTALL_DATA) $$p $(pixmapdir)/$$p; \ + fi; fi; \ + done + +uninstall-pixmapDATA: + $(NORMAL_UNINSTALL) + list='$(pixmap_DATA)'; for p in $$list; do \ + rm -f $(pixmapdir)/$$p; \ + done +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = image + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: + @$(NORMAL_INSTALL) + +install-data: install-pixmapDATA + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: uninstall-pixmapDATA + +all: Makefile $(DATA) + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + $(mkinstalldirs) $(pixmapdir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-generic + +clean: clean-generic mostlyclean + +distclean: distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: default uninstall-pixmapDATA install-pixmapDATA tags distdir \ +info dvi installcheck install-exec install-data install uninstall 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: diff -uNr gnome-0.11/programs/freecell/image/Pictures.xpm gnome-0.12/programs/freecell/image/Pictures.xpm --- gnome-0.11/programs/freecell/image/Pictures.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Pictures.xpm Mon Jan 19 10:48:25 1998 @@ -0,0 +1,152 @@ +/* XPM */ +static char * Pictures_xpm[] = { +"196 138 11 1", +" s None c None", +". c black", +"X c #FFFFD75C0000", +"o c #F3CEE38DD34C", +"O c #2081410330C2", +"+ c #BAEABAEABAEA", +"@ c white", +"# c #30C2A289C30B", +"$ c red", +"% c #30C2C30BA289", +"& c #CF3C00000000", +"....................................................................................................................................................................................................", +". ..X..X.X.X.X.X.X..X..X.X..X.. .. ...X.X.X...X.X...X...X.X.X... .. ..XX.X.XX..XX.XX..XX.X.XX.. .. ...XX...X..X...X..X...XX... .", +". ..X..X.X..X..X.X.X.X.X..X.. .. ...X.X.X...X...X.X...X.X... .. ..XX.X.X..X.X.X..X.X.XX.. .. ...XX..X..X...X..X..XX... .", +". ..X..X.X.X.X.X..X..X..X.. .. . ...X.X...X.X...X...X.X... ... ..XX.XX..XX.XX..XX.XX.. .. ...XXXX..XXXXX..XXXX... .", +".. ...X..X..X..X.X.X.X..X.. .. .X. ...X.X...X...X.X...X... .... ..XX.X..X.X.X..X.XX.. ... ..................... .", +"... . ..X....X......X...X.. .. ... ..................... ..... . ..XXX..XXXXX..XXX.. .... .................... .", +".X.. . ...XXXXXXXXXXXXXXX.. .. ... .................... ..... .. .................. ..... ..X.X.oooooooooooo.. .", +"..X.. . . .................. .. .X. .oooooooooo.X.X.X.X. ..... .X. ................. ..X.. .X.X.X.oooo.ooooooo.. .", +"...X.. .. .................. .. .X. .ooo....ooo.X.X.X.X. ..... .XX. .O.O.O.oooooooo. ...X. .X.X.X.....oooo...... .", +"....X.. . .ooooooooooo.O.O.. .. ... .oo.oooo..o.X.X.X.X. ..... ..XX. .O.O.O.oo....o. ..X.. .X.X.X.ooooo.o.oooo.. .", +".XXXXX.. .ooooooooooo.O.O.O. .. ... .oo....oooo.X.X.X.X. ........XX. .O.O.O.ooo..oo. ...X. . .X.X.X......oo.o..... .", +"......... ...ooo.....o.O.O.O. .. .X. .ooo..o.ooo.X.X.X.X. ..X.X.X..X. .O.O.O.oo.o.oo. ..X.. .. .X.X.X.o...ooo.o...X. .", +".XX. .oo.o.oooooo.O.O.O. .. ... .oo....oooo.X.X.X.X. ..X.X.X.X.. .O.O.O.ooo...oo. ...X. .. .X.X.X.ooo.ooo.ooo.X. .", +".XX. ....ooo....oo.O.O.O. .. .X. .ooooooooooo.X.X.X.X. ..X.X.X..X. .O.O.O.ooooooooo. ..X.. .X. .X.X.X.ooooooo.ooo.X. .", +".XX. ..oo.oo..ooo.O.O.O. ...X.X. ...ooooooooo.X.X.X.X. ........XX. .O.O.O.oo..oooooo. ...X. .X. .X.X.X.oooooooo.oo.X. .", +".XX. ...o.oo...oo.O.O.O. .. .X. .oo..oo.ooo.X.X.X.X. ..... .XX. .O.O.O.oo.ooo..o.. ..X....XX. .X.X.X.oooooo...oo.X. .", +".XX. .oo.oooooooo.O.O.O. .. ... .oooo.oo.oo.X.X.X.X. ..... .X. ..O.O.O.oooo...oo. .....XXX. .X.X.X.ooooooooooo.X. .", +".XX. .oo...oooooo.O.O.O... .. .X. .....o..ooo.X.X.X.X. ..... .. .OO..O.O.ooooooooo. . . ..X.XXX. ...X.X.X.ooo.ooooooo.X. .", +".XX. .ooo.ooooooo.O.O...O. .. ... ...ooooooo.X.X.X.X. ..... . .O..O.O.O.oooooo.... .... ..XXXX. .XX.X.X.X.oooo.....o.X.... ..", +".XX. .oooooo.oooo.O...O.O. .. ... .ooooooooo.X...X... ..... .O.O..O.O...oooooo... . .. ...X.. ....X.X...ooooo..ooo.XX.XX. ...", +".XX. .o....ooooo.O.O.O.O. .. .X. .oooooooo....X...X... ..... ...OO.O.O.O..oooooo. . . .+.. ..... .XXXX..@@..oooooooo.@.XX.X. ....", +"..... .oo..ooooo..O.O.O.. .. .X. ..ooooo..X.X...X...X. ..... ..@........@.@...ooo.o. ..+......+. ...X. .@....@@@@@...ooooo.@@@.XXX.. ..X.", +".o.oo. ..ooooooo...OOO..... .. ... ............@...@... ..... .......................... . .+.. ..XX. ..@@.@@..@@@@@.......@@@.....@.. .XX.", +"....oo. ...#..oooo...#........... .. .... ...@@@@@@@@@@@@@@@@@...... .............$$$$$$$$$$$$$$$$$$$.. . .. ..X.. .%..@@..@@...@@@@@@@@@...@@..@@.... .X..", +".oo.oo....##.#......######....$..... ...ooo.. ..@..@..@..@..@..@..XXXXX... ..........$...$$$.$$.$$$.$.$$$.$$.. . . ..... ...%...@@..@@@.........@@@..@@........ ....", +"....oo...##...@@@.....##....#.$..#.... ..o......@@.@@@@@@@@@@@@@@@@.X...X.##.. ..........$.$..$$$...............$$.. . . ... ..X...$$..%...@@@...@@@@@@@@@...@@@.....%......X..", +".oo.o.....##..@@@@.#......##.$...#.#.... ....oo..$.....................X...X.#..#... .......#..$$$...$$$$$$$$$.$$$$$$$$$$... . .+.. ..XX..$.$..%....@@@@.........@@@@..............XX.", +".....o...##...@..@.###..###.$$$..#.#.#.... ....o...$$..##.@..@...@...@....XX.XX...##..#. ......#.#..$$$...$$..............$$..$...+...+. .....$.$$$..%.......@@@@@@@@@.........%%%%......X.", +".XX.o.#...##..@@@@..######..$.$..#......#... ..X...o.$.$.#.##.....@...@...@..XXXXX..##..##... ....##.#...$$$.$..$$.@@@.@@.@@@.$$..$@....+.+. ..XX.$..$.$..%.%.%................................", +".XX....#.##...@@@@....##...$$$$..#..#....#....XX..o.$$..######..@...@........X...X.##..##..##. ...#..#...$$.$$$...$$.@@@..@@@.$$..$$$.$.#... .....$.$.$$$..%.%.%.$...$....$..$..%%%%%%%%%%...X.", +".XX.....#.#.#.@..@.........$.$...#......#.#.@.XX...$$...###.............#....X...X.#..##..##.... ..#..#....$$$..$$$$.$$.@.@@.@.$$..$$.$$$..#.. ..XX.$..$.$.$..%.%.%.$...$.$..$................XX.", +".XX..#...###..@@@@.#......$$$$$..#.#.#...#.@@.XX...$..##.##..##.#####.#.#.##.XX.XX...##..##..##......#.....$$$$$.$$...$.@@..@@.$...$.$$.$.#..... .....$.$$$.$$.$.%.%.%.$...$.$..$...%%%%%%%%%...X..", +".XX.#.#...#...@@@@.###....$.$.$..#.#.#..##@@..XX..$..##...#.#.##.##.##...##..XXXXX.###..##......#...#......$$$$$$$$$...$.@..@.$...$$$.$.$..#.#......XX.$..$.$.$..$.%.%.%.$...$.$..$..%%%%%%%%%......", +".XX....#.....@@..@..###.$$$$$$$..#........@@@.XX....##..#..###....##..#.#..#.X...X.#...#....$$.##..#.......$$$$$$$$$$..$.@@@@.$...$$$$.$$.#..#.@........$$.$$$..$...%.%.%.$...$.$................X..", +".XX..#..#....@@@@.#...#..$.$.....#..$....@@@@.XX..###..##..###..#..###...###.X...X...#..$.$$..$.#..........$..$.$$.$....$.@@.$...$$$$$$.$..#.#.@....XX..$.$.$.$..$...%.%.%.$..$..$...............XX.", +".XX.#....#.#.@@@@..#...$$$$$$.#..#......@@..@.XX......#...#.##.#....#..#..##.XX.XX.##.$$$..$$$$.#.............$$$$$.$$..$.@@.$...$$$$$....#..#..@....X...$$$.$$.$...$%..%.%.$..$..$..%%%%%%%%%%...X.", +".XX....#..#..@..@.#.#.$.$....##..#.$....@@@@@.XX..#####.#.#..#....##.#######.XXXXX...$$.$$..$$..#...........@.@$$$$.@$...$$$$...@$$$$$..@..####..@......$.$.$.$..$..$$%..%.%.$..$...................", +".XX.#..#....@@@@@..#..$$$$$.#.#..#..$$.@@@@@..XX..##.....##.....$$.##..............$$.$$$..$..$.#..........#.#.$$$$$......$$....$$.$$.$...#..#.@.....X.$.$.$$$..$.....$%.%..%.$..$...%%%%%%%......X.", +".XX....#..#.@@@@..##.$.$...##.#...$$$$.@..@.#.XX..#..##.###...$$.$$.#..@.@.@.@.@..$.$$$.$$.$$$$.#.........#.#.#.$$@.......$$...$$$$$$$$....#.#..@...XX....$.$.$..$....$$%.%.%..$..$..............XX.", +".XX...##..#.@..@.#.#.$$$$.#.##..$$$.$.@@@@@.#.XX..#.##.##...$$.$$.$...@.@.@.@.@...$$$.$$$...$$..#........#.#.#$$$$$$......$$..$$$.$.$$....#...@..@..X..$.$$$.$$.$...$$..$%.%.%..$................X..", +".XX...#..#.@@@@@..#..$...##.#.$$..$$$.@@@@.#..XX....#.##..$$.$$.$...$..@...@...@.$$.$$$.$$.$..$.#.......#.#.#$$$$$$$$.....$$..$$$$$$$$$.#..#...@........$.$.$.$....$...$.$%.%.%......%%%%%%%%%......", +".XX...#..#.@@@@..###.$$.#.##.$$$$$$..@..@@.#..XX.....##..$.$$.$$..$$$.@...@...@.$.$$$..$$..$$$$.#......#.#.$$$$@@$$$......$$..$$$$$$$$$$.#..#...@...X..$...$$$.....$..$.$.$%.%.%...............o.X..", +".XX..##..#.@..@.###....##.#.$..$$..#.@@@@.#...XX..####...$$.$$..$$$.$..@.@.@.@..$$$.$$..$.$.$$.....@..#.#.#$$$.$.$$.$.....$$..$$$$$$.$$$..#..#...@..XX..$.$.$.$..$$..$...$.$%.%.%.....%%%%%%.....XX.", +".XX..#..#.@@@@@.####.##.##.$$$$$.#..@@@@@.#...XX........$.$$..$$$.$$$.@.@.@.@..$$.$$...$$.$$....#...@..#.#.@$@$$$$...$........$$$$.$$$$$$..#..#......X.$..$$.$..$...$.$$$.$.$%.%.%.............o..X.", +".XX..#..#.@@@@..#.###.#...$..$..#.#.@..@.#....XX..###...$$.$.$$.$$$.$.........$.$$$$.$$.$..$$$..#..@.@..#..@$@$$$$$$$.@$.....$$.$$$.$$$$$...#..#.@......$...$...$....$$..$.$.$%.%.%.................", +".XX..#..#.@..@.#.#.#...#.$.$$..#.#..@@@@.#....XX..##..$$.$$.$..$...$$..@@.@@..$$$$...$.$.$$.$...#.$.@..#...$$@.@$$$@$$@$$$....$$$$$$$$$$$$....@.#....X.$..$...$$...$..$..$..$.$%.%.%..............X.", +"....................................................................................................................................................................................................", +". .. ..#...#.##.##.#. .. ..@.XX.XX.@..X.XXXX. .. .X.X.X.X.XXXXXXXXXX. .. .@@@@@.@@@.....@@.@@.@. .", +". .......#....##.#.##.. .. ...XX.o.XX..XXXXXX. .. ..X.X.X...XX..XXXXX. .. .@@.....@..@.@@.o.@@.. .", +".. .......#.#.##.###.##. .. ..XX.ooo.XX..X...X. .. ..X.X.X.X..XX...XXX. .. .@@@@.@@....@@.ooo.@@.. .", +"... .. ..##.#.#.##.##.#. .. . .X.X.ooooo.X..XX..X. .. ...X.o.X.X..X...XXX. .. .@@@.@@@..@.@.ooooo.@.@. .", +".#. ..#.....##.o.##.. .. . .X..ooooooo...X.X.X. .. ..X.ooo.X.X.XXXXXXX. .. .@.........@.ooooooo..@@. .", +".#.. .. ..#..#.....oo.... .. .X. .X.@...ooo.....XXXX. .. ...ooooo.X...XX..XX. .. .@@@.@@..@......o...@..@. .", +".##. .......#.#..ooooo.ooo. .. .X. .X.@@@.oo.@@@..X.... .. .X.o...oo.....XX...X. .. .@@.@@....o.oooo.ooo....@. .", +".##. .......#.#.o....o..... .. .X. .X.....oo......XX... .. .X.ooo.ooooo...X...XX. .. ........@.oo.....o......@@. .", +".##. .. ..##...oo..oo...o. ...XXX. .X...%.ooo..oo...X.. .. .X.....oo...o..XXXXXX. .. .@@.@....oooo..oo...o....@@. .", +".##. ..#..#.oo...o.o.... .. .X. .X.X....ooo...o..XXXX. .. .X.o...ooo..oo..XX..X. .. .@@.@@..@..ooo...o.o.......@. .", +".##. .. ...#..#.ooooooo.oo.#. .. ... .X.X.oo.oooooooo...... .. .X......oo....oo..X...X. .. .........@.ooooooo.ooo.....@@. .", +".#.........#.##.oooo.o..oo.##. .. . .X.X.ooo..ooooo...X... .. .X..ooo.oooooooo..X...X. .. .@@.@..@...oooooooo.oo......@. .", +".#.#......##....ooooo..oo...##. .. . .X.X.ooo.oooooo....... .. .X..oooo.oooooooo..XXXXX. .. .@@@@.....@.ooooo..o.o..@.....@. .", +".#.##.....#..#.ooooooo.oo....##. .. .. .X.X.ooooooooo.%... .. .X...ooo.o.oooooo...X..XX. ..........@...oooooooo.oo.@.@....@@. .", +"..... ...#..#.ooooooo.oo.+...##. .. .. .X.X..oo...ooo..%. .. .X....ooo..oooooo.......... .. ...@@.ooooooooooo..@......@. .", +". .. ..##.##.oooo.ooooo.++...##. .. .. .X.X...oo..ooo.%... .. .X....oooo.oooooo..#.. .. .@..@..ooo.....oo.@.@.....@. .", +". ....#......ooo....o...++...##. .. .. .X.X..%.oooooo..%%.. .. .X....oooooo.ooo........ .. ...@@@...oooo..oo...@.@.....@. .", +". ...#..#....oooo..o....++..##. .. .. .X.X..%.ooooo.%.%.%. .. .X...#.oo...oooo..@.#.... . .. .@.@.@@@..ooooooo..@.@.@....@. . .", +". ...##.##.....ooooo......+...##. .. .. .X.X.%.%.ooo.%%%.%%%. .. .X...##.ooo..ooo........... ..X.. .. ....@@@.@@..ooooo....@.@.....@@. ... .", +". ...#..#..X.X..oooo.XXX...+..##. .. .. .X....%.%...%.%.%.%.%. .. .X...#...oo.oooo..@.@.#...... .X.X. .. .@....@@@.@..oooo.@@..@.@.....@. .@.@. .", +". ...##....XXXX.......X.XXX....##. .. .. .....%%.%%%.%%%.%%%.%%%. .. .X.....@.oooooo................ .X...X... ..........@@.@....@@.@@...@....@. ...@....", +". ...#..XX.X.XXXX.X.X.XXX.XX...##. .. .. .....%.%.%.%.%.%.%.%...@. .. .X....@.@.oooo..@.@.@..##........ .X.X.X.. .@.@.........@.@@@.@...........@@. . .@.@.", +". ...##.XX......XXXXXXXX.X...%..##. . .. .. ..@@..%%%.%%%.%%%.%%..@@. .. .X...#..@.@.....@.@.@...##....... ..X..X.. ...@...@...................@.....@. ..@@.", +". ..##..XX.%%%%....X..X...%%%%.... .$. .. .....@@...%.%.%.%.%.%..@@@@@. .. .X...#...@.@.@.@.@.@..#......... .XX... .@....@.@.@.............@.@.@....@. ..@.@.", +". ...#.......%%%.%%.....%%.%%%..%.. ..$.. .. ..@.@@@@@...%%%.%%%.%%.@@.@.@@. .. .X..#.##....@.@.@....###........ ........ ..........@...@.......@...@......... .@.@.@.", +". ..##.%%%.%..%...%..$..%...%..%%%.. .$$.$$. .. ....@.@@@.%.%.%.%.%..@@@..@@@.. . .. .X.#.###.##.......##..#......#.#.. ...#..#.. .@.@.......@.@.@.@.@.@.@.@.......@... .@.@.@..", +"...##..%%..%%...%...$.$...%...%%%.... ..$..X.. .. ..@..@@..@.%%.%%%.%%.@@@.@.@@@.$. ... .. .X.###...###.##.##.###..$..#.####....#####.#.......@.@.........@...@.........@.@......@.@@.@..", +"...#...%.......%%%.$.$.$.%%%.......%.. .$.X.X. .. .....@..@@..%.%....@@@@@@@@@@.$. .X.X. .. ..##.##.....###.##....$$$..#.##.#.#....#.#.#...@......@.@.................@.@......%.@..@@@.@.", +"..##.%.....%........$.$......%.%..%%%.. .X.XX. .. ..@....@@.@@......@@@.@.@@@@..$... ...X... .. .##.##..$$........$$$$$$...##...##..$$..#..........@...@.@.@...........@.@.@..@...%.%.@....@..", +".##..%..%.%.%.%.%....$...@@.%.....%%......X.X. .. .......@@@@.#.#.@@@@..@@@@..$..... ..$.X.X. .. .##.###.$$$.....$$$$$$$$$..####.%....$$.##.#...@...@@......@.@.@.@.@.@.@.@........%.%%..@.O..@.", +".#..%....%...%....@@...@@@@..%.%..%%..XXXX.X... .. ..$$....@@@.##.##.@..@.@@...$...$.....$$... ... .##.###.$$.......$$%%$%%$..#.#.%...#.$$.#.#.#......@..%%.%%.....@.@.@.............%.%..@.OOO...", +".#....%.%.%.%.%.%.@@@.@@@@@...%...%%......X.XXX... ..$$....@@.##.##.@@@@@@..$....$$...$...$. .$.. .##..##..$$.%......$%%%%%$........##..$$.##.#......@@.%.%.%%...........XX.....%%...%.%.@.O.O.O..", +"...%...%...%...%.%.@@@...@@..%.%..%%%......XX..X.. ..@.$$.....###.###.@@@@.$..$..$$..X..$..$$...$...##.#.##.$$$.%.%....$$%%%$..%.%...#...$$$.###.......@..%%%.%%........XX.XX..%%%%%...%..@.OOO.OOO.", +"..%.%.%.%.%.%.%.%..@@@...@@@.......%%%..%....XX... ....$$....###.###.@@..$.$$..$$..X.X..$.........#####.##.$$...%%.%...$$%$$..%....#.##.$$..##.......@@........@.%%....XX.XX...%..%%...%..O.O.O.O..", +".%...%...%...%...%.@..@.@..@.%..%...%..%.%...X.X.. ..$$..$$...##...##...$..$....$..X.XXX....%.@.$..##.#.#.#.$$.#...%....$$%$...%%..#.#...$$.##........@..%.@.%%%..%%%%...X..XX..%..%%.....OOO.OOO.O.", +"..%.%.%.%.%.%.%.%..@...@...@...%%%....%%%.%%..X... ..$$..$$...........$..$.....$..X.XX.X.%%%%..$..###..#.#.$$..#....%...$$$...%%..#.#.#.$$.#....#...@@.%%.@.%.%.@.%..%..XX.XX..%%%......O.O.O.O.O..", +"...%...%...%...%...@..@.@..@.%.%%....%.%....%..X.. ..$$$$..$..##...##.$..$...$$.$..X.X.X.X.%%%..$..#.##.###.$$...#..%%...$$$..%...#.#.#..$$.....#....@...%%..%%%.@.%..%..XX.X.......@.@.O.O.OOO.OOO.", +"..%.%.%.%.%.%.%.%..@@@@.@@@@...%%..%..%%%%%%.%.... ...$$$.$..###.###..$$...$$$.$..X.X..%..%..$$...##...##..$$...#...%....$...%%..#.#..#.$$....#.#..@@....%.@...@@.%%%%.......@.@.@.@...OO.O.O.O.O..", +".%...%...%...%...%.@@@...@@@..%%%%%%%..%...%%.%... ..@..$$..$.###.###.$....$$.$.$$..@XX.%%..%%.$$..##.#.##.$$$.#..#...%...$..%.%..#.#.#..$$...#.#...@...@.%%.%%...@.....@.@.@.@......X.@...OO.OOO.O.", +"..%.%.......%.%.%.%.@@@@@@@@..%%%%%%%...%%%.%%.... ..$.$$$.$..##.##.$$...$$..$..$$..X.%%%.%.%..$..##.####.$$.....#...%%..$......#.#.#.#.$$..#.#.#..@....@.%.%.%%%..@.@.@.......XXXXXX..OOO..O.O.O..", +"......%%%%%%...%....@@@@.@@@..%%%%%%.%....%%.%.%.. ..$$$.$......#.##.$...$$...$$..$$..%%%%%..%.$...#...###.$$.##..#.##........%..#.#..#..$$.#.#.##......@..%.%.%.%.......XXXXXXX....X.X.O.O.OOO.OOO.", +"...%%%%%%%%%%%%...%.@@@...@@..%%..%%..%....%.%.... ..$$$...$$$.#.#.....$$$$$$$$$.$$$$..%%...%.$$...#.#.##.$$..#..#...##....%.%..#.#.#.#.$$..#.###.......@.%.%.%%%..XXXXX........XX.X.X.OOO..O.O.O..", +"..%%%%%%%..%%%%%%...@@.@.@.@..%%..%%.%.%...%.%.%.. ..$$$$................................%%%%%..$..##.##.#.$$.#...#.#...##..%%..#.#.#....$$.#.##.#......@..%.%%...@.X.....XXXXXXXX.X.XXX...O..OOO.O.", +"...%..%%%..%%%%%%.%.@...%...@.%%%%%%%.%.%...%.%... ..$.$..$.$$$.$$$.$$$.$$$.$$$.$$$.$$$$.%%%%.$$..###.###.$$.##.#....#...##....#.#....#.$$..##.##.......@.%.%...@@.X.XXXXX......X.X.X...OO.OO.O.O..", +".%....%%%%%%%..%%%.%.@.%%%.@.@.%%%%%%%...%%..%.%.. ..$$.$.......................................$...##.##..$$....#.##...@...##....#..##..$$.###.##....@.@..%..@@@.@.X.X.....X.X..X.X..XXX.O.O...OO..", +"....................................................................................................................................................................................................", +". ..X.XXXXX.XXXXX.XXXXX.XXXXX.X.. .. .X.XXXX.XXXXX.XXXXX.XXXXX.XX. .. .XXXXXXXXXXXXXXXXXXXXXXXXXXX. .. ..X.XXX.XXX.XXX.XXX.XXX.XXX.X.. .", +". ...XXXXX.XXXXX.XXXXX.XXXXX... .. ...XX...XXX...XXX...XXX..X. .. ..X..X..X..X..X..X..X..X... .. ..X.X.X.X.X.X.X.X.X.X.X.X.X.. .", +". ....X..X..X..X..X..X..X.... .. ..X.....X.....X.....X.... .. ..@.X.@&@.X.@&@.X.@&@.X.@. .. ..XXX.XXX.XXX.XXX.XXX.XXX... . .", +". ..XXXX.XXXXX.XXXXX.XXXX.. .. .X.....X.....X.....XX.. .. ..XXX&@&XXX&@&XXX&@&XXX. .. ...XXX.XXX.XXX.XXX.XXX.XX. . .", +". ....................... .. .XX.XXXXX.XXXXX.XXXX. .. .XXXX.XXXXX.XXXXX.XXXX. .. ...X.X.X.X.X.X.X.X.X.X... .. .", +". ..$.$.$.$.$.$.$.$.$.. .. .................... .. &XXX.XXXXX.XXXXX.XXX.. .. ..XX.XXX.XXX.XXX.XXX.X. .X. ..", +". ..$.$.$.$.$.$.$.$.. .. .................... .. .................... .. .............XXXX.XX.. .X. ...", +". .................. .. .O.O.O.oooooooooooo. . .. .@.@.@.@.@.@.@.@.@. .. ................X.X. .XX. .O.", +". .................. .. .O.O.O.oo....oo..... ..... .................. .. .oooooooo........XX. .X.X. ...", +". .oooooooooo.O.O.O. . .. .O.O.O.o.ooooo.oooo. ..X... .oooooooooo.X.X.X. .. .oo....oooo......... .XX..X....", +". ....ooo...o.O.O.O. ... .. .O.O.O.oo...o.....o. ..XXX.. .@XXoooXXXXo.X.X.X. .. .o.oooo.ooo.O....... ...X...XX.", +". .o...oo..oo.O.O.O. ..... .. .O.O.O.o...oo.o..oo. .XXXX.. ..@@.oXooooo.X.X.X.. .. .o....ooooo.O.O..... ...X...XX.", +". .....oo.....O.O.O. .X... .. .O.O.O.oo...o.....o. .XX.X.. .....oo....ooOXOXOX. .. .oo..o.oooo.O.O.O.O. .XX..X....", +". .oo.ooooooo.O.O.O. .X.$. .. .O.O.O.ooooooo.oooo. .XX.X.. .@...oooo..ooOXOXOX. .. .oo....ooooo.O.O.O.O.. .X.X. ...", +". .oo.ooooooo.O.O.O. .X... .. .O.O.O.ooooooo.oooo. .X.XX.. .....ooo...ooOXOXOX.. .. .oooooooooooo.O.O.O.O. .XX. .O.", +". .oo....oooo.O.O.O. .X.X. .. .O.O.O.oooooo..oooo. .X.XX.. .ooo.o.oooooooOX.XOX. .. .o.ooo.ooooooo.O.O.O.O. .X. ...", +". .ooo.oooooo.O.O.O. .X... .. .O.O.O.o.o..o.o..o.. .X.XX.. .ooo..ooooooooOX.XOX. .. ..o..oo.ooooooo.O.O.O.O. .X. ...", +". .o..o..oooo.O.O.O... .X.$. .. .O.O.O.o...ooooo.... .XX.X.. .oooo.ooooooo&@OXOXOX. .. .ooo..oooo...o.O.O.O.O. .. .O.", +". ...ooo.oooooo.O.O...O. .X... .. .O.O.O.oooo..o..ooo. .XX.X.. ..oooooooooooo&@OXOXOX.. .. .ooooooo..##..O.O.O.O. . ...", +". .OO.oo...ooo...O...O.O. .X.X. .. .O.O.O.oooooo.ooooo. .XX.X.. ..@.oo..o..oooo&@@OXOXOX.. .. ...oooo..#..#.O.O.O.O. . ...", +". .O...oooo...OO.O.O.O... .X... .. ..O.O.O.ooooo...oooo... .XX.X.. &@@..oooo.ooooo&@&&XXOXOX. .. .. ..ooooo.#.#.#.O.O.O.O.. .O.", +". ..@OOOO....OO..O.O.O.... .X.$. .. .O.O.O.O..ooooooooooo..O. .X.XX.. .@@.@.oooXXXoooo&@&XX.@.@O .. ..$. .. . .ooooo.o.#.##.#.#.#.#.O. ...", +". ...@..OOO.....OOOO.OOO.@@.. .X... .. .O.O.O.O.O..o.o.o.o..O.O. .X.XX.. ....@@&oooooooo&@.@... . .. .$.$.#. .O.O.o.o.O.O.#.....................", +". ...@@.@.@@..@@...........@.@.. .X.X. .. ...O.O.O...OO.O...O.OO.O. .X.XX.. ..@.@..@&o&o&o&o&@.@..@@. .. ..$.$.#. ...O.O.O.O.O.O......###..###..###.##..", +". .......@@@.@.@.@@@.@@@.@@@.@@@... .X... .. .......................... .X..X.. ..@@@.@.@&@&%&%&@&@...@@.@. .. .$.$..#......O.O.O.O.O.O.#.#..#.#..#.#..#.##...", +". ..........@.@@@..@.@@@.@@@.@@@.......X.$. .. ....$.%%%%%%%%%%%%%%%%%%.$$$... .X..X.. ......@&@@..@&%%%%%&%.@..@...... .. .$.#..#.#....X...........###..###..###..##....", +". ..........%....@.@@.@@.@@@.@@@.....%...X... .. ..$$..$....................$$$.%. .X..X.. ....%%..@.@.@@..%%...%%%.....@..@@. .. ...#.##.X..XXX...............................", +". .............%.%..@.@@.@@@.@@@.....%%....X.X. .. .....$$$$$.@.@.@.@.@.@.@.@....$.%.%..XX.... ...%.%&&%.@....@@....@.....@..@.@.@...... .. ...##..#.XX.XXX....@....$$$$$$$$$$$$$$........", +"............%.....%.%..@@..@@@.....%%%..%%.X... .. ...%%...$$..$.................$..$.%.%..XX.....%.%&%%&&%%..@....@@......@@@....@...%%%... .. .##..#..#..XX$XXX..@.@..................#####..", +"........%%..%..%%..%.%...@@.......%%%..%%..X.$. .. ..%...%%...$..$.###############.$$$$.%.%..XX....%&%&%%&%%&%..@.@.@..@@@@@@@..@.@.@..%&&%%%... ....##..##....XX$$XX...@...###..###..@@@....#..#..", +".%.....%%%..%..%%%..%....%.....%%%%%....%%.X... ....%%%...%%..$$.$.###XX#####XXX#.$.$$.%.%.%.XXX....%&%%&%&%%&%.....@.@.......@.@.....%%%%&&%%%.....#..##...$$$..X$$$X........#..#.#..@.@......#.#..", +".%.....%....%....%.%.%...%%%%%%%%%%...%%%..X.X.......%%%...%...$$$$.#XXX####X####.$..$.%.%.%.XXX...%&%%&&%&&%%..%.@.@...@.@.@...@.@...%%%&%%&&%%%...#..#..$$$....X$$$X.....#.#..###..@@...@.@...##..", +".%....%....%%%....%.%.%..%%%...%%%...%%....X..........%%%...%%.$..$.##XXXXXXX####.$..$.%.%.%.XXX....%%&%%&%%&%%..%..@.@.@...@.@....%..%%&%&%%%...%..##..$$$....#.XX$$X...##..#.......@.@...@.....#..", +".%.......%%...%%.....%...%%%...%%%....%%...X.$....%%...%%.%.%%.$..$.###XXXXXXX##.$$$$.%.%%.%.XXX......%.%%&&%&%.%&%.....@.@.@.....%.%.%&%%%&%..%%...##.$$....#..#.XX$XX...#.##..@.@.@.@.#.@.@.@.....", +".%......%.......%...%.%..%..%.%..%..%%%....X......%%%....%.%...$$.$.#XX#XXXXXX##.$.$$.%.%.%..XXX...%.%...%%&%&&%&&&%..%.......%..%....%%&%&%%.%%%...#.$$....###.#.XXXXX..@..#..@.@.@..@.##...@......", +".%.....%...%.%...%...%.%.%...%.....%%......X.X.....%%%..%.%.%%%.$$$.####X###X#X#.$..$.%.%.%..XXX...%%&%...%%&%%&&%&%%.%%%%.%%%%..%%.%.%&%&%%..%&%....$$..@.#.#..#.XX.XX..@@...@.@.......##..@.@.@...", +".%....%...%...%...%.%.%..%..%.%....%%%.....X........%%...%...%%.$$$$.##X###X##X#.$..$.%.%.%..XX.....%%.....%%..%&%%.%.%&%&X&%&%.%.%.%..%&%.%.%%&%...$$..@.###...#.XX..X....@.@.@..##...##.#....@....", +".........%.%.%.%...%.%.%.%%%%.%%%...%......X.$.......%.%%.....%.$..$.###########.$$$.%.%%.%..XX....%&%%........%&%....%%&X&X&%%....%..%&%%...%&&%...$..@.#.#.@..#.X.....@.@.@.@.@.##.#.##.##..@.@.@.", +"...%....%...%...%...%.%..%%%...%%..%%......X......%.....%.%.....$..$............$.$$.%.%.%...XX....%%&%...%.%%..%&ooo.%%%&X&%%%.%.%...%&%%..%%&&%.....@.###.@....#.X..X..@.@.@.@..####.#...##....@..", +"..%.....%%.%.%.%%..%.%......%%%%..%%.......X.X....%%...%.%%%....$$.$............$..$.%.%.%..........%%%..%&%&%...oo....%%%&%%%%.%.%%..%%....%&&&%....@.#.#.@.....#.XX.X.@.@.@.@.@.#.#.#.#.#.#.@.@.@.", +".%%.......%%.%%...%...##.##..%%%..%%.......X......%%.....%%%%....$$$..%.%.%.%.%.$..$.%.%.%.ooo.oo..%%%...%%&%...ooooooo.%&X&%%...%&%..%&%%.%%&%%%...@.###.@@.....#.XXXX..........@..#.#.#.#.##.@....", +".%%%.............%..####.####.%%...%.........ooo.......o.%%%.....$$$$.%.%.%.%.%.$$$....%.%..........%&%..%&%&%..ooo.....%%&%%%..%&&&%.%%%..%&%%......#.#.@....@..#.XX.X.@.@.@.@.......#.##...##.@.@.", +".%%.........%%..%%..#..#.#..#..%..%%.....ooo......ooo.o...%....%.$..$..%.%.%.%.%.$$.%%%..%%.o.ooo..%&%%...%%%...ooooooo.%&%&%%..%%&%.%%%%.%%%....%..###.@....@@..#.X..X..........#..#.#..##.#.##.@..", +".%..........%.%..%.##..###..##.%..%......o...ooo........o.....%%.$..$...%%%..%.%..$.%%%.%.%........%%%...%.%.%..ooo.....%%%%%%.%.%&%.%%%..%....%%%...#.@.@@...@..#......@..@..@@.#.##.#..##.#.##..@.", +".....%%......%%..%.#####.#####.%..%%.....o........ooo.o..o...%%%.$$.$....%...%.%..$....%.%..o.ooo...%.%....%...%.oooooo.%%.%%%....%%.%%......%%%....@.@.@.@@.....#.X..X..@@.@@...###.#....##...##..."}; diff -uNr gnome-0.11/programs/freecell/image/Ranks.xpm gnome-0.12/programs/freecell/image/Ranks.xpm --- gnome-0.11/programs/freecell/image/Ranks.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Ranks.xpm Mon Jan 19 10:48:31 1998 @@ -0,0 +1,82 @@ +/* XPM */ +static char * Ranks_xpm[] = { +"108 70 9 1", +" c None", +". c #000000000000", +"X c #BEFBBEFBBEFB", +"o c #CF3C00000000", +"O c #F3CEBEFBBEFB", +"+ c #7DF77DF77DF7", +"@ c #3CF33CF33CF3", +"# c #E79D7DF77DF7", +"$ c #DB6C3CF33CF3", +" ... X.....X .... ooo OoooooO oooo X....X .. X.....X OooooO oo OoooooO ", +" ... X.......X .... ooo OoooooooO oooo ...... ..X.......X oooooo ooOoooooooO", +" +...+ ..@ @.. .. #ooo# oo$ $oo oo .. .. ....@ @.. oo oo oooo$ $oo", +" +. .+ .. @X .. #o o# oo $O oo .. .. .... @X oo oo oooo $O", +" .. .. .. .. oo oo oo oo .. .. .... oo oo oooo ", +" .+ +. ..X....X .. o# #o ooOooooO oo .. .. .... oo oo oooo ", +" +.+ +.+ ........X .. #o# #o# ooooooooO oo .. .. .... @X oo oo oooo $O", +" +. .+ ..@ @.. .. #o o# oo$ $oo oo .. .. ....@ @.. oo oo oooo$ $oo", +" ....... .. .. .. ooooooo oo oo oo .. .. ..X........ oo oo ooOoooooooo", +" ....... .. .... .. ooooooo oo oooo oo .. .. .. X....X.. oo oo oo OooooOoo", +"+.@ @.+.. .... .. #o$ $o#oo oooo oo .. .. .. .. oo oo oo oo", +"+.X X.+..@ @....@ @.. #oO Oo#oo$ $oooo$ $oo .. .. .. .. oo oo oo oo", +".. ..X.......XX......X oo ooOoooooooOOooooooO ...... .. ........ oooooo oo oooooooo", +".. .. X.....X X....X oo oo OoooooO OooooO X....X .. ........ OooooO oo oooooooo", +" +...@X ......... X...X #ooo$O ooooooooo OoooO X.....X .... OoooooO oooo ", +" @......X......... X.....X $ooooooOooooooooo OoooooO X.......X.... OoooooooOoooo ", +"@.@ @.@.. .. ..@ @.. $o$ $o$oo oo oo$ $oo ..@ @.. .. oo$ $oo oo ", +".. .. @.@ .. .. oo oo $o$ oo oo .. @X......... oo $Oooooooooo", +" X.. .. .. .. Ooo oo oo oo .. ......... oo ooooooooo", +" X..+ @.+ .. .. Ooo# $o# oo oo ..X....X .. +.+ ooOooooO oo #o#", +" X..@ .. .. .. Ooo$ oo oo oo ........X .. .. ooooooooO oo oo ", +" X..@ +.+ .. .. Ooo$ #o# oo oo ..@ @.. .. +.+ oo$ $oo oo #o# ", +" X..@ .. ....+ .. Ooo$ oo oooo# oo .. .. .. .. oo oo oo oo ", +" X..@ X.@ ........ Ooo$ Oo$ oooooooo .. .. .. +.+ oo oo oo #o# ", +"X..@ +.+ .. @... Ooo$ #o# oo $ooo .. .. .. .. oo oo oo oo ", +"... .. @. ..@ ... ooo oo $o oo$ ooo ..@ @.. ....+ oo$ $oo oooo# ", +"......... .. X......@ooooooooo oo Ooooooo$ X.......X .... OoooooooO oooo ", +"......... .. X...X@Xooooooooo oo OoooO$O X.....X ...X OoooooO oooO ", +"......... X.....X .... ....ooooooooo OoooooO oooo oooo.... .... ..... X@...@X oooo oooo ooooo O$ooo$O ", +".........X.......X.... +...oooooooooOoooooooOoooo #ooo.... ....X.......X @......Xoooo ooooOoooooooO $ooooooO", +".. X..@..@ @.. .. @.@ oo Ooo$oo$ $oo oo $o$ +.+ .. ..@ @....@ X... #o# oo oo$ $oooo$ Oooo", +" X..@ .. .. .. @.@ Ooo$ oo oo oo $o$ .. .. .. .... X.X oo oo oo oooo OoO", +" X... ..@ @.. ....@ Oooo oo$ $oo oooo$ +.+ .. .. .... #o# oo oo oooo ", +" X.... X.......X .... Ooooo OoooooooO oooo .. .. ..@ @.... oo oo oo$ $oooo ", +" ...... ..... .... oooooo ooooo oooo +.... X.......X..@ @X #oooo OoooooooOoo$ $O ", +" X@ @..X.......X ....+ O$ $ooOoooooooO oooo# .... ..... ...... oooo ooooo oooooo ", +" ....@ @.. .. .. oooo$ $oo oo oo .... X.......X ....X oooo OoooooooO ooooO ", +" .... .. .. +.+ oooo oo oo #o# @.... ..@ @.. ...X $oooo oo$ $oo oooO ", +"X.X .... .. .. .. OoO oooo oo oo oo @.@ .. .. .. @..X $o$ oo oo oo $ooO ", +"...X @....@ @.. .. +.+ oooO $oooo$ $oo oo #o# @.@ .. ..@ @..@..X .. $o$ oo oo$ $oo$ooO oo", +"X......@ X.......X.... ....Ooooooo$ OoooooooOoooo oooo...+ ....X.......X.........ooo# ooooOoooooooOooooooooo", +" X@...@X ..... .... .... O$ooo$O ooooo oooo oooo.... .... X.....X .........oooo oooo OoooooO ooooooooo", +" X... X.....X Oooo OoooooO X@X...X .. .........O$OoooO oo ooooooooo", +" .... X.......X oooo OoooooooO @......X .. .........$ooooooO oo ooooooooo", +" +.... ..@ @.. #oooo oo$ $oo ... @.. .@ .. ... ooo $oo o$ oo ooo", +" .. .. .. .. oo oo oo oo ...@ .. +.+ @..X ooo$ oo #o# $ooO", +" +.+ .. .. .. #o# oo oo oo ........ @.X @..X oooooooo $oO $ooO ", +" .. .. .. .. oo oo oo oo .. +.... .. @..X oo #oooo oo $ooO ", +" +.+ .. ..@ @.. #o# oo oo$ $oo .. .. +.+ @..X oo oo #o# $ooO ", +" .. .. X........ oo oo Ooooooooo .. .. .. @..X oo oo oo $ooO ", +"+.+ .. X....X.. #o# oo OooooOoo .. .. +.@ +..X oo oo #o$ #ooO ", +"......... .. ooooooooo oo .. .. .. ..X oo oo oo ooO ", +".........X@ .. oooooooooO$ oo .. .. @.@ .. .. oo oo $o$ oo oo", +" .. ..@ @.. oo oo$ $oo ..@ @.. .. ..@.@ @.@ oo$ $oo oo oo$o$ $o$", +" ....X.......X ooooOoooooooO X.....X .........X......@ OoooooO oooooooooOoooooo$ ", +" .... X.....X oooo OoooooO X...X ......... X@...+ OoooO ooooooooo O$ooo# ", +"........ .. X....X oooooooo oo OooooO X....X X.....X .. .. OooooO OoooooO oo oo", +"........ .. ...... oooooooo oo oooooo X......XX.......X.. .. OooooooOOoooooooOoo oo", +".. .. .. .. oo oo oo oo ..@ @....@ @..+.X X.+ oo$ $oooo$ $oo#oO Oo#", +".. .. .. .. oo oo oo oo .. .... ..+.@ @.+ oo oooo oo#o$ $o#", +"..X....X .. .. .. ooOooooO oo oo oo .. .... .. ....... oo oooo oo ooooooo ", +"........X.. .. .. ooooooooOoo oo oo .. .. .. ....... oo oo oo ooooooo ", +"..@ @.... .. .. oo$ $oooo oo oo .. ..@ @.. +. .+ oo oo$ $oo #o o# ", +"X@ .... .. .. O$ oooo oo oo .. X........ +.+ +.+ oo Ooooooooo #o# #o# ", +" .... .. .. oooo oo oo .. X....X.. .+ +. oo OooooOoo o# #o ", +" .... .. .. oooo oo oo .. .. .. .. oo oo oo oo ", +"X@ .... .. .. O$ oooo oo oo .. X@ .. +. .+ oo O$ oo #o o# ", +"..@ @.... .. .. oo$ $oooo oo oo .. ..@ @.. +...+ oo oo$ $oo #ooo# ", +"X.......X.. ...... OoooooooOoo oooooo .... X.......X ... oooo OoooooooO ooo ", +" X.....X .. X....X OoooooO oo OooooO .... X.....X ... oooo OoooooO ooo "}; diff -uNr gnome-0.11/programs/freecell/image/Suits.xpm gnome-0.12/programs/freecell/image/Suits.xpm --- gnome-0.11/programs/freecell/image/Suits.xpm Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/image/Suits.xpm Mon Jan 19 10:48:33 1998 @@ -0,0 +1,108 @@ +/* XPM */ +static char * Suits_xpm[] = { +"168 88 17 1", +" c None", +". c #CF3C00000000", +"X c #7DF77DF77DF7", +"o c #DB6C3CF33CF3", +"O c #000000000000", +"+ c #F3CEBEFBBEFB", +"@ c #3CF33CF33CF3", +"# c #BEFBBEFBBEFB", +"$ c #E79D7DF77DF7", +"% c #9E799E799E79", +"& c #EFBE9E799E79", +"* c #5D755D755D75", +"= c #1C711C711C71", +"- c #DF7DDF7DDF7D", +"; c #FBEEDF7DDF7D", +": c #D34C1C711C71", +"> c #DF7D5D755D75", +" . ", +" X o.o ", +" O +...+ ", +" XOX o...o ", +" @O@ o.....o ", +" #XXX# #OOO# +.......+ ", +" #OOOOOOO# @OOO@ ......... ", +" @OOOOOOOOO@ #OOOOO# $o...$+ +$...o$ o.........o ", +" XOOOOOOOOOOOX #OOOOOOO# $........o+ +o........$ o...........o ", +" #OOOOOOOOOOOOO# #OOOOOOOOO# o...........+ +...........o o.............o ", +" XOOOOOOOOOOOOOX #OOOOOOOOOOO# o.............+ +.............o +...............+ ", +" OOOOOOOOOOOOOOO #OOOOOOOOOOOOO# +..............o o..............+ +.................+ ", +" OOOOOOOOOOOOOOO #OOOOOOOOOOOOOOO# o...............$...............o +...................+ ", +" OOOOOOOOOOOOOOO #OOOOOOOOOOOOOOOOO# ................................. o.....................o ", +" @OOOOOOOOOOOOO@ #OOOOOOOOOOOOOOOOOOO# $.................................$ o.......................o ", +" XOOOOOOOOOOOOOX #OOOOOOOOOOOOOOOOOOOOO# $.................................$ o.........................o ", +" @OOOOOOOOOOO@ @OOOOOOOOOOOOOOOOOOOOOOO@ $.................................$ +.............................+ ", +" #XOOO@X #OOOOOOOOOOO# X@OOOX# @OOOOOOOOOOOOOOOOOOOOOOOOO@ +.................................+ o...............................o ", +" XOOOOOOO@# #OOOOOOOOO# #@OOOOOOOX #OOOOOOOOOOOOOOOOOOOOOOOOOOOOO# ................................. +o.................................o+ ", +" @OOOOOOOOOO# #OOOOOOO# #OOOOOOOOOO@ #OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO# $...............................$ o.....................................o ", +" #OOOOOOOOOOOO# #OOOOO# #OOOOOOOOOOOO# #OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO# ............................... ......................................... ", +" OOOOOOOOOOOOOO# #OOO# #OOOOOOOOOOOOOO @OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@ +.............................+ o.....................................o ", +" #OOOOOOOOOOOOOOO# XOX #OOOOOOOOOOOOOOO# #OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO# +...........................+ +o.................................o+ ", +" XOOOOOOOOOOOOOOOOX@O@XOOOOOOOOOOOOOOOOX XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX +.........................+ o...............................o ", +" XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX o.......................o +.............................+ ", +" XOOOOOOOOOOOOOOOOX@O@XOOOOOOOOOOOOOOOOX XOOOOOOOOOOOOOOOO@O@OOOOOOOOOOOOOOOOX o.....................o o.........................o ", +" #OOOOOOOOOOOOOOO# XOX #OOOOOOOOOOOOOOO# XOOOOOOOOOOOOOOO#XOX#OOOOOOOOOOOOOOOX o...................o o.......................o ", +" OOOOOOOOOOOOOO# XOX #OOOOOOOOOOOOOO OOOOOOOOOOOOO@ XOX @OOOOOOOOOOOOO o.................o o.....................o ", +" #OOOOOOOOOOOO# XOX #OOOOOOOOOOOO# XOOOOOOOOOOOO XOX OOOOOOOOOOOOX ................. +...................+ ", +" @OOOOOOOOOO# XOX #OOOOOOOOOO@ @OOOOOOOOOO# XOX #OOOOOOOOOO@ +...............+ +.................+ ", +" XOOOOOOO@# XOX #@OOOOOOOX @OOOOOOOO# OOO #OOOOOOOO@ +.............+ +...............+ ", +" #XOOO@X XOX X@OOOX# #@OOOOX OOO XOOOO@# o...........o o.............o ", +" XOX OOO o.........o o...........o ", +" OOO XOOOX +.........+ o.........o ", +" OOO XOOOX $.......$ ......... ", +" #OOO# OOOOO o.....o +.......+ ", +" XOOOX OOOOO +.....+ o.....o ", +" OOOOO XOOOOOX +...+ o...o ", +" #OOOOO# XOOOOOX o.o +...+ ", +" @OOOOO@ OOOOOOO +.+ o.o ", +" @OOXXXOO@ @OOXXXOO@ . . ", +" $ %@X@% %@X@% & $ ", +" * &.& =O= -OOO- ;.; &.& ", +" -O- ;...; *O* =O= :.: ;...; ", +" X=O=X *O* ;+; ;+; o...o #O# *O* $...$ o...o ", +" XOOOOOX %OOO% +o...>; ;>...o+ >.....> -#- -O- -#- ##- %O% -## +.....+ >.....> ", +" -OOOOOOO- %OOOOO% ;......: :......; $.......$ XOOO@- O -@OOOX #=OOO% #O# %OOO=# ;:.....:; $.......$ ", +" #OOOOOOO# %OOOOOOO% >.......o.......> $.........$ XOOOOO=- O -=OOOOOX -OOOOOO# O #OOOOOO- o.......o $.........$ ", +" -OOOOOOO- %OOOOOOOOO% ................. >...........> =OOOOOO=-O-=OOOOOO= XOOOOOOO%O%OOOOOOOX >.........> >...........> ", +" -#- @OOOOO@ -#- *OOOOOOOOOOO* ................. ;o.............o; OOOOOOOOOOOOOOOOOOO XOOOOOOOOOOOOOOOOOX >...........> ;o.............o; ", +" XOOO@-=OOO=-@OOOX -@OOOOOOOOOOOOO@- o...............o &.................& =OOOOOO=-O-=OOOOOO= %OOOOOOOOOOOOOOOOO% &.............& &.................& ", +" XOOOOO=-=O=-=OOOOOX =OOOOOOOOOOOOOOO= +...............+ $...................$ XOOOOO=-=O=-=OOOOOX =OOOOOOOOOOOOOOO= +...............+ $...................$", +" =OOOOOO=-O-=OOOOOO= %OOOOOOOOOOOOOOOOO% &.............& &.................& XOOO@-=OOO=-@OOOX -@OOOOOOOOOOOOO@- o...............o &.................& ", +" OOOOOOOOOOOOOOOOOOO XOOOOOOOOOOOOOOOOOX >...........> ;o.............o; -#- @OOOOO@ -#- *OOOOOOOOOOO* ................. ;o.............o; ", +" =OOOOOO=-O-=OOOOOO= XOOOOOOO%O%OOOOOOOX >.........> >...........> -OOOOOOO- %OOOOOOOOO% ................. >...........> ", +" XOOOOO=- O -=OOOOOX -OOOOOO# O #OOOOOO- o.......o $.........$ #OOOOOOO# %OOOOOOO% >.......o.......> $.........$ ", +" XOOO@- O -@OOOX #=OOO% #O# %OOO=# ;:.....:; $.......$ -OOOOOOO- %OOOOO% ;......: :......; $.......$ ", +" -#- -O- -#- ##- %O% -## +.....+ >.....> XOOOOOX %OOO% +o...>; ;>...o+ >.....> ", +" #O# *O* $...$ o...o X=O=X *O* ;+; ;+; o...o ", +" *O* =O= :.: ;...; -O- ;...; ", +" =O= -OOO- ;.; &.& * &.& ", +" %@X@% %@X@% & $ $ ", +" ; #-# #-# ; ; ", +" % ;.; XOX XOX o ;.; ", +" #X# -O- o.o -O- #O# >.> o.o ", +" XOOOX @O@ ;>.:& &:.>; >...> -%- @ -%- ## O ## +...+ >...> ", +" OOOOO @OOO@ o....$....o &.....& #OOO% * %OOO# =OO@ @ @OO= ;:...:; &.....& ", +" =OOO= @OOOOO@ ;...........; >.......> @OOOOX@XOOOO@ XOOOO*@*OOOOX ;:.....:; >.......> ", +" %*X%OOO%X*% -=OOOOOOO=- ;...........; ;o.........o; @OOOO@=@OOOO@ XOOOOOOOOOOOX o.......o ;o.........o; ", +" XOOO@XOX@OOOX -=OOOOOOOOO=- >.........> ;.............; XOOO@XOX@OOOX -=OOOOOOOOO=- >.........> ;.............; ", +" @OOOO@=@OOOO@ XOOOOOOOOOOOX o.......o ;o.........o; %*X%OOO%X*% -=OOOOOOO=- ;...........; ;o.........o; ", +" @OOOOX@XOOOO@ XOOOO*@*OOOOX ;:.....:; >.......> =OOO= @OOOOO@ ;...........; >.......> ", +" #OOO% * %OOO# =OO@ @ @OO= ;:...:; &.....& OOOOO @OOO@ o....$....o &.....& ", +" -%- @ -%- ## O ## +...+ >...> XOOOX @O@ ;>.:& &:.>; >...> ", +" -O- #O# >.> o.o #X# -O- o.o ", +" XOX XOX o ;.; % ;.; ", +" #-# #-# ; ; ; ", +" - & #X# #X# + & ", +" # * +.+ O -O- +.+ +.+ ", +" -=O=- XOX >:$ $:> ;:.:; -%- * -%- %# = #% :.: ;:.:; ", +" %OOO% XOOOX $...:...$ ;:...:; =OO#X#OO= @OO%X%OO@ >...> ;:...:; ", +" -%#OOO#%- XOOOOOX o.......o +:.....:+ #OOO=@=OOO# OOOO=OOOO $.....$ +:.....:+ ", +" =OOX=XOO= *OOOOOOO* &.......& &.........& =OOX=XOO= *OOOOOOO* &.......& &.........& ", +"#OOO=@=OOO# OOOO=OOOO $.....$ +:.....:+ -%#OOO#%- XOOOOOX o.......o +:.....:+ ", +" =OO#X#OO= @OO%X%OO@ >...> ;:...:; %OOO% XOOOX $...:...$ ;:...:; ", +" -%- * -%- %# = #% :.: ;:.:; -=O=- XOX >:$ $:> ;:.:; ", +" O -O- +.+ +.+ # * +.+ ", +" #X# #X# + & - & "}; diff -uNr gnome-0.11/programs/freecell/install-sh gnome-0.12/programs/freecell/install-sh --- gnome-0.11/programs/freecell/install-sh Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/install-sh Mon Jan 19 10:45:58 1998 @@ -0,0 +1,250 @@ +#!/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=: + 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 diff -uNr gnome-0.11/programs/freecell/intl/ChangeLog gnome-0.12/programs/freecell/intl/ChangeLog --- gnome-0.11/programs/freecell/intl/ChangeLog Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/ChangeLog Mon Jan 19 10:48:35 1998 @@ -0,0 +1,1022 @@ +1997-09-06 02:10 Ulrich Drepper + + * intlh.inst.in: Reformat copyright. + +1997-08-19 15:22 Ulrich Drepper + + * dcgettext.c (DCGETTEXT): Remove wrong comment. + +1997-08-16 00:13 Ulrich Drepper + + * Makefile.in (install-data): Don't change directory to install. + +1997-08-01 14:30 Ulrich Drepper + + * cat-compat.c: Fix copyright. + + * localealias.c: Don't define strchr unless !HAVE_STRCHR. + + * loadmsgcat.c: Update copyright. Fix typos. + + * l10nflist.c: Don't define strchr unless !HAVE_STRCHR. + (_nl_make_l10nflist): Handle sponsor and revision correctly. + + * gettext.c: Update copyright. + * gettext.h: Likewise. + * hash-string.h: Likewise. + + * finddomain.c: Remoave dead code. Define strchr only if + !HAVE_STRCHR. + + * explodename.c: Include . + + * explodename.c: Reformat copyright text. + (_nl_explode_name): Fix typo. + + * dcgettext.c: Define and use __set_errno. + (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is + not defined. + + * bindtextdom.c: Pretty printing. + +1997-05-01 02:25 Ulrich Drepper + + * dcgettext.c (guess_category_value): Don't depend on + HAVE_LC_MESSAGES. We don't need the macro here. + Patch by Bruno Haible . + + * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL + macro. Instead use HAVE_LOCALE_NULL and define it when using + glibc, as in dcgettext.c. + Patch by Bruno Haible . + + * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois + Pinard. + +Mon Mar 10 06:51:17 1997 Ulrich Drepper + + * Makefile.in: Implement handling of libtool. + + * gettextP.h: Change data structures for use of generic lowlevel + i18n file handling. + +Wed Dec 4 20:21:18 1996 Ulrich Drepper + + * textdomain.c: Put parentheses around arguments of memcpy macro + definition. + * localealias.c: Likewise. + * l10nflist.c: Likewise. + * finddomain.c: Likewise. + * bindtextdom.c: Likewise. + Reported by Thomas Esken. + +Mon Nov 25 22:57:51 1996 Ulrich Drepper + + * textdomain.c: Move definition of `memcpy` macro to right + position. + +Fri Nov 22 04:01:58 1996 Ulrich Drepper + + * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using + bcopy if not already defined. Reported by Thomas Esken. + * bindtextdom.c: Likewise. + * l10nflist.c: Likewise. + * localealias.c: Likewise. + * textdomain.c: Likewise. + +Tue Oct 29 11:10:27 1996 Ulrich Drepper + + * Makefile.in (libdir): Change to use exec_prefix instead of + prefix. Reported by Knut-HåvardAksnes . + +Sat Aug 31 03:07:09 1996 Ulrich Drepper + + * l10nflist.c (_nl_normalize_codeset): We convert to lower case, + so don't prepend uppercase `ISO' for only numeric arg. + +Fri Jul 19 00:15:46 1996 Ulrich Drepper + + * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after + definition of _GNU_SOURCE. Patch by Roland McGrath. + + * Makefile.in (uninstall): Fix another bug with `for' loop and + empty arguments. Patch by Jim Meyering. Correct name os + uninstalled files: no intl- prefix anymore. + + * Makefile.in (install-data): Again work around shells which + cannot handle mpty for list. Reported by Jim Meyering. + +Sat Jul 13 18:11:35 1996 Ulrich Drepper + + * Makefile.in (install): Split goal. Now depend on install-exec + and install-data. + (install-exec, install-data): New goals. Created from former + install goal. + Reported by Karl Berry. + +Sat Jun 22 04:58:14 1996 Ulrich Drepper + + * Makefile.in (MKINSTALLDIRS): New variable. Path to + mkinstalldirs script. + (install): use MKINSTALLDIRS variable or if the script is not present + try to find it in the $top_scrdir). + +Wed Jun 19 02:56:56 1996 Ulrich Drepper + + * l10nflist.c: Linux libc *partly* includes the argz_* functions. + Grr. Work around by renaming the static version and use macros + for renaming. + +Tue Jun 18 20:11:17 1996 Ulrich Drepper + + * l10nflist.c: Correct presence test macros of __argz_* functions. + + * l10nflist.c: Include based on test of it instead when + __argz_* functions are available. + Reported by Andreas Schwab. + +Thu Jun 13 15:17:44 1996 Ulrich Drepper + + * explodename.c, l10nflist.c: Define NULL for dumb systems. + +Tue Jun 11 17:05:13 1996 Ulrich Drepper + + * intlh.inst.in, libgettext.h (dcgettext): Rename local variable + result to __result to prevent name clash. + + * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to + get prototype for stpcpy and strcasecmp. + + * intlh.inst.in, libgettext.h: Move declaration of + `_nl_msg_cat_cntr' outside __extension__ block to prevent warning + from gcc's -Wnested-extern option. + +Fri Jun 7 01:58:00 1996 Ulrich Drepper + + * Makefile.in (install): Remove comment. + +Thu Jun 6 17:28:17 1996 Ulrich Drepper + + * Makefile.in (install): Work around for another Buglix stupidity. + Always use an `else' close for `if's. Reported by Nelson Beebe. + + * Makefile.in (intlh.inst): Correct typo in phony rule. + Reported by Nelson Beebe. + +Thu Jun 6 01:49:52 1996 Ulrich Drepper + + * dcgettext.c (read_alias_file): Rename variable alloca_list to + block_list as the macro calls assume. + Patch by Eric Backus. + + * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using + malloc. + (read_alias_file): Rename varriabe alloca_list to block_list as the + macro calls assume. + Patch by Eric Backus. + + * l10nflist.c: Correct conditional for inclusion. + Reported by Roland McGrath. + + * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not + all-@USE_NLS@. + + * Makefile.in (install): intlh.inst comes from local dir, not + $(srcdir). + + * Makefile.in (intlh.inst): Special handling of this goal. If + used in gettext, this is really a rul to construct this file. If + used in any other package it is defined as a .PHONY rule with + empty body. + + * finddomain.c: Extract locale file information handling into + l10nfile.c. Rename local stpcpy__ function to stpcpy. + + * dcgettext.c (stpcpy): Add local definition. + + * l10nflist.c: Solve some portability problems. Patches partly by + Thomas Esken. Add local definition of stpcpy. + +Tue Jun 4 02:47:49 1996 Ulrich Drepper + + * intlh.inst.in: Don't depend including on + HAVE_LOCALE_H. Instead configure must rewrite this fiile + depending on the result of the configure run. + + * Makefile.in (install): libintl.inst is now called intlh.inst. + Add rules for updating intlh.inst from intlh.inst.in. + + * libintl.inst: Renamed to intlh.inst.in. + + * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1 + because gcc has __buitlin_alloca. + Reported by Roland McGrath. + +Mon Jun 3 00:32:16 1996 Ulrich Drepper + + * Makefile.in (installcheck): New goal to fulfill needs of + automake's distcheck. + + * Makefile.in (install): Reorder commands so that VERSION is + found. + + * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in + @datadir@/gettext. + (COMSRCS): Add l10nfile.c. + (OBJECTS): Add l10nfile.o. + (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common). + (DISTFILE.gettext): Remove $(DISTFILES.common). + (all-gettext): Remove goal. + (install): If $(PACKAGE) = gettext install, otherwose do nothing. No + package but gettext itself should install libintl.h + headers. + (dist): Extend goal to work for gettext, too. + (dist-gettext): Remove goal. + + * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc. + +Sun Jun 2 17:33:06 1996 Ulrich Drepper + + * loadmsgcat.c (_nl_load_domain): Parameter is now comes from + find_l10nfile. + +Sat Jun 1 02:23:03 1996 Ulrich Drepper + + * l10nflist.c (__argz_next): Add definition. + + * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca + code. Use new l10nfile handling. + + * localealias.c [!HAVE_ALLOCA]: Add code for handling missing + alloca code. + + * l10nflist.c: Initial revision. + +Tue Apr 2 18:51:18 1996 Ulrich Drepper + + * Makefile.in (all-gettext): New goal. Same as all-yes. + +Thu Mar 28 23:01:22 1996 Karl Eichwalder + + * Makefile.in (gettextsrcdir): Define using @datadir@. + +Tue Mar 26 12:39:14 1996 Ulrich Drepper + + * finddomain.c: Include . Reported by Roland McGrath. + +Sat Mar 23 02:00:35 1996 Ulrich Drepper + + * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing + with external declaration. + +Sat Mar 2 00:47:09 1996 Ulrich Drepper + + * Makefile.in (all-no): Rename from all_no. + +Sat Feb 17 00:25:59 1996 Ulrich Drepper + + * gettextP.h [loaded_domain]: Array `successor' must now contain up + to 63 elements (because of codeset name normalization). + + * finddomain.c: Implement codeset name normalization. + +Thu Feb 15 04:39:09 1996 Ulrich Drepper + + * Makefile.in (all): Define to `all-@USE_NLS@'. + (all-yes, all_no): New goals. `all-no' is noop, `all-yes' + is former all. + +Mon Jan 15 21:46:01 1996 Howard Gayle + + * localealias.c (alias_compare): Increment string pointers in loop + of strcasecmp replacement. + +Fri Dec 29 21:16:34 1995 Ulrich Drepper + + * Makefile.in (install-src): Who commented this goal out ? :-) + +Fri Dec 29 15:08:16 1995 Ulrich Drepper + + * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls + should not effect it because a missing catalog is no error. + Reported by Harald Knig . + +Tue Dec 19 22:09:13 1995 Ulrich Drepper + + * Makefile.in (Makefile): Explicitly use $(SHELL) for running + shell scripts. + +Fri Dec 15 17:34:59 1995 Andreas Schwab + + * Makefile.in (install-src): Only install library and header when + we use the own implementation. Don't do it when using the + system's gettext or catgets functions. + + * dcgettext.c (find_msg): Must not swap domain->hash_size here. + +Sat Dec 9 16:24:37 1995 Ulrich Drepper + + * localealias.c, libintl.inst, libgettext.h, hash-string.h, + gettextP.h, finddomain.c, dcgettext.c, cat-compat.c: + Use PARAMS instead of __P. Suggested by Roland McGrath. + +Tue Dec 5 11:39:14 1995 Larry Schwimmer + + * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if + !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty. + +Mon Dec 4 15:42:07 1995 Ulrich Drepper + + * Makefile.in (install-src): + Install libintl.inst instead of libintl.h.install. + +Sat Dec 2 22:51:38 1995 Marcus Daniels + + * cat-compat.c (textdomain): + Reverse order in which files are tried you load. First + try local file, when this failed absolute path. + +Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe + + * cat-compat.c (bindtextdomain): Add missing { }. + +Sun Nov 26 18:21:41 1995 Ulrich Drepper + + * libintl.inst: Add missing __P definition. Reported by Nelson Beebe. + + * Makefile.in: + Add dummy `all' and `dvi' goals. Reported by Tom Tromey. + +Sat Nov 25 16:12:01 1995 Franc,ois Pinard + + * hash-string.h: Capitalize arguments of macros. + +Sat Nov 25 12:01:36 1995 Ulrich Drepper + + * Makefile.in (DISTFILES): Prevent files names longer than 13 + characters. libintl.h.glibc->libintl.glibc, + libintl.h.install->libintl.inst. Reported by Joshua R. Poulson. + +Sat Nov 25 11:31:12 1995 Eric Backus + + * dcgettext.c: Fix bug in preprocessor conditionals. + +Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe + + * libgettext.h: Solaris cc does not understand + #if !SYMBOL1 && !SYMBOL2. Sad but true. + +Thu Nov 23 16:22:14 1995 Ulrich Drepper + + * hash-string.h (hash_string): + Fix for machine with >32 bit `unsigned long's. + + * dcgettext.c (DCGETTEXT): + Fix horrible bug in loop for alternative translation. + +Thu Nov 23 01:45:29 1995 Ulrich Drepper + + * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed: + Some further simplifications in message number generation. + +Mon Nov 20 21:08:43 1995 Ulrich Drepper + + * libintl.h.glibc: Use __const instead of const in prototypes. + + * Makefile.in (install-src): + Install libintl.h.install instead of libintl.h. This + is a stripped-down version. Suggested by Peter Miller. + + * libintl.h.install, libintl.h.glibc: Initial revision. + + * localealias.c (_nl_expand_alias, read_alias_file): + Protect prototypes in type casts by __P. + +Tue Nov 14 16:43:58 1995 Ulrich Drepper + + * hash-string.h: Correct prototype for hash_string. + +Sun Nov 12 12:42:30 1995 Ulrich Drepper + + * hash-string.h (hash_string): Add prototype. + + * gettextP.h: Fix copyright. + (SWAP): Add prototype. + +Wed Nov 8 22:56:33 1995 Ulrich Drepper + + * localealias.c (read_alias_file): Forgot sizeof. + Avoid calling *printf function. This introduces a big overhead. + Patch by Roland McGrath. + +Tue Nov 7 14:21:08 1995 Ulrich Drepper + + * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy. + + * finddomain.c (stpcpy): + Define substitution function local. The macro was to flaky. + + * cat-compat.c: Fix typo. + + * xopen-msg.sed, linux-msg.sed: + While bringing message number to right place only accept digits. + + * linux-msg.sed, xopen-msg.sed: Now that the counter does not have + leading 0s we don't need to remove them. Reported by Marcus + Daniels. + + * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in + dependency. Reported by Marcus Daniels. + + * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement. + Generally cleanup using #if instead of #ifndef. + + * Makefile.in: Correct typos in comment. By Franc,ois Pinard. + +Mon Nov 6 00:27:02 1995 Ulrich Drepper + + * Makefile.in (install-src): Don't install libintl.h and libintl.a + if we use an available gettext implementation. + +Sun Nov 5 22:02:08 1995 Ulrich Drepper + + * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported + by Franc,ois Pinard. + + * libgettext.h: Use #if instead of #ifdef/#ifndef. + + * finddomain.c: + Comments describing what has to be done should start with FIXME. + +Sun Nov 5 19:38:01 1995 Ulrich Drepper + + * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning. + DISTFILES.common names the files common to both dist goals. + DISTFILES.gettext are the files only distributed in GNU gettext. + +Sun Nov 5 17:32:54 1995 Ulrich Drepper + + * dcgettext.c (DCGETTEXT): Correct searching in derived locales. + This was necessary since a change in _nl_find_msg several weeks + ago. I really don't know this is still not fixed. + +Sun Nov 5 12:43:12 1995 Ulrich Drepper + + * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This + might mark a special condition. + + * finddomain.c (make_entry_rec): Don't make illegal entry as decided. + + * Makefile.in (dist): Suppress error message when ln failed. + Get files from $(srcdir) explicitly. + + * libgettext.h (gettext_const): Rename to gettext_noop. + +Fri Nov 3 07:36:50 1995 Ulrich Drepper + + * finddomain.c (make_entry_rec): + Protect against wrong locale names by testing mask. + + * libgettext.h (gettext_const): Add macro definition. + Capitalize macro arguments. + +Thu Nov 2 23:15:51 1995 Ulrich Drepper + + * finddomain.c (_nl_find_domain): + Test for pointer != NULL before accessing value. + Reported by Tom Tromey. + + * gettext.c (NULL): + Define as (void*)0 instad of 0. Reported by Franc,ois Pinard. + +Mon Oct 30 21:28:52 1995 Ulrich Drepper + + * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. + +Sat Oct 28 23:20:47 1995 Ulrich Drepper + + * libgettext.h: Disable dcgettext optimization for Solaris 2.3. + + * localealias.c (alias_compare): + Peter Miller reported that tolower in some systems is + even dumber than I thought. Protect call by `isupper'. + +Fri Oct 27 22:22:51 1995 Ulrich Drepper + + * Makefile.in (libdir, includedir): New variables. + (install-src): Install libintl.a and libintl.h in correct dirs. + +Fri Oct 27 22:07:29 1995 Ulrich Drepper + + * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c. + + * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques. + + * localealias.c: + Fix typo and superflous test. Reported by Christian von Roques. + +Fri Oct 6 11:52:05 1995 Ulrich Drepper + + * finddomain.c (_nl_find_domain): + Correct some remainder from the pre-CEN syntax. Now + we don't have a constant number of successors anymore. + +Wed Sep 27 21:41:13 1995 Ulrich Drepper + + * Makefile.in (DISTFILES): Add libintl.h.glibc. + + * Makefile.in (dist-libc): Add goal for packing sources for glibc. + (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc. + + * loadmsgcat.c: Forget to continue #if line. + + * localealias.c: + [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name + space clean. + + * dcgettext.c, finddomain.c: Better comment to last change. + + * loadmsgcat.c: + [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to + __fstat, __open, __close, __read, __mmap, and __munmap resp + to keep ANSI C name space clean. + + * finddomain.c: + [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean. + + * dcgettext.c: + [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to + keep ANSI C name space clean. + + * libgettext.h: + Include sys/types.h for those old SysV systems out there. + Reported by Francesco Potorti`. + + * loadmsgcat.c (use_mmap): Define if compiled for glibc. + + * bindtextdom.c: Include all those standard headers + unconditionally if _LIBC is defined. + + * finddomain.c: Fix 2 times defiend -> defined. + + * textdomain.c: Include libintl.h instead of libgettext.h when + compiling for glibc. Include all those standard headers + unconditionally if _LIBC is defined. + + * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc. + + * gettext.c: + Include libintl.h instead of libgettext.h when compiling for glibc. + Get NULL from stddef.h if we compile for glibc. + + * finddomain.c: Include libintl.h instead of libgettext.h when + compiling for glibc. Include all those standard headers + unconditionally if _LIBC is defined. + + * dcgettext.c: Include all those standard headers unconditionally + if _LIBC is defined. + + * dgettext.c: If compiled in glibc include libintl.h instead of + libgettext.h. + (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc. + + * dcgettext.c: If compiled in glibc include libintl.h instead of + libgettext.h. + (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc. + + * bindtextdom.c: + If compiled in glibc include libintl.h instead of libgettext.h. + +Mon Sep 25 22:23:06 1995 Ulrich Drepper + + * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0. + Reported by Marcus Daniels. + + * cat-compat.c (bindtextdomain): + String used in putenv must not be recycled. + Reported by Marcus Daniels. + + * libgettext.h (__USE_GNU_GETTEXT): + Additional symbol to signal that we use GNU gettext + library. + + * cat-compat.c (bindtextdomain): + Fix bug with the strange stpcpy replacement. + Reported by Nelson Beebe. + +Sat Sep 23 08:23:51 1995 Ulrich Drepper + + * cat-compat.c: Include for stpcpy prototype. + + * localealias.c (read_alias_file): + While expand strdup code temporary variable `cp' hided + higher level variable with same name. Rename to `tp'. + + * textdomain.c (textdomain): + Avoid warning by using temporary variable in strdup code. + + * finddomain.c (_nl_find_domain): Remove unused variable `application'. + +Thu Sep 21 15:51:44 1995 Ulrich Drepper + + * localealias.c (alias_compare): + Use strcasecmp() only if available. Else use + implementation in place. + + * intl-compat.c: + Wrapper functions now call *__ functions instead of __*. + + * libgettext.h: Declare prototypes for *__ functions instead for __*. + + * cat-compat.c, loadmsgcat.c: + Don't use xmalloc, xstrdup, and stpcpy. These functions are not part + of the standard libc and so prevent libintl.a from being used + standalone. + + * bindtextdom.c: + Don't use xmalloc, xstrdup, and stpcpy. These functions are not part + of the standard libc and so prevent libintl.a from being used + standalone. + Rename to bindtextdomain__ if not used in GNU C Library. + + * dgettext.c: + Rename function to dgettext__ if not used in GNU C Library. + + * gettext.c: + Don't use xmalloc, xstrdup, and stpcpy. These functions are not part + of the standard libc and so prevent libintl.a from being used + standalone. + Functions now called gettext__ if not used in GNU C Library. + + * dcgettext.c, localealias.c, textdomain.c, finddomain.c: + Don't use xmalloc, xstrdup, and stpcpy. These functions are not part + of the standard libc and so prevent libintl.a from being used + standalone. + +Sun Sep 17 23:14:49 1995 Ulrich Drepper + + * finddomain.c: Correct some bugs in handling of CEN standard + locale definitions. + +Thu Sep 7 01:49:28 1995 Ulrich Drepper + + * finddomain.c: Implement CEN syntax. + + * gettextP.h (loaded_domain): Extend number of successors to 31. + +Sat Aug 19 19:25:29 1995 Ulrich Drepper + + * Makefile.in (aliaspath): Remove path to X11 locale dir. + + * Makefile.in: Make install-src depend on install. This helps + gettext to install the sources and other packages can use the + install goal. + +Sat Aug 19 15:19:33 1995 Ulrich Drepper + + * Makefile.in (uninstall): Remove stuff installed by install-src. + +Tue Aug 15 13:13:53 1995 Ulrich Drepper + + * VERSION.in: Initial revision. + + * Makefile.in (DISTFILES): + Add VERSION file. This is not necessary for gettext, but + for other packages using this library. + +Tue Aug 15 06:16:44 1995 Ulrich Drepper + + * gettextP.h (_nl_find_domain): + New prototype after changing search strategy. + + * finddomain.c (_nl_find_domain): + We now try only to find a specified catalog. Fall back to other + catalogs listed in the locale list is now done in __dcgettext. + + * dcgettext.c (__dcgettext): + Now we provide message fall back even to different languages. + I.e. if a message is not available in one language all the other + in the locale list a tried. Formerly fall back was only possible + within one language. Implemented by moving one loop from + _nl_find_domain to here. + +Mon Aug 14 23:45:50 1995 Ulrich Drepper + + * Makefile.in (gettextsrcdir): + Directory where source of GNU gettext library are made + available. + (INSTALL, INSTALL_DATA): Programs used for installing sources. + (gettext-src): New. Rule to install GNU gettext sources for use in + gettextize shell script. + +Sun Aug 13 14:40:48 1995 Ulrich Drepper + + * loadmsgcat.c (_nl_load_domain): + Use mmap for loading only when munmap function is + also available. + + * Makefile.in (install): Depend on `all' goal. + +Wed Aug 9 11:04:33 1995 Ulrich Drepper + + * localealias.c (read_alias_file): + Do not overwrite '\n' when terminating alias value string. + + * localealias.c (read_alias_file): + Handle long lines. Ignore the rest not fitting in + the buffer after the initial `fgets' call. + +Wed Aug 9 00:54:29 1995 Ulrich Drepper + + * gettextP.h (_nl_load_domain): + Add prototype, replacing prototype for _nl_load_msg_cat. + + * finddomain.c (_nl_find_domain): + Remove unneeded variable filename and filename_len. + (expand_alias): Remove prototype because functions does not + exist anymore. + + * localealias.c (read_alias_file): + Change type of fname_len parameter to int. + (xmalloc): Add prototype. + + * loadmsgcat.c: Better prototypes for xmalloc. + +Tue Aug 8 22:30:39 1995 Ulrich Drepper + + * finddomain.c (_nl_find_domain): + Allow alias name to be constructed from the four components. + + * Makefile.in (aliaspath): New variable. Set to preliminary value. + (SOURCES): Add localealias.c. + (OBJECTS): Add localealias.o. + + * gettextP.h: Add prototype for _nl_expand_alias. + + * finddomain.c: Aliasing handled in intl/localealias.c. + + * localealias.c: Aliasing for locale names. + + * bindtextdom.c: Better prototypes for xmalloc and xstrdup. + +Mon Aug 7 23:47:42 1995 Ulrich Drepper + + * Makefile.in (DISTFILES): gettext.perl is now found in misc/. + + * cat-compat.c (bindtextdomain): + Correct implementation. dirname parameter was not used. + Reported by Marcus Daniels. + + * gettextP.h (loaded_domain): + New fields `successor' and `decided' for oo, lazy + message handling implementation. + + * dcgettext.c: + Adopt for oo, lazy message handliing. + Now we can inherit translations from less specific locales. + (find_msg): New function. + + * loadmsgcat.c, finddomain.c: + Complete rewrite. Implement oo, lazy message handling :-). + We now have an additional environment variable `LANGUAGE' with + a higher priority than LC_ALL for the LC_MESSAGE locale. + Here we can set a colon separated list of specifications each + of the form `language[_territory[.codeset]][@modifier]'. + +Sat Aug 5 09:55:42 1995 Ulrich Drepper + + * finddomain.c (unistd.h): + Include to get _PC_PATH_MAX defined on system having it. + +Fri Aug 4 22:42:00 1995 Ulrich Drepper + + * finddomain.c (stpcpy): Include prototype. + + * Makefile.in (dist): Remove `copying instead' message. + +Wed Aug 2 18:52:03 1995 Ulrich Drepper + + * Makefile.in (ID, TAGS): Do not use $^. + +Tue Aug 1 20:07:11 1995 Ulrich Drepper + + * Makefile.in (TAGS, ID): Use $^ as command argument. + (TAGS): Give etags -o option t write to current directory, + not $(srcdir). + (ID): Use $(srcdir) instead os $(top_srcdir)/src. + (distclean): Remove ID. + +Sun Jul 30 11:51:46 1995 Ulrich Drepper + + * Makefile.in (gnulocaledir): + New variable, always using share/ for data directory. + (DEFS): Add GNULOCALEDIR, used in finddomain.c. + + * finddomain.c (_nl_default_dirname): + Set to GNULOCALEDIR, because it always has to point + to the directory where GNU gettext Library writes it to. + + * intl-compat.c (textdomain, bindtextdomain): + Undefine macros before function definition. + +Sat Jul 22 01:10:02 1995 Ulrich Drepper + + * libgettext.h (_LIBINTL_H): + Protect definition in case where this file is included as + libgettext.h on Solaris machines. Add comment about this. + +Wed Jul 19 02:36:42 1995 Ulrich Drepper + + * intl-compat.c (textdomain): Correct typo. + +Wed Jul 19 01:51:35 1995 Ulrich Drepper + + * dcgettext.c (dcgettext): Function now called __dcgettext. + + * dgettext.c (dgettext): Now called __dgettext and calls + __dcgettext. + + * gettext.c (gettext): + Function now called __gettext and calls __dgettext. + + * textdomain.c (textdomain): Function now called __textdomain. + + * bindtextdom.c (bindtextdomain): Function now called + __bindtextdomain. + + * intl-compat.c: Initial revision. + + * Makefile.in (SOURCES): Add intl-compat.c. + (OBJECTS): We always compile the GNU gettext library functions. + OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o, + and intl-compat.o. + (GETTOBJS): Contains now only intl-compat.o. + + * libgettext.h: + Re-include protection matches dualistic character of libgettext.h. + For all functions in GNU gettext library define __ counter part. + + * finddomain.c (strchr): Define as index if not found in C library. + (_nl_find_domain): For relative paths paste / in between. + +Tue Jul 18 16:37:45 1995 Ulrich Drepper + + * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h. + + * xopen-msg.sed: Fix bug with `msgstr ""' lines. + A little bit better comments. + +Tue Jul 18 01:18:27 1995 Ulrich Drepper + + * Makefile.in: + po-mode.el, makelinks, combine-sh are now found in ../misc. + + * po-mode.el, makelinks, combine-sh, elisp-comp: + Moved to ../misc/. + + * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__. + +Sun Jul 16 22:33:02 1995 Ulrich Drepper + + * Makefile.in (INSTALL, INSTALL_DATA): New variables. + (install-data, uninstall): Install/uninstall .elc file. + + * po-mode.el (Installation comment): + Add .pox as possible extension of .po files. + +Sun Jul 16 13:23:27 1995 Ulrich Drepper + + * elisp-comp: Complete new version by Franc,ois: This does not + fail when not compiling in the source directory. + +Sun Jul 16 00:12:17 1995 Ulrich Drepper + + * Makefile.in (../po/cat-id-tbl.o): + Use $(MAKE) instead of make for recursive make. + + * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh. + (install-exec): Add missing dummy goal. + (install-data, uninstall): @ in multi-line shell command at + beginning, not in front of echo. Reported by Eric Backus. + +Sat Jul 15 00:21:28 1995 Ulrich Drepper + + * Makefile.in (DISTFILES): + Rename libgettext.perl to gettext.perl to fit in 14 chars + file systems. + + * gettext.perl: + Rename to gettext.perl to fit in 14 chars file systems. + +Thu Jul 13 23:17:20 1995 Ulrich Drepper + + * cat-compat.c: If !STDC_HEADERS try to include malloc.h. + +Thu Jul 13 20:55:02 1995 Ulrich Drepper + + * po2tbl.sed.in: Pretty printing. + + * linux-msg.sed, xopen-msg.sed: + Correct bugs with handling substitute flags in branches. + + * hash-string.h (hash_string): + Old K&R compilers don't under stand `unsigned char'. + + * gettext.h (nls_uint32): + Some old K&R compilers (eg HP) don't understand `unsigned int'. + + * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes. + +Thu Jul 13 01:34:33 1995 Ulrich Drepper + + * Makefile.in (ELCFILES): New variable. + (DISTFILES): Add elisp-comp. + Add implicit rule for .el -> .elc compilation. + (install-data): install $ELCFILES + (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp. + + * elisp-comp: Initial revision + +Wed Jul 12 16:14:52 1995 Ulrich Drepper + + * Makefile.in: + cat-id-tbl.c is now found in po/. This enables us to use an identical + intl/ directory in all packages. + + * dcgettext.c (dcgettext): hashing does not work for table size <= 2. + + * textdomain.c: fix typo (#if def -> #if defined) + +Tue Jul 11 18:44:43 1995 Ulrich Drepper + + * Makefile.in (stamp-cat-id): use top_srcdir to address source files + (DISTFILES,distclean): move tupdate.perl to src/ + + * po-to-tbl.sed.in: + add additional jump to clear change flag to recognize multiline strings + +Tue Jul 11 01:32:50 1995 Ulrich Drepper + + * textdomain.c: Protect inclusion of stdlib.h and string.h. + + * loadmsgcat.c: Protect inclusion of stdlib.h. + + * libgettext.h: Protect inclusion of locale.h. + Allow use in C++ programs. + Define NULL is not happened already. + + * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of + po-to-tbl.sed. + (distclean): remove po-to-tbl.sed and tupdate.perl. + + * tupdate.perl.in: Substitute Perl path even in exec line. + Don't include entries without translation from old .po file. + +Tue Jul 4 00:41:51 1995 Ulrich Drepper + + * tupdate.perl.in: use "Updated: " in msgid "". + + * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR). + Define getenv if !__STDC__. + + * bindtextdom.c: Protect stdlib.h and string.h inclusion. + Define free if !__STDC__. + + * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. + Define free if !__STDC__. + + * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. + +Mon Jul 3 23:56:30 1995 Ulrich Drepper + + * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR. + Remove unneeded $(srcdir) from Makefile.in dependency. + + * makelinks: Add copyright and short description. + + * po-mode.el: Last version for 0.7. + + * tupdate.perl.in: Fix die message. + + * dcgettext.c: Protect include of string.h. + + * gettext.c: Protect include of stdlib.h and further tries to get NULL. + + * finddomain.c: Some corrections in includes. + + * Makefile.in (INCLUDES): Prune list correct path to Makefile.in. + + * po-to-tbl.sed: Adopt for new .po file format. + + * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format. + +Sun Jul 2 23:55:03 1995 Ulrich Drepper + + * tupdate.perl.in: Complete rewrite for new .po file format. + +Sun Jul 2 02:06:50 1995 Ulrich Drepper + + * First official release. This directory contains all the code + needed to internationalize own packages. It provides functions + which allow to use the X/Open catgets function with an interface + like the Uniforum gettext function. For system which does not + have neither of those a complete implementation is provided. diff -uNr gnome-0.11/programs/freecell/intl/Makefile.in gnome-0.12/programs/freecell/intl/Makefile.in --- gnome-0.11/programs/freecell/intl/Makefile.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/Makefile.in Mon Jan 19 10:48:35 1998 @@ -0,0 +1,214 @@ +# Makefile for directory with message catalog handling in GNU NLS Utilities. +# Copyright (C) 1995, 1996, 1997 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 = $(exec_prefix)/lib +includedir = $(prefix)/include +datadir = $(prefix)/@DATADIRNAME@ +localedir = $(datadir)/locale +gnulocaledir = $(prefix)/share/locale +gettextsrcdir = @datadir@/gettext/intl +aliaspath = $(localedir):. +subdir = intl + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = @MKINSTALLDIRS@ + +l = @l@ + +AR = ar +CC = @CC@ +LIBTOOL = @LIBTOOL@ +RANLIB = @RANLIB@ + +DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \ +-DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@ +CPPFLAGS = @CPPFLAGS@ +CFLAGS = @CFLAGS@ +LDFLAGS = @LDFLAGS@ + +COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) + +HEADERS = $(COMHDRS) libgettext.h loadinfo.h +COMHDRS = gettext.h gettextP.h hash-string.h +SOURCES = $(COMSRCS) intl-compat.c cat-compat.c +COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \ +finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \ +explodename.c +OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ +finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ +explodename.$lo +CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo +GETTOBJS = intl-compat.$lo +DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \ +xopen-msg.sed $(HEADERS) $(SOURCES) +DISTFILES.normal = VERSION +DISTFILES.gettext = libintl.glibc intlh.inst.in + +.SUFFIXES: +.SUFFIXES: .c .o .lo +.c.o: + $(COMPILE) $< +.c.lo: + $(LIBTOOL) --mode=compile $(COMPILE) $< + +INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib + +all: all-@USE_INCLUDED_LIBINTL@ + +all-yes: libintl.$la intlh.inst +all-no: + +libintl.a: $(OBJECTS) + rm -f $@ + $(AR) cru $@ $(OBJECTS) + $(RANLIB) $@ + +libintl.la: $(OBJECTS) + $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \ + -version-info 1:0 -rpath $(libdir) + +../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot + cd ../po && $(MAKE) cat-id-tbl.$lo + +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 gettext() function in its C library or in a +# separate library or use the catgets interface. A special case is +# where configure found a previously installed GNU gettext 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 \ + if test -r $(MKINSTALLDIRS); then \ + $(MKINSTALLDIRS) $(libdir) $(includedir); \ + else \ + $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \ + fi; \ + $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \ + $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \ + else \ + : ; \ + fi +install-data: all + if test "$(PACKAGE)" = "gettext"; then \ + if test -r $(MKINSTALLDIRS); then \ + $(MKINSTALLDIRS) $(gettextsrcdir); \ + else \ + $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ + fi; \ + $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \ + dists="$(DISTFILES.common)"; \ + for file in $$dists; do \ + $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: + dists="$(DISTFILES.common)"; \ + for file in $$dists; do \ + rm -f $(gettextsrcdir)/$$file; \ + done + +info dvi: + +$(OBJECTS): ../config.h libgettext.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 *.o *.lo core core.* + +clean: mostlyclean + +distclean: clean + rm -f Makefile ID TAGS po2msg.sed po2tbl.sed libintl.h + +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 $(DISTFILES) + if test "$(PACKAGE)" = gettext; then \ + additional="$(DISTFILES.gettext)"; \ + else \ + additional="$(DISTFILES.normal)"; \ + fi; \ + for file in $(DISTFILES.common) $$additional; do \ + ln $(srcdir)/$$file $(distdir) 2> /dev/null \ + || cp -p $(srcdir)/$$file $(distdir); \ + done + +dist-libc: + tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc + +Makefile: Makefile.in ../config.status + cd .. \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +# The dependency for intlh.inst is different in gettext and all other +# packages. Because we cannot you GNU make features we have to solve +# the problem while rewriting Makefile.in. +@GT_YES@intlh.inst: intlh.inst.in ../config.status +@GT_YES@ cd .. \ +@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \ +@GT_YES@ $(SHELL) ./config.status +@GT_NO@.PHONY: intlh.inst +@GT_NO@intlh.inst: + +# 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: diff -uNr gnome-0.11/programs/freecell/intl/VERSION gnome-0.12/programs/freecell/intl/VERSION --- gnome-0.11/programs/freecell/intl/VERSION Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/VERSION Mon Jan 19 10:48:35 1998 @@ -0,0 +1 @@ +GNU gettext library from gettext-0.10.32 diff -uNr gnome-0.11/programs/freecell/intl/bindtextdom.c gnome-0.12/programs/freecell/intl/bindtextdom.c --- gnome-0.11/programs/freecell/intl/bindtextdom.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/bindtextdom.c Mon Jan 19 10:48:40 1998 @@ -0,0 +1,199 @@ +/* Implementation of the bindtextdomain(3) function + Copyright (C) 1995, 1996, 1997 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 + +#if defined STDC_HEADERS || defined _LIBC +# include +#else +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# include +#else +# include +# ifndef memcpy +# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +# endif +#endif + +#ifdef _LIBC +# include +#else +# include "libgettext.h" +#endif +#include "gettext.h" +#include "gettextP.h" + +/* @@ 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; + + +/* 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 strdup(str) __strdup (str) +#else +# define BINDTEXTDOMAIN bindtextdomain__ +#endif + +/* 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; +{ + struct binding *binding; + + /* Some sanity checks. */ + if (domainname == NULL || domainname[0] == '\0') + return NULL; + + 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 (dirname == NULL) + /* The current binding has be to returned. */ + return binding == NULL ? (char *) _nl_default_dirname : binding->dirname; + + if (binding != NULL) + { + /* The domain is already bound. If the new value and the old + one are equal we simply do nothing. Otherwise replace the + old binding. */ + if (strcmp (dirname, binding->dirname) != 0) + { + char *new_dirname; + + if (strcmp (dirname, _nl_default_dirname) == 0) + new_dirname = (char *) _nl_default_dirname; + else + { +#if defined _LIBC || defined HAVE_STRDUP + new_dirname = strdup (dirname); + if (new_dirname == NULL) + return NULL; +#else + size_t len = strlen (dirname) + 1; + new_dirname = (char *) malloc (len); + if (new_dirname == NULL) + return NULL; + + memcpy (new_dirname, dirname, len); +#endif + } + + if (binding->dirname != _nl_default_dirname) + free (binding->dirname); + + binding->dirname = new_dirname; + } + } + else + { + /* We have to create a new binding. */ + size_t len; + struct binding *new_binding = + (struct binding *) malloc (sizeof (*new_binding)); + + if (new_binding == NULL) + return NULL; + +#if defined _LIBC || defined HAVE_STRDUP + new_binding->domainname = strdup (domainname); + if (new_binding->domainname == NULL) + return NULL; +#else + len = strlen (domainname) + 1; + new_binding->domainname = (char *) malloc (len); + if (new_binding->domainname == NULL) + return NULL; + memcpy (new_binding->domainname, domainname, len); +#endif + + if (strcmp (dirname, _nl_default_dirname) == 0) + new_binding->dirname = (char *) _nl_default_dirname; + else + { +#if defined _LIBC || defined HAVE_STRDUP + new_binding->dirname = strdup (dirname); + if (new_binding->dirname == NULL) + return NULL; +#else + len = strlen (dirname) + 1; + new_binding->dirname = (char *) malloc (len); + if (new_binding->dirname == NULL) + return NULL; + memcpy (new_binding->dirname, dirname, len); +#endif + } + + /* 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; + } + + binding = new_binding; + } + + return binding->dirname; +} + +#ifdef _LIBC +/* Alias for function name in GNU C Library. */ +weak_alias (__bindtextdomain, bindtextdomain); +#endif diff -uNr gnome-0.11/programs/freecell/intl/cat-compat.c gnome-0.12/programs/freecell/intl/cat-compat.c --- gnome-0.11/programs/freecell/intl/cat-compat.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/cat-compat.c Mon Jan 19 10:48:42 1998 @@ -0,0 +1,262 @@ +/* Compatibility code for gettext-using-catgets interface. + Copyright (C) 1995, 1997 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 + +#ifdef STDC_HEADERS +# include +# include +#else +char *getenv (); +# ifdef HAVE_MALLOC_H +# include +# endif +#endif + +#ifdef HAVE_NL_TYPES_H +# include +#endif + +#include "libgettext.h" + +/* @@ end of prolog @@ */ + +/* 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. And even worse: POSIX + defines this not at all. So we can use this feature only on selected + system (e.g. those using GNU C Library). */ +#ifdef _LIBC +# define HAVE_LOCALE_NULL +#endif + +/* The catalog descriptor. */ +static nl_catd catalog = (nl_catd) -1; + +/* Name of the default catalog. */ +static const char default_catalog_name[] = "messages"; + +/* Name of currently used catalog. */ +static const char *catalog_name = default_catalog_name; + +/* Get ID for given string. If not found return -1. */ +static int msg_to_cat_id PARAMS ((const char *msg)); + +/* Substitution for systems lacking this function in their C library. */ +#if !_LIBC && !HAVE_STPCPY +static char *stpcpy PARAMS ((char *dest, const char *src)); +#endif + + +/* Set currently used domain/catalog. */ +char * +textdomain (domainname) + const char *domainname; +{ + nl_catd new_catalog; + char *new_name; + size_t new_name_len; + char *lang; + +#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \ + && defined HAVE_LOCALE_NULL + lang = setlocale (LC_MESSAGES, NULL); +#else + lang = getenv ("LC_ALL"); + if (lang == NULL || lang[0] == '\0') + { + lang = getenv ("LC_MESSAGES"); + if (lang == NULL || lang[0] == '\0') + lang = getenv ("LANG"); + } +#endif + if (lang == NULL || lang[0] == '\0') + lang = "C"; + + /* See whether name of currently used domain is asked. */ + if (domainname == NULL) + return (char *) catalog_name; + + if (domainname[0] == '\0') + domainname = default_catalog_name; + + /* Compute length of added path element. */ + new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang) + + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1 + + sizeof (".cat"); + + new_name = (char *) malloc (new_name_len); + if (new_name == NULL) + return NULL; + + strcpy (new_name, PACKAGE); + new_catalog = catopen (new_name, 0); + + if (new_catalog == (nl_catd) -1) + { + /* NLSPATH search didn't work, try absolute path */ + sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang, + PACKAGE); + new_catalog = catopen (new_name, 0); + + if (new_catalog == (nl_catd) -1) + { + free (new_name); + return (char *) catalog_name; + } + } + + /* Close old catalog. */ + if (catalog != (nl_catd) -1) + catclose (catalog); + if (catalog_name != default_catalog_name) + free ((char *) catalog_name); + + catalog = new_catalog; + catalog_name = new_name; + + return (char *) catalog_name; +} + +char * +bindtextdomain (domainname, dirname) + const char *domainname; + const char *dirname; +{ +#if HAVE_SETENV || HAVE_PUTENV + char *old_val, *new_val, *cp; + size_t new_val_len; + + /* This does not make much sense here but to be compatible do it. */ + if (domainname == NULL) + return NULL; + + /* Compute length of added path element. If we use setenv we don't need + the first byts for NLSPATH=, but why complicate the code for this + peanuts. */ + new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname) + + sizeof ("/%L/LC_MESSAGES/%N.cat"); + + old_val = getenv ("NLSPATH"); + if (old_val == NULL || old_val[0] == '\0') + { + old_val = NULL; + new_val_len += 1 + sizeof (LOCALEDIR) - 1 + + sizeof ("/%L/LC_MESSAGES/%N.cat"); + } + else + new_val_len += strlen (old_val); + + new_val = (char *) malloc (new_val_len); + if (new_val == NULL) + return NULL; + +# if HAVE_SETENV + cp = new_val; +# else + cp = stpcpy (new_val, "NLSPATH="); +# endif + + cp = stpcpy (cp, dirname); + cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:"); + + if (old_val == NULL) + { +# if __STDC__ + stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat"); +# else + + cp = stpcpy (cp, LOCALEDIR); + stpcpy (cp, "/%L/LC_MESSAGES/%N.cat"); +# endif + } + else + stpcpy (cp, old_val); + +# if HAVE_SETENV + setenv ("NLSPATH", new_val, 1); + free (new_val); +# else + putenv (new_val); + /* Do *not* free the environment entry we just entered. It is used + from now on. */ +# endif + +#endif + + return (char *) domainname; +} + +#undef gettext +char * +gettext (msg) + const char *msg; +{ + int msgid; + + if (msg == NULL || catalog == (nl_catd) -1) + return (char *) msg; + + /* Get the message from the catalog. We always use set number 1. + The message ID is computed by the function `msg_to_cat_id' + which works on the table generated by `po-to-tbl'. */ + msgid = msg_to_cat_id (msg); + if (msgid == -1) + return (char *) msg; + + return catgets (catalog, 1, msgid, (char *) msg); +} + +/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries + for the one equal to msg. If it is found return the ID. In case when + the string is not found return -1. */ +static int +msg_to_cat_id (msg) + const char *msg; +{ + int cnt; + + for (cnt = 0; cnt < _msg_tbl_length; ++cnt) + if (strcmp (msg, _msg_tbl[cnt]._msg) == 0) + return _msg_tbl[cnt]._msg_number; + + return -1; +} + + +/* @@ 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 diff -uNr gnome-0.11/programs/freecell/intl/dcgettext.c gnome-0.12/programs/freecell/intl/dcgettext.c --- gnome-0.11/programs/freecell/intl/dcgettext.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/dcgettext.c Mon Jan 19 10:48:44 1998 @@ -0,0 +1,593 @@ +/* Implementation of the dcgettext(3) function + Copyright (C) 1995, 1996, 1997 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 + +#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 + +#if defined STDC_HEADERS || defined _LIBC +# include +#else +char *getenv (); +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +# endif +# include +#else +# include +#endif +#if !HAVE_STRCHR && !defined _LIBC +# ifndef strchr +# define strchr index +# endif +#endif + +#if defined HAVE_UNISTD_H || defined _LIBC +# include +#endif + +#include "gettext.h" +#include "gettextP.h" +#ifdef _LIBC +# include +#else +# include "libgettext.h" +#endif +#include "hash-string.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 getcwd __getcwd +# define stpcpy __stpcpy +#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 +#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 + +/* 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. And even worse: POSIX + defines this not at all. So we can use this feature only on selected + system (e.g. those using GNU C Library). */ +#ifdef _LIBC +# define HAVE_LOCALE_NULL +#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[] = GNULOCALEDIR; + +/* List with bindings of specific domains created by bindtextdomain() + calls. */ +struct binding *_nl_domain_bindings; + +/* Prototypes for local functions. */ +static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file, + const char *msgid)); +static const char *category_to_name PARAMS ((int category)); +static const char *guess_category_value PARAMS ((int category, + const char *categoryname)); + + +/* 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 */ + + +/* 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 +#else +# define DCGETTEXT dcgettext__ +#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; +{ +#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; + int saved_errno = errno; + + /* If no real MSGID is given return NULL. */ + if (msgid == NULL) + return NULL; + + /* 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 + defintion left this undefined. */ + if (domainname == NULL) + domainname = _nl_current_default_domain; + + /* 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 (binding->dirname[0] == '/') + 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) PATH_MAX; + path_max += 2; /* The getcwd docs say to do this. */ + + dirname = (char *) alloca (path_max + dirname_len); + ADD_BLOCK (block_list, dirname); + + __set_errno (0); + while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE) + { + path_max += PATH_INCR; + dirname = (char *) alloca (path_max + dirname_len); + ADD_BLOCK (block_list, dirname); + __set_errno (0); + } + + 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); + __set_errno (saved_errno); + return (char *) msgid; + } + + 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); + + xdomainname = (char *) alloca (strlen (categoryname) + + strlen (domainname) + 5); + ADD_BLOCK (block_list, xdomainname); + + stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), + domainname), + ".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 th 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'; + } + + /* 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); + __set_errno (saved_errno); + return (char *) msgid; + } + + + /* Find structure describing the message catalog matching the + DOMAINNAME and CATEGORY. */ + domain = _nl_find_domain (dirname, single_locale, xdomainname); + + if (domain != NULL) + { + retval = find_msg (domain, msgid); + + if (retval == NULL) + { + int cnt; + + for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) + { + retval = find_msg (domain->successor[cnt], msgid); + + if (retval != NULL) + break; + } + } + + if (retval != NULL) + { + FREE_BLOCKS (block_list); + __set_errno (saved_errno); + return retval; + } + } + } + /* NOTREACHED */ +} + +#ifdef _LIBC +/* Alias for function name in GNU C Library. */ +weak_alias (__dcgettext, dcgettext); +#endif + + +static char * +find_msg (domain_file, msgid) + struct loaded_l10nfile *domain_file; + const char *msgid; +{ + size_t top, act, bottom; + struct loaded_domain *domain; + + if (domain_file->decided == 0) + _nl_load_domain (domain_file); + + 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)); + nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]); + + if (nstr == 0) + /* Hash table entry is empty. */ + return NULL; + + 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) + return (char *) domain->data + W (domain->must_swap, + domain->trans_tab[nstr - 1].offset); + + while (1) + { + if (idx >= domain->hash_size - incr) + idx -= domain->hash_size - incr; + else + idx += incr; + + nstr = W (domain->must_swap, domain->hash_tab[idx]); + if (nstr == 0) + /* Hash table entry is empty. */ + return NULL; + + 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) + return (char *) domain->data + + W (domain->must_swap, domain->trans_tab[nstr - 1].offset); + } + /* NOTREACHED */ + } + + /* Now we try the default method: binary search in the sorted + array of messages. */ + 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 + break; + } + + /* If an translation is found return this. */ + return bottom >= top ? NULL : (char *) domain->data + + W (domain->must_swap, + domain->trans_tab[act].offset); +} + + +/* Return string representation of locale CATEGORY. */ +static const char * +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 * +guess_category_value (category, categoryname) + int category; + const char *categoryname; +{ + const char *retval; + + /* The highest priority value is the `LANGUAGE' environment + variable. This is a GNU extension. */ + retval = getenv ("LANGUAGE"); + if (retval != NULL && retval[0] != '\0') + return retval; + + /* `LANGUAGE' is not set. So 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 HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL + return setlocale (category, NULL); +#else + /* Setting of LC_ALL overwrites all other. */ + retval = getenv ("LC_ALL"); + if (retval != NULL && retval[0] != '\0') + return retval; + + /* Next comes the name of the desired category. */ + retval = getenv (categoryname); + if (retval != NULL && retval[0] != '\0') + return retval; + + /* Last possibility is the LANG environment variable. */ + retval = getenv ("LANG"); + if (retval != NULL && retval[0] != '\0') + return retval; + + /* We use C as the default domain. POSIX says this is implementation + defined. */ + return "C"; +#endif +} + +/* @@ 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 diff -uNr gnome-0.11/programs/freecell/intl/dgettext.c gnome-0.12/programs/freecell/intl/dgettext.c --- gnome-0.11/programs/freecell/intl/dgettext.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/dgettext.c Mon Jan 19 10:48:45 1998 @@ -0,0 +1,59 @@ +/* dgettext.c -- implementation of the dgettext(3) function + Copyright (C) 1995 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 + +#if defined HAVE_LOCALE_H || defined _LIBC +# include +#endif + +#ifdef _LIBC +# include +#else +# include "libgettext.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 diff -uNr gnome-0.11/programs/freecell/intl/explodename.c gnome-0.12/programs/freecell/intl/explodename.c --- gnome-0.11/programs/freecell/intl/explodename.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/explodename.c Mon Jan 19 10:48:45 1998 @@ -0,0 +1,181 @@ +/* Copyright (C) 1995, 1996, 1997 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 @@ */ + +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; + while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@' + && cp[0] != '+' && cp[0] != ',') + ++cp; + + 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; +} diff -uNr gnome-0.11/programs/freecell/intl/finddomain.c gnome-0.12/programs/freecell/intl/finddomain.c --- gnome-0.11/programs/freecell/intl/finddomain.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/finddomain.c Mon Jan 19 10:48:46 1998 @@ -0,0 +1,189 @@ +/* Handle list of needed message catalogs + Copyright (C) 1995, 1996, 1997 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 STDC_HEADERS || defined _LIBC +# include +#else +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# include +#else +# include +# ifndef memcpy +# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +# endif +#endif +#if !HAVE_STRCHR && !defined _LIBC +# ifndef strchr +# define strchr index +# endif +#endif + +#if defined HAVE_UNISTD_H || defined _LIBC +# include +#endif + +#include "gettext.h" +#include "gettextP.h" +#ifdef _LIBC +# include +#else +# include "libgettext.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 * +_nl_find_domain (dirname, locale, domainname) + const char *dirname; + char *locale; + const char *domainname; +{ + 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 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 part will be stripped of 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); + + 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]); + + 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) + { + size_t len = strlen (alias_value) + 1; + locale = (char *) malloc (len); + if (locale == NULL) + return NULL; + + memcpy (locale, alias_value, len); + } + + /* 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); + 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]); + if (retval->successor[cnt]->data != NULL) + break; + } + } + + /* The room for an alias was dynamically allocated. Free it now. */ + if (alias_value != NULL) + free (locale); + + return retval; +} diff -uNr gnome-0.11/programs/freecell/intl/gettext.c gnome-0.12/programs/freecell/intl/gettext.c --- gnome-0.11/programs/freecell/intl/gettext.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/gettext.c Mon Jan 19 10:48:46 1998 @@ -0,0 +1,70 @@ +/* Implementation of gettext(3) function + Copyright (C) 1995, 1997 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 +# ifdef STDC_HEADERS +# include /* Just for NULL. */ +# else +# ifdef HAVE_STRING_H +# include +# else +# define NULL ((void *) 0) +# endif +# endif +#endif + +#ifdef _LIBC +# include +#else +# include "libgettext.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 DGETTEXT __dgettext +#else +# define GETTEXT gettext__ +# define DGETTEXT dgettext__ +#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 DGETTEXT (NULL, msgid); +} + +#ifdef _LIBC +/* Alias for function name in GNU C Library. */ +weak_alias (__gettext, gettext); +#endif diff -uNr gnome-0.11/programs/freecell/intl/gettext.h gnome-0.12/programs/freecell/intl/gettext.h --- gnome-0.11/programs/freecell/intl/gettext.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/gettext.h Mon Jan 19 10:48:46 1998 @@ -0,0 +1,105 @@ +/* Internal header for GNU gettext internationalization functions + Copyright (C) 1995, 1997 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 Library General Public + License along with the GNU C Library; see the file COPYING.LIB. 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 + +#include + +#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 + doing that would require that the configure script compile and *run* + the resulting executable. Locally running cross-compiled executables + is usually not possible. */ + +#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 */ diff -uNr gnome-0.11/programs/freecell/intl/gettextP.h gnome-0.12/programs/freecell/intl/gettextP.h --- gnome-0.11/programs/freecell/intl/gettextP.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/gettextP.h Mon Jan 19 10:48:47 1998 @@ -0,0 +1,73 @@ +/* Header describing internals of gettext library + Copyright (C) 1995, 1996, 1997 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 _GETTEXTP_H +#define _GETTEXTP_H + +#include "loadinfo.h" + +/* @@ end of prolog @@ */ + +#ifndef PARAMS +# if __STDC__ +# define PARAMS(args) args +# else +# define PARAMS(args) () +# endif +#endif + +#ifndef W +# define W(flag, data) ((flag) ? SWAP (data) : (data)) +#endif + + +static nls_uint32 SWAP PARAMS ((nls_uint32 i)); + +static inline nls_uint32 +SWAP (i) + nls_uint32 i; +{ + return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); +} + + +struct loaded_domain +{ + const char *data; + int must_swap; + nls_uint32 nstrings; + struct string_desc *orig_tab; + struct string_desc *trans_tab; + nls_uint32 hash_size; + nls_uint32 *hash_tab; +}; + +struct binding +{ + struct binding *next; + char *domainname; + char *dirname; +}; + +struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, + char *__locale, + const char *__domainname)); +void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain)); + +/* @@ begin of epilog @@ */ + +#endif /* gettextP.h */ diff -uNr gnome-0.11/programs/freecell/intl/hash-string.h gnome-0.12/programs/freecell/intl/hash-string.h --- gnome-0.11/programs/freecell/intl/hash-string.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/hash-string.h Mon Jan 19 10:48:47 1998 @@ -0,0 +1,63 @@ +/* Implements a string hashing function. + Copyright (C) 1995, 1997 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 Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifdef HAVE_VALUES_H +# include +#endif + +/* @@ 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 hash_string PARAMS ((const char *__str_param)); + +static inline unsigned long +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) *str++; + g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4)); + if (g != 0) + { + hval ^= g >> (HASHWORDBITS - 8); + hval ^= g; + } + } + return hval; +} diff -uNr gnome-0.11/programs/freecell/intl/intl-compat.c gnome-0.12/programs/freecell/intl/intl-compat.c --- gnome-0.11/programs/freecell/intl/intl-compat.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/intl-compat.c Mon Jan 19 10:48:47 1998 @@ -0,0 +1,76 @@ +/* intl-compat.c - Stub functions to call gettext functions from GNU gettext + Library. + Copyright (C) 1995 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 "libgettext.h" + +/* @@ end of prolog @@ */ + + +#undef gettext +#undef dgettext +#undef dcgettext +#undef textdomain +#undef bindtextdomain + + +char * +bindtextdomain (domainname, dirname) + const char *domainname; + const char *dirname; +{ + return bindtextdomain__ (domainname, dirname); +} + + +char * +dcgettext (domainname, msgid, category) + const char *domainname; + const char *msgid; + int category; +{ + return dcgettext__ (domainname, msgid, category); +} + + +char * +dgettext (domainname, msgid) + const char *domainname; + const char *msgid; +{ + return dgettext__ (domainname, msgid); +} + + +char * +gettext (msgid) + const char *msgid; +{ + return gettext__ (msgid); +} + + +char * +textdomain (domainname) + const char *domainname; +{ + return textdomain__ (domainname); +} diff -uNr gnome-0.11/programs/freecell/intl/l10nflist.c gnome-0.12/programs/freecell/intl/l10nflist.c --- gnome-0.11/programs/freecell/intl/l10nflist.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/l10nflist.c Mon Jan 19 10:48:48 1998 @@ -0,0 +1,409 @@ +/* Handle list of needed message catalogs + Copyright (C) 1995, 1996, 1997 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 + + +#if defined HAVE_STRING_H || defined _LIBC +# ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +# endif +# include +#else +# include +# ifndef memcpy +# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +# endif +#endif +#if !HAVE_STRCHR && !defined _LIBC +# ifndef strchr +# define strchr index +# endif +#endif + +#if defined _LIBC || defined HAVE_ARGZ_H +# include +#endif +#include +#include + +#if defined STDC_HEADERS || defined _LIBC +# include +#endif + +#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. */ +# define stpcpy(dest, src) __stpcpy(dest, src) +#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, ':'); + 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. */ +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 diff -uNr gnome-0.11/programs/freecell/intl/libgettext.h gnome-0.12/programs/freecell/intl/libgettext.h --- gnome-0.11/programs/freecell/intl/libgettext.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/libgettext.h Mon Jan 19 10:48:49 1998 @@ -0,0 +1,182 @@ +/* Message catalogs for internationalization. + Copyright (C) 1995, 1996, 1997 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. */ + +/* Because on some systems (e.g. Solaris) we sometimes have to include + the systems libintl.h as well as this file we have more complex + include protection above. But the systems header might perhaps also + define _LIBINTL_H and therefore we have to protect the definition here. */ + +#if !defined (_LIBINTL_H) || !defined (_LIBGETTEXT_H) +#if !defined (_LIBINTL_H) +# define _LIBINTL_H 1 +#endif +#define _LIBGETTEXT_H 1 + +/* We define an additional symbol to signal that we use the GNU + implementation of gettext. */ +#define __USE_GNU_GETTEXT 1 + +#include + +#if HAVE_LOCALE_H +# include +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +/* @@ end of prolog @@ */ + +#ifndef PARAMS +# if __STDC__ +# define PARAMS(args) args +# else +# define PARAMS(args) () +# endif +#endif + +#ifndef NULL +# if !defined __cplusplus || defined __GNUC__ +# define NULL ((void *) 0) +# else +# define NULL (0) +# endif +#endif + +#if !HAVE_LC_MESSAGES +/* This value determines the behaviour of the gettext() and dgettext() + function. But some system does not have this defined. Define it + to a default value. */ +# define LC_MESSAGES (-1) +#endif + + +/* Declarations for gettext-using-catgets interface. Derived from + Jim Meyering's libintl.h. */ +struct _msg_ent +{ + const char *_msg; + int _msg_number; +}; + + +#if HAVE_CATGETS +/* These two variables are defined in the automatically by po-to-tbl.sed + generated file `cat-id-tbl.c'. */ +extern const struct _msg_ent _msg_tbl[]; +extern int _msg_tbl_length; +#endif + + +/* For automatical extraction of messages sometimes no real + translation is needed. Instead the string itself is the result. */ +#define gettext_noop(Str) (Str) + +/* 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)); +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)); +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)); +extern char *dcgettext__ PARAMS ((const char *__domainname, + const char *__msgid, 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)); +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)); +extern char *bindtextdomain__ PARAMS ((const char *__domainname, + const char *__dirname)); + +#if ENABLE_NLS + +/* Solaris 2.3 has the gettext function but dcgettext is missing. + So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4 + has dcgettext. */ +# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT) + +# define gettext(Msgid) \ + dgettext (NULL, Msgid) + +# define dgettext(Domainname, Msgid) \ + dcgettext (Domainname, Msgid, LC_MESSAGES) + +# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7 +/* This global variable is defined in loadmsgcat.c. We need a sign, + whether a new catalog was loaded, which can be associated with all + translations. */ +extern int _nl_msg_cat_cntr; + +# define dcgettext(Domainname, Msgid, Category) \ + (__extension__ \ + ({ \ + char *__result; \ + if (__builtin_constant_p (Msgid)) \ + { \ + static char *__translation__; \ + static int __catalog_counter__; \ + if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \ + { \ + __translation__ = \ + dcgettext__ (Domainname, Msgid, Category); \ + __catalog_counter__ = _nl_msg_cat_cntr; \ + } \ + __result = __translation__; \ + } \ + else \ + __result = dcgettext__ (Domainname, Msgid, Category); \ + __result; \ + })) +# endif +# endif + +#else + +# define gettext(Msgid) (Msgid) +# define dgettext(Domainname, Msgid) (Msgid) +# define dcgettext(Domainname, Msgid, Category) (Msgid) +# define textdomain(Domainname) while (0) /* nothing */ +# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */ + +#endif + +/* @@ begin of epilog @@ */ + +#ifdef __cplusplus +} +#endif + +#endif diff -uNr gnome-0.11/programs/freecell/intl/linux-msg.sed gnome-0.12/programs/freecell/intl/linux-msg.sed --- gnome-0.11/programs/freecell/intl/linux-msg.sed Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/linux-msg.sed Mon Jan 19 10:48:49 1998 @@ -0,0 +1,100 @@ +# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file +# Copyright (C) 1995 Free Software Foundation, Inc. +# 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. +# +# +# The first directive in the .msg should be the definition of the +# message set number. We use always set number 1. +# +1 { + i\ +$set 1 # Automatically created by po2msg.sed + h + s/.*/0/ + x +} +# +# Mitch's old catalog format does not allow comments. +# +# We copy the original message as a comment into the .msg file. +# +/^msgid/ { + s/msgid[ ]*"// +# +# This does not work now with the new format. +# /"$/! { +# s/\\$// +# s/$/ ... (more lines following)"/ +# } + x +# The following nice solution is by +# Bruno + td +# Increment a decimal number in pattern space. +# First hide trailing `9' digits. + :d + s/9\(_*\)$/_\1/ + td +# Assure at least one digit is available. + s/^\(_*\)$/0\1/ +# Increment the last digit. + s/8\(_*\)$/9\1/ + s/7\(_*\)$/8\1/ + s/6\(_*\)$/7\1/ + s/5\(_*\)$/6\1/ + s/4\(_*\)$/5\1/ + s/3\(_*\)$/4\1/ + s/2\(_*\)$/3\1/ + s/1\(_*\)$/2\1/ + s/0\(_*\)$/1\1/ +# Convert the hidden `9' digits to `0's. + s/_/0/g + x + G + s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p +} +# +# The .msg file contains, other then the .po file, only the translations +# but each given a unique ID. Starting from 1 and incrementing by 1 for +# each message we assign them to the messages. +# It is important that the .po file used to generate the cat-id-tbl.c file +# (with po-to-tbl) is the same as the one used here. (At least the order +# of declarations must not be changed.) +# +/^msgstr/ { + s/msgstr[ ]*"\(.*\)"/# \1/ +# Clear substitution flag. + tb +# Append the next line. + :b + N +# Look whether second part is continuation line. + s/\(.*\n\)"\(.*\)"/\1\2/ +# Yes, then branch. + ta + P + D +# Note that D includes a jump to the start!! +# We found a continuation line. But before printing insert '\'. + :a + s/\(.*\)\(\n.*\)/\1\\\2/ + P +# We cannot use D here. + s/.*\n\(.*\)/\1/ + tb +} +d diff -uNr gnome-0.11/programs/freecell/intl/loadinfo.h gnome-0.12/programs/freecell/intl/loadinfo.h --- gnome-0.11/programs/freecell/intl/loadinfo.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/loadinfo.h Mon Jan 19 10:48:49 1998 @@ -0,0 +1,58 @@ +#ifndef PARAMS +# if __STDC__ +# define PARAMS(args) args +# else +# define PARAMS(args) () +# endif +#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]; +}; + + +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)); + +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)); diff -uNr gnome-0.11/programs/freecell/intl/loadmsgcat.c gnome-0.12/programs/freecell/intl/loadmsgcat.c --- gnome-0.11/programs/freecell/intl/loadmsgcat.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/loadmsgcat.c Mon Jan 19 10:48:50 1998 @@ -0,0 +1,199 @@ +/* Load needed message catalogs + Copyright (C) 1995, 1996, 1997 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 + +#if defined STDC_HEADERS || defined _LIBC +# include +#endif + +#if defined HAVE_UNISTD_H || defined _LIBC +# include +#endif + +#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC +# include +#endif + +#include "gettext.h" +#include "gettextP.h" + +/* @@ 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 fstat __fstat +# define open __open +# define close __close +# define read __read +# define mmap __mmap +# define munmap __munmap +#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 = 0; + + +/* Load the message catalogs specified by FILENAME. If it is no valid + message catalog do nothing. */ +void +_nl_load_domain (domain_file) + struct loaded_l10nfile *domain_file; +{ + int fd; + struct stat st; + struct mo_file_header *data = (struct mo_file_header *) -1; +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + int use_mmap = 0; +#endif + struct loaded_domain *domain; + + domain_file->decided = 1; + domain_file->data = NULL; + + /* 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); + if (fd == -1) + return; + + /* We must know about the size of the file. */ + if (fstat (fd, &st) != 0 + && st.st_size < (off_t) sizeof (struct mo_file_header)) + { + /* Something went wrong. */ + close (fd); + return; + } + +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + /* 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, st.st_size, PROT_READ, + MAP_PRIVATE, fd, 0); + + if (data != (struct mo_file_header *) -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) + { + off_t to_read; + char *read_ptr; + + data = (struct mo_file_header *) malloc (st.st_size); + if (data == NULL) + return; + + to_read = st.st_size; + read_ptr = (char *) data; + do + { + long int nb = (long int) read (fd, read_ptr, to_read); + if (nb == -1) + { + 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 (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED) + { + /* The magic number is wrong: not a message catalog file. */ +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + if (use_mmap) + munmap ((caddr_t) data, st.st_size); + else +#endif + free (data); + return; + } + + domain_file->data + = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); + if (domain_file->data == NULL) + return; + + domain = (struct loaded_domain *) domain_file->data; + domain->data = (char *) data; + 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 illegal revision. */ +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + if (use_mmap) + munmap ((caddr_t) data, st.st_size); + else +#endif + free (data); + free (domain); + domain_file->data = NULL; + return; + } + + /* Show that one domain is changed. This might make some cached + translations invalid. */ + ++_nl_msg_cat_cntr; +} diff -uNr gnome-0.11/programs/freecell/intl/localealias.c gnome-0.12/programs/freecell/intl/localealias.c --- gnome-0.11/programs/freecell/intl/localealias.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/localealias.c Mon Jan 19 10:48:51 1998 @@ -0,0 +1,378 @@ +/* Handle aliases for locale names + Copyright (C) 1995, 1996, 1997 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 + +#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 + +#if defined STDC_HEADERS || defined _LIBC +# include +#else +char *getenv (); +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +# endif +# include +#else +# include +# ifndef memcpy +# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +# endif +#endif +#if !HAVE_STRCHR && !defined _LIBC +# ifndef strchr +# define strchr index +# endif +#endif + +#include "gettext.h" +#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 +#endif + + +/* 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 */ + + +struct alias_map +{ + const char *alias; + const char *value; +}; + + +static struct alias_map *map; +static size_t nmap = 0; +static size_t maxmap = 0; + + +/* Prototypes for local functions. */ +static size_t read_alias_file PARAMS ((const char *fname, int fname_len)); +static void 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; + size_t added; + + 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) + return retval->value; + + /* 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] == ':') + ++locale_alias_path; + start = locale_alias_path; + + while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':') + ++locale_alias_path; + + if (start < locale_alias_path) + added = read_alias_file (start, locale_alias_path - start); + } + } + while (added != 0); + + return NULL; +} + + +static size_t +read_alias_file (fname, fname_len) + const char *fname; + int fname_len; +{ +#ifndef HAVE_ALLOCA + struct block_list *block_list = NULL; +#endif + FILE *fp; + char *full_fname; + size_t added; + static const char aliasfile[] = "/locale.alias"; + + full_fname = (char *) alloca (fname_len + sizeof aliasfile); + ADD_BLOCK (block_list, full_fname); + memcpy (full_fname, fname, fname_len); + memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); + + fp = fopen (full_fname, "r"); + if (fp == NULL) + { + FREE_BLOCKS (block_list); + 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, BUFSIZ, fp) == NULL) + /* EOF reached. */ + break; + + 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') + { + char *tp; + size_t 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) + extend_alias_table (); + + /* We cannot depend on strdup available in the libc. Sigh! */ + len = strlen (alias) + 1; + tp = (char *) malloc (len); + if (tp == NULL) + { + FREE_BLOCKS (block_list); + return added; + } + memcpy (tp, alias, len); + map[nmap].alias = tp; + + len = strlen (value) + 1; + tp = (char *) malloc (len); + if (tp == NULL) + { + FREE_BLOCKS (block_list); + return added; + } + memcpy (tp, value, len); + map[nmap].value = tp; + + ++nmap; + ++added; + } + } + + /* Possibly not the whole line fits into the buffer. Ignore + the rest of the line. */ + while (strchr (cp, '\n') == NULL) + { + cp = buf; + if (fgets (buf, BUFSIZ, fp) == NULL) + /* Make sure the inner loop will be left. The outer loop + will exit at the `feof' test. */ + *cp = '\n'; + } + } + + /* 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); + + FREE_BLOCKS (block_list); + return added; +} + + +static void +extend_alias_table () +{ + size_t new_size; + struct alias_map *new_map; + + new_size = maxmap == 0 ? 100 : 2 * maxmap; + new_map = (struct alias_map *) malloc (new_size + * sizeof (struct alias_map)); + if (new_map == NULL) + /* Simply don't extend: we don't have any more core. */ + return; + + memcpy (new_map, map, nmap * sizeof (struct alias_map)); + + if (maxmap != 0) + free (map); + + map = new_map; + maxmap = new_size; +} + + +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 +} diff -uNr gnome-0.11/programs/freecell/intl/po2tbl.sed.in gnome-0.12/programs/freecell/intl/po2tbl.sed.in --- gnome-0.11/programs/freecell/intl/po2tbl.sed.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/po2tbl.sed.in Mon Jan 19 10:48:51 1998 @@ -0,0 +1,102 @@ +# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets +# Copyright (C) 1995 Free Software Foundation, Inc. +# 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. +# +1 { + i\ +/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ +\ +#if HAVE_CONFIG_H\ +# include \ +#endif\ +\ +#include "libgettext.h"\ +\ +const struct _msg_ent _msg_tbl[] = { + h + s/.*/0/ + x +} +# +# Write msgid entries in C array form. +# +/^msgid/ { + s/msgid[ ]*\(".*"\)/ {\1/ + tb +# Append the next line + :b + N +# Look whether second part is continuation line. + s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ +# Yes, then branch. + ta +# Because we assume that the input file correctly formed the line +# just read cannot be again be a msgid line. So it's safe to ignore +# it. + s/\(.*\)\n.*/\1/ + bc +# We found a continuation line. But before printing insert '\'. + :a + s/\(.*\)\(\n.*\)/\1\\\2/ + P +# We cannot use D here. + s/.*\n\(.*\)/\1/ +# Some buggy seds do not clear the `successful substitution since last ``t''' +# flag on `N', so we do a `t' here to clear it. + tb +# Not reached + :c + x +# The following nice solution is by +# Bruno + td +# Increment a decimal number in pattern space. +# First hide trailing `9' digits. + :d + s/9\(_*\)$/_\1/ + td +# Assure at least one digit is available. + s/^\(_*\)$/0\1/ +# Increment the last digit. + s/8\(_*\)$/9\1/ + s/7\(_*\)$/8\1/ + s/6\(_*\)$/7\1/ + s/5\(_*\)$/6\1/ + s/4\(_*\)$/5\1/ + s/3\(_*\)$/4\1/ + s/2\(_*\)$/3\1/ + s/1\(_*\)$/2\1/ + s/0\(_*\)$/1\1/ +# Convert the hidden `9' digits to `0's. + s/_/0/g + x + G + s/\(.*\)\n\([0-9]*\)/\1, \2},/ + s/\(.*\)"$/\1/ + p +} +# +# Last line. +# +$ { + i\ +};\ + + g + s/0*\(.*\)/int _msg_tbl_length = \1;/p +} +d diff -uNr gnome-0.11/programs/freecell/intl/textdomain.c gnome-0.12/programs/freecell/intl/textdomain.c --- gnome-0.11/programs/freecell/intl/textdomain.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/textdomain.c Mon Jan 19 10:48:51 1998 @@ -0,0 +1,106 @@ +/* Implementation of the textdomain(3) function + Copyright (C) 1995, 1996, 1997 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 + +#if defined STDC_HEADERS || defined _LIBC +# include +#endif + +#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC +# include +#else +# include +# ifndef memcpy +# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +# endif +#endif + +#ifdef _LIBC +# include +#else +# include "libgettext.h" +#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 +# define strdup(str) __strdup (str) +#else +# define TEXTDOMAIN textdomain__ +#endif + +/* 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 *old; + + /* A NULL pointer requests the current setting. */ + if (domainname == NULL) + return (char *) _nl_current_default_domain; + + old = (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; + 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 + _nl_current_default_domain = strdup (domainname); +#else + size_t len = strlen (domainname) + 1; + char *cp = (char *) malloc (len); + if (cp != NULL) + memcpy (cp, domainname, len); + _nl_current_default_domain = cp; +#endif + } + + if (old != _nl_default_default_domain) + free (old); + + return (char *) _nl_current_default_domain; +} + +#ifdef _LIBC +/* Alias for function name in GNU C Library. */ +weak_alias (__textdomain, textdomain); +#endif diff -uNr gnome-0.11/programs/freecell/intl/xopen-msg.sed gnome-0.12/programs/freecell/intl/xopen-msg.sed --- gnome-0.11/programs/freecell/intl/xopen-msg.sed Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/intl/xopen-msg.sed Mon Jan 19 10:48:54 1998 @@ -0,0 +1,104 @@ +# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file +# Copyright (C) 1995 Free Software Foundation, Inc. +# 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. +# +# +# The first directive in the .msg should be the definition of the +# message set number. We use always set number 1. +# +1 { + i\ +$set 1 # Automatically created by po2msg.sed + h + s/.*/0/ + x +} +# +# We copy all comments into the .msg file. Perhaps they can help. +# +/^#/ s/^#[ ]*/$ /p +# +# We copy the original message as a comment into the .msg file. +# +/^msgid/ { +# Does not work now +# /"$/! { +# s/\\$// +# s/$/ ... (more lines following)"/ +# } + s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/ + p +} +# +# The .msg file contains, other then the .po file, only the translations +# but each given a unique ID. Starting from 1 and incrementing by 1 for +# each message we assign them to the messages. +# It is important that the .po file used to generate the cat-id-tbl.c file +# (with po-to-tbl) is the same as the one used here. (At least the order +# of declarations must not be changed.) +# +/^msgstr/ { + s/msgstr[ ]*"\(.*\)"/\1/ + x +# The following nice solution is by +# Bruno + td +# Increment a decimal number in pattern space. +# First hide trailing `9' digits. + :d + s/9\(_*\)$/_\1/ + td +# Assure at least one digit is available. + s/^\(_*\)$/0\1/ +# Increment the last digit. + s/8\(_*\)$/9\1/ + s/7\(_*\)$/8\1/ + s/6\(_*\)$/7\1/ + s/5\(_*\)$/6\1/ + s/4\(_*\)$/5\1/ + s/3\(_*\)$/4\1/ + s/2\(_*\)$/3\1/ + s/1\(_*\)$/2\1/ + s/0\(_*\)$/1\1/ +# Convert the hidden `9' digits to `0's. + s/_/0/g + x +# Bring the line in the format ` ' + G + s/^[^\n]*$/& / + s/\(.*\)\n\([0-9]*\)/\2 \1/ +# Clear flag from last substitution. + tb +# Append the next line. + :b + N +# Look whether second part is a continuation line. + s/\(.*\n\)"\(.*\)"/\1\2/ +# Yes, then branch. + ta + P + D +# Note that `D' includes a jump to the start!! +# We found a continuation line. But before printing insert '\'. + :a + s/\(.*\)\(\n.*\)/\1\\\2/ + P +# We cannot use the sed command `D' here + s/.*\n\(.*\)/\1/ + tb +} +d diff -uNr gnome-0.11/programs/freecell/missing gnome-0.12/programs/freecell/missing --- gnome-0.11/programs/freecell/missing Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/missing Mon Jan 19 10:45:59 1998 @@ -0,0 +1,142 @@ +#! /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 touch file \`y.tab.c' + makeinfo touch the output file + yacc touch file \`y.tab.c'" + ;; + + -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` + if test -z "$files"; then + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` + test -z "$files" || files="$files.in" + else + files=`echo "$files" | sed -e 's/:/ /g'` + fi + test -z "$files" && files="config.h.in" + 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$/touch \1.in/' \ + | sh + ;; + + 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." + touch y.tab.c + ;; + + 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 diff -uNr gnome-0.11/programs/freecell/mkinstalldirs gnome-0.12/programs/freecell/mkinstalldirs --- gnome-0.11/programs/freecell/mkinstalldirs Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/mkinstalldirs Mon Jan 19 10:45:59 1998 @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id: mkinstalldirs,v 1.1 1998/01/17 10:10:54 cwryu 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" 1>&2 + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff -uNr gnome-0.11/programs/freecell/po/Makefile.in.in gnome-0.12/programs/freecell/po/Makefile.in.in --- gnome-0.11/programs/freecell/po/Makefile.in.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/po/Makefile.in.in Mon Jan 19 10:48:56 1998 @@ -0,0 +1,247 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 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 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@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = $(prefix)/@DATADIRNAME@ +localedir = $(datadir)/locale +gnulocaledir = $(prefix)/share/locale +gettextsrcdir = $(prefix)/share/gettext/po +subdir = po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ + +CC = @CC@ +GENCAT = @GENCAT@ +GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ +MSGMERGE = PATH=../src:$$PATH msgmerge + +DEFS = @DEFS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ + +INCLUDES = -I.. -I$(top_srcdir)/intl + +COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) + +SOURCES = cat-id-tbl.c +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ +stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) + +POTFILES = \ + +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +INSTOBJEXT = @INSTOBJEXT@ + +.SUFFIXES: +.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat + +.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) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && $(GENCAT) $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: cat-id-tbl.c $(CATALOGS) +all-no: + +$(srcdir)/$(PACKAGE).pot: $(POTFILES) + $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ + --add-comments --keyword=_ --keyword=N_ \ + --files-from=$(srcdir)/POTFILES.in + rm -f $(srcdir)/$(PACKAGE).pot + mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot + +$(srcdir)/cat-id-tbl.c: stamp-cat-id; @: +$(srcdir)/stamp-cat-id: $(PACKAGE).pot + rm -f cat-id-tbl.tmp + sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ + | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp + if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ + rm cat-id-tbl.tmp; \ + else \ + echo cat-id-tbl.c changed; \ + rm -f $(srcdir)/cat-id-tbl.c; \ + mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ + fi + cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + if test -r $(MKINSTALLDIRS); then \ + $(MKINSTALLDIRS) $(datadir); \ + else \ + $(top_srcdir)/mkinstalldirs $(datadir); \ + fi + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + case "$$cat" in \ + *.gmo) destdir=$(gnulocaledir);; \ + *) destdir=$(localedir);; \ + esac; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + dir=$$destdir/$$lang/LC_MESSAGES; \ + if test -r $(MKINSTALLDIRS); then \ + $(MKINSTALLDIRS) $$dir; \ + else \ + $(top_srcdir)/mkinstalldirs $$dir; \ + fi; \ + if test -r $$cat; then \ + $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ + echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ + fi; \ + if test -r $$cat.m; then \ + $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ + else \ + if test -r $(srcdir)/$$cat.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$cat.m \ + $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ + else \ + true; \ + fi; \ + fi; \ + done + if test "$(PACKAGE)" = "gettext"; then \ + if test -r $(MKINSTALLDIRS); then \ + $(MKINSTALLDIRS) $(gettextsrcdir); \ + else \ + $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ + fi; \ + $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ + $(gettextsrcdir)/Makefile.in.in; \ + else \ + : ; \ + fi + +# 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/\$(CATOBJEXT)$$//'`; \ + rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + done + rm -f $(gettextsrcdir)/po-Makefile.in.in + +check: all + +cat-id-tbl.o: ../intl/libgettext.h + +dvi info tags TAGS ID: + +mostlyclean: + rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m + +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 = ../$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: update-po $(DISTFILES) + dists="$(DISTFILES)"; \ + for file in $$dists; do \ + ln $(srcdir)/$$file $(distdir) 2> /dev/null \ + || cp -p $(srcdir)/$$file $(distdir); \ + done + +update-po: Makefile + $(MAKE) $(PACKAGE).pot + PATH=`pwd`/../src:$$PATH; \ + cd $(srcdir); \ + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + mv $$lang.po $$lang.old.po; \ + echo "$$lang:"; \ + if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ + rm -f $$lang.old.po; \ + else \ + echo "msgmerge for $$cat failed!"; \ + rm -f $$lang.po; \ + mv $$lang.old.po $$lang.po; \ + fi; \ + done + +POTFILES: POTFILES.in + ( if test 'x$(srcdir)' != 'x.'; then \ + posrcprefix='$(top_srcdir)/'; \ + else \ + posrcprefix="../"; \ + fi; \ + rm -f $@-t $@ \ + && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ + -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ + | sed -e '$$s/\\$$//') > $@-t \ + && chmod a-w $@-t \ + && mv $@-t $@ ) + +Makefile: Makefile.in.in ../config.status POTFILES + cd .. \ + && 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: diff -uNr gnome-0.11/programs/freecell/po/POTFILES.in gnome-0.12/programs/freecell/po/POTFILES.in --- gnome-0.11/programs/freecell/po/POTFILES.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/po/POTFILES.in Mon Jan 19 10:48:56 1998 @@ -0,0 +1,10 @@ +# List of files which contain translatable strings. +# Copyright (C) 1996 Free Software Foundation, Inc. + +# Package source files + +src/io-gtk.c +#src/about-dialog.c +src/score.c +src/score-dialog.c +src/option-dialog.c diff -uNr gnome-0.11/programs/freecell/po/cat-id-tbl.c gnome-0.12/programs/freecell/po/cat-id-tbl.c --- gnome-0.11/programs/freecell/po/cat-id-tbl.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/po/cat-id-tbl.c Tue Jan 20 13:16:51 1998 @@ -0,0 +1,40 @@ +/* Automatically generated by po2tbl.sed from freecell.pot. */ + +#if HAVE_CONFIG_H +# include +#endif + +#include "libgettext.h" + +const struct _msg_ent _msg_tbl[] = { + {"", 1}, + {"Game/New", 2}, + {"Game/Option", 3}, + {"Game/Score", 4}, + {"Game/", 5}, + {"Game/Quit", 6}, + {"Help/About", 7}, + {"Quit this game?", 8}, + {"Yes", 9}, + {"No", 10}, + {"Sorry, this feature is not implemented (yet).", 11}, + {"OK", 12}, + {"You can't move in that way.", 13}, + {"Sorry, there is no card to move.", 14}, + {"Congraturations. You won.", 15}, + {"This session: %d%%", 16}, + {"won: %d, lost: %d", 17}, + {"Total: %d%%", 18}, + {"Streaks", 19}, + {"wins: %d, losses: %d", 20}, + {"current: %d wins", 21}, + {"current: %d losses", 22}, + {"Score", 23}, + {"Clear", 24}, + {"Freecell Setup", 25}, + {"Options", 26}, + {"Inform invalid move", 27}, + {"Cancel", 28}, +}; + +int _msg_tbl_length = 28; diff -uNr gnome-0.11/programs/freecell/po/freecell.pot gnome-0.12/programs/freecell/po/freecell.pot --- gnome-0.11/programs/freecell/po/freecell.pot Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/po/freecell.pot Tue Jan 20 13:16:50 1998 @@ -0,0 +1,115 @@ +msgid "" +msgstr "" +"Date: 1998-01-20 13:16:50-0600\n" +"From: Miguel de Icaza,computo,622-4680 \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=freecell --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: src/io-gtk.c src/score.c src/score-dialog.c src/option-dialog.c\n" + +#: src/io-gtk.c:259 +msgid "Game/New" +msgstr "" + +#: src/io-gtk.c:260 +msgid "Game/Option" +msgstr "" + +#: src/io-gtk.c:262 +msgid "Game/Score" +msgstr "" + +#: src/io-gtk.c:264 +msgid "Game/" +msgstr "" + +#: src/io-gtk.c:265 +msgid "Game/Quit" +msgstr "" + +#: src/io-gtk.c:266 +msgid "Help/About" +msgstr "" + +#: src/io-gtk.c:399 src/io-gtk.c:488 +msgid "Quit this game?" +msgstr "" + +#: src/io-gtk.c:401 src/io-gtk.c:490 +msgid "Yes" +msgstr "" + +#: src/io-gtk.c:401 src/io-gtk.c:490 +msgid "No" +msgstr "" + +#: src/io-gtk.c:428 src/io-gtk.c:451 +msgid "Sorry, this feature is not implemented (yet)." +msgstr "" + +#: src/io-gtk.c:430 src/io-gtk.c:453 src/io-gtk.c:515 src/io-gtk.c:991 src/io-gtk.c:1003 src/option-dialog.c:111 src/score-dialog.c:88 +msgid "OK" +msgstr "" + +#: src/io-gtk.c:513 +msgid "You can't move in that way." +msgstr "" + +#: src/io-gtk.c:989 +msgid "Sorry, there is no card to move." +msgstr "" + +#: src/io-gtk.c:1001 +msgid "Congraturations. You won." +msgstr "" + +#: src/score.c:55 +msgid "This session: %d%%" +msgstr "" + +#: src/score.c:56 src/score.c:66 +msgid "won: %d, lost: %d" +msgstr "" + +#: src/score.c:65 +msgid "Total: %d%%" +msgstr "" + +#: src/score.c:69 +msgid "Streaks" +msgstr "" + +#: src/score.c:70 +msgid "wins: %d, losses: %d" +msgstr "" + +#: src/score.c:74 +msgid "current: %d wins" +msgstr "" + +#: src/score.c:76 +msgid "current: %d losses" +msgstr "" + +#: src/score-dialog.c:68 +msgid "Score" +msgstr "" + +#: src/score-dialog.c:95 +msgid "Clear" +msgstr "" + +#: src/option-dialog.c:83 +msgid "Freecell Setup" +msgstr "" + +#: src/option-dialog.c:92 +msgid "Options" +msgstr "" + +#: src/option-dialog.c:98 +msgid "Inform invalid move" +msgstr "" + +#: src/option-dialog.c:118 +msgid "Cancel" +msgstr "" Binary files gnome-0.11/programs/freecell/po/ko.gmo and gnome-0.12/programs/freecell/po/ko.gmo differ diff -uNr gnome-0.11/programs/freecell/po/ko.po gnome-0.12/programs/freecell/po/ko.po --- gnome-0.11/programs/freecell/po/ko.po Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/po/ko.po Wed Jan 21 21:14:19 1998 @@ -0,0 +1,127 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +# , fuzzy +msgid "" +msgstr "" +"Project-Id-Version: freecell 971225\n" +"POT-Creation-Date: 1998-01-10 12:07+0900\n" +"PO-Revision-Date: 1997-12-25 07:26+KST\n" +"Last-Translator: Ryu Changwoo \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-KR\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: src/io-gtk.c:259 +msgid "Game/New" +msgstr "\260\324\300\323/\273\365 \260\324\300\323" + +#: src/io-gtk.c:260 +msgid "Game/Option" +msgstr "\260\324\300\323/\277\311\274\307" + +#: src/io-gtk.c:262 +msgid "Game/Score" +msgstr "\260\324\300\323/\301\241\274\366" + +#: src/io-gtk.c:264 +msgid "Game/" +msgstr "\260\324\300\323/" + +#: src/io-gtk.c:265 +msgid "Game/Quit" +msgstr "\260\324\300\323/\263\241\263\273\261\342" + +#: src/io-gtk.c:266 +msgid "Help/About" +msgstr "\265\265\277\362\270\273/\307\301\270\256\274\277 \301\244\272\270" + +#: src/io-gtk.c:399 src/io-gtk.c:488 +msgid "Quit this game?" +msgstr "\300\314 \260\324\300\323\300\273 \263\241\263\273\275\303\260\332\275\300\264\317\261\356?" + +#: src/io-gtk.c:401 src/io-gtk.c:490 +msgid "Yes" +msgstr "\277\271" + +#: src/io-gtk.c:401 src/io-gtk.c:490 +msgid "No" +msgstr "\276\306\264\317\277\300" + +#: src/io-gtk.c:428 src/io-gtk.c:451 +msgid "Sorry, this feature is not implemented (yet)." +msgstr "\301\313\274\333\307\325\264\317\264\331. \300\314 \261\342\264\311\300\272 (\276\306\301\367) \276\310 \270\270\265\351\276\356\301\263\275\300\264\317\264\331." + +#: src/io-gtk.c:430 src/io-gtk.c:453 src/io-gtk.c:515 src/io-gtk.c:991 src/io-gtk.c:1003 src/option-dialog.c:111 src/score-dialog.c:88 +msgid "OK" +msgstr "\310\256\300\316" + +#: src/io-gtk.c:513 +msgid "You can't move in that way." +msgstr "\261\327\267\261 \275\304\300\270\267\316 \277\362\301\367\300\317 \274\366 \276\370\275\300\264\317\264\331." + +#: src/io-gtk.c:989 +msgid "Sorry, there is no card to move." +msgstr "\260\324\300\323\277\241 \301\263\275\300\264\317\264\331. \264\365\300\314\273\363 \277\362\301\367\300\317 \304\253\265\345\260\241 \276\370\275\300\264\317\264\331." + +#: src/io-gtk.c:1001 +msgid "Congraturations. You won." +msgstr "\303\340\307\317\307\325\264\317\264\331. \260\324\300\323\277\241 \300\314\260\345\275\300\264\317\264\331." + +#: src/score.c:55 +msgid "This session: %d%%" +msgstr "\300\314\271\370 \274\274\274\307" + +# , c-format +#: src/score.c:56 src/score.c:66 +msgid "won: %d, lost: %d" +msgstr "\275\302: %d, \306\320: %d" + +#: src/score.c:65 +msgid "Total: %d%%" +msgstr "\300\374\303\274: %d%%" + +#: src/score.c:69 +msgid "Streaks" +msgstr "\277\254\274\323" + +# , c-format +#: src/score.c:70 +msgid "wins: %d, losses: %d" +msgstr "\275\302: %d, \306\320: %d" + +# , c-format +#: src/score.c:74 +msgid "current: %d wins" +msgstr "\307\366\300\347: %d\275\302" + +# , c-format +#: src/score.c:76 +msgid "current: %d losses" +msgstr "\307\366\300\347: %d\306\320" + +#: src/score-dialog.c:68 +msgid "Score" +msgstr "\301\241\274\366" + +#: src/score-dialog.c:95 +msgid "Clear" +msgstr "\301\366\277\354\261\342" + +#: src/option-dialog.c:83 +msgid "Freecell Setup" +msgstr "\307\301\270\256\274\277 \274\302\276\367" + +#: src/option-dialog.c:92 +msgid "Options" +msgstr "\277\311\274\307" + +#: src/option-dialog.c:98 +msgid "Inform invalid move" +msgstr "\300\337\270\370 \277\362\301\367\277\264\300\273 \266\247 \276\313\267\301\301\326\261\342" + +#: src/option-dialog.c:118 +msgid "Cancel" +msgstr "\303\353\274\322" diff -uNr gnome-0.11/programs/freecell/po/stamp-cat-id gnome-0.12/programs/freecell/po/stamp-cat-id --- gnome-0.11/programs/freecell/po/stamp-cat-id Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/po/stamp-cat-id Tue Jan 20 13:16:51 1998 @@ -0,0 +1 @@ +timestamp diff -uNr gnome-0.11/programs/freecell/src/Makefile.am gnome-0.12/programs/freecell/src/Makefile.am --- gnome-0.11/programs/freecell/src/Makefile.am Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/Makefile.am Wed Jan 21 21:05:40 1998 @@ -0,0 +1,20 @@ +# process this file with automake to produce Makefile.in +bin_PROGRAMS=freecell +freecell_SOURCES= card.c game.c io-gtk.c freecell.c \ +card-image.c card-draw.c \ +score.c score-dialog.c option.c option-dialog.c +noinst_HEADERS= card.h game.h io-gtk.h freecell.h \ +card-image.h card-draw.h \ +score.h score-dialog.h option.h option-dialog.h menu.h + +datadir = $(prefix)/@DATADIRNAME@ +localedir = $(datadir)/locale + +INCLUDES = -I. -I.. -I../../.. -I../lib -I$(top_srcdir) -I$(top_srcdir)/intl +DEFS = -DLOCALEDIR=\"$(localedir)\" -DPKGDATADIR=\"$(pkgdatadir)\" \ + @DEFS@ +CFLAGS = -Wall @CFLAGS@ + +freecell_LDADD = $(X_LIBS) $(GNOME_LIBS) $(GTK_LIBS) $(x_libs) $(INTLLIBS) + + diff -uNr gnome-0.11/programs/freecell/src/Makefile.in gnome-0.12/programs/freecell/src/Makefile.in --- gnome-0.11/programs/freecell/src/Makefile.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/Makefile.in Wed Jan 21 21:14:21 1998 @@ -0,0 +1,433 @@ +# Makefile.in generated automatically by automake 1.2d from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997 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. + +# process this file with automake to produce Makefile.in + + +SHELL = /bin/sh + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +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@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOME_LIBS = @GNOME_LIBS@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +X_LIBS = @X_LIBS@ +l = @l@ +x_libs = @x_libs@ + +bin_PROGRAMS=freecell +freecell_SOURCES= card.c game.c io-gtk.c freecell.c \ +card-image.c card-draw.c \ +score.c score-dialog.c option.c option-dialog.c +noinst_HEADERS= card.h game.h io-gtk.h freecell.h \ +card-image.h card-draw.h \ +score.h score-dialog.h option.h option-dialog.h menu.h + +datadir = $(prefix)/@DATADIRNAME@ +localedir = $(datadir)/locale + +INCLUDES = -I. -I.. -I../../.. -I../lib -I$(top_srcdir) -I$(top_srcdir)/intl +DEFS = -DLOCALEDIR=\"$(localedir)\" -DPKGDATADIR=\"$(pkgdatadir)\" \ + @DEFS@ +CFLAGS = -Wall @CFLAGS@ + +freecell_LDADD = $(X_LIBS) $(GNOME_LIBS) $(GTK_LIBS) $(x_libs) $(INTLLIBS) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) + +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +freecell_OBJECTS = card.o game.o io-gtk.o freecell.o card-image.o \ +card-draw.o score.o score-dialog.o option.o option-dialog.o +freecell_DEPENDENCIES = +freecell_LDFLAGS = +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(freecell_SOURCES) +OBJECTS = $(freecell_OBJECTS) + +default: all + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(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) $(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + $(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \ + done + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +freecell: $(freecell_OBJECTS) $(freecell_DEPENDENCIES) + @rm -f freecell + $(LINK) $(freecell_LDFLAGS) $(freecell_OBJECTS) $(freecell_LDADD) $(LIBS) + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + test -z "$(ETAGS_ARGS)$(SOURCES)$(HEADERS)$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $(SOURCES) $(HEADERS) $(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); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +card-draw.o card-draw.lo: card-draw.c card.h card-image.h +card-image.o card-image.lo: card-image.c ../config.h ../../../gnome.h \ + ../../../libgnome/libgnome.h ../../../libgnome/gnome-defs.h \ + ../../../libgnome/gnome-util.h ../../../libgnome/gnome-hook.h \ + ../../../libgnome/gnome-config.h ../../../libgnome/gnome-dns.h \ + ../../../libgnome/gnome-dentry.h ../../../libgnome/gnome-i18n.h \ + ../../../libgnome/gnome-score.h \ + ../../../libgnome/gnome-string.h \ + ../../../libgnome/gnome-triggers.h \ + ../../../libgnomeui/libgnomeui.h \ + ../../../libgnomeui/gnome-app.h \ + ../../../libgnomeui/gnome-app-helper.h \ + ../../../libgnomeui/gnome-actionarea.h \ + ../../../libgnomeui/gnome-colors.h \ + ../../../libgnomeui/gnome-color-selector.h \ + ../../../libgnomeui/gnome-messagebox.h \ + ../../../libgnomeui/gnome-pixmap.h \ + ../../../libgnomeui/gnome-scores.h \ + ../../../libgnomeui/gnome-stock.h \ + ../../../libgnomeui/gtk-clock.h card.h +card.o card.lo: card.c ../config.h card.h +freecell.o freecell.lo: freecell.c ../config.h ../../../gnome.h \ + ../../../libgnome/libgnome.h ../../../libgnome/gnome-defs.h \ + ../../../libgnome/gnome-util.h ../../../libgnome/gnome-hook.h \ + ../../../libgnome/gnome-config.h ../../../libgnome/gnome-dns.h \ + ../../../libgnome/gnome-dentry.h ../../../libgnome/gnome-i18n.h \ + ../../../libgnome/gnome-score.h \ + ../../../libgnome/gnome-string.h \ + ../../../libgnome/gnome-triggers.h \ + ../../../libgnomeui/libgnomeui.h \ + ../../../libgnomeui/gnome-app.h \ + ../../../libgnomeui/gnome-app-helper.h \ + ../../../libgnomeui/gnome-actionarea.h \ + ../../../libgnomeui/gnome-colors.h \ + ../../../libgnomeui/gnome-color-selector.h \ + ../../../libgnomeui/gnome-messagebox.h \ + ../../../libgnomeui/gnome-pixmap.h \ + ../../../libgnomeui/gnome-scores.h \ + ../../../libgnomeui/gnome-stock.h \ + ../../../libgnomeui/gtk-clock.h io-gtk.h card.h game.h +game.o game.lo: game.c ../config.h card.h game.h +io-gtk.o io-gtk.lo: io-gtk.c ../config.h ../../../gnome.h \ + ../../../libgnome/libgnome.h ../../../libgnome/gnome-defs.h \ + ../../../libgnome/gnome-util.h ../../../libgnome/gnome-hook.h \ + ../../../libgnome/gnome-config.h ../../../libgnome/gnome-dns.h \ + ../../../libgnome/gnome-dentry.h ../../../libgnome/gnome-i18n.h \ + ../../../libgnome/gnome-score.h \ + ../../../libgnome/gnome-string.h \ + ../../../libgnome/gnome-triggers.h \ + ../../../libgnomeui/libgnomeui.h \ + ../../../libgnomeui/gnome-app.h \ + ../../../libgnomeui/gnome-app-helper.h \ + ../../../libgnomeui/gnome-actionarea.h \ + ../../../libgnomeui/gnome-colors.h \ + ../../../libgnomeui/gnome-color-selector.h \ + ../../../libgnomeui/gnome-messagebox.h \ + ../../../libgnomeui/gnome-pixmap.h \ + ../../../libgnomeui/gnome-scores.h \ + ../../../libgnomeui/gnome-stock.h \ + ../../../libgnomeui/gtk-clock.h freecell.h io-gtk.h card.h \ + game.h menu.h score.h score-dialog.h option.h option-dialog.h \ + card-draw.h card-image.h +option-dialog.o option-dialog.lo: option-dialog.c ../config.h \ + ../../../gnome.h ../../../libgnome/libgnome.h \ + ../../../libgnome/gnome-defs.h ../../../libgnome/gnome-util.h \ + ../../../libgnome/gnome-hook.h ../../../libgnome/gnome-config.h \ + ../../../libgnome/gnome-dns.h ../../../libgnome/gnome-dentry.h \ + ../../../libgnome/gnome-i18n.h ../../../libgnome/gnome-score.h \ + ../../../libgnome/gnome-string.h \ + ../../../libgnome/gnome-triggers.h \ + ../../../libgnomeui/libgnomeui.h \ + ../../../libgnomeui/gnome-app.h \ + ../../../libgnomeui/gnome-app-helper.h \ + ../../../libgnomeui/gnome-actionarea.h \ + ../../../libgnomeui/gnome-colors.h \ + ../../../libgnomeui/gnome-color-selector.h \ + ../../../libgnomeui/gnome-messagebox.h \ + ../../../libgnomeui/gnome-pixmap.h \ + ../../../libgnomeui/gnome-scores.h \ + ../../../libgnomeui/gnome-stock.h \ + ../../../libgnomeui/gtk-clock.h option.h +option.o option.lo: option.c ../config.h ../../../gnome.h \ + ../../../libgnome/libgnome.h ../../../libgnome/gnome-defs.h \ + ../../../libgnome/gnome-util.h ../../../libgnome/gnome-hook.h \ + ../../../libgnome/gnome-config.h ../../../libgnome/gnome-dns.h \ + ../../../libgnome/gnome-dentry.h ../../../libgnome/gnome-i18n.h \ + ../../../libgnome/gnome-score.h \ + ../../../libgnome/gnome-string.h \ + ../../../libgnome/gnome-triggers.h \ + ../../../libgnomeui/libgnomeui.h \ + ../../../libgnomeui/gnome-app.h \ + ../../../libgnomeui/gnome-app-helper.h \ + ../../../libgnomeui/gnome-actionarea.h \ + ../../../libgnomeui/gnome-colors.h \ + ../../../libgnomeui/gnome-color-selector.h \ + ../../../libgnomeui/gnome-messagebox.h \ + ../../../libgnomeui/gnome-pixmap.h \ + ../../../libgnomeui/gnome-scores.h \ + ../../../libgnomeui/gnome-stock.h \ + ../../../libgnomeui/gtk-clock.h +score-dialog.o score-dialog.lo: score-dialog.c ../config.h \ + ../../../gnome.h ../../../libgnome/libgnome.h \ + ../../../libgnome/gnome-defs.h ../../../libgnome/gnome-util.h \ + ../../../libgnome/gnome-hook.h ../../../libgnome/gnome-config.h \ + ../../../libgnome/gnome-dns.h ../../../libgnome/gnome-dentry.h \ + ../../../libgnome/gnome-i18n.h ../../../libgnome/gnome-score.h \ + ../../../libgnome/gnome-string.h \ + ../../../libgnome/gnome-triggers.h \ + ../../../libgnomeui/libgnomeui.h \ + ../../../libgnomeui/gnome-app.h \ + ../../../libgnomeui/gnome-app-helper.h \ + ../../../libgnomeui/gnome-actionarea.h \ + ../../../libgnomeui/gnome-colors.h \ + ../../../libgnomeui/gnome-color-selector.h \ + ../../../libgnomeui/gnome-messagebox.h \ + ../../../libgnomeui/gnome-pixmap.h \ + ../../../libgnomeui/gnome-scores.h \ + ../../../libgnomeui/gnome-stock.h \ + ../../../libgnomeui/gtk-clock.h score.h +score.o score.lo: score.c ../config.h ../../../gnome.h \ + ../../../libgnome/libgnome.h ../../../libgnome/gnome-defs.h \ + ../../../libgnome/gnome-util.h ../../../libgnome/gnome-hook.h \ + ../../../libgnome/gnome-config.h ../../../libgnome/gnome-dns.h \ + ../../../libgnome/gnome-dentry.h ../../../libgnome/gnome-i18n.h \ + ../../../libgnome/gnome-score.h \ + ../../../libgnome/gnome-string.h \ + ../../../libgnome/gnome-triggers.h \ + ../../../libgnomeui/libgnomeui.h \ + ../../../libgnomeui/gnome-app.h \ + ../../../libgnomeui/gnome-app-helper.h \ + ../../../libgnomeui/gnome-actionarea.h \ + ../../../libgnomeui/gnome-colors.h \ + ../../../libgnomeui/gnome-color-selector.h \ + ../../../libgnomeui/gnome-messagebox.h \ + ../../../libgnomeui/gnome-pixmap.h \ + ../../../libgnomeui/gnome-scores.h \ + ../../../libgnomeui/gnome-stock.h \ + ../../../libgnomeui/gtk-clock.h + +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: install-binPROGRAMS + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: uninstall-binPROGRAMS + +all: Makefile $(PROGRAMS) $(HEADERS) + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + $(mkinstalldirs) $(bindir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-binPROGRAMS mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-binPROGRAMS clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-binPROGRAMS distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-binPROGRAMS maintainer-clean-compile \ + maintainer-clean-tags maintainer-clean-generic \ + distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: default mostlyclean-binPROGRAMS distclean-binPROGRAMS \ +clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \ +install-binPROGRAMS mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-exec install-data install uninstall 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: diff -uNr gnome-0.11/programs/freecell/src/card-draw.c gnome-0.12/programs/freecell/src/card-draw.c --- gnome-0.11/programs/freecell/src/card-draw.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/card-draw.c Mon Jan 19 10:48:58 1998 @@ -0,0 +1,214 @@ +/* card-draw.c + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#include +#include +#include +#include "card.h" +#include "card-image.h" + +/* used for double buffering. */ +static GdkPixmap *d_pixmap; +static GdkPixmap *c_pixmap; + + +static void draw_card (GdkWindow *window, GdkGC *gc, int x, int y, CARD *card); +static void draw_hash(GdkWindow *window, GdkGC *gc, int x, int y); +static void draw_background(GdkWindow *window, GdkGC *gc); + + +static void +draw_card (GdkWindow *window, GdkGC *gc, int x, int y, CARD *card) +{ + GdkPixmap *pixmap; + GdkBitmap *clip; + + pixmap = card_image(card); + clip = card_image_clip(); + + gdk_gc_set_clip_origin (gc, x, y); + gdk_gc_set_clip_mask(gc, clip); + gdk_draw_pixmap(window, gc, + pixmap, + 0, 0, + x, y, + card_image_width(), card_image_height()); + gdk_gc_set_clip_mask(gc, NULL); +} + +static void +draw_hash(GdkWindow *window, GdkGC *gc, int x, int y) +{ + GdkBitmap *clip; + int w, h; + int i; + + clip = card_image_clip(); + w = card_image_width(); + h = card_image_height(); + + gdk_gc_set_clip_origin (gc, x, y); + gdk_gc_set_clip_mask(gc, clip); + + for (i = x; i < h+w; i+=8) + { + gdk_draw_line ((GdkDrawable *)window, gc, + x, y+i, x+w-1, y+i-w); + gdk_draw_line ((GdkDrawable *)window, gc, + x+w-1, y+i, x, y+i-w); + } + + gdk_gc_set_clip_mask(gc, NULL); +} + +static void +draw_background(GdkWindow *window, GdkGC *bg_gc) +{ + gdk_draw_rectangle((GdkDrawable *)window, bg_gc, TRUE, + 0, 0, + ((GdkWindowPrivate *)window)->width, + ((GdkWindowPrivate *)window)->height); +} + +void +card_draw_init(GtkWidget *widget) +{ + card_image_init(widget); + d_pixmap = gdk_pixmap_new(widget->window, + card_image_width() + 10, 5 * card_image_height(), + -1); + c_pixmap = gdk_pixmap_new(widget->window, + card_image_width(), card_image_height(), + -1); +} + +static int +gap_between_cards(GtkWidget *widget, DECK *deck) +{ + int height; + + height = widget->allocation.height; + + if (deck_number(deck) > 1) + return MIN(card_image_top_height(), + (height - card_image_height())/(deck_number(deck) - 1)); + else + return card_image_top_height(); +} + +int +card_draw_get_index_from_deck(GtkWidget *widget, int x, int y, DECK *deck) +{ + int gap; + + gap = gap_between_cards(widget, deck); + + if (y < 0 || y > gap * deck_number(deck)) + return -1; + + if (y/gap < deck_number(deck)) + return deck_number(deck)-1-(y/gap); + else + return 0; +} + +void +card_draw_card_general (GtkWidget *widget, int x, int y, + CARD *card, int is_selected) +{ + if (!card) + { + draw_background(widget->window, widget->style->bg_gc[GTK_STATE_NORMAL]); + return; + } + + draw_background((GdkWindow *)c_pixmap, + widget->style->bg_gc[GTK_STATE_NORMAL]); + draw_card((GdkWindow *)c_pixmap, + widget->style->fg_gc[GTK_STATE_NORMAL], + x, y, card); + + if(is_selected) + { + draw_hash((GdkWindow *)c_pixmap, + widget->style->fg_gc[GTK_STATE_NORMAL], x, y); + } + + gdk_gc_set_clip_mask(widget->style->fg_gc[GTK_STATE_NORMAL], + NULL); + gdk_window_copy_area(widget->window, widget->style->fg_gc[GTK_STATE_NORMAL], + 0, 0, + (GdkWindow *)c_pixmap, 0, 0, + card_image_width(), card_image_height()); +} + + +void +card_draw_deck_general(GtkWidget *widget, int x, int y, + DECK *deck, int is_selected, int view) +{ + CARD *card; + int gap; + int i; + int ypos; + int w, h; + + w = widget->allocation.width; + h = widget->allocation.height; + + gap = gap_between_cards(widget, deck); + + draw_background((GdkWindow *)d_pixmap, + widget->style->bg_gc[GTK_STATE_NORMAL]); + for (i = (deck_number(deck) - 1); i >= 0; i--) + { + card = deck_view(deck, i); + ypos = (deck_number(deck) - i - 1) * gap; + + draw_card ((GdkWindow *)d_pixmap, + widget->style->fg_gc[GTK_STATE_NORMAL], + 0, ypos, card); + } + + if (is_selected) + { + ypos = (deck_number(deck) - 1) * gap; + draw_hash ((GdkWindow *)d_pixmap, + widget->style->fg_gc[GTK_STATE_NORMAL], + 0, ypos); + } + + if (view >= 0) + { + card = deck_view(deck, view); + ypos = (deck_number(deck) - view - 1) * gap; + draw_card ((GdkWindow *)d_pixmap, + widget->style->fg_gc[GTK_STATE_NORMAL], + 0, ypos, card); + } + + gdk_gc_set_clip_mask(widget->style->fg_gc[GTK_STATE_NORMAL], + NULL); + gdk_window_copy_area(widget->window, widget->style->fg_gc[GTK_STATE_NORMAL], + 0, 0, + (GdkWindow *)d_pixmap, 0, 0, w, h); +} + + + diff -uNr gnome-0.11/programs/freecell/src/card-draw.h gnome-0.12/programs/freecell/src/card-draw.h --- gnome-0.11/programs/freecell/src/card-draw.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/card-draw.h Mon Jan 19 10:48:58 1998 @@ -0,0 +1,47 @@ +/* card-draw.h + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#ifndef __FREECELL_CARD_DRAW_H +#define __FREECELL_CARD_DRAW_H + +#include + +extern void card_draw_init(GtkWidget *widget); + +extern int card_draw_get_index_from_deck(GtkWidget *w, int x, int y, DECK *d); + +#define card_draw_deck(w, d) \ + card_draw_deck_general(w, 0, 0, d, 0, -1) +#define card_draw_selected_deck(w, d) \ + card_draw_deck_general(w, 0, 0, d, 1, -1) +#define card_draw_deck_with_view(w, d, i) \ + card_draw_deck_general(w, 0, 0, d, 0, i) +#define card_draw_selected_deck_with_view(w, d, i) \ + card_draw_deck_general(w, 0, 0, d, 1, i) + +extern void card_draw_deck_general(GtkWidget *widget, int x, int y, DECK *deck, int is_selected, int view); + +#define card_draw_card(w, c) \ + card_draw_card_general(w, 0, 0, c, 0) +#define card_draw_selected_card(w, c) \ + card_draw_card_general(w, 0, 0, c, 1) + +extern void card_draw_card_general(GtkWidget *widget, int x, int y, CARD *card, int is_selected); + +#endif /* __FREECELL_CARD_DRAW_H */ diff -uNr gnome-0.11/programs/freecell/src/card-image.c gnome-0.12/programs/freecell/src/card-image.c --- gnome-0.11/programs/freecell/src/card-image.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/card-image.c Mon Jan 19 10:48:59 1998 @@ -0,0 +1,484 @@ +/* card-pixmap.c + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#include + +#include +#include +#include + +#include +#include "card.h" + + +static GdkPixmap *card_pixmaps[4][52]; +static GdkBitmap *card_clip; +static int card_width; +static int card_height; +static int card_top_height; + + +typedef struct CARD_BASE +{ + int w, h; + + GdkPixmap *background; + GdkBitmap *card_clip; + + GdkPixmap *ranks; + GdkBitmap *ranks_clip; + int rw, rh; + int r1w, r1h; + int rx, ry; + + GdkPixmap *suits; + GdkBitmap *suits_clip; + int sw, sh; + int s1size, s1off; + int s2size, s2off; + int s3size, s3off; + int s4size, s4off; + int s4x, s4y; + + GdkPixmap *pictures; + GdkBitmap *pictures_clip; + int pw, ph; + int p1w, p1h; + + int ydelta; + int x0, x1, x2; /* x-positions of the large suit symbols */ + int y0, y1, y2, y3, y4, y5, y6, y7, y8; /* y-positions */ +} +CARD_BASE; +CARD_BASE card_base; + + +static void read_base_image (GdkWindow *w, GdkColor *transcolor); +static void mirror_card (GdkGC *gc, GdkPixmap *p, int w, int h); +static void destroy_base_image(void); +static void draw_background (GdkGC *gc, GdkPixmap *p); +static void draw_rank (GdkGC *gc, GdkPixmap *p, int suit, int rank); +static void draw_small_suit (GdkGC *gc, GdkPixmap *p, int suit); +static void draw_suit (GdkGC *gc, GdkPixmap *p, int suit, int rank); +static void draw_picture (GdkGC *gc, GdkPixmap *p, int suit, int rank); + + +static void +read_base_image (GdkWindow *w, GdkColor *transcolor) +{ + char *filename; + + filename = gnome_pixmap_file ("cards/Background.xpm"); + card_base.background + = gdk_pixmap_create_from_xpm (w, &card_base.card_clip, + transcolor, + filename); + g_free(filename); + card_base.w = ((GdkWindowPrivate *)card_base.background)->width; + card_base.h = ((GdkWindowPrivate *)card_base.background)->height; + + filename = gnome_pixmap_file ("cards/Ranks.xpm"); + card_base.ranks + = gdk_pixmap_create_from_xpm (w, &card_base.ranks_clip, + transcolor, + filename); + g_free(filename); + card_base.rw = ((GdkWindowPrivate *)card_base.ranks)->width; + card_base.rh = ((GdkWindowPrivate *)card_base.ranks)->height; + card_base.r1w = card_base.rw/12; + card_base.r1h = card_base.rh/5; + card_base.rx = 4; + card_base.ry = 6; + + filename = gnome_pixmap_file ("cards/Suits.xpm"); + card_base.suits + = gdk_pixmap_create_from_xpm (w, &card_base.suits_clip, + transcolor, + filename); + g_free(filename); + card_base.sw = ((GdkWindowPrivate *)card_base.suits)->width; + card_base.sh = ((GdkWindowPrivate *)card_base.suits)->height; + + /* FIXME: Xpat's X-gfx2.c assumes width equals with height. */ + card_base.s1size = 41; + card_base.s1off = 0; + card_base.s2size = 21; + card_base.s2off = card_base.s1off + card_base.s1size; + card_base.s3size = 15; + card_base.s3off = card_base.s2off + card_base.s2size; + card_base.s4size = 11; + card_base.s4off = card_base.s3off + card_base.s3size; + + filename = gnome_pixmap_file ("cards/Pictures.xpm"); + card_base.pictures + = gdk_pixmap_create_from_xpm (w, &card_base.pictures_clip, + transcolor, + filename); + g_free(filename); + card_base.pw = ((GdkWindowPrivate *)card_base.pictures)->width; + card_base.ph = ((GdkWindowPrivate *)card_base.pictures)->height; + card_base.p1w = card_base.pw/4; + card_base.p1h = card_base.ph/3; + + card_base.x0 = (card_base.w - 1 * card_base.s2size) / 2 + - 2 * card_base.w / 9 + 1; + card_base.x1 = (card_base.w - 1 * card_base.s2size) / 2; + card_base.x2 = (card_base.w - 1 * card_base.s2size) / 2 + + 2 * card_base.w / 9 - 1; + + card_base.ydelta = (((card_base.h - 2 - 4 * card_base.s2size) / 7) | 1); + + card_base.y0 = (card_base.h - 3 * card_base.ydelta + - 4 * card_base.s2size) / 2; + card_base.y1 = (card_base.h - 2 * card_base.ydelta + - 3 * card_base.s2size) / 2; + card_base.y2 = (card_base.h - 1 * card_base.ydelta + - 2 * card_base.s2size) / 2; + card_base.y3 = (card_base.h - 0 * card_base.ydelta + - 1 * card_base.s2size) / 2; + card_base.y4 = (card_base.h + 1 * card_base.ydelta + - 0 * card_base.s2size) / 2; + card_base.y5 = (card_base.h + 2 * card_base.ydelta + + 1 * card_base.s2size) / 2; + card_base.y6 = (card_base.h + 3 * card_base.ydelta + + 2 * card_base.s2size) / 2; + card_base.y7 = (card_base.y0 + card_base.y3) / 2; + card_base.y8 = (card_base.y6 + card_base.y3) / 2; + + card_base.s4x = 3; + card_base.s4y = card_base.y0 + card_base.s2size - card_base.s4size; +} + + +static void +destroy_base_image(void) +{ + /* not destroy card_clip which is used in drawing. */ + + gdk_pixmap_unref (card_base.background); + gdk_pixmap_unref (card_base.ranks); + gdk_pixmap_unref ((GdkPixmap *)card_base.ranks_clip); + gdk_pixmap_unref (card_base.suits); + gdk_pixmap_unref ((GdkPixmap *)card_base.suits_clip); + gdk_pixmap_unref (card_base.pictures); + gdk_pixmap_unref ((GdkPixmap *)card_base.pictures_clip); +} + +static void +draw_background (GdkGC *gc, GdkPixmap *p) +{ + gdk_window_copy_area((GdkWindow *)p, + gc, + 0, 0, + (GdkWindow *)card_base.background, + 0, 0, card_base.w, card_base.h); +} + + +static void +draw_rank (GdkGC *gc, GdkPixmap *p, int suit, int rank) +{ + int x, y, dl, cx, cy; + + x = 3 * (suit/2) * card_base.r1w + (rank / 5) * card_base.r1w; + y = (rank % 5) * card_base.r1h; + + gdk_gc_set_clip_mask(gc, + card_base.ranks_clip); + + gdk_gc_set_clip_origin(gc, card_base.rx-x, card_base.ry-y); + gdk_window_copy_area((GdkWindow *)p, gc, + card_base.rx, card_base.ry, + (GdkWindow *)card_base.ranks, + x, y, card_base.r1w, card_base.r1h); + + x = (8 + 3 * (suit/2) - (rank / 5)) * card_base.r1w; + y = (4 - rank % 5) * card_base.r1h; + dl = card_base.w - card_base.r1w; + cx = dl-card_base.rx; + cy = card_base.h - card_base.ry - card_base.r1h; + + gdk_gc_set_clip_origin(gc, + cx-x, cy-y); + gdk_window_copy_area((GdkWindow *)p, gc, + cx, cy, + (GdkWindow *)card_base.ranks, + x, y, card_base.r1w, card_base.r1h); + gdk_gc_set_clip_mask(gc, NULL); +} + +static void +draw_small_suit (GdkGC *gc, GdkPixmap *p, int suit) +{ + int x, y, dl, cx, cy; + + x = card_base.s4x; + y = card_base.s4y; + + gdk_gc_set_clip_mask(gc, + card_base.suits_clip); + gdk_gc_set_clip_origin(gc, x-suit*card_base.s4size, y-card_base.s4off); + gdk_window_copy_area((GdkWindow *)p, gc, + x, y, + (GdkWindow *)card_base.suits, + suit * card_base.s4size, + card_base.s4off, + card_base.s4size, card_base.s4size); + + x = (suit+4) * card_base.s4size; + y = card_base.s4off; + dl = card_base.w - card_base.s4size; + cx = dl-card_base.s4x; + cy = card_base.h - card_base.s4size - card_base.s4y; + + gdk_gc_set_clip_origin(gc, cx-x, cy-y); + gdk_window_copy_area((GdkWindow *)p, gc, + cx, cy, + (GdkWindow *)card_base.suits, + x, y, card_base.s4size, card_base.s4size); + gdk_gc_set_clip_mask(gc, NULL); +} + +#define PAINT_AT(xx, yy) \ +{ \ + gdk_gc_set_clip_origin(gc, (xx)-x, (yy)-y); \ + gdk_window_copy_area((GdkWindow *)p, gc, (xx), (yy), \ + (GdkWindow *)card_base.suits, x, y, \ + card_base.s2size, card_base.s2size); \ +} + + +static void +draw_suit (GdkGC *gc, GdkPixmap *p, int suit, int rank) +{ + static const unsigned char suitflags[] = + { /* 25 => 03 for different 8 */ + 0x80, 0x08, 0x88, 0x01, 0x81, 0x05, 0x45, 0x25, 0x83, 0x13, 0, 0, 0, 0 + }; + int x, y; + + x = suit * card_base.s2size; + y = card_base.s2off; + + gdk_gc_set_clip_mask(gc, card_base.suits_clip); + + if (suitflags[rank] & 0x01) + { + PAINT_AT(card_base.x0, card_base.y0); + PAINT_AT(card_base.x2, card_base.y0); + } + if (suitflags[rank] & 0x02) + { + PAINT_AT(card_base.x0, card_base.y2); + PAINT_AT(card_base.x2, card_base.y2); + } + if (suitflags[rank] & 0x08) + { + PAINT_AT(card_base.x1, card_base.y0); + } + if (suitflags[rank] & 0x10) + { + PAINT_AT(card_base.x1, card_base.y1); + } + if (suitflags[rank] & 0x20) + { + PAINT_AT(card_base.x1, card_base.y7); + } + gdk_gc_set_clip_mask(gc, NULL); + mirror_card (gc, p, card_base.w, card_base.h); + gdk_gc_set_clip_mask(gc, card_base.suits_clip); + if (suitflags[rank] & 0x04) + { + PAINT_AT(card_base.x0, card_base.y3); + PAINT_AT(card_base.x2, card_base.y3); + } + if (suitflags[rank] & 0x40) + { + PAINT_AT(card_base.x1, card_base.y7); + } + if (suitflags[rank] & 0x80) + { + PAINT_AT(card_base.x1, card_base.y3); + } + gdk_gc_set_clip_mask(gc, NULL); +} + +static void +mirror_card (GdkGC *gc, GdkPixmap *p, int w, int h) +{ + int x, y; + int H = h/2; + + /* first, build a left-right mirror */ + for (x = 0; x < w; ++x) + gdk_window_copy_area((GdkWindow *)p, gc, w-1-x, H+2, + (GdkWindow *)p, x, 1, 1, H-1); + + /* now mirror the lower half of the card upside-down */ + for (y = 0; y < H/2; ++y) + { + gdk_window_copy_area((GdkWindow *)p, gc, 0, H+1+y, + (GdkWindow *)p, 0, h-1-y, w, 1); + gdk_window_copy_area((GdkWindow *)p, gc, 0, h-1-y, + (GdkWindow *)p, 0, H+2+y, w, 1); + } + + /* shift one scan line */ + gdk_window_copy_area((GdkWindow *)p, gc, 0, H+1+H/2, + (GdkWindow *)p, 0, H+2+H/2, w, H/2); + + /* restore the bottom line which was overwritten */ + gdk_window_copy_area((GdkWindow *)p, gc, 0, h-1, + (GdkWindow *)p, 0, 0, w, 1); +} + + +static void +draw_picture (GdkGC *gc, GdkPixmap *p, int suit, int rank) +{ + int x, y; + + x = (card_base.w - card_base.p1w)/2; + y = card_base.h/2 - card_base.p1h; + + /* horizontal line in the midst of the card: */ + gdk_draw_line((GdkDrawable *)p, gc, x, card_base.h/2, + card_base.w-1-x, card_base.h/2); + + gdk_gc_set_clip_mask(gc, card_base.pictures_clip); + + gdk_gc_set_clip_origin (gc, + x-(suit*card_base.p1w), y-((rank-10)*card_base.p1h)); + gdk_window_copy_area ((GdkWindow *)p, gc, x, y, + (GdkWindow *)card_base.pictures, + suit*card_base.p1w, (rank-10)*card_base.p1h, + card_base.p1w, card_base.p1h); + gdk_gc_set_clip_mask(gc, NULL); + + mirror_card (gc, p, card_base.w, card_base.h); +} + + +void +card_image_init (GtkWidget *w) +{ + GdkPixmap *pixmap; + GdkGC *gc; + + int i, j; + + read_base_image (w->window, &w->style->bg[GTK_STATE_NORMAL]); + gc = w->style->fg_gc[GTK_STATE_NORMAL]; + + for (i = 0; i < 4; i++) + for (j = 0; j < 13; j++) + { + pixmap = gdk_pixmap_new (w->window, + card_base.w, card_base.h, + -1); + + draw_background(gc, pixmap); + draw_rank(gc, pixmap, i, j); + draw_small_suit(gc, pixmap, i); + + if ((j >= 0) && (j <= 9)) + draw_suit(gc, pixmap, i, j); + else + draw_picture(gc, pixmap, i, j); + + card_pixmaps[i][j] = pixmap; + } + card_clip = card_base.card_clip; + card_width = card_base.w; + card_height = card_base.h; + card_top_height = 30; + + destroy_base_image(); +} + +GdkPixmap * +card_image (CARD *card) +{ + return card_pixmaps[card_suit(card)-1][card_rank(card)-1]; +} + +GdkBitmap * +card_image_clip (void) +{ + return card_clip; +} + +int +card_image_width(void) +{ + return card_width; +} + +int +card_image_height(void) +{ + return card_height; +} + +int +card_image_top_height(void) +{ + return card_top_height; +} + + +#ifdef TEST +#include + +int +main (int argc, char **argv) +{ + GtkWidget *window; + GtkWidget *pixmap; + GdkPixmap *p; + int i, j; + + GdkBitmap *mask; + GdkColor transcolor; + CARD *card; + + gtk_init (&argc, &argv); + + i = atoi(argv[1]); + j = atoi(argv[2]); + + /* create a new window */ + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_realize(window); + + card_image_init(window); + card = card_new (i, j); + p = card_image(card); + + pixmap = gtk_pixmap_new (p, NULL); + gtk_container_add (GTK_CONTAINER (window), pixmap); + + gtk_widget_show(pixmap); + gtk_widget_draw_default(pixmap); + gtk_widget_show(window); + + gtk_main(); + +} +#endif /* TEST */ diff -uNr gnome-0.11/programs/freecell/src/card-image.h gnome-0.12/programs/freecell/src/card-image.h --- gnome-0.11/programs/freecell/src/card-image.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/card-image.h Mon Jan 19 10:48:59 1998 @@ -0,0 +1,31 @@ +/* card-image.h + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#ifndef __FREECELL_CARD_IMAGE_H +#define __FREECELL_CARD_IMAGE_H + +void card_image_init (GtkWidget *w); +GdkPixmap *card_image (CARD *card); +GdkBitmap *card_image_clip (void); +int card_image_width (void); +int card_image_height (void); +int card_image_top_height (void); + + +#endif /* __FREECELL_CARD_IMAGE_H */ diff -uNr gnome-0.11/programs/freecell/src/card.c gnome-0.12/programs/freecell/src/card.c --- gnome-0.11/programs/freecell/src/card.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/card.c Mon Jan 19 10:49:00 1998 @@ -0,0 +1,299 @@ +/* card.c -- card manipulation. + Copyright (C) 1997 Changwoo Ryu + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Changwoo Ryu . */ + +#ifdef HAVE_CONFIG_H +#include +#endif /* HAVE_CONFIG_H */ + +#include +#include +#include + +#include "card.h" + + +/* Allocate a card and initialize it. */ +CARD * +card_new (CARD_SUIT suit, CARD_RANK rank) +{ + CARD *new_card; + + new_card = (CARD *)g_malloc (sizeof(CARD)); + new_card->suit = suit; + new_card->rank = rank; + return new_card; +} + +/* Deallocate the card. */ +void +card_delete (CARD *card) +{ + g_free (card); +} + +/* Return the shape of the card. */ +CARD_SUIT +card_suit (CARD *card) +{ + return card->suit; +} + +/* Return the number of the card. */ +CARD_RANK +card_rank (CARD *card) +{ + return card->rank; +} + +int +card_is_red (CARD *card) +{ + return ((card_suit(card) == HEART) + || (card_suit(card) == DIAMOND)); +} + +int +card_is_black (CARD *card) +{ + return ((card_suit(card) == SPADE) + || (card_suit(card) == CLUB)); +} + +int +card_is_joker (CARD *card) +{ + return (card_suit(card) == JOKER); +} + +/* Examine two cards are the same card. */ +int +card_is_equal (CARD *card1, CARD *card2) +{ + return ((card_suit(card1) == card_suit(card2)) + && (card_rank(card1) == card_rank(card2))); +} + + +#ifdef DEBUG +#include + +void +card_dump (CARD *card) +{ + if (card) + printf ("{%d, %d}\n", card_suit(card), card_rank(card)); +} +#endif /* DEBUG */ + +/* Make a new card deck. + Allocate memory and initialize data. */ +DECK * +deck_new (unsigned int option) +{ + DECK *new_deck; + int i, j; + int k; + + new_deck = (DECK *) g_malloc (sizeof(DECK)); + switch (option) + { + case DECK_OPTION_NORMAL: + new_deck->cards_number = 54; + break; + case DECK_OPTION_NO_JOKER: + new_deck->cards_number = 52; + break; + case DECK_OPTION_ONE_JOKER: + new_deck->cards_number = 53; + break; + case DECK_OPTION_NO_CARD: + new_deck->cards_number = 0; + break; + default: + return NULL; + } + + new_deck->cards = (CARD **) g_malloc (sizeof(CARD *) * 54); + new_deck->maximum_size = 54; + + if (option == DECK_OPTION_NO_CARD) + return new_deck; + + k = 0; + for (i = 1; i <= 4; i++) + for (j = 1; j <= 13; j++) + new_deck->cards[k++] = card_new (i, j); + + if (option == DECK_OPTION_NO_JOKER) + return new_deck; + + new_deck->cards[k++] = card_new (JOKER, 1); + + if (option == DECK_OPTION_ONE_JOKER) + return new_deck; + + new_deck->cards[k++] = card_new (JOKER, 2); + + return new_deck; +} + + +/* Destroy the card deck. + Deallocate memory. */ +void +deck_delete (DECK *deck) +{ + int i; + + for (i = 0; i < deck->cards_number; i++) + card_delete (deck->cards[i]); + + g_free (deck); +} + +/* Return the size of the card deck. */ +int +deck_number (DECK *deck) +{ + return deck->cards_number; +} + + +CARD * +deck_view (DECK *deck, int index) +{ + return deck->cards[deck->cards_number - index - 1]; +} + +CARD * +deck_remove (DECK *deck, int index) +{ + CARD *old_card; + int i; + + old_card = deck->cards[index]; + for (i = index; i < (deck->cards_number - 1); i++) + deck->cards[i] = deck->cards[i + 1]; + deck->cards_number--; + return old_card; +} + +void +deck_insert (DECK *deck, int index, CARD *card) +{ + int i; + + for (i = deck->cards_number; i > index; i--) + deck->cards[i] = deck->cards[i-1]; + deck->cards[index] = card; + deck->cards_number++; +} + +void +deck_add_top (DECK *deck, CARD *card) +{ + deck_insert (deck, deck_number(deck), card); +} + +void +deck_add_bottom (DECK *deck, CARD *card) +{ + deck_insert (deck, 0, card); +} + +CARD * +deck_remove_top (DECK *deck) +{ + return deck_remove (deck, deck_number(deck) - 1); +} + +CARD * +deck_remove_bottom (DECK *deck) +{ + return deck_remove (deck, 0); +} + +CARD * +deck_view_top (DECK *deck) +{ + if (deck_number (deck) == 0) + return NULL; + else + return deck_view (deck, 0); +} + +CARD * +deck_view_botom (DECK *deck) +{ + if (deck_number (deck) == 0) + return NULL; + else + return deck_view (deck, deck_number(deck) - 1); +} + +void +deck_shuffle (DECK *deck) +{ + DECK *deck_temp; + int index; + int number; + + deck_temp = deck_new (DECK_OPTION_NO_CARD); + srand (time(NULL)); + + while (deck_number(deck) != 0) + { + number = deck_number(deck_temp); + if (number == 0) + index = 0; + else + index = (rand ()) % number; + + deck_insert (deck_temp, index, deck_remove_top (deck)); + } + + while (deck_number(deck_temp) != 0) + { + number = deck_number(deck); + if (number == 0) + index = 0; + else + index = (rand ()) % number; + + deck_insert (deck, index, deck_remove_top (deck_temp)); + } + deck_delete(deck_temp); +} + + +#ifdef DEBUG +void +deck_dump (DECK *deck) +{ + int i; + + if (deck) + { + for (i = 0; i < deck_number(deck); i++) + { + card_dump(deck_view(deck,i)); + } + } +} +#endif /* DEBUG */ diff -uNr gnome-0.11/programs/freecell/src/card.h gnome-0.12/programs/freecell/src/card.h --- gnome-0.11/programs/freecell/src/card.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/card.h Mon Jan 19 10:49:00 1998 @@ -0,0 +1,110 @@ +/* card.h -- card manipulation. + Copyright (C) 1997 Changwoo Ryu + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Changwoo Ryu . */ + +#ifndef __FREECELL_CARD_H +#define __FREECELL_CARD_H + +typedef enum __CARD_SUIT +{ + CLUB = 1, + SPADE, + HEART, + DIAMOND, + JOKER, +} CARD_SUIT; + +typedef enum __CARD_RANK +{ + ACE = 1, + TWO, + THREE, + FOUR, + FIVE, + SIX, + SEVEN, + EIGHT, + NINE, + TEN, + JACK = 11, + QUEEN, + KING +} CARD_RANK; + +/* Don't modify this structure directly. */ +typedef struct __CARD +{ + CARD_SUIT suit; + CARD_RANK rank; +} CARD; + +/* CARD low level interface. Direct access to DECK structure must be + ONLY by these functions. */ + +extern CARD *card_new (CARD_SUIT suit, CARD_RANK rank); +extern void card_delete (CARD *card); +extern CARD_SUIT card_suit (CARD *card); +extern CARD_RANK card_rank (CARD *card); + +/* CARD high level interface. */ + +extern int card_is_red (CARD *card); +extern int card_is_black (CARD *card); +extern int card_is_joker (CARD *card); +extern int card_is_equal (CARD *card1, CARD *card2); + + +/* Don't modify this structure directly. */ +typedef struct __DECK +{ + CARD **cards; + int cards_number; + int maximum_size; +} DECK; + +#define DECK_OPTION_NORMAL 0 +#define DECK_OPTION_NO_JOKER 1 +#define DECK_OPTION_ONE_JOKER 2 +#define DECK_OPTION_NO_CARD 3 + +/* DECK low level interface. Direct access to DECK structure must be + ONLY by these functions. */ + +extern DECK *deck_new (unsigned int option); +extern void deck_delete (DECK *deck); +extern int deck_number (DECK *deck); +/* It may *crash* if "index" value is wrong. */ +extern CARD *deck_view (DECK *deck, int index); +extern CARD *deck_remove (DECK *deck, int index); +extern void deck_insert (DECK *deck, int index, CARD *card); + +/* DECK high level interface. */ + +extern void deck_add_top (DECK *deck, CARD *card); +extern void deck_add_bottom (DECK *deck, CARD *card); +extern CARD *deck_remove_top (DECK *deck); +extern CARD *deck_remove_bottom (DECK *deck); +extern CARD *deck_view_top (DECK *deck); +extern CARD *deck_view_bottom (DECK *deck); +extern void deck_shuffle (DECK *deck); + + + + + +#endif /* __FREECELL_CARD_H */ diff -uNr gnome-0.11/programs/freecell/src/freecell.c gnome-0.12/programs/freecell/src/freecell.c --- gnome-0.11/programs/freecell/src/freecell.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/freecell.c Mon Jan 19 10:49:00 1998 @@ -0,0 +1,42 @@ +/* freecell.c + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#include +#include + + +#include "io-gtk.h" + +/* The name this program invoked with. */ +char *program_name; + +/* The entry of this program. */ +int +main (int argc, char **argv) +{ + program_name = argv[0]; + + setlocale (LC_ALL, ""); + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + + io_gtk_init (&argc, &argv); + io_gtk_loop (); + return 0; +} diff -uNr gnome-0.11/programs/freecell/src/freecell.h gnome-0.12/programs/freecell/src/freecell.h --- gnome-0.11/programs/freecell/src/freecell.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/freecell.h Mon Jan 19 10:49:00 1998 @@ -0,0 +1,25 @@ +/* freecell.h + Copyright (C) 1997 Changwoo Ryu + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Changwoo Ryu . */ + +#ifndef __FREECELL__FREECELL_H +#define __FREECELL__FREECELL_H + +#include "io-gtk.h" + +#endif /* __FREECELL__FREECELL_H */ diff -uNr gnome-0.11/programs/freecell/src/game.c gnome-0.12/programs/freecell/src/game.c --- gnome-0.11/programs/freecell/src/game.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/game.c Mon Jan 19 10:49:02 1998 @@ -0,0 +1,750 @@ +/* game.c -- Freecell game. + Copyright (C) 1997 Changwoo Ryu + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Changwoo Ryu . */ + +#include + +#include +#include + +#include +#include "card.h" +#include "game.h" + + +/* Allocate memory and initialize game data. */ +FREECELLGAME * +freecellgame_new (int freecells_number, int fields_number) +{ + int i; + FREECELLGAME *new_game; + DECK *tmp_deck; + int destinations_number = 4; + + /* 1) Allocate memory. */ + new_game = (FREECELLGAME *)g_malloc (sizeof(FREECELLGAME)); + + new_game->freecells_number = freecells_number; + new_game->freecells = (CARD **)g_malloc (freecells_number * sizeof(CARD *)); + for (i = 0; i < freecells_number; i++) + new_game->freecells[i] = NULL; + + new_game->destinations_number = destinations_number; + new_game->destinations = (DECK **)g_malloc (destinations_number * sizeof(DECK *)); + for (i = 0; i < destinations_number; i++) + new_game->destinations[i] = deck_new(DECK_OPTION_NO_CARD); + + new_game->fields_number = fields_number; + new_game->fields = (DECK **)g_malloc (fields_number * sizeof(DECK *)); + for (i = 0; i < fields_number; i++) + new_game->fields[i] = deck_new (DECK_OPTION_NO_CARD); + + /* 2) Initialize game. */ + tmp_deck = deck_new (DECK_OPTION_NO_JOKER); + deck_shuffle(tmp_deck); + + i = 0; + while (deck_number(tmp_deck) != 0) + { + deck_add_top (new_game->fields[i], deck_remove_top(tmp_deck)); + i = (i+1)%fields_number; + } + + deck_delete (tmp_deck); + + return new_game; +} + + +/* Deallocate all allocated memory. */ +void +freecellgame_delete(FREECELLGAME *freecellgame) +{ + int i; + + for (i = 0; i < freecellgame->freecells_number; i++) + if (freecellgame->freecells[i] != NULL) + card_delete (freecellgame->freecells[i]); + g_free (freecellgame->freecells); + + for (i = 0; i < freecellgame->destinations_number; i++) + deck_delete (freecellgame->destinations[i]); + g_free (freecellgame->destinations); + + for (i = 0; i < freecellgame->fields_number; i++) + deck_delete (freecellgame->fields[i]); + g_free (freecellgame->fields); + + g_free(freecellgame); +} + +CARD * +freecellgame_get_destination_top (FREECELLGAME *game, int index) +{ + DECK *deck; + + if (index > game->destinations_number) + return NULL; + + deck = game->destinations[index]; + + return deck_view_top (game->destinations[index]); +} + +DECK * +freecellgame_get_field (FREECELLGAME *game, int index) +{ + if (index > game->fields_number) + return NULL; + + return game->fields[index]; +} + +CARD * +freecellgame_get_freecell (FREECELLGAME *game, int index) +{ + if (index > game->freecells_number) + return NULL; + + return game->freecells[index]; +} + + +static int +empty_freecells_number (FREECELLGAME *game) +{ + int count = 0; + + int i; + + for (i = 0; i < game->freecells_number; i++) + { + if (freecellgame_get_freecell (game, i) == NULL) + count++; + } + return count; +} + +static int +can_be_on_in_field (CARD *a, CARD *b) +{ + if (!b) + return 1; + + if (((card_is_red(a) && card_is_black(b)) + || (card_is_black(a) && card_is_red(b))) + && (card_rank(a) == (card_rank(b) - 1))) + return 1; + + return 0; +} + +static int +can_be_on_in_destination (CARD *a, CARD *b) +{ + if (!b) + { + if (card_rank(a) == 1) + return 1; + else + return 0; + } + + if ((card_suit(a) == card_suit(b)) + && (card_rank(a) == (card_rank(b) + 1))) + return 1; + + return 0; +} + + +int +freecellgame_can_move_field_to_destination (FREECELLGAME *game, + int from, int to) +{ + CARD *card; + CARD *tmp_card; + + assert ((from >= 0) && (from < game->fields_number)); + assert ((to >= 0) && (to < game->destinations_number)); + + card = deck_view_top(game->fields[from]); + if (card == NULL) + return 0; + + if (card_rank(card) == ACE) + { + if (deck_number (game->destinations[to]) == 0) + return 1; + else + return 0; + } + + tmp_card = deck_view_top (game->destinations[to]); + if (can_be_on_in_destination(card, tmp_card)) + return 1; + + return 0; +} + + +int +freecellgame_can_move_field_to_freecell (FREECELLGAME *game, + int from, int to) +{ + CARD *card; + + assert ((from >= 0) && (from < game->fields_number)); + assert ((to >= 0) && (to < game->freecells_number)); + + card = deck_view_top (game->fields[from]); + if (card == NULL) + return 0; + + if (game->freecells[to] != NULL) + return 0; + + return 1; +} + +int +freecellgame_can_move_field_to_field (FREECELLGAME *game, + int from, int to) +{ + CARD *card, *tmp_card; + + assert (from >= 0 && from < game->fields_number); + assert (to >= 0 && to < game->fields_number); + + if (from == to) + return 0; + + card = deck_view_top (game->fields[from]); + if (card == NULL) + return 0; + + if (deck_number (game->fields[to]) == 0) + return 1; + + tmp_card = deck_view_top (game->fields[to]); + + if (can_be_on_in_field(card, tmp_card)) + return 1; + + return 0; +} + +int +freecellgame_can_move_freecell_to_destination (FREECELLGAME *game, + int from, int to) +{ + CARD *card; + CARD *tmp_card; + + assert (from >= 0 && from < game->freecells_number); + assert (to >= 0 && to < game->destinations_number); + + card = game->freecells[from]; + if (card == NULL) + return 0; + + if (card_rank(card) == ACE) + { + if (deck_number (game->destinations[to]) == 0) + return 1; + else + return 0; + } + + tmp_card = deck_view_top (game->destinations[to]); + if (can_be_on_in_destination(card, tmp_card)) + return 1; + + return 0; +} + +int +freecellgame_can_move_freecell_to_freecell (FREECELLGAME *game, + int from, int to) +{ + assert (from >= 0 && from < game->freecells_number); + assert (to >= 0 && to < game->freecells_number); + + if (from == to) + return 0; + + if (game->freecells[from] == NULL) + return 0; + + if (game->freecells[to] != NULL) + return 0; + + return 1; +} + +int +freecellgame_can_move_freecell_to_field (FREECELLGAME *game, + int from, int to) +{ + CARD *tmp_card; + + assert (from >= 0 && from < game->freecells_number); + assert (to >= 0 && to < game->fields_number); + + if (game->freecells[from] == NULL) + return 0; + + if (deck_number (game->fields[to]) == 0) + return 1; + + tmp_card = deck_view_top (game->fields[to]); + if (can_be_on_in_field(game->freecells[from], tmp_card)) + return 1; + + return 0; +} + + +/* Game movement control. */ + + +int +freecellgame_field_to_destination (FREECELLGAME *game, + int from, int to) +{ + CARD *card; + + assert (from >= 0 && from < game->fields_number); + assert (to >= 0 && to < game->destinations_number); + + if (freecellgame_can_move_field_to_destination (game, from, to)) + { + card = deck_view_top(game->fields[from]); + deck_add_top (game->destinations[to], card); + deck_remove_top (game->fields[from]); + return 1; + } + else + return -1; +} + +int +freecellgame_field_to_freecell (FREECELLGAME *game, + int from, int to) +{ + CARD *card; + + assert (from >= 0 && from < game->fields_number); + assert (to >= 0 && to < game->fields_number); + + if (freecellgame_can_move_field_to_freecell (game, from, to)) + { + card = deck_view_top(game->fields[from]); + game->freecells[to] = card; + deck_remove_top (game->fields[from]); + return 1; + } + else + return -1; +} + +int +freecellgame_field_to_field (FREECELLGAME *game, + int from, int to) +{ + CARD *card; + + assert (from >= 0 && from < game->fields_number); + assert (to >= 0 && to < game->fields_number); + + if (freecellgame_can_move_field_to_field (game, from, to)) + { + card = deck_view_top(game->fields[from]); + deck_remove_top (game->fields[from]); + deck_add_top (game->fields[to], card); + return 1; + } + else + return -1; +} + +int +freecellgame_freecell_to_destination (FREECELLGAME *game, + int from, int to) +{ + assert (from >= 0 && from < game->freecells_number); + assert (to >= 0 && to < game->destinations_number); + + if (freecellgame_can_move_freecell_to_destination(game, from, to)) + { + deck_add_top (game->destinations[to], game->freecells[from]); + game->freecells[from] = NULL; + return 1; + } + else + return -1; +} + +int +freecellgame_freecell_to_freecell (FREECELLGAME *game, + int from, int to) +{ + assert (from >= 0 && from < game->freecells_number); + assert (to >= 0 && to < game->freecells_number); + + if (freecellgame_can_move_freecell_to_freecell(game, from, to)) + { + game->freecells[to] = game->freecells[from]; + game->freecells[from] = NULL; + return 1; + } + else + return -1; +} + +int +freecellgame_freecell_to_field (FREECELLGAME *game, + int from, int to) +{ + assert (from >= 0 && from < game->freecells_number); + assert (to >= 0 && to < game->fields_number); + + if (freecellgame_can_move_freecell_to_field (game, from, to)) + { + deck_add_top (game->fields[to], game->freecells[from]); + game->freecells[from] = NULL; + return 1; + } + else + return -1; +} + + +int +freecellgame_field_to_empty_freecell (FREECELLGAME *game, + int from, + int *empty_index) +{ + int i; + + assert (from >= 0 && from < game->fields_number); + + *empty_index = -1; + + for (i = 0; i < game->freecells_number; i++) + if (freecellgame_can_move_field_to_freecell (game, from, i)) + { + *empty_index = i; + return freecellgame_field_to_freecell (game, from, i); + } + + return -1; +} + + +int +freecellgame_can_move_field_to_field_sequence (FREECELLGAME *game, + int from, + int to) +{ + int count; + int empty_fcs; + DECK *from_deck, *to_deck; + CARD *to_card; + + int i; + + assert (from >= 0 && from < game->fields_number); + assert (to >= 0 && to < game->fields_number); + + empty_fcs = empty_freecells_number (game); + + from_deck = game->fields[from]; + if (deck_number(from_deck) == 0) + return 0; + + to_deck = game->fields[to]; + if (deck_number(to_deck) == 0) + { + count = 1; + for (i = 0; i < deck_number(from_deck); i++) + { + if (count == (empty_fcs + 1)) + return count; + + if ((i == (deck_number(from_deck) - 1)) + || (! can_be_on_in_field (deck_view(from_deck, i), + deck_view(from_deck, i+1)))) + return count; + + count ++; + } + return 0; + } + else + { + to_card = deck_view_top (to_deck); + count = 1; + for (i = 0; i < deck_number(from_deck); i++) + { + if (can_be_on_in_field (deck_view(from_deck, i), to_card)) + { + if (count > (empty_fcs + 1)) + return 0; + else + return count; + } + + if ((i == (deck_number(from_deck) - 1)) + || (! can_be_on_in_field (deck_view(from_deck, i), + deck_view(from_deck, i+1)))) + return 0; + + count++; + } + return 0; + } +} + + +int +freecellgame_field_to_field_sequence (FREECELLGAME *game, + int from, + int to) +{ + int count; + int i, p; + DECK *to_deck, *from_deck; + + assert (from >= 0 && from < game->fields_number); + assert (to >= 0 && to < game->fields_number); + + count = freecellgame_can_move_field_to_field_sequence(game, from, to); + if (count) + { + from_deck = game->fields[from]; + to_deck = game->fields[to]; + + p = deck_number(game->fields[from]) - count; + for (i = 0; i < count; i++) + deck_add_top (to_deck, deck_remove(from_deck, p)); + return 1; + } + else + return -1; +} + + +static int +can_to_destination_auto (FREECELLGAME *game, + CARD *card, int *dest_index) +{ + int i; + int count = 0; + + CARD *c; + + *dest_index = -1; + + + if (card_rank(card) <= 2) + { + for (i = 0; i < 4; i++) + { + c = freecellgame_get_destination_top(game, i); + if (can_be_on_in_destination(card, c)) + { + *dest_index = i; + return 1; + } + } + } + else + { + for (i = 0; i < 4; i ++) + { + c = freecellgame_get_destination_top(game, i); + + if (c) + { + if (card_suit(c) == card_suit(card)) + { + if (can_be_on_in_destination(card, c)) + *dest_index = i; + else + return 0; + } + else + { + if ((card_is_red(card) && card_is_black(c)) + || (card_is_black(card) && card_is_red(c))) + { + count++; + if (card_rank(c) < (card_rank(card) - 1)) + return 0; + } + } + } + } + if (count < 2) + return 0; + if (*dest_index < 0) + return 0; + + return 1; + } + return 0; +} + + +int +freecellgame_to_destination_auto (FREECELLGAME *game, + int *is_from_freecell, + int *from_index, int *to_index) +{ + int i; + + int dest_index; + DECK *deck; + CARD *card; + + for (i = 0; i < 4; i++) + { + card = freecellgame_get_freecell(game, i); + if (card + && can_to_destination_auto (game, card, &dest_index)) + { + *is_from_freecell = 1; + *from_index = i; + *to_index = dest_index; + freecellgame_freecell_to_destination(game, i, dest_index); + return 1; + } + } + + for (i = 0; i < 8; i++) + { + deck = freecellgame_get_field(game, i); + card = deck_view_top(deck); + if (card + && can_to_destination_auto (game, card, &dest_index)) + { + *is_from_freecell = 0; + *from_index = i; + *to_index = dest_index; + freecellgame_field_to_destination(game, i, dest_index); + return 1; + } + } + return -1; +} + +int +freecellgame_is_finished (FREECELLGAME *game) +{ + int i; + + for (i = 0; i < game->freecells_number; i++) + if (game->freecells[i] != NULL) + return 0; + for (i = 0; i < game->fields_number; i++) + if (deck_number(game->fields[i]) != 0) + return 0; + return 1; +} + + +int +freecellgame_is_there_no_way (FREECELLGAME *game) +{ + int i, j; + + if (empty_freecells_number (game) > 0) + return 0; + + for (i = 0; i < game->freecells_number; i++) + { + for (j = 0; j < game->destinations_number; j++) + if (freecellgame_can_move_freecell_to_destination(game, i, j)) + return 0; + } + + for (i = 0; i < game->fields_number; i++) + { + for (j = 0; j < game->destinations_number; j++) + if (freecellgame_can_move_field_to_destination(game, i, j)) + return 0; + } + + for (i = 0; i < game->freecells_number; i++) + { + for (j = 0; j < game->fields_number; j++) + if (freecellgame_can_move_freecell_to_field(game, i, j)) + return 0; + } + + for (i = 0; i < game->fields_number; i++) + { + for (j = 0; j < game->fields_number; j++) + if (freecellgame_can_move_field_to_field(game, i, j)) + return 0; + } + + return 1; +} + +#ifdef DEBUG +#include + +extern void card_dump (CARD *card); +extern void deck_dump (DECK *deck); + +void +freecellgame_dump (FREECELLGAME *game) +{ + int i; + + printf ("* Freecells\n"); + for (i = 0; i < game->freecells_number; i++) + { + printf ("** Freecell %d\n", i); + card_dump(game->freecells[i]); + } + printf ("* Destinations\n"); + for (i = 0; i < game->destinations_number; i++) + { + printf ("** Destination %d\n", i); + deck_dump(game->destinations[i]); + } + printf ("* Fields\n"); + for (i = 0; i < game->fields_number; i++) + { + printf ("** Field %d\n", i); + deck_dump(game->fields[i]); + } +} +#endif /* DEBUG */ + + + + + + + + + diff -uNr gnome-0.11/programs/freecell/src/game.h gnome-0.12/programs/freecell/src/game.h --- gnome-0.11/programs/freecell/src/game.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/game.h Mon Jan 19 10:49:02 1998 @@ -0,0 +1,81 @@ +/* game.h -- Freecell game. + Copyright (C) 1997 Changwoo Ryu + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Changwoo Ryu . */ + +#ifndef __FREECELL__GAME_H +#define __FREECELL__GAME_H + +#include "card.h" + +typedef struct __FREECELLGAME +{ + int freecells_number; + CARD **freecells; + + int destinations_number; /* It can be changed ?? */ + DECK **destinations; + + int fields_number; + DECK **fields; + +} FREECELLGAME; + + +/* constructor/destructor. */ +extern FREECELLGAME *freecellgame_new (int freecells_number, int fields_number); +extern void freecellgame_delete (FREECELLGAME *game); + +/* for getting game's current information */ +extern CARD *freecellgame_get_destination_top (FREECELLGAME *game, int index); +extern DECK *freecellgame_get_field (FREECELLGAME *game, int index); +extern CARD *freecellgame_get_freecell (FREECELLGAME *game, int index); + +extern int freecellgame_can_move_field_to_destination (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_field_to_freecell (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_field_to_field (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_freecell_to_destination (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_freecell_to_freecell (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_freecell_to_field (FREECELLGAME *game, int from, int to); + + +/* simple movement. */ +extern int freecellgame_field_to_destination (FREECELLGAME *game, int from, int to); +extern int freecellgame_field_to_freecell (FREECELLGAME *game, int from, int to); +extern int freecellgame_field_to_field (FREECELLGAME *game, int from, int to); +extern int freecellgame_freecell_to_freecell (FREECELLGAME *game, int from, int to); +extern int freecellgame_freecell_to_field (FREECELLGAME *game, int from, int to); +extern int freecellgame_freecell_to_destination (FREECELLGAME *game, int from, int to); + +/* complex movement. */ +extern int freecellgame_field_to_empty_freecell (FREECELLGAME *game, int field_index, int *empty_index); +extern int freecellgame_field_to_field_sequence (FREECELLGAME *game, int from_field_index, int to_field_index); +extern int freecellgame_to_destination_auto (FREECELLGAME *game, int *is_from_freecell, int *from_index, int *to_index); + +/* predicates. */ +extern int freecellgame_can_move_field_to_destination (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_field_to_freecell (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_field_to_field (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_freecell_to_destination (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_freecell_to_freecell (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_freecell_to_field (FREECELLGAME *game, int from, int to); +extern int freecellgame_can_move_field_to_field_sequence (FREECELLGAME *game, int from, int to); +extern int freecellgame_is_finished (FREECELLGAME *game); +extern int freecellgame_is_there_no_way (FREECELLGAME *game); + + +#endif /* __FREECELL__GAME_H */ diff -uNr gnome-0.11/programs/freecell/src/io-gtk.c gnome-0.12/programs/freecell/src/io-gtk.c --- gnome-0.11/programs/freecell/src/io-gtk.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/io-gtk.c Mon Jan 19 10:49:03 1998 @@ -0,0 +1,1012 @@ +/* io-gtk.c + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Changwoo Ryu . */ + +#include + +#include +#include + +#include + +#include + +#include +#include + + + +#include "freecell.h" +#include "card.h" +#include "game.h" + +#include "menu.h" + +#include "score.h" +#include "score-dialog.h" + +#include "option.h" +#include "option-dialog.h" + +#include "io-gtk.h" +#include "card-draw.h" +#include "card-image.h" + + +#define FIELD_WIDTH card_image_width() +#define FIELD_HEIGHT card_image_top_height() * 14 + +static GtkWidget *main_window; + +static GtkWidget *freecell_drawing_areas[4]; +static GtkWidget *destination_drawing_areas[4]; +static GtkWidget *field_drawing_areas[8]; + +static FREECELLGAME *freecellgame = NULL; + +static enum +{ + SELECTED_NONE, SELECTED_FREECELL, SELECTED_FIELD +} +selected = SELECTED_NONE; +static int selected_index = 0; + +static int inverted = 0; +static int inverted_index = 0; +static int inverted_card_index = 0; + +static GdkCursor *normal_cursor; +static GdkCursor *up_cursor; + +static int stalled = 0; + + + +static void to_destination_auto(void); + +static void update_cursors(void); + +static void refresh_freecell (int index); +static void refresh_field (int index); +static void refresh_destination (int index); + +static void refresh_all (void); + + +static void callback_new (GtkWidget *widget, GdkEvent *event); +static void callback_new_with_lose (GtkWidget *widget, gpointer data); +static void callback_new_really (void); +static void callback_score (GtkWidget *widget, GdkEvent *event); +static void callback_undo (GtkWidget *widget, GdkEvent *event); +static void callback_option (GtkWidget *widget, GdkEvent *event); +static void callback_quit (GtkWidget *widget, GdkEvent *event); +static void callback_quit_with_lose (GtkWidget *widget, gpointer data); +static void callback_quit_really (void); + +static void callback_rule (GtkWidget *widget, GdkEvent *event); +static void callback_about (GtkWidget *widget, GdkEvent *event); + +static void inform_invalid_move (void); + +static void callback_freecell_press (GtkWidget *widget, GdkEventButton *event, gpointer client_data); +static void callback_field_press (GtkWidget *widget, GdkEventButton *event, gpointer client_data); +static void callback_field_release (GtkWidget *widget, GdkEventButton *event, gpointer client_data); +static void callback_destination_press (GtkWidget *widget, GdkEventButton *event, gpointer client_data); + +static void callback_freecell_expose (GtkWidget *widget, GdkEventExpose *event, gpointer client_data); +static void callback_destination_expose (GtkWidget *widget, GdkEventExpose *event, gpointer client_data); +static void callback_field_expose (GtkWidget *widget, GdkEventExpose *event, gpointer client_data); + + +void +io_gtk_init (int *argc, char ***argv) +{ + GtkWidget *vbox, *hbox; + + int i; + GtkWidget *w; + + + gnome_init(argc, argv); + + option_init(); + score_init(); + + + /* make main window. */ + main_window = gnome_app_new ("freecell", "Freecell"); + gtk_signal_connect (GTK_OBJECT(main_window), "delete_event", + GTK_SIGNAL_FUNC(callback_quit), NULL); + gtk_widget_realize(main_window); + + card_draw_init(main_window); + + { + GtkMenuFactory *mf; + + mf = create_main_menu (); + gnome_app_set_menus (GNOME_APP(main_window), GTK_MENU_BAR(mf->widget)); + } + + /* vbox -- menubar, freecells & destinations, separator, fields. */ + vbox = gtk_vbox_new (FALSE, 2); + gnome_app_set_contents (GNOME_APP(main_window), vbox); + + hbox = gtk_hbox_new (FALSE, 2); + for (i = 0; i < 4; i++) + { + freecell_drawing_areas[i] = gtk_drawing_area_new(); + gtk_signal_connect (GTK_OBJECT(freecell_drawing_areas[i]), + "expose_event", + GTK_SIGNAL_FUNC (callback_freecell_expose), + (gpointer)i); + gtk_signal_connect (GTK_OBJECT(freecell_drawing_areas[i]), + "button_press_event", + GTK_SIGNAL_FUNC (callback_freecell_press), + (gpointer)i); + + gtk_drawing_area_size (GTK_DRAWING_AREA(freecell_drawing_areas[i]), + card_image_width(), card_image_height()); + gtk_widget_set_events (freecell_drawing_areas[i], + GDK_BUTTON_PRESS_MASK + | GDK_EXPOSURE_MASK); + gtk_box_pack_start_defaults (GTK_BOX(hbox), freecell_drawing_areas[i]); + gtk_widget_show(freecell_drawing_areas[i]); + } + w = gtk_vseparator_new(); + gtk_box_pack_start_defaults (GTK_BOX(hbox), w); + gtk_widget_show (w); + for (i = 0; i < 4; i++) + { + destination_drawing_areas[i] = gtk_drawing_area_new(); + gtk_signal_connect (GTK_OBJECT(destination_drawing_areas[i]), + "expose_event", + GTK_SIGNAL_FUNC (callback_destination_expose), + (gpointer)i); + gtk_signal_connect (GTK_OBJECT(destination_drawing_areas[i]), + "button_press_event", + GTK_SIGNAL_FUNC (callback_destination_press), + (gpointer)i); + gtk_drawing_area_size (GTK_DRAWING_AREA(destination_drawing_areas[i]), + card_image_width(), card_image_height()); + gtk_widget_set_events (destination_drawing_areas[i], + GDK_BUTTON_PRESS_MASK + | GDK_EXPOSURE_MASK); + + gtk_box_pack_start_defaults (GTK_BOX(hbox), + destination_drawing_areas[i]); + gtk_widget_show(destination_drawing_areas[i]); + } + gtk_box_pack_start_defaults (GTK_BOX(vbox), hbox); + gtk_widget_show(hbox); + + w = gtk_hseparator_new(); + gtk_box_pack_start_defaults (GTK_BOX(vbox), w); + gtk_widget_show (w); + + hbox = gtk_hbox_new (FALSE, 2); + for (i = 0; i < 8; i++) + { + field_drawing_areas[i] = gtk_drawing_area_new(); + gtk_signal_connect (GTK_OBJECT(field_drawing_areas[i]), + "expose_event", + GTK_SIGNAL_FUNC (callback_field_expose), + (gpointer)i); + gtk_signal_connect (GTK_OBJECT(field_drawing_areas[i]), + "button_press_event", + GTK_SIGNAL_FUNC (callback_field_press), + (gpointer)i); + gtk_signal_connect (GTK_OBJECT(field_drawing_areas[i]), + "button_release_event", + GTK_SIGNAL_FUNC (callback_field_release), + (gpointer)i); + gtk_drawing_area_size (GTK_DRAWING_AREA(field_drawing_areas[i]), + FIELD_WIDTH, + FIELD_HEIGHT); + gtk_widget_set_events (field_drawing_areas[i], + GDK_BUTTON_PRESS_MASK + | GDK_BUTTON_RELEASE_MASK + | GDK_EXPOSURE_MASK); + + gtk_box_pack_start_defaults (GTK_BOX(hbox), field_drawing_areas[i]); + gtk_widget_show(field_drawing_areas[i]); + } + gtk_box_pack_start_defaults (GTK_BOX(vbox), hbox); + gtk_widget_show(hbox); + + + gtk_widget_show (vbox); + gtk_widget_show (main_window); + + normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW); + up_cursor = gdk_cursor_new (GDK_SB_UP_ARROW); + + stalled = 1; +} + + +/* Begin main I/O message loop. */ +void +io_gtk_loop (void) +{ + gtk_main(); +} + + +/*---------------------------------------------------------------------- + io_gtk_menu_bar + ----------------------------------------------------------------------*/ +static GtkMenuFactory * +create_main_menu (void) +{ + static GtkMenuEntry main_menu [] = + { + {N_("Game/New"), "N", (GtkMenuCallback)callback_new, NULL}, + {N_("Game/Option"), "O", + (GtkMenuCallback)callback_option, NULL}, + {N_("Game/Score"), "S", + (GtkMenuCallback)callback_score, NULL}, + {N_("Game/"), NULL, NULL, NULL}, + {N_("Game/Quit"), "Q", (GtkMenuCallback)callback_quit, NULL}, + {N_("Help/About"), NULL, (GtkMenuCallback)callback_about, NULL}, + }; +#define ELEMENTS(x) (sizeof(x) / sizeof(x[0])) + + GtkMenuFactory *subfactory; + +#ifdef ENABLE_NLS + { + int i; + for (i = 0; i < ELEMENTS(main_menu); i++) + main_menu[i].path = gettext(main_menu[i].path); + } +#endif /* ENABLE_NLS */ + + subfactory = gtk_menu_factory_new (GTK_MENU_FACTORY_MENU_BAR); + gtk_menu_factory_add_entries (subfactory, main_menu, ELEMENTS(main_menu)); + return subfactory; +} + + +/* Refresh functions. */ +static void +refresh_freecell (int index) +{ + CARD *card; + + if (!freecellgame) + return; + + card = freecellgame_get_freecell (freecellgame, index); + + if ((selected == SELECTED_FREECELL) + && selected_index == index) + card_draw_selected_card(freecell_drawing_areas[index], card); + else + card_draw_card(freecell_drawing_areas[index], card); +} + +static void +refresh_destination (int index) +{ + CARD *card; + + if (!freecellgame) + return; + + card = freecellgame_get_destination_top (freecellgame, index); + card_draw_card(destination_drawing_areas[index], card); +} + + +static void +refresh_field (int index) +{ + DECK *deck; + + if (!freecellgame) + return; + + deck = freecellgame_get_field(freecellgame, index); + + if ((selected == SELECTED_FIELD) + && (selected_index == index)) + { + if (inverted && (inverted_index == index)) + card_draw_selected_deck_with_view(field_drawing_areas[index], + deck, + inverted_card_index); + else + card_draw_selected_deck(field_drawing_areas[index], deck); + } + else + { + if (inverted && (inverted_index == index)) + card_draw_deck_with_view(field_drawing_areas[index], deck, + inverted_card_index); + else + card_draw_deck(field_drawing_areas[index], deck); + } +} + +static void +refresh_all (void) +{ + int i; + + for (i = 0; i < 4; i++) + refresh_freecell(i); + for (i = 0; i < 4; i++) + refresh_destination(i); + for (i = 0; i < 8; i++) + refresh_field(i); +} + + +static void +callback_new_really (void) +{ + if (freecellgame) + freecellgame_delete (freecellgame); + + freecellgame = freecellgame_new (4, 8); + + stalled = 0; + selected = SELECTED_NONE; + inverted = 0; + + refresh_all(); + update_cursors(); +} + + +static void +callback_new_with_lose (GtkWidget *widget, gpointer data) +{ + if ((int)data == 1) + { + score_add_lose(); + callback_new_really(); + } +} + + + +static void +callback_new (GtkWidget *widget, GdkEvent *event) +{ + GtkWidget *mb; + + if (!stalled + && freecellgame + && !freecellgame_is_finished(freecellgame)) + { + mb = gnome_messagebox_new (_("Quit this game?"), + GNOME_MESSAGEBOX_QUESTION, + _("Yes"), _("No"), NULL); + GTK_WINDOW(mb)->position = GTK_WIN_POS_MOUSE; + gnome_messagebox_set_modal (GNOME_MESSAGEBOX(mb)); + gtk_signal_connect_object(GTK_OBJECT(mb), + "clicked", + GTK_SIGNAL_FUNC(callback_new_with_lose), + NULL); + gtk_widget_show (mb); + } + else + callback_new_really(); + +} + +static void +callback_score (GtkWidget *widget, GdkEvent *event) +{ + GtkWidget *dialog; + + dialog = score_dialog(); +} + +static void +callback_undo (GtkWidget *widget, GdkEvent *event) +{ + GtkWidget *mb; + + mb = gnome_messagebox_new (_("Sorry, this feature is not implemented (yet)."), + GNOME_MESSAGEBOX_INFO, + _("OK"), NULL, NULL); + GTK_WINDOW(mb)->position = GTK_WIN_POS_MOUSE; + gnome_messagebox_set_modal (GNOME_MESSAGEBOX(mb)); + gtk_widget_show (mb); +} + + +static void +callback_option (GtkWidget *widget, GdkEvent *event) +{ + GtkWidget *dialog; + + dialog = option_dialog (); +} + + +static void +callback_rule (GtkWidget *widget, GdkEvent *event) +{ + GtkWidget *mb; + + mb = gnome_messagebox_new (_("Sorry, this feature is not implemented (yet)."), + GNOME_MESSAGEBOX_INFO, + _("OK"), NULL, NULL); + GTK_WINDOW(mb)->position = GTK_WIN_POS_MOUSE; + gnome_messagebox_set_modal (GNOME_MESSAGEBOX(mb)); + gtk_widget_show (mb); +} + + +static void +callback_quit_really (void) +{ + score_write(); + option_write(); + gtk_main_quit(); +} + +static void +callback_quit_with_lose (GtkWidget *widget, gpointer data) +{ + if ((int)data == 1) + { + score_add_lose(); + callback_quit_really(); + } +} + + +static void +callback_quit (GtkWidget *widget, GdkEvent *event) +{ + GtkWidget *mb; + + if (!stalled + && freecellgame + && !freecellgame_is_finished(freecellgame)) + { + mb = gnome_messagebox_new (_("Quit this game?"), + GNOME_MESSAGEBOX_QUESTION, + _("Yes"), _("No"), NULL); + GTK_WINDOW(mb)->position = GTK_WIN_POS_MOUSE; + gnome_messagebox_set_modal (GNOME_MESSAGEBOX(mb)); + gtk_signal_connect_object(GTK_OBJECT(mb), + "clicked", + GTK_SIGNAL_FUNC(callback_quit_with_lose), + NULL); + gtk_widget_show (mb); + } + else + callback_quit_really(); +} + +static void +callback_about (GtkWidget *widget, GdkEvent *event) +{ +} + +static void +inform_invalid_move (void) +{ + GtkWidget *mb; + + mb = gnome_messagebox_new (_("You can't move in that way."), + GNOME_MESSAGEBOX_ERROR, + _("OK"), NULL, NULL); + GTK_WINDOW(mb)->position = GTK_WIN_POS_MOUSE; + gnome_messagebox_set_modal (GNOME_MESSAGEBOX(mb)); + gtk_widget_show (mb); +} + +static void +callback_freecell_press (GtkWidget *widget, GdkEventButton *event, + gpointer client_data) +{ + int index; + + + if (!freecellgame || stalled) + return; + + index = (int)client_data; + + if (event->type == GDK_BUTTON_PRESS) + { + switch(event->button) + { + case 1: + if (selected == SELECTED_FIELD) + { + if (freecellgame_field_to_freecell(freecellgame, + selected_index, + index) < 0) + { + if (option_inform_invalid_move) + { + inform_invalid_move(); + selected = SELECTED_NONE; + refresh_field(selected_index); + } + } + else + { + selected = SELECTED_NONE; + refresh_field(selected_index); + refresh_freecell(index); + to_destination_auto(); + } + } + else if (selected == SELECTED_FREECELL) + { + if (selected_index == index) + { + selected = SELECTED_NONE; + refresh_freecell(index); + } + else if (freecellgame_freecell_to_freecell(freecellgame, + selected_index, + index) < 0) + { + if (option_inform_invalid_move) + { + inform_invalid_move(); + selected = SELECTED_NONE; + refresh_freecell(selected_index); + } + } + else + { + selected = SELECTED_NONE; + refresh_freecell(selected_index); + refresh_freecell(index); + to_destination_auto(); + } + } + else + { + if (freecellgame_get_freecell(freecellgame, index)) + { + selected = SELECTED_FREECELL; + selected_index = index; + refresh_freecell(index); + } + } + break; + + default: + if (selected == SELECTED_FREECELL) + { + selected = SELECTED_NONE; + refresh_freecell(selected_index); + } + else if (selected == SELECTED_FIELD) + { + selected = SELECTED_NONE; + refresh_field(selected_index); + } + else + selected = SELECTED_NONE; + + break; + } + } + update_cursors(); + return; +} + +static void +callback_destination_press (GtkWidget *widget, GdkEventButton *event, + gpointer client_data) +{ + int index; + + if (!freecellgame || stalled) + return; + + index = (int)client_data; + + if (event->type == GDK_BUTTON_PRESS) + { + switch(event->button) + { + case 1: + if (selected == SELECTED_FREECELL) + { + if (freecellgame_freecell_to_destination(freecellgame, + selected_index, + index) < 0) + { + if (option_inform_invalid_move) + { + inform_invalid_move(); + selected = SELECTED_NONE; + refresh_freecell(selected_index); + } + } + else + { + selected = SELECTED_NONE; + refresh_freecell(selected_index); + refresh_destination(index); + to_destination_auto(); + } + } + else if (selected == SELECTED_FIELD) + { + if (freecellgame_field_to_destination(freecellgame, + selected_index, + index) < 0) + { + if (option_inform_invalid_move) + { + inform_invalid_move(); + selected = SELECTED_NONE; + refresh_field(selected_index); + } + } + else + { + selected = SELECTED_NONE; + refresh_field(selected_index); + refresh_destination(index); + to_destination_auto(); + } + } + break; + + default: + if (selected == SELECTED_FREECELL) + { + selected = SELECTED_NONE; + refresh_freecell(selected_index); + } + else if (selected == SELECTED_FIELD) + { + selected = SELECTED_NONE; + refresh_field(selected_index); + } + else + selected = SELECTED_NONE; + + break; + } + } + update_cursors(); + return; +} + + +static void +callback_field_press (GtkWidget *widget, GdkEventButton *event, + gpointer client_data) +{ + int index; + + int tmp, tmp2; + + if (!freecellgame || stalled) + return; + + index = (int)client_data; + + if (event->type == GDK_BUTTON_PRESS) + { + switch(event->button) + { + case 1: + if (selected == SELECTED_FREECELL) + { + if (freecellgame_freecell_to_field(freecellgame, + selected_index, index) < 0) + { + if (option_inform_invalid_move) + { + inform_invalid_move(); + selected = SELECTED_NONE; + refresh_freecell(selected_index); + } + } + else + { + selected = SELECTED_NONE; + refresh_freecell(selected_index); + refresh_field(index); + to_destination_auto(); + } + } + else if (selected == SELECTED_FIELD) + { + if (selected_index == index) + { + selected = SELECTED_NONE; + refresh_field(selected_index); + } + else if (freecellgame_field_to_field_sequence(freecellgame, + selected_index, + index) < 0) + { + if (option_inform_invalid_move) + { + inform_invalid_move(); + selected = SELECTED_NONE; + refresh_field(selected_index); + } + } + else + { + selected = SELECTED_NONE; + refresh_field(selected_index); + refresh_field(index); + to_destination_auto(); + } + } + else + { + if (deck_number(freecellgame_get_field(freecellgame, index)) + != 0) + { + selected = SELECTED_FIELD; + selected_index = index; + refresh_field(index); + } + } + break; + + case 3: + { + DECK *deck; + int n; + + deck = freecellgame_get_field (freecellgame, index); + n = card_draw_get_index_from_deck(widget, event->x, event->y, + deck); + if (n >= 0) + { + inverted = 1; + inverted_index = index; + inverted_card_index = n; + refresh_field (index); + } + break; + } + + default: + if (selected == SELECTED_FREECELL) + { + selected = SELECTED_NONE; + refresh_freecell(selected_index); + } + else if (selected == SELECTED_FIELD) + { + selected = SELECTED_NONE; + refresh_field(selected_index); + } + else + selected = SELECTED_NONE; + break; + } + } + else if (event->type == GDK_2BUTTON_PRESS) + { + switch (event->button) + { + case 1: + tmp = freecellgame_field_to_empty_freecell (freecellgame, + index, &tmp2); + selected = SELECTED_NONE; + if (tmp >= 0) + { + refresh_field(index); + refresh_freecell(tmp2); + } + to_destination_auto(); + default: + selected = SELECTED_NONE; + break; + } + } + + update_cursors(); + return; +} + +static void +callback_field_release (GtkWidget *widget, GdkEventButton *event, + gpointer client_data) +{ + int index; + + + if (!freecellgame || stalled) + return; + + index = (int)client_data; + + if (event->type == GDK_BUTTON_RELEASE) + { + if (event->button == 3) + inverted = 0; + refresh_field(inverted_index); + } + return; +} + + +static void +update_cursors (void) +{ + int i; + + switch (selected) + { + case SELECTED_NONE: + for (i = 0; i < 4; i++) + gdk_window_set_cursor(freecell_drawing_areas[i]->window, + normal_cursor); + for (i = 0; i < 4; i++) + gdk_window_set_cursor(destination_drawing_areas[i]->window, + normal_cursor); + for (i = 0; i < 8; i++) + gdk_window_set_cursor(field_drawing_areas[i]->window, + normal_cursor); + break; + case SELECTED_FIELD: + for (i = 0; i < 4; i++) + { + if (freecellgame_can_move_field_to_freecell (freecellgame, + selected_index, i)) + gdk_window_set_cursor(freecell_drawing_areas[i]->window, + up_cursor); + else + gdk_window_set_cursor(freecell_drawing_areas[i]->window, + normal_cursor); + } + for (i = 0; i < 4; i++) + { + if (freecellgame_can_move_field_to_destination (freecellgame, + selected_index, i)) + gdk_window_set_cursor(destination_drawing_areas[i]->window, + up_cursor); + else + gdk_window_set_cursor(destination_drawing_areas[i]->window, + normal_cursor); + } + for (i = 0; i < 8; i++) + { + if (freecellgame_can_move_field_to_field_sequence (freecellgame, + selected_index, + i)) + gdk_window_set_cursor(field_drawing_areas[i]->window, + up_cursor); + else + gdk_window_set_cursor(field_drawing_areas[i]->window, + normal_cursor); + } + break; + case SELECTED_FREECELL: + for (i = 0; i < 4; i++) + { + if (freecellgame_can_move_freecell_to_freecell (freecellgame, + selected_index, i)) + gdk_window_set_cursor(freecell_drawing_areas[i]->window, + up_cursor); + else + gdk_window_set_cursor(freecell_drawing_areas[i]->window, + normal_cursor); + } + for (i = 0; i < 4; i++) + { + if (freecellgame_can_move_freecell_to_destination (freecellgame, + selected_index, + i)) + gdk_window_set_cursor(destination_drawing_areas[i]->window, + up_cursor); + else + gdk_window_set_cursor(destination_drawing_areas[i]->window, + normal_cursor); + } + for (i = 0; i < 8; i++) + { + if (freecellgame_can_move_freecell_to_field (freecellgame, + selected_index, i)) + gdk_window_set_cursor(field_drawing_areas[i]->window, + up_cursor); + else + gdk_window_set_cursor(field_drawing_areas[i]->window, + normal_cursor); + } + break; + } +} + + + + +static void +callback_freecell_expose (GtkWidget *widget, GdkEventExpose *event, + gpointer client_data) +{ + refresh_freecell((int)client_data); + return; +} + +static void +callback_destination_expose (GtkWidget *widget, GdkEventExpose *event, + gpointer client_data) +{ + refresh_destination((int)client_data); + return; +} + +static void +callback_field_expose (GtkWidget *widget, GdkEventExpose *event, + gpointer client_data) +{ + refresh_field((int)client_data); + return; +} + + + +static void +to_destination_auto(void) +{ + int is_freecell, to_index, from_index; + GtkWidget *mb; + + while (freecellgame_to_destination_auto(freecellgame, &is_freecell, + &from_index, &to_index) >= 0) + { + if (is_freecell) + refresh_freecell(from_index); + else + refresh_field(from_index); + refresh_destination(to_index); + } + + if (freecellgame_is_there_no_way(freecellgame)) + { + mb = gnome_messagebox_new (_("Sorry, there is no card to move."), + GNOME_MESSAGEBOX_INFO, + _("OK"), NULL, NULL); + GTK_WINDOW(mb)->position = GTK_WIN_POS_MOUSE; + gnome_messagebox_set_modal (GNOME_MESSAGEBOX(mb)); + gtk_widget_show (mb); + score_add_lose(); + stalled = 1; + } + + if (freecellgame_is_finished(freecellgame)) + { + mb = gnome_messagebox_new (_("Congraturations. You won."), + GNOME_MESSAGEBOX_INFO, + _("OK"), NULL, NULL); + GTK_WINDOW(mb)->position = GTK_WIN_POS_MOUSE; + gnome_messagebox_set_modal (GNOME_MESSAGEBOX(mb)); + gtk_widget_show (mb); + score_add_win(); + } + + +} + diff -uNr gnome-0.11/programs/freecell/src/io-gtk.h gnome-0.12/programs/freecell/src/io-gtk.h --- gnome-0.11/programs/freecell/src/io-gtk.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/io-gtk.h Mon Jan 19 10:49:03 1998 @@ -0,0 +1,41 @@ +/* io-gtk.h + Copyright (C) 1997 Changwoo Ryu + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Changwoo Ryu . */ + +#ifndef __FREECELL_IO_GTK_H +#define __FREECELL_IO_GTK_H + +#include + +#include "card.h" +#include "game.h" + +/* IO interface. */ + +extern GtkWidget *main_window; + +void io_gtk_init (int *argc, char ***argv); +void io_gtk_loop (void); + +#endif /* __FREECELL_IO_GTK_H */ + + + + + + diff -uNr gnome-0.11/programs/freecell/src/menu.h gnome-0.12/programs/freecell/src/menu.h --- gnome-0.11/programs/freecell/src/menu.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/menu.h Mon Jan 19 10:49:03 1998 @@ -0,0 +1,27 @@ +/* menu.h + Copyright (C) 1998 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#ifndef __FREECELL__MENU_H +#define __FREECELL__MENU_H + +#include + +GtkMenuFactory *create_main_menu (void); + +#endif /* __FREECELL__MENU_H */ diff -uNr gnome-0.11/programs/freecell/src/option-dialog.c gnome-0.12/programs/freecell/src/option-dialog.c --- gnome-0.11/programs/freecell/src/option-dialog.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/option-dialog.c Mon Jan 19 10:49:03 1998 @@ -0,0 +1,131 @@ +/* option-dialog.c + Copyright (C) 1998 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#include + +#include +#include +#include +#include "option.h" + + +typedef struct _OPTION_DATA +{ + GtkWidget *dialog; + GtkWidget *inform_invalid_move_check; +} +OPTION_DATA; + + +static void +option_dialog_callback_ok(GtkWidget *w, gpointer client_data) +{ + GtkWidget *c; + + c = ((OPTION_DATA *)client_data)->inform_invalid_move_check; + + option_inform_invalid_move + = (GTK_TOGGLE_BUTTON(c)->active); + + gtk_widget_destroy (((OPTION_DATA *)client_data)->dialog); + free(client_data); +} + +static void +option_dialog_callback_cancel(GtkWidget *w, gpointer client_data) +{ + OPTION_DATA *od; + GtkWidget *d; + + od = ((OPTION_DATA *)client_data); + d = od->dialog; + gtk_widget_destroy (d); + g_free(od); +} + + + +GtkWidget * +option_dialog (void) +{ + GtkWidget *dialog; + GtkWidget *all_boxes; + GtkWidget *frame; + GtkWidget *box; + GtkWidget *button; + GtkWidget *check; + + OPTION_DATA *data; + + + data = (OPTION_DATA *)g_malloc(sizeof(OPTION_DATA)); + + dialog = gtk_window_new (GTK_WINDOW_DIALOG); + data->dialog = dialog; + gtk_container_border_width (GTK_CONTAINER(dialog), 10); + GTK_WINDOW(dialog)->position = GTK_WIN_POS_MOUSE; + gtk_window_set_title(GTK_WINDOW(dialog), _("Freecell Setup")); + gtk_signal_connect (GTK_OBJECT (dialog), "delete_event", + GTK_SIGNAL_FUNC (option_dialog_callback_cancel), + (gpointer)data); + + + all_boxes = gtk_vbox_new (FALSE, 5); + gtk_container_add (GTK_CONTAINER(dialog), all_boxes); + + frame = gtk_frame_new (_("Options")); + gtk_box_pack_start(GTK_BOX(all_boxes), frame, TRUE, TRUE, 0); + + box = gtk_vbox_new (TRUE, 5); + gtk_container_add (GTK_CONTAINER(frame), box); + + check = gtk_check_button_new_with_label (_("Inform invalid move")); + data->inform_invalid_move_check = check; + if (option_inform_invalid_move) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(check), TRUE); + gtk_box_pack_start(GTK_BOX(box), check, TRUE, TRUE, 0); + gtk_widget_show(check); + + gtk_widget_show(box); + gtk_widget_show (frame); + + box = gtk_hbox_new (TRUE, 5); + gtk_box_pack_start (GTK_BOX(all_boxes), box, TRUE, TRUE, 0); + + button = gtk_button_new_with_label (_("OK")); + gtk_signal_connect(GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(option_dialog_callback_ok), + (gpointer)data); + gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 5); + gtk_widget_show (button); + + button = gtk_button_new_with_label (_("Cancel")); + gtk_signal_connect(GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(option_dialog_callback_cancel), + (gpointer)data); + gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 5); + gtk_widget_show (button); + + gtk_widget_show (box); + gtk_widget_show (all_boxes); + gtk_widget_show(dialog); + gtk_grab_add (dialog); + + return dialog; +} diff -uNr gnome-0.11/programs/freecell/src/option-dialog.h gnome-0.12/programs/freecell/src/option-dialog.h --- gnome-0.11/programs/freecell/src/option-dialog.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/option-dialog.h Mon Jan 19 10:49:03 1998 @@ -0,0 +1,25 @@ +/* about-dialog.h + Copyright (C) 1998 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#ifndef __FREECELL__OPTION_DIALOG_H +#define __FREECELL__OPTION_DIALOG_H + +extern GtkWidget *option_dialog (void); + +#endif /* __FREECELL__OPTION_DIALOG_H */ diff -uNr gnome-0.11/programs/freecell/src/option.c gnome-0.12/programs/freecell/src/option.c --- gnome-0.11/programs/freecell/src/option.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/option.c Mon Jan 19 10:49:03 1998 @@ -0,0 +1,42 @@ +/* option.c + Copyright (C) 1998 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + + +#include +#include + +int option_inform_invalid_move; + +void +option_init (void) +{ + option_inform_invalid_move + = gnome_config_get_int ("/Freecell/option/inform_invalid_move=1"); +} + + +void +option_write (void) +{ + gnome_config_set_int ("/Freecell/option/inform_invalid_move", + option_inform_invalid_move); + gnome_config_sync(); +} + + diff -uNr gnome-0.11/programs/freecell/src/option.h gnome-0.12/programs/freecell/src/option.h --- gnome-0.11/programs/freecell/src/option.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/option.h Mon Jan 19 10:49:03 1998 @@ -0,0 +1,28 @@ +/* option.h + Copyright (C) 1998 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#ifndef __FREECELLGAME__OPTION_H +#define __FREECELLGAME__OPTION_H + +extern int option_inform_invalid_move; + +extern void option_init (void); +extern void option_write (void); + +#endif /* __FREECELLGAME__OPTION_H */ diff -uNr gnome-0.11/programs/freecell/src/score-dialog.c gnome-0.12/programs/freecell/src/score-dialog.c --- gnome-0.11/programs/freecell/src/score-dialog.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/score-dialog.c Mon Jan 19 10:49:03 1998 @@ -0,0 +1,109 @@ +/* score-dialog.c + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + + +#include +#include + +#include +#include + +#include "score.h" + + +static void +score_dialog_callback_close(GtkWidget *w, gpointer client_data) +{ + gtk_widget_destroy ((GtkWidget *)client_data); +} + +static void +score_dialog_callback_clear(GtkWidget *w, gpointer client_data) +{ + score_clear(); + gtk_widget_destroy ((GtkWidget *)client_data); +} + + +static gint +score_dialog_callback_delete (GtkWidget *w, GdkEvent *e, gpointer client_data) +{ + gtk_widget_destroy((GtkWidget *)client_data); + return FALSE; +} + + +GtkWidget * +score_dialog (void) +{ + GtkWidget *dialog; + GtkWidget *label; + GtkWidget *button; + GtkWidget *hbox; + GtkWidget *all_boxes; + + char *formatstring[20]; /* FIXME: is it enough? */ + + int i; + + dialog = gtk_window_new (GTK_WINDOW_DIALOG); + gtk_container_border_width (GTK_CONTAINER(dialog), 10); + GTK_WINDOW(dialog)->position = GTK_WIN_POS_MOUSE; + gtk_window_set_title(GTK_WINDOW(dialog), _("Score")); + gtk_signal_connect (GTK_OBJECT (dialog), "delete_event", + GTK_SIGNAL_FUNC (score_dialog_callback_delete), + dialog); + + all_boxes = gtk_vbox_new (FALSE, 5); + gtk_container_add (GTK_CONTAINER(dialog), all_boxes); + + score_formatstring(formatstring); + + for (i = 0; formatstring[i]; i++) + { + label = gtk_label_new (formatstring[i]); + gtk_box_pack_start(GTK_BOX(all_boxes), label, TRUE, TRUE, 0); + gtk_widget_show(label); + } + + hbox = gtk_hbox_new (TRUE, 5); + gtk_box_pack_start (GTK_BOX(all_boxes), hbox, TRUE, TRUE, 0); + + button = gtk_button_new_with_label (_("OK")); + gtk_signal_connect (GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(score_dialog_callback_close), dialog); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); + gtk_window_set_focus(GTK_WINDOW(dialog), button); + gtk_widget_show(button); + + button = gtk_button_new_with_label (_("Clear")); + gtk_signal_connect (GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(score_dialog_callback_clear), dialog); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); + gtk_widget_show(button); + + gtk_widget_show(hbox); + gtk_widget_show (all_boxes); + gtk_widget_show(dialog); + gtk_grab_add (dialog); + + return dialog; +} + + diff -uNr gnome-0.11/programs/freecell/src/score-dialog.h gnome-0.12/programs/freecell/src/score-dialog.h --- gnome-0.11/programs/freecell/src/score-dialog.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/score-dialog.h Mon Jan 19 10:49:03 1998 @@ -0,0 +1,24 @@ +/* score-dialog.h + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#ifndef __FREECELLGAME_SCORE_DIALOG_H +#define __FREECELLGAME_SCORE_DIALOG_H + +GtkWidget *score_dialog(void); +#endif /* __FREECELLGAME_SCORE_DIALOG_H */ diff -uNr gnome-0.11/programs/freecell/src/score.c gnome-0.12/programs/freecell/src/score.c --- gnome-0.11/programs/freecell/src/score.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/score.c Mon Jan 19 10:49:04 1998 @@ -0,0 +1,176 @@ +/* score.c + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#include + +#include +#include +#include + +#include + +static int win_number; +static int lose_number; +static int this_session_win_number; +static int this_session_lose_number; +static int streaks_win_number; +static int streaks_lose_number; + +static int streaks_current; + +#define FORMATSTRING_LINENUM 20 +#define LINEMAX 1024 /* FIXME: is it enough ? */ +static char formatstring[FORMATSTRING_LINENUM][LINEMAX]; + + +int +score_formatstring (char **strings) +{ + int percentage; + int n = 0; + int i; + + if ((this_session_win_number + this_session_lose_number) == 0) + percentage = 0; + else + percentage = (this_session_win_number * 100) + / (this_session_win_number + this_session_lose_number); + + sprintf (formatstring[n++], _("This session: %d%%"), percentage); + sprintf (formatstring[n++], _("won: %d, lost: %d"), + this_session_win_number, this_session_lose_number); + sprintf (formatstring[n++], " "); + + if ((win_number + lose_number) == 0) + percentage = 0; + else + percentage = (win_number * 100) / (win_number + lose_number); + + sprintf (formatstring[n++], _("Total: %d%%"), percentage); + sprintf (formatstring[n++], _("won: %d, lost: %d"), win_number, lose_number); + sprintf (formatstring[n++], " "); + + sprintf (formatstring[n++], _("Streaks")); + sprintf (formatstring[n++], _("wins: %d, losses: %d"), + streaks_win_number, streaks_lose_number); + + if (streaks_current >= 0) + sprintf (formatstring[n++], _("current: %d wins"), streaks_current); + else + sprintf (formatstring[n++], _("current: %d losses"), - streaks_current); + + if (strings) + { + for (i = 0; i < n; i++) + strings[i] = formatstring[i]; + strings[n] = NULL; + } + + return n; +} + + +void +score_init(void) +{ + win_number = gnome_config_get_int ("/Freecell/score/win_number=0"); + lose_number = gnome_config_get_int ("/Freecell/score/lose_number=0"); + streaks_win_number = gnome_config_get_int ("/Freecell/score/streaks_win_number=0"); + streaks_lose_number = gnome_config_get_int + ("/Freecell/score/streaks_lose_number=0"); + streaks_current = gnome_config_get_int + ("/Freecell/score/streaks_current=0"); + + this_session_win_number = 0; + this_session_lose_number = 0; +} + +void +score_write(void) +{ + gnome_config_set_int ("/Freecell/score/win_number", + win_number); + gnome_config_set_int ("/Freecell/score/lose_number", + lose_number); + gnome_config_set_int ("/Freecell/score/streaks_win_number", + streaks_win_number); + gnome_config_set_int ("/Freecell/score/streaks_lose_number", + streaks_lose_number); + gnome_config_set_int ("/Freecell/score/streaks_current", + streaks_current); + gnome_config_sync(); +} + +void +score_clear(void) +{ + win_number = 0; + lose_number = 0; + this_session_win_number = 0; + this_session_lose_number = 0; + streaks_win_number = 0; + streaks_lose_number = 0; + streaks_current = 0; +} + + +void +score_add_win(void) +{ + win_number++; + this_session_win_number++; + + if (streaks_current == 0) + streaks_current = 1; + else if (streaks_current > 0) + streaks_current++; + else + streaks_current = 1; + + if (streaks_current > streaks_win_number) + { + streaks_win_number = streaks_current; + } +} + + +void +score_add_lose(void) +{ + lose_number++; + this_session_lose_number++; + + if (streaks_current == 0) + streaks_current = -1; + else if (streaks_current < 0) + streaks_current--; + else + streaks_current = -1; + + if (streaks_current < streaks_lose_number) + { + streaks_lose_number = - streaks_current; + } +} + + + + + + diff -uNr gnome-0.11/programs/freecell/src/score.h gnome-0.12/programs/freecell/src/score.h --- gnome-0.11/programs/freecell/src/score.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/src/score.h Mon Jan 19 10:49:04 1998 @@ -0,0 +1,34 @@ +/* score.h + Copyright (C) 1997 Ryu Changwoo + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Written by Ryu Changwoo . */ + +#ifndef __FREECELL_SCORE_H +#define __FREECELL_SCORE_H + +void score_init(void); +void score_write(void); +void score_clear(void); + +void score_add_win(void); +void score_add_lose(void); + +int score_formatstring(char **strings); + +#endif /* __FREECELL_SCORE_H */ + + diff -uNr gnome-0.11/programs/freecell/stamp-h.in gnome-0.12/programs/freecell/stamp-h.in --- gnome-0.11/programs/freecell/stamp-h.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/freecell/stamp-h.in Wed Jan 21 18:34:11 1998 @@ -0,0 +1 @@ +timestamp diff -uNr gnome-0.11/programs/gemvt/ChangeLog gnome-0.12/programs/gemvt/ChangeLog --- gnome-0.11/programs/gemvt/ChangeLog Sat Jan 3 13:42:54 1998 +++ gnome-0.12/programs/gemvt/ChangeLog Wed Jan 21 17:45:29 1998 @@ -1,3 +1,50 @@ +Thu Jan 22 00:05:03 1998 Tim Janik + + * gvtconf.c: add gdk options to long_option structure. + + * acconfig.h: + * configure.in: + * gvtmain.c: recognize LIBGLE. + +Wed Jan 21 04:16:53 1998 Tim Janik + + * commited as GemVT 0.2.3 + + * gvtgui.h: + * gvtgui.c: new files to help out with the GUI creation. + * gvtconf.h: + * gvtconf.c: new files for config parsing. + +Sun Jan 18 18:21:48 1998 Tim Janik + + * misc fixes to work with new versions of gtk+. + affects GtkArg{Set|Get}Func, gtk_widget_get_parent_window() and + some else stuff... + +Mon Jan 12 03:35:59 1998 Tim Janik + + * gtkttyos.c: Added a couple of ifdefs so it would build + under freebsd (done by seth). + +Sat Jan 10 17:04:16 1998 Tim Janik + + * gtkvtemu.h: + * gtkvtemu.c (gtk_vtemu_invert): new function to implement + gtk_term_invert() on a vtemu basis. + + * gtkterm.c (GtkTermSignalBell): signal invokation implemented. + +Fri Jan 9 08:22:00 1998 Tim Janik + + want some good news? here they go: + * gtkterm.h: + * gtkterm.c: with the implementation of gtk_term_block_refresh(), + gtk_term_unblock_refresh() and gtk_term_force_refresh() we got major + speed improvements. + + * gtkvt102.c: accelerated terminal performance a few hundred percent + by using gtk_term_block_refresh/gtk_term_unblock_refresh. + Fri Jan 2 15:18:45 1998 Federico Mena * gtkvt102.c: Added #include diff -uNr gnome-0.11/programs/gemvt/Makefile.am gnome-0.12/programs/gemvt/Makefile.am --- gnome-0.11/programs/gemvt/Makefile.am Sun Dec 14 15:48:30 1997 +++ gnome-0.12/programs/gemvt/Makefile.am Tue Jan 20 21:52:38 1998 @@ -1,68 +1,80 @@ +bin_PROGRAMS = gemvt -LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(X_LIBS) -o $@ +LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(X_LIBS) -o $@ INCLUDE_always = -I$(includedir) $(X_CFLAGS) - -bin_PROGRAMS = gemvt - GNOMELIBS = \ $(srcdir)/../../libgnomeui/libgnomeui.la \ $(srcdir)/../../libgnome/libgnome.la + if BUILD_LIBGEMVT INCLUDES = -I../.. -I$(srcdir)/../.. $(INCLUDE_always) -gemvt_SOURCES = main.c +gemvt_SOURCES = $(gmevt_c_files) gemvt_LDADD = $(top_builddir)/libgemvt.la $(GNOMELIBS) lib_LTLIBRARIES = libgemvt.la libgemvtincludedir = $(includedir)/gemvt -libgemvtinclude_HEADERS = libgemvt.h $(libgemvt_h_files) -libgemvt_la_SOURCES = libgemvt.c $(libgemvt_c_files) +libgemvtinclude_HEADERS = $(libgemvt_h_files) +libgemvt_la_SOURCES = $(libgemvt_c_files) libgemvt_la_LDFLAGS = -version-info $(LIBGEMVT_MAJOR):$(LIBGEMVT_REVISION):$(LIBGEMVT_AGE) -else # not BUILD_LIBGEMVT +else # ! BUILD_LIBGEMVT INCLUDES = $(INCLUDE_always) -gemvt_SOURCES = $(libgemvt_h_files) $(libgemvt_c_files) main.c +gemvt_SOURCES = $(libgemvt_c_files) $(gmevt_c_files) gemvt_LDADD = -endif # not BUILD_LIBGEMVT +endif # ! BUILD_LIBGEMVT + + -libgemvt_h_files =\ +gmevt_h_files = \ + gvtgui.h \ + gvtconf.h + +gmevt_c_files = \ + gvtmain.c \ + gvtgui.c \ + gvtconf.c + +libgemvt_h_files = \ gtkled.h \ gtkterm.h \ gtkvtemu.h \ - gtktty.h + gtktty.h \ libgemvt.h +libgemvt_h_files_extra = \ + gtkvtemui.h \ + gtkvt102.h + libgemvt_c_files = \ gtkled.c \ gtkterm.c \ gtkvtemu.c \ - gtktty.c + gtkvt102.c \ + gtktty.c \ + libgemvt.c -EXTRA_DIST = \ - TODO \ +libgemvt_c_files_extra = \ gtkterm_internal.c \ - gtkvt102.c \ gtkttyos.c \ - libgemvt.h \ - libgemvt.c \ + gtkvt102c2f.c + +EXTRA_DIST = \ + TODO \ + $(gmevt_h_files) \ + $(gmevt_c_files) \ + $(libgemvt_h_files) \ + $(libgemvt_h_files_extra) \ + $(libgemvt_c_files) \ + $(libgemvt_c_files_extra) \ gemvt.xpm \ gem-r.xpm \ gem-g.xpm \ gem-b.xpm \ turkey.vt - -##### blub = \ -# gtkled.h \ -# gtkled.c \ -# gtkterm.h \ -# gtkterm.c \ -# gtkvtemu.h \ -# gtkvtemu.c \ -# gtktty.h \ -# gtktty.c diff -uNr gnome-0.11/programs/gemvt/Makefile.in gnome-0.12/programs/gemvt/Makefile.in --- gnome-0.11/programs/gemvt/Makefile.in Wed Jan 7 20:31:38 1998 +++ gnome-0.12/programs/gemvt/Makefile.in Wed Jan 21 21:13:58 1998 @@ -81,49 +81,69 @@ VERSION = @VERSION@ x_libs = @x_libs@ -LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(X_LIBS) -o $@ - -INCLUDE_always = -I$(includedir) $(X_CFLAGS) - bin_PROGRAMS = gemvt +LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(X_LIBS) -o $@ +INCLUDE_always = -I$(includedir) $(X_CFLAGS) GNOMELIBS = \ $(srcdir)/../../libgnomeui/libgnomeui.la \ $(srcdir)/../../libgnome/libgnome.la @BUILD_LIBGEMVT_TRUE@INCLUDES = -I../.. -I$(srcdir)/../.. $(INCLUDE_always) -@BUILD_LIBGEMVT_TRUE@gemvt_SOURCES = main.c +@BUILD_LIBGEMVT_TRUE@gemvt_SOURCES = $(gmevt_c_files) @BUILD_LIBGEMVT_TRUE@gemvt_LDADD = $(top_builddir)/libgemvt.la $(GNOMELIBS) @BUILD_LIBGEMVT_TRUE@lib_LTLIBRARIES = libgemvt.la @BUILD_LIBGEMVT_TRUE@libgemvtincludedir = $(includedir)/gemvt -@BUILD_LIBGEMVT_TRUE@libgemvtinclude_HEADERS = libgemvt.h $(libgemvt_h_files) -@BUILD_LIBGEMVT_TRUE@libgemvt_la_SOURCES = libgemvt.c $(libgemvt_c_files) +@BUILD_LIBGEMVT_TRUE@libgemvtinclude_HEADERS = $(libgemvt_h_files) +@BUILD_LIBGEMVT_TRUE@libgemvt_la_SOURCES = $(libgemvt_c_files) @BUILD_LIBGEMVT_TRUE@libgemvt_la_LDFLAGS = -version-info $(LIBGEMVT_MAJOR):$(LIBGEMVT_REVISION):$(LIBGEMVT_AGE) @BUILD_LIBGEMVT_FALSE@INCLUDES = $(INCLUDE_always) -@BUILD_LIBGEMVT_FALSE@gemvt_SOURCES = $(libgemvt_h_files) $(libgemvt_c_files) main.c +@BUILD_LIBGEMVT_FALSE@gemvt_SOURCES = $(libgemvt_c_files) $(gmevt_c_files) @BUILD_LIBGEMVT_FALSE@gemvt_LDADD = -libgemvt_h_files =\ +gmevt_h_files = \ + gvtgui.h \ + gvtconf.h + +gmevt_c_files = \ + gvtmain.c \ + gvtgui.c \ + gvtconf.c + +libgemvt_h_files = \ gtkled.h \ gtkterm.h \ gtkvtemu.h \ - gtktty.h + gtktty.h \ + libgemvt.h + +libgemvt_h_files_extra = \ + gtkvtemui.h \ + gtkvt102.h libgemvt_c_files = \ gtkled.c \ gtkterm.c \ gtkvtemu.c \ - gtktty.c + gtkvt102.c \ + gtktty.c \ + libgemvt.c -EXTRA_DIST = \ - TODO \ +libgemvt_c_files_extra = \ gtkterm_internal.c \ - gtkvt102.c \ gtkttyos.c \ - libgemvt.h \ - libgemvt.c \ + gtkvt102c2f.c + +EXTRA_DIST = \ + TODO \ + $(gmevt_h_files) \ + $(gmevt_c_files) \ + $(libgemvt_h_files) \ + $(libgemvt_h_files_extra) \ + $(libgemvt_c_files) \ + $(libgemvt_c_files_extra) \ gemvt.xpm \ gem-r.xpm \ gem-g.xpm \ @@ -143,13 +163,14 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ libgemvt_la_LIBADD = -@BUILD_LIBGEMVT_TRUE@libgemvt_la_OBJECTS = libgemvt.lo gtkled.lo \ -@BUILD_LIBGEMVT_TRUE@gtkterm.lo gtkvtemu.lo gtktty.lo +@BUILD_LIBGEMVT_TRUE@libgemvt_la_OBJECTS = gtkled.lo gtkterm.lo \ +@BUILD_LIBGEMVT_TRUE@gtkvtemu.lo gtkvt102.lo gtktty.lo libgemvt.lo PROGRAMS = $(bin_PROGRAMS) -@BUILD_LIBGEMVT_TRUE@gemvt_OBJECTS = main.o +@BUILD_LIBGEMVT_TRUE@gemvt_OBJECTS = gvtmain.o gvtgui.o gvtconf.o @BUILD_LIBGEMVT_FALSE@gemvt_OBJECTS = gtkled.o gtkterm.o gtkvtemu.o \ -@BUILD_LIBGEMVT_FALSE@gtktty.o main.o +@BUILD_LIBGEMVT_FALSE@gtkvt102.o gtktty.o libgemvt.o gvtmain.o gvtgui.o \ +@BUILD_LIBGEMVT_FALSE@gvtconf.o @BUILD_LIBGEMVT_TRUE@gemvt_DEPENDENCIES = $(top_builddir)/libgemvt.la \ @BUILD_LIBGEMVT_TRUE@$(srcdir)/../../libgnomeui/libgnomeui.la \ @BUILD_LIBGEMVT_TRUE@$(srcdir)/../../libgnome/libgnome.la @@ -160,9 +181,9 @@ HEADERS = $(libgemvtinclude_HEADERS) DIST_COMMON = README AUTHORS COPYING COPYING.LIB ChangeLog INSTALL \ -Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 config.guess \ -config.h.in config.sub configure configure.in install-sh ltconfig \ -ltmain.sh missing mkinstalldirs stamp-h.in +Makefile.am Makefile.in NEWS TODO acconfig.h acinclude.m4 aclocal.m4 \ +config.guess config.h.in config.sub configure configure.in install-sh \ +ltconfig ltmain.sh missing mkinstalldirs stamp-h.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) @@ -183,7 +204,7 @@ cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -$(ACLOCAL_M4): @MAINT@ configure.in +$(ACLOCAL_M4): @MAINT@ configure.in acinclude.m4 cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure @@ -388,11 +409,15 @@ gtkterm.o gtkterm.lo: gtkterm.c config.h gtkterm.h gtkterm_internal.c gtktty.o gtktty.lo: gtktty.c config.h gtktty.h gtkvtemu.h gtkterm.h \ gtkled.h gtkttyos.c -gtkvtemu.o gtkvtemu.lo: gtkvtemu.c config.h gtkvtemu.h gtkterm.h \ - gtkvt102.c -libgemvt.o libgemvt.lo: libgemvt.c config.h libgemvt.h -main.o main.lo: main.c gtktty.h gtkvtemu.h gtkterm.h gtkled.h config.h \ - gemvt.xpm gem-r.xpm gem-g.xpm gem-b.xpm ../../gnome.h \ +gtkvt102.o gtkvt102.lo: gtkvt102.c gtkvt102.h gtkvtemui.h gtkvtemu.h \ + gtkterm.h config.h gtkvt102c2f.c +gtkvtemu.o gtkvtemu.lo: gtkvtemu.c config.h gtkvtemui.h gtkvtemu.h \ + gtkterm.h gtkvt102.h +gvtconf.o gvtconf.lo: gvtconf.c config.h gvtconf.h +gvtgui.o gvtgui.lo: gvtgui.c config.h gvtgui.h gtktty.h gtkvtemu.h \ + gtkterm.h gtkled.h gem-r.xpm gem-g.xpm gem-b.xpm +gvtmain.o gvtmain.lo: gvtmain.c config.h gtktty.h gtkvtemu.h gtkterm.h \ + gtkled.h gvtgui.h gvtconf.h gemvt.xpm ../../gnome.h \ ../../libgnome/libgnome.h ../../libgnome/gnome-defs.h \ ../../libgnome/gnome-util.h ../../libgnome/gnome-hook.h \ ../../libgnome/gnome-config.h ../../libgnome/gnome-dns.h \ @@ -405,7 +430,9 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h +libgemvt.o libgemvt.lo: libgemvt.c config.h libgemvt.h info: dvi: @@ -483,17 +510,6 @@ clean-generic maintainer-clean-generic clean mostlyclean distclean \ maintainer-clean - libgemvt.h - -##### blub = \ -# gtkled.h \ -# gtkled.c \ -# gtkterm.h \ -# gtkterm.c \ -# gtkvtemu.h \ -# gtkvtemu.c \ -# gtktty.h \ -# gtktty.c # 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. diff -uNr gnome-0.11/programs/gemvt/TODO gnome-0.12/programs/gemvt/TODO --- gnome-0.11/programs/gemvt/TODO Sat Dec 6 09:03:46 1997 +++ gnome-0.12/programs/gemvt/TODO Tue Jan 20 21:52:38 1998 @@ -6,18 +6,16 @@ * have gtk_vtemu_set_cursor or the like... GtkTty: -* block refresh while only drawing characters * implement keymap -* implement different charsets G0/G1 stuff -* need graphical characters (are fonts editable???) +* implement different charsets G0/G1 stuff (nearly done) * make '\e' adding on keys configurable... -* for /dev/pty?? check the corresponding /dev/tty?? also * save the keystates within the class * implement leds change and report function... GtkTerm: * area copying relys on expose events, but they appear asyncronous ex.: move GtkTerm have a line out of the screen an do ls / -R -* support block_refresh via dirty-marks on characters (one way) +* support block_refresh via dirty-marks on characters (one way) [implemented] * implement backing store (supposdly *better* way, best: both) * f*ckin finish selection handling +* prevent NoExpose events from being generated diff -uNr gnome-0.11/programs/gemvt/acconfig.h gnome-0.12/programs/gemvt/acconfig.h --- gnome-0.11/programs/gemvt/acconfig.h Sun Dec 14 15:48:31 1997 +++ gnome-0.12/programs/gemvt/acconfig.h Wed Jan 21 17:45:29 1998 @@ -10,9 +10,11 @@ */ #undef HAVE_TERMCAP_LINUX +#undef HAVE_LIBGLE + /* build for the GNOME desktop project ? */ -#undef GNOMIFY +#undef HAVE_GNOME #undef PACKAGE #undef GEMVT_MAJOR @@ -24,3 +26,10 @@ #undef LIBGEMVT_AGE #undef LIBGEMVT_VERSION #undef VERSION + +@BOTTOM@ + +/* general defines + */ +#define PRGNAME "GemVT" +#define PRGNAME_LONG PRGNAME " - GNU Emulator of a Virtual Terminal" diff -uNr gnome-0.11/programs/gemvt/acinclude.m4 gnome-0.12/programs/gemvt/acinclude.m4 --- gnome-0.11/programs/gemvt/acinclude.m4 Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/acinclude.m4 Tue Jan 20 21:52:38 1998 @@ -0,0 +1,27 @@ +dnl Setup macros for stuff used over and over again. +dnl MC_IF_VAR_EQ(environment-variable, value [, equals-action] [, else-action]) +AC_DEFUN(MC_IF_VAR_EQ,[ + case "$[$1]" in + "[$2]"[)] + [$3] + ;; + *[)] + [$4] + ;; + esac +]) +dnl MC_STR_CONTAINS(src-string, sub-string [, contains-action] [, else-action]) +AC_DEFUN(MC_STR_CONTAINS,[ + case "[$1]" in + *"[$2]"*[)] + [$3] + ;; + *[)] + [$4] + ;; + esac +]) +dnl MC_ADD_TO_VAR(environment-variable, check-string, add-string) +AC_DEFUN(MC_ADD_TO_VAR,[ + MC_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]") +]) diff -uNr gnome-0.11/programs/gemvt/aclocal.m4 gnome-0.12/programs/gemvt/aclocal.m4 --- gnome-0.11/programs/gemvt/aclocal.m4 Wed Jan 7 18:30:16 1998 +++ gnome-0.12/programs/gemvt/aclocal.m4 Tue Jan 20 21:59:18 1998 @@ -10,6 +10,34 @@ dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. +dnl Setup macros for stuff used over and over again. +dnl MC_IF_VAR_EQ(environment-variable, value [, equals-action] [, else-action]) +AC_DEFUN(MC_IF_VAR_EQ,[ + case "$[$1]" in + "[$2]"[)] + [$3] + ;; + *[)] + [$4] + ;; + esac +]) +dnl MC_STR_CONTAINS(src-string, sub-string [, contains-action] [, else-action]) +AC_DEFUN(MC_STR_CONTAINS,[ + case "[$1]" in + *"[$2]"*[)] + [$3] + ;; + *[)] + [$4] + ;; + esac +]) +dnl MC_ADD_TO_VAR(environment-variable, check-string, add-string) +AC_DEFUN(MC_ADD_TO_VAR,[ + MC_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]") +]) + # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN(AM_CONFIG_HEADER, diff -uNr gnome-0.11/programs/gemvt/config.h.in gnome-0.12/programs/gemvt/config.h.in --- gnome-0.11/programs/gemvt/config.h.in Sun Dec 14 15:48:31 1997 +++ gnome-0.12/programs/gemvt/config.h.in Wed Jan 21 17:45:30 1998 @@ -32,7 +32,7 @@ /* build for the GNOME desktop project ? */ -#undef GNOMIFY +#undef HAVE_GNOME #undef PACKAGE #undef GEMVT_MAJOR @@ -59,3 +59,11 @@ /* Define if you have the header file. */ #undef HAVE_UNISTD_H + +/* Define if you have the gle library (-lgle). */ +#undef HAVE_LIBGLE + +/* general defines + */ +#define PRGNAME "GemVT" +#define PRGNAME_LONG PRGNAME " - GNU Emulator of a Virtual Terminal" diff -uNr gnome-0.11/programs/gemvt/configure gnome-0.12/programs/gemvt/configure --- gnome-0.11/programs/gemvt/configure Fri Jan 2 13:54:40 1998 +++ gnome-0.12/programs/gemvt/configure Tue Jan 20 21:59:19 1998 @@ -538,7 +538,7 @@ GEMVT_MAJOR=0 GEMVT_REVISION=2 -GEMVT_PATCHLEVEL=0 +GEMVT_PATCHLEVEL=3 GEMVT_VERSION="$GEMVT_MAJOR.$GEMVT_REVISION.$GEMVT_PATCHLEVEL" LIBGEMVT_MAJOR=$GEMVT_MAJOR LIBGEMVT_REVISION=$GEMVT_REVISION @@ -889,10 +889,6 @@ - - - - case "$CFLAGS" in """") CFLAGS="-g" @@ -907,7 +903,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:911: checking for $ac_word" >&5 +echo "configure:907: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -936,7 +932,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:940: checking for $ac_word" >&5 +echo "configure:936: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -984,7 +980,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:988: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:984: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -994,11 +990,11 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1018,12 +1014,12 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1022: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1018: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1027: checking whether we are using GNU C" >&5 +echo "configure:1023: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1032,7 +1028,7 @@ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1036: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1032: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1047,7 +1043,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1051: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1047: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1096,7 +1092,7 @@ CFLAGS="$CFLAGS_saved" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1100: checking how to run the C preprocessor" >&5 +echo "configure:1096: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1111,13 +1107,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1121: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1117: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1128,13 +1124,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1138: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1134: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1157,12 +1153,12 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1161: checking for working const" >&5 +echo "configure:1157: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -1233,13 +1229,13 @@ if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 -echo "configure:1237: checking whether ${CC-cc} needs -traditional" >&5 +echo "configure:1233: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP @@ -1257,7 +1253,7 @@ if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA @@ -1279,21 +1275,21 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:1283: checking for inline" >&5 +echo "configure:1279: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1293: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -1319,12 +1315,12 @@ esac echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1323: checking for ANSI C header files" >&5 +echo "configure:1319: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1332,7 +1328,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1336: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1332: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1349,7 +1345,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1367,7 +1363,7 @@ 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 < EOF @@ -1388,7 +1384,7 @@ : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1399,7 +1395,7 @@ exit (0); } EOF -if { (eval echo configure:1403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else @@ -1702,7 +1698,7 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1706: checking for a BSD compatible install" >&5 +echo "configure:1702: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1752,7 +1748,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1756: checking whether ln -s works" >&5 +echo "configure:1752: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1775,7 +1771,7 @@ # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1779: checking for $ac_word" >&5 +echo "configure:1775: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1809,39 +1805,57 @@ with_gnu_ld=no fi -if test "$with_gnu_ld" = yes; then + +ac_prog=ld +if test "$ac_cv_prog_gcc" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 +echo "configure:1814: checking for ld used by GCC" >&5 + ac_prog=`($CC -print-prog-name=ld) 2>&5` + case "$ac_prog" in + # Accept absolute paths. + /*) + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1815: checking for GNU ld" >&5 +echo "configure:1832: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1818: checking for non-GNU ld" >&5 +echo "configure:1835: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - case "$LD" in - /*) - ac_cv_path_LD="$LD" # Let the user override the test with a path. - ;; - *) + if test -z "$LD"; then 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/ld"; then - ac_cv_path_LD="$ac_dir/ld" + if test -f "$ac_dir/$ac_prog"; then + ac_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU ld|with BFD)' > /dev/null; then - test "$with_gnu_ld" = yes && break + if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" - ;; -esac +else + ac_cv_path_LD="$LD" # Let the user override the test with a path. +fi fi LD="$ac_cv_path_LD" @@ -1852,13 +1866,13 @@ fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } -echo $ac_n "checking whether we are using GNU ld""... $ac_c" 1>&6 -echo "configure:1857: checking whether we are using GNU ld" >&5 +echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 +echo "configure:1871: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 /dev/null; then +if $LD -v 2>&1 &5; then ac_cv_prog_gnu_ld=yes else ac_cv_prog_gnu_ld=no @@ -1868,6 +1882,44 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 +echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 +echo "configure:1887: checking for BSD-compatible nm" >&5 +if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$NM" in +/*) + ac_cv_path_NM="$NM" # Let the user override the test with a path. + ;; +*) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do + test -z "$ac_dir" && dir=. + if test -f $ac_dir/nm; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1!d' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -B" + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then + ac_cv_path_NM="$ac_dir/nm -p" + else + ac_cv_path_NM="$ac_dir/nm" + fi + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm + ;; +esac +fi + +NM="$ac_cv_path_NM" +echo "$ac_t""$NM" 1>&6 + + + @@ -1875,26 +1927,36 @@ # Always use our own libtool. -LIBTOOL='$(top_builddir)/libtool' +LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" - test "$enableval" = no && libtool_shared=" --disable-shared" + if test "$enableval" = no; then + libtool_enable_shared=no else - libtool_shared= + libtool_enable_shared=yes +fi fi +test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared" +libtool_shared= +test "$enable_shared" = no && libtool_shared=" --disable-shared" # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" - test "$enableval" = no && libtool_static=" --disable-static" + if test "$enableval" = no; then + libtool_enable_static=no else - libtool_static= + libtool_enable_static=yes +fi fi +test -n "$libtool_enable_static" && enable_static="$libtool_enable_static" +libtool_static= +test "$enable_static" = no && libtool_static=" --disable-static" libtool_flags="$libtool_shared$libtool_static" test "$silent" = yes && libtool_flags="$libtool_flags --silent" @@ -1905,11 +1967,31 @@ # libtool support. case "$host" in *-*-irix6*) - for f in '-32' '-64' '-cckr' '-n32' '-mips1' '-mips2' '-mips3' '-mips4'; do - if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then - LD="${LD-ld} $f" - fi + ac_save_CFLAGS="$CFLAGS" + flag_passed=no + for f in -32 -64 -n32 ABI -cckr -mips1 -mips2 -mips3 -mips4; do + case "$f" in + ABI) + test -n "$SGI_ABI" && flag_passed=yes + if test "$flag_passed" = no && test "$ac_cv_prog_gcc" = yes; then + # Choose the ABI flag according to GCC's specs. + if $CC -dumpspecs 2>&1 | sed '/^\*link:$/,/^$/!d' | egrep -e '[ ]-32' >/dev/null; then + LD="${LD-ld} -32" + else + LD="${LD-ld} -n32" + fi + fi + ;; + + *) + if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then + flag_passed=yes + LD="${LD-ld} $f" + fi + ;; + esac done + CFLAGS="$ac_save_CFLAGS" ;; *-*-sco3.2v5*) @@ -1920,7 +2002,7 @@ # Actually configure libtool. ac_aux_dir is where install-sh is found. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" RANLIB="$RANLIB" LN_S="$LN_S" \ +LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } @@ -1931,7 +2013,7 @@ # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:1935: checking for X" >&5 +echo "configure:2017: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -1993,12 +2075,12 @@ # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2084: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2067,14 +2149,14 @@ ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -2180,17 +2262,17 @@ case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:2184: checking whether -R must be followed by a space" >&5 +echo "configure:2266: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_nospace=yes else @@ -2206,14 +2288,14 @@ else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_space=yes else @@ -2245,7 +2327,7 @@ # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:2249: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:2331: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2253,7 +2335,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2286,7 +2368,7 @@ if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:2290: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:2372: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2294,7 +2376,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2334,12 +2416,12 @@ # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:2338: checking for gethostbyname" >&5 +echo "configure:2420: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -2383,7 +2465,7 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:2387: checking for gethostbyname in -lnsl" >&5 +echo "configure:2469: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2391,7 +2473,7 @@ ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2432,12 +2514,12 @@ # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:2436: checking for connect" >&5 +echo "configure:2518: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -2481,7 +2563,7 @@ if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:2485: checking for connect in -lsocket" >&5 +echo "configure:2567: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2489,7 +2571,7 @@ ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2524,12 +2606,12 @@ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:2528: checking for remove" >&5 +echo "configure:2610: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -2573,7 +2655,7 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:2577: checking for remove in -lposix" >&5 +echo "configure:2659: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2581,7 +2663,7 @@ ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2616,12 +2698,12 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:2620: checking for shmat" >&5 +echo "configure:2702: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -2665,7 +2747,7 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:2669: checking for shmat in -lipc" >&5 +echo "configure:2751: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2673,7 +2755,7 @@ ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2717,7 +2799,7 @@ # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:2721: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:2803: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2725,7 +2807,7 @@ ac_save_LIBS="$LIBS" LIBS="-lICE $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2760,9 +2842,17 @@ fi -if eval "test is_$no_x = is_yes"; then - { echo "configure: error: The X Window System is required" 1>&2; exit 1; } -fi + + case "$$no_x" in + "yes") + { echo "configure: error: This package requires the X Window System" 1>&2; exit 1; } + + ;; + *) + + ;; + esac + saved_cflags="$CFLAGS" saved_ldflags="$LDFLAGS" @@ -2770,7 +2860,7 @@ LDFLAGS="$X_LDFLAGS $X_LIBS" echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:2774: checking for XOpenDisplay in -lX11" >&5 +echo "configure:2864: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2778,7 +2868,7 @@ ac_save_LIBS="$LIBS" LIBS="-lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2814,7 +2904,7 @@ LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS $x_libs" echo $ac_n "checking for XShmAttach in -lXext""... $ac_c" 1>&6 -echo "configure:2818: checking for XShmAttach in -lXext" >&5 +echo "configure:2908: checking for XShmAttach in -lXext" >&5 ac_lib_var=`echo Xext'_'XShmAttach | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2822,7 +2912,7 @@ ac_save_LIBS="$LIBS" LIBS="-lXext $x_libs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2856,7 +2946,7 @@ LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS" echo $ac_n "checking for SmcSaveYourselfDone in -lSM""... $ac_c" 1>&6 -echo "configure:2860: checking for SmcSaveYourselfDone in -lSM" >&5 +echo "configure:2950: checking for SmcSaveYourselfDone in -lSM" >&5 ac_lib_var=`echo SM'_'SmcSaveYourselfDone | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2864,7 +2954,7 @@ ac_save_LIBS="$LIBS" LIBS="-lSM $x_libs -lICE $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2902,7 +2992,7 @@ LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS" echo $ac_n "checking for gtk_init in -lgtk""... $ac_c" 1>&6 -echo "configure:2906: checking for gtk_init in -lgtk" >&5 +echo "configure:2996: checking for gtk_init in -lgtk" >&5 ac_lib_var=`echo gtk'_'gtk_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2910,7 +3000,7 @@ ac_save_LIBS="$LIBS" LIBS="-lgtk -lgdk -lglib $x_libs -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2944,12 +3034,12 @@ echo $ac_n "checking for putenv""... $ac_c" 1>&6 -echo "configure:2948: checking for putenv" >&5 +echo "configure:3038: checking for putenv" >&5 if eval "test \"`echo '$''{'ac_cv_func_putenv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_putenv=yes" else @@ -3002,12 +3092,12 @@ echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3006: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3096: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3023,7 +3113,7 @@ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3047,17 +3137,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3051: checking for $ac_hdr" >&5 +echo "configure:3141: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3061: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3151: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -3087,12 +3177,12 @@ for ac_func in getdtablesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3091: checking for $ac_func" >&5 +echo "configure:3181: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3142,12 +3232,12 @@ for ac_func in getrlimit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3146: checking for $ac_func" >&5 +echo "configure:3236: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3195,12 +3285,12 @@ done echo $ac_n "checking for wait4""... $ac_c" 1>&6 -echo "configure:3199: checking for wait4" >&5 +echo "configure:3289: checking for wait4" >&5 if eval "test \"`echo '$''{'ac_cv_func_wait4'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_wait4=yes" else @@ -3256,12 +3346,12 @@ ;; *) echo $ac_n "checking for waitpid""... $ac_c" 1>&6 -echo "configure:3260: checking for waitpid" >&5 +echo "configure:3350: checking for waitpid" >&5 if eval "test \"`echo '$''{'ac_cv_func_waitpid'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_waitpid=yes" else @@ -3309,12 +3399,12 @@ esac echo $ac_n "checking for tcgetattr""... $ac_c" 1>&6 -echo "configure:3313: checking for tcgetattr" >&5 +echo "configure:3403: checking for tcgetattr" >&5 if eval "test \"`echo '$''{'ac_cv_func_tcgetattr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_tcgetattr=yes" else @@ -3358,12 +3448,12 @@ fi echo $ac_n "checking for putenv""... $ac_c" 1>&6 -echo "configure:3362: checking for putenv" >&5 +echo "configure:3452: checking for putenv" >&5 if eval "test \"`echo '$''{'ac_cv_func_putenv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_putenv=yes" else @@ -3408,12 +3498,12 @@ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3412: checking return type of signal handlers" >&5 +echo "configure:3502: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3430,7 +3520,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:3434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3453,7 +3543,7 @@ echo $ac_n "checking for terminal type \"linux\" in /etc/termcap""... $ac_c" 1>&6 -echo "configure:3457: checking for terminal type \"linux\" in /etc/termcap" >&5 +echo "configure:3547: checking for terminal type \"linux\" in /etc/termcap" >&5 if eval "test \"`echo '$''{'gemvt_cv_term_linux'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3513,12 +3603,12 @@ echo $ac_n "checking for target GNOME (wether to build libgemvt)""... $ac_c" 1>&6 -echo "configure:3517: checking for target GNOME (wether to build libgemvt)" >&5 +echo "configure:3607: checking for target GNOME (wether to build libgemvt)" >&5 case "$USE_GNOME" in "yes") cat >> confdefs.h <<\EOF -#define GNOMIFY 1 +#define HAVE_GNOME 1 EOF echo "$ac_t""yes" 1>&6 @@ -3720,6 +3810,7 @@ s%@LN_S@%$LN_S%g s%@RANLIB@%$RANLIB%g s%@LD@%$LD%g +s%@NM@%$NM%g s%@LIBTOOL@%$LIBTOOL%g s%@X_CFLAGS@%$X_CFLAGS%g s%@X_PRE_LIBS@%$X_PRE_LIBS%g diff -uNr gnome-0.11/programs/gemvt/configure.in gnome-0.12/programs/gemvt/configure.in --- gnome-0.11/programs/gemvt/configure.in Sun Dec 14 15:48:31 1997 +++ gnome-0.12/programs/gemvt/configure.in Wed Jan 21 17:45:30 1998 @@ -5,7 +5,7 @@ AM_CONFIG_HEADER(config.h) GEMVT_MAJOR=0 GEMVT_REVISION=2 -GEMVT_PATCHLEVEL=0 +GEMVT_PATCHLEVEL=3 GEMVT_VERSION="$GEMVT_MAJOR.$GEMVT_REVISION.$GEMVT_PATCHLEVEL" LIBGEMVT_MAJOR=$GEMVT_MAJOR LIBGEMVT_REVISION=$GEMVT_REVISION @@ -23,6 +23,10 @@ dnl Make sure else configure stuff exists. AC_CANONICAL_HOST +dnl Foreign defaults: +MC_IF_VAR_EQ(enable_static, yes, , enable_static=no) +MC_IF_VAR_EQ(enable_shared, no, , enable_shared=yes) + dnl Additional arguments. AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=yes]], @@ -35,34 +39,6 @@ dnl Default case: enable_pedantic_ansi=no) -dnl Setup macros for stuff used over and over again. -dnl MC_IF_VAR_EQ(environment-variable, value [, equals-action] [, else-action]) -AC_DEFUN(MC_IF_VAR_EQ,[ - case "$[$1]" in - "[$2]"[)] - [$3] - ;; - *[)] - [$4] - ;; - esac -]) -dnl MC_STR_CONTAINS(src-string, sub-string [, contains-action] [, else-action]) -AC_DEFUN(MC_STR_CONTAINS,[ - case "[$1]" in - *"[$2]"*[)] - [$3] - ;; - *[)] - [$4] - ;; - esac -]) -dnl MC_ADD_TO_VAR(environment-variable, check-string, add-string) -AC_DEFUN(MC_ADD_TO_VAR,[ - MC_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]") -]) - dnl Define package requirements. AC_DEFUN(AC_GEMVT_REQUIREMENTS, [ @@ -76,7 +52,6 @@ x_libs="-lX11 $X_EXTRA_LIBS", [AC_MSG_ERROR(No X11 installed)], $X_EXTRA_LIBS) - AC_SUBST(x_libs) LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS $x_libs" AC_CHECK_LIB(Xext, XShmAttach, @@ -217,9 +192,9 @@ dnl Check for package requirements. AC_PATH_X AC_PATH_XTRA -if eval "test is_$no_x = is_yes"; then - AC_MSG_ERROR(The X Window System is required) -fi +MC_IF_VAR_EQ($no_x, yes, + AC_MSG_ERROR(This package requires the X Window System) +) AC_GEMVT_REQUIREMENTS AC_GTKLED_REQUIREMENTS AC_GTKTERM_REQUIREMENTS @@ -238,13 +213,11 @@ dnl Check for Gnome target AC_MSG_CHECKING(for target GNOME (wether to build libgemvt)) MC_IF_VAR_EQ(USE_GNOME, yes, - AC_DEFINE(GNOMIFY) + AC_DEFINE(HAVE_GNOME) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no) ) - -dnl Automake stuff: MC_IF_VAR_EQ(USE_GNOME, yes, GEMVT_LDADD="-lgnomeui -lgnome" , @@ -252,7 +225,11 @@ ) AM_CONDITIONAL(BUILD_LIBGEMVT, test do_$USE_GNOME = do_yes) +dnl Feature GLE? +AC_CHECK_LIB(gle, gle_init) + dnl Automake @VARIABLE@ exports. +AC_SUBST(x_libs) AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) diff -uNr gnome-0.11/programs/gemvt/gtkled.c gnome-0.12/programs/gemvt/gtkled.c --- gnome-0.11/programs/gemvt/gtkled.c Sat Dec 6 09:03:52 1997 +++ gnome-0.12/programs/gemvt/gtkled.c Tue Jan 20 21:52:38 1998 @@ -23,7 +23,7 @@ #define LED_WIDTH (11) #define LED_HEIGHT (7) - +#define BOTTOM_SPACE (2) static void gtk_led_class_init (GtkLedClass *klass); static void gtk_led_init (GtkLed *led); @@ -51,7 +51,8 @@ sizeof (GtkLedClass), (GtkClassInitFunc) gtk_led_class_init, (GtkObjectInitFunc) gtk_led_init, - (GtkArgFunc) NULL, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; led_type = gtk_type_unique (gtk_misc_get_type (), &led_info); @@ -81,6 +82,10 @@ void gtk_led_init (GtkLed *led) { + GtkMisc *misc; + + misc = GTK_MISC (led); + GTK_WIDGET_SET_FLAGS (led, GTK_NO_WINDOW); led->is_on = FALSE; @@ -159,7 +164,7 @@ led = GTK_LED (widget); requisition->width = LED_WIDTH + led->misc.xpad * 2; - requisition->height = LED_HEIGHT + led->misc.ypad * 2; + requisition->height = LED_HEIGHT + led->misc.ypad * 2 + BOTTOM_SPACE; } static gint @@ -186,7 +191,7 @@ x = widget->allocation.x + misc->xpad + (widget->allocation.width - widget->requisition.width) * misc->xalign + 0.5; y = widget->allocation.y + misc->ypad + LED_HEIGHT + - (widget->allocation.height - widget->requisition.height) * misc->xalign + 0.5; + (widget->allocation.height - widget->requisition.height) * misc->xalign + 0.5 - BOTTOM_SPACE; gtk_draw_shadow (widget->style, widget->window, GTK_STATE_NORMAL, GTK_SHADOW_IN, diff -uNr gnome-0.11/programs/gemvt/gtkterm.c gnome-0.12/programs/gemvt/gtkterm.c --- gnome-0.11/programs/gemvt/gtkterm.c Mon Jan 5 11:12:36 1998 +++ gnome-0.12/programs/gemvt/gtkterm.c Tue Jan 20 21:52:40 1998 @@ -19,24 +19,25 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include -#include #include "gtkterm.h" #include #include #include #include -#include +#include + /* --- limits & defaults --- */ #define BLINK_TIMEOUT (333) +#define REFRESH_TIMEOUT (25 * 0 /* FIXME ;) */) #define MIN_WIDTH (15) #define MAX_WIDTH (1024) #define MIN_HEIGHT (1) #define MAX_HEIGHT (1024) #define UNDERLINE_THIKNESS (1) #define CURSOR_THIKNESS (3) -#define INNER_BORDER (1) +#define INNER_BORDER (0) #define DEFAULT_CURSOR_MODE (GTK_CURSOR_UNDERLINE) #define DEFAULT_CURSOR_BLINK (TRUE) @@ -56,20 +57,18 @@ enum { TEXT_RESIZE, + BELL, LAST_SIGNAL }; /* --- prototypes --- */ -typedef void (*GtkTermSignal1) (GtkObject *object, - gpointer arg1, - gpointer arg2, +typedef void (*GtkTermSignalTextResize) (GtkObject *object, + gpointer new_width_guint_p, + gpointer new_height_guint_p, gpointer data); -typedef void (*GtkTermSignal2) (GtkObject *object, - gpointer arg1, - guint arg2, - gulong arg3, +typedef gint (*GtkTermSignalBell) (GtkObject *object, gpointer data); typedef void (*GtkTermSignal3) (GtkObject *object, guint arg1, @@ -77,11 +76,11 @@ gulong arg3, gpointer data); -static void gtk_term_marshal_signal_1 (GtkObject *object, +static void gtk_term_marshal_text_resize (GtkObject *object, GtkSignalFunc func, gpointer func_data, GtkArg *args); -static void gtk_term_marshal_signal_2 (GtkObject *object, +static void gtk_term_marshal_bell (GtkObject *object, GtkSignalFunc func, gpointer func_data, GtkArg *args); @@ -93,6 +92,7 @@ static void gtk_term_class_init (GtkTermClass *class); static gint gtk_term_class_timeout (GtkTermClass *class); +static gint gtk_term_timeout (GtkTerm *term); static void gtk_term_init (GtkTerm *term); static void gtk_term_destroy (GtkObject *object); static void gtk_term_realize (GtkWidget *widget); @@ -152,7 +152,8 @@ sizeof (GtkTermClass), (GtkClassInitFunc) gtk_term_class_init, (GtkObjectInitFunc) gtk_term_init, - (GtkArgFunc) NULL, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; term_type = gtk_type_unique (gtk_widget_get_type (), &term_info); @@ -177,10 +178,16 @@ GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkTermClass, text_resize), - gtk_term_marshal_signal_1, + gtk_term_marshal_text_resize, GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER); + term_signals[1] = gtk_signal_new ("bell", + GTK_RUN_LAST, + object_class->type, + GTK_SIGNAL_OFFSET (GtkTermClass, bell), + gtk_term_marshal_bell, + GTK_TYPE_INT, 0); gtk_object_class_add_signals (object_class, term_signals, LAST_SIGNAL); @@ -203,6 +210,7 @@ class->term_widgets = NULL; class->blink_state = TRUE; class->text_resize = NULL; + class->bell = NULL; } static gint @@ -261,6 +269,7 @@ term->text_area = NULL; term->text_gc = NULL; term->refresh_blocked = FALSE; + term->inverted = FALSE; term->max_term_width = 0; term->max_term_height = 0; @@ -269,7 +278,6 @@ term->first_line = 0; term->first_used_line = 0; term->scroll_offset = 0; - term->term_inversed = FALSE; term->dim = FALSE; term->bold = FALSE; @@ -300,50 +308,197 @@ term->fore_dim[i] = NULL; term->fore_bold[i] = NULL; } - - term->font_normal = gdk_font_load ("-adobe-courier-medium-r-*-*-20-*-*-*-*-*-*-*"); - term->overstrike_bold = FALSE; - term->font_bold = gdk_font_load ("-adobe-courier-bold-r-*-*-20-*-*-*-*-*-*-*-"); - - if (!term->font_normal || !term->font_bold) + + term->font_normal = NULL; + term->font_bold = NULL; + term->font_dim = NULL; + term->font_underline = NULL; + term->font_reverse = NULL; + + /* try fonts in following order: + * -misc-fixed- size 20, + * -adobe-courier- (if we got this we can use medium/bold pair), + * -misc-fixed- any size, + * else complain ;) + */ + term->font_normal = gdk_font_load ("-misc-fixed-*-*-*-*-20-*-*-*-*-*-*-*"); + if (!term->font_normal) { - term->font_normal = gdk_font_load ("-misc-fixed-*-*-*-*-20-*-*-*-*-*-*-*"); + term->font_normal = gdk_font_load ("-adobe-courier-medium-r-*-*-*-*-*-*-*-*-*-*-"); + if (term->font_normal) + term->font_bold = gdk_font_load ("-adobe-courier-bold-r-*-*-*-*-*-*-*-*-*-*-"); + + /* now fall back to -misc-fixed- */ if (!term->font_normal) term->font_normal = gdk_font_load ("-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*"); - - if (!term->font_normal) { + + if (!term->font_normal) + { g_warning ("GtkTerm: could not load default font `-misc-fixed-*'"); term->font_normal = gtk_widget_get_default_style ()->font; } - + } + if (!term->font_bold) + { term->font_bold = term->font_normal; + gdk_font_ref (term->font_bold); term->overstrike_bold = TRUE; } - + else + term->overstrike_bold = FALSE; term->font_dim = term->font_normal; + gdk_font_ref (term->font_dim); term->font_underline = term->font_normal; + gdk_font_ref (term->font_underline); term->font_reverse = term->font_normal; + gdk_font_ref (term->font_reverse); term->draw_underline = TRUE; term->colors_reversed = TRUE; - /* this is ugly, but we need the sizes for the character grid - */ term->char_height = FONT_HEIGHT (term->font_normal); - term->char_vorigin = term->char_height - term->font_normal->descent; + term->char_descent = term->font_normal->descent; + term->char_vorigin = term->char_height - term->char_descent; term->char_width = 0; + /* this is ugly, but we need the sizes for the character grid + */ for (i = 0; i < 256; i++) { - guint width; + register guint width; width = gdk_char_width (term->font_normal, i); - if (width > term->char_width) - term->char_width = width; + term->char_width = MAX (term->char_width, width); } term->char_buffer = NULL; term->attrib_buffer = NULL; + + term->flags_dirty = FALSE; + term->refresh_handler = 0; +} + +void +gtk_term_block_refresh (GtkTerm *term) +{ + g_return_if_fail (term != NULL); + g_return_if_fail (GTK_IS_TERM (term)); + + term->refresh_blocked = TRUE; } +static gint +gtk_term_timeout (GtkTerm *term) +{ + if (term->flags_dirty) + gtk_term_force_refresh (term); + + return TRUE; +} + +void +gtk_term_force_refresh (GtkTerm *term) +{ + g_return_if_fail (term != NULL); + g_return_if_fail (GTK_IS_TERM (term)); + + if (GTK_WIDGET_DRAWABLE (term) && term->flags_dirty) + { + register guint y; + gboolean refresh_blocked_saved; + + refresh_blocked_saved = term->refresh_blocked; + term->refresh_blocked = FALSE; + + for (y = term->first_line; y < term->max_term_height; y++) + { + register guint x; + + for (x = 0; x < term->term_width; x++) + { + if (term->attrib_buffer[y][x].flags & FLAG_DIRTY) + { + register guint first; + + first = x; + do + { + x++; + } + while (x < term->term_width && term->attrib_buffer[y][x].flags & FLAG_DIRTY); + + gtk_term_update_line (term, y, first, x - 1); + + if (term->cur_y == y && + term->cur_x >= first && + term->cur_x <= x - 1) + gtk_term_update_cursor (term); + } + } + } + term->refresh_blocked = refresh_blocked_saved; + term->flags_dirty = FALSE; + } +} + +void +gtk_term_unblock_refresh (GtkTerm *term) +{ + g_return_if_fail (term != NULL); + g_return_if_fail (GTK_IS_TERM (term)); + + term->refresh_blocked = FALSE; + + if (!REFRESH_TIMEOUT && term->flags_dirty) + gtk_term_force_refresh (term); +} + +void +gtk_term_set_fonts (GtkTerm *term, + GdkFont *font_normal, + GdkFont *font_dim, + GdkFont *font_bold, + gboolean overstrike_bold, + GdkFont *font_underline, + gboolean draw_underline, + GdkFont *font_reverse, + gboolean colors_reversed) +{ + g_return_if_fail (term != NULL); + g_return_if_fail (GTK_IS_TERM (term)); + + if (font_normal) + { + gdk_font_ref (font_normal); + gdk_font_unref (term->font_normal); + term->font_normal = font_normal; + } + if (font_bold) + { + gdk_font_ref (font_bold); + gdk_font_unref (term->font_bold); + term->font_bold = font_bold; + } + if (font_dim) + { + gdk_font_ref (font_dim); + gdk_font_unref (term->font_dim); + term->font_dim = font_dim; + } + if (font_underline) + { + gdk_font_ref (font_underline); + gdk_font_unref (term->font_underline); + term->font_underline = font_underline; + } + if (font_reverse) + { + gdk_font_ref (font_reverse); + gdk_font_unref (term->font_reverse); + term->font_reverse = font_reverse; + } + term->overstrike_bold = overstrike_bold != FALSE; + term->draw_underline = draw_underline != FALSE; + term->colors_reversed = colors_reversed != FALSE; +} void gtk_term_setup (GtkTerm *term, @@ -431,7 +586,7 @@ GDK_KEY_RELEASE_MASK); attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - widget->window = gdk_window_new (widget->parent->window, &attributes, attributes_mask); + widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gdk_window_set_user_data (widget->window, term); widget->style = gtk_style_attach (widget->style, widget->window); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); @@ -455,13 +610,17 @@ term->text_area = gdk_window_new (term->view_port, &attributes, attributes_mask); gdk_window_set_user_data (term->text_area, term); - gdk_window_set_background (term->text_area, term->back[0]); + gdk_window_set_background (term->text_area, term->back[term->inverted ? GTK_TERM_MAX_COLORS - 1 : 0]); gdk_window_show (term->text_area); term->scroll_offset = 0; term->text_gc = gdk_gc_new (term->text_area); gdk_gc_set_exposures (term->text_gc, TRUE); + gdk_gc_set_exposures (term->text_gc, FALSE); gdk_gc_set_fill (term->text_gc, GDK_SOLID); + + if (REFRESH_TIMEOUT) + term->refresh_handler = gtk_timeout_add (REFRESH_TIMEOUT, (GtkFunction) gtk_term_timeout, term); if (class->term_widgets == NULL) class->blink_handler = gtk_timeout_add (BLINK_TIMEOUT, (GtkFunction) gtk_term_class_timeout, class); @@ -510,6 +669,9 @@ gdk_gc_destroy (term->text_gc); term->text_gc = NULL; } + + if (term->refresh_handler) + gtk_timeout_remove (term->refresh_handler); class->term_widgets = g_list_remove (class->term_widgets, term); if (class->term_widgets == NULL) @@ -606,6 +768,8 @@ gtk_term_reset (term); if (GTK_WIDGET_DRAWABLE (widget)) gtk_term_update_cursor (term); + + gtk_term_force_refresh (term); } gint @@ -681,6 +845,7 @@ g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_TERM (widget)); + /* g_return_if_fail (area != NULL); hm, isn't this saver? */ term = GTK_TERM (widget); @@ -923,6 +1088,7 @@ gtk_widget_draw_focus (widget); gtk_term_update_cursor (term); + gtk_term_force_refresh (term); return FALSE; } @@ -943,6 +1109,7 @@ gtk_widget_draw_focus (widget); gtk_term_update_cursor (term); + gtk_term_force_refresh (term); return FALSE; } @@ -1076,14 +1243,14 @@ } static void -gtk_term_marshal_signal_1 (GtkObject *object, - GtkSignalFunc func, - gpointer func_data, - GtkArg *args) +gtk_term_marshal_text_resize (GtkObject *object, + GtkSignalFunc func, + gpointer func_data, + GtkArg *args) { - GtkTermSignal1 rfunc; + GtkTermSignalTextResize rfunc; - rfunc = (GtkTermSignal1) func; + rfunc = (GtkTermSignalTextResize) func; (* rfunc) (object, GTK_VALUE_POINTER (args[0]), @@ -1092,20 +1259,18 @@ } static void -gtk_term_marshal_signal_2 (GtkObject *object, - GtkSignalFunc func, - gpointer func_data, - GtkArg *args) +gtk_term_marshal_bell (GtkObject *object, + GtkSignalFunc func, + gpointer func_data, + GtkArg *args) { - GtkTermSignal2 rfunc; + GtkTermSignalBell rfunc; + gint *return_val; - rfunc = (GtkTermSignal2) func; + rfunc = (GtkTermSignalBell) func; + return_val = GTK_RETLOC_BOOL (args[0]); - (* rfunc) (object, - GTK_VALUE_STRING (args[0]), - GTK_VALUE_UINT (args[1]), - GTK_VALUE_ULONG (args[2]), - func_data); + *return_val = (* rfunc) (object, func_data); } static void @@ -1148,6 +1313,13 @@ g_free (term->attrib_buffer[i]); g_free (term->char_buffer[i]); } + + gdk_font_unref (term->font_normal); + gdk_font_unref (term->font_dim); + gdk_font_unref (term->font_bold); + gdk_font_unref (term->font_underline); + gdk_font_unref (term->font_reverse); + g_free (term->attrib_buffer); term->attrib_buffer = NULL; @@ -1202,8 +1374,9 @@ gtk_term_scroll_up (term, term->cur_y, term->first_line + term->bottom, n); } -void gtk_term_insert_lines (GtkTerm *term, - guint n) +void +gtk_term_insert_lines (GtkTerm *term, + guint n) { g_return_if_fail (term != NULL); g_return_if_fail (GTK_IS_TERM (term)); @@ -1237,6 +1410,12 @@ term->fore[index] = fore; term->fore_dim[index] = fore_dim; term->fore_bold[index] = fore_bold; + + if (index == 0 && term->text_area) + gdk_window_set_background (term->text_area, term->back[term->inverted ? GTK_TERM_MAX_COLORS - 1 : 0]); + + if (GTK_WIDGET_DRAWABLE (term)) + gtk_term_update_area (term, NULL); } void @@ -1616,9 +1795,13 @@ void gtk_term_bell (GtkTerm *term) { - /* FIXME: invoke signal */ - - gdk_beep (); + gint return_val; + + return_val = TRUE; + gtk_signal_emit (GTK_OBJECT (term), term_signals[BELL], &return_val); + + if (return_val) + gdk_beep (); } void @@ -1641,6 +1824,8 @@ term->bottom = term->term_height - 1; gtk_term_save_cursor (term); + + gtk_term_force_refresh (term); } void @@ -1684,12 +1869,30 @@ } void -gtk_term_set_inversed (GtkTerm *term, - gboolean term_inversed) +gtk_term_invert (GtkTerm *term) { g_return_if_fail (term != NULL); g_return_if_fail (GTK_IS_TERM (term)); - - term->term_inversed = term_inversed != FALSE; - /* FIXME: inverse screen */ + + term->inverted = ! term->inverted; + + /* for (i = 0; i < GTK_TERM_MAX_COLORS; i++) + { + GdkColor *tmp; + + tmp = term->back[i]; + term->back[i] = term->back[GTK_TERM_MAX_COLORS - 1]; + term->back[GTK_TERM_MAX_COLORS - 1] = tmp; + + tmp = term->fore[i]; + term->fore[i] = term->fore[GTK_TERM_MAX_COLORS - 1]; + term->fore[GTK_TERM_MAX_COLORS - 1] = tmp; + } + */ + + if (term->text_area) + gdk_window_set_background (term->text_area, term->back[term->inverted ? GTK_TERM_MAX_COLORS - 1 : 0]); + + if (GTK_WIDGET_DRAWABLE (term)) + gtk_term_update_area (term, NULL); } diff -uNr gnome-0.11/programs/gemvt/gtkterm.h gnome-0.12/programs/gemvt/gtkterm.h --- gnome-0.11/programs/gemvt/gtkterm.h Mon Jan 5 11:12:36 1998 +++ gnome-0.12/programs/gemvt/gtkterm.h Tue Jan 20 21:52:40 1998 @@ -65,6 +65,7 @@ GdkWindow *text_area; GdkGC *text_gc; gboolean refresh_blocked; + gboolean inverted; /* term dimensions in character */ @@ -75,7 +76,6 @@ guint first_line; guint first_used_line; gint scroll_offset; - gboolean term_inversed; /* current text mode */ @@ -134,11 +134,15 @@ guint char_width; guint char_height; guint char_vorigin; + guint char_descent; /* screen buffer */ gchar **char_buffer; GtkTermAttrib **attrib_buffer; + + gboolean flags_dirty; + gint refresh_handler; }; struct _GtkTermClass @@ -152,6 +156,7 @@ void (* text_resize) (GtkTerm *term, guint *new_width, guint *new_height); + gint (* bell) (GtkTerm *term); }; @@ -165,6 +170,9 @@ gint offset); /* --- terminal actions --- */ +void gtk_term_block_refresh (GtkTerm *term); +void gtk_term_force_refresh (GtkTerm *term); +void gtk_term_unblock_refresh(GtkTerm *term); void gtk_term_set_fonts (GtkTerm *term, GdkFont *font_normal, GdkFont *font_dim, @@ -174,8 +182,6 @@ gboolean draw_underline, GdkFont *font_reverse, gboolean colors_reversed); -void gtk_term_block_refresh (GtkTerm *term); -void gtk_term_unblock_refresh(GtkTerm *term); void gtk_term_set_color (GtkTerm *term, guint index, GdkColor *back, @@ -195,8 +201,7 @@ gboolean underline); void gtk_term_set_reverse (GtkTerm *term, gboolean reverse); -void gtk_term_set_inversed (GtkTerm *term, - gboolean term_inversed); +void gtk_term_invert (GtkTerm *term); /* termcap facility: AL * the line under cursor moves downwards n times, empty ones are inserted @@ -254,6 +259,9 @@ void gtk_term_set_scroll_reg (GtkTerm *term, guint top, guint bottom); +void gtk_term_get_cursor (GtkTerm *term, + guint *x, + guint *y); void gtk_term_reset (GtkTerm *term); void gtk_term_get_size (GtkTerm *term, guint *width, diff -uNr gnome-0.11/programs/gemvt/gtkterm_internal.c gnome-0.12/programs/gemvt/gtkterm_internal.c --- gnome-0.11/programs/gemvt/gtkterm_internal.c Sat Dec 6 09:03:56 1997 +++ gnome-0.12/programs/gemvt/gtkterm_internal.c Tue Jan 20 21:52:40 1998 @@ -31,7 +31,7 @@ (a1).i_back == (a2).i_back ) #define SEL_CHECK_RANGE(term) \ -{ \ +G_STMT_START{ \ guint tmp; \ if ((term)->sel_e_y < (term)->sel_b_y) \ { \ @@ -46,9 +46,10 @@ tmp = (term)->sel_b_x; (term)->sel_b_x = (term)->sel_e_x; \ (term)->sel_e_x = tmp; \ } \ -} +}G_STMT_END + #define SEL_MAKE_VOID(term) \ -{ \ +G_STMT_START{ \ if (term->sel_valid) \ { \ term->sel_valid = FALSE; \ @@ -61,29 +62,51 @@ term->sel_b_x, \ term->sel_b_y); \ } \ -} - -#define NEW_INPUT(term) {\ - SEL_MAKE_VOID (term);\ -} +}G_STMT_END -#define CURSOR_OFF(term) {\ - if (GTK_WIDGET_DRAWABLE ((term)))\ - gtk_term_update_char ((term), (term)->cur_x, (term)->cur_y);\ -} +#define NEW_INPUT(term) \ +G_STMT_START{ \ + SEL_MAKE_VOID (term); \ +}G_STMT_END + +#define CURSOR_OFF(term) \ +G_STMT_START{ \ + if (GTK_WIDGET_DRAWABLE ((term))) \ + gtk_term_update_char ((term), (term)->cur_x, (term)->cur_y); \ +}G_STMT_END -#define CURSOR_ON(term) {\ +#define CURSOR_ON(term) \ +G_STMT_START{ \ if ((term)->cursor_mode != GTK_CURSOR_INVISIBLE && GTK_WIDGET_DRAWABLE ((term)))\ - gtk_term_update_cursor ((term));\ -} + gtk_term_update_cursor ((term)); \ +}G_STMT_END #define XY_2_I(mul_base,x,y) ( (guint) ( ((guint) (y)) * ((guint) (mul_base)) + ((guint) (x)) ) ) #define I_2_Y(mul_base,i) ( (guint) ( ((guint) (i)) / ((guint) (mul_base)) ) ) #define I_2_X(mul_base,i,y) ( (guint) ( ((guint) (i)) - ((guint) (y)) * ((guint) (mul_base)) ) ) -#define gtk_term_draw_char(t,x,y,a) (gtk_term_draw_line_seg ((t), (y), (x), (x), (a))) -#define gtk_term_update_char(t,x,y) (gtk_term_draw_char ((t), (x), (y), &(t)->attrib_buffer[(y)][(x)])) +#define gtk_term_draw_char(t,x,y,a) G_STMT_START{ gtk_term_draw_line_seg ((t), (y), (x), (x), (a)); }G_STMT_END +#define gtk_term_update_char(t,x,y) \ +G_STMT_START{ \ + if ((t)->refresh_blocked) \ + { \ + (t)->attrib_buffer[(y)][(x)].flags |= FLAG_DIRTY; \ + (t)->flags_dirty = TRUE; \ + } \ + else \ + gtk_term_draw_char ((t), (x), (y), &(t)->attrib_buffer[(y)][(x)]); \ +}G_STMT_END +#define gtk_term_update_cursor(t) \ +G_STMT_START{ \ + if ((t)->refresh_blocked) \ + { \ + (t)->attrib_buffer[(t)->cur_y][(t)->cur_x].flags |= FLAG_DIRTY; \ + (t)->flags_dirty = TRUE; \ + } \ + else \ + gtk_term_draw_cursor ((t)); \ +}G_STMT_END static gboolean gtk_term_update_new_sel (GtkTerm *term, @@ -95,7 +118,7 @@ const guint new_y); static void gtk_term_line_init (GtkTerm *term, guint line); -static void gtk_term_update_cursor (GtkTerm *term); +static void gtk_term_draw_cursor (GtkTerm *term); static void gtk_term_update_area (GtkTerm *term, GdkRectangle *area); static void gtk_term_update_line (GtkTerm *term, @@ -107,7 +130,7 @@ guint first_char, guint last_char, GtkTermAttrib *attrib); -static void gtk_term_update_region (GtkTerm *term, +static void gtk_term_update_from_to (GtkTerm *term, guint b_x, guint b_y, guint e_x, @@ -258,7 +281,7 @@ e_y = I_2_Y (term->term_width, i_clear2); e_x = I_2_X (term->term_width, i_clear2, e_y); - gtk_term_update_region (term, b_x, b_y, e_x, e_y); + gtk_term_update_from_to (term, b_x, b_y, e_x, e_y); } /* mark FLAG_SELECTION @@ -287,9 +310,11 @@ e_y = I_2_Y (term->term_width, i_mark2); e_x = I_2_X (term->term_width, i_mark2, e_y); - gtk_term_update_region (term, b_x, b_y, e_x, e_y); + gtk_term_update_from_to (term, b_x, b_y, e_x, e_y); } } + + gtk_term_force_refresh (term); return backwards; } @@ -313,6 +338,149 @@ } static void +gtk_term_scroll_up (GtkTerm *term, + guint first_line, + guint last_line, + guint n_lines) +{ + gchar **char_buffer; + GtkTermAttrib ** attrib_buffer; + guint i; + gboolean refresh_blocked_saved; + + if (GTK_WIDGET_DRAWABLE (term)) + gtk_term_force_refresh (term); + + refresh_blocked_saved = term->refresh_blocked; + term->refresh_blocked = FALSE; + CURSOR_OFF (term); + + if (first_line == term->first_line) + first_line = 0; + + if (term->first_used_line > first_line) + { + if (term->first_used_line > n_lines) + term->first_used_line -= n_lines; + else + term->first_used_line = first_line; + } + + char_buffer = g_new (gchar*, n_lines); + attrib_buffer = g_new (GtkTermAttrib*, n_lines); + + for (i = 0; i < n_lines; i++) + { + char_buffer[i] = term->char_buffer[first_line + i]; + attrib_buffer[i] = term->attrib_buffer[first_line + i]; + } + + for (i = first_line; i <= last_line - n_lines; i++) + { + term->char_buffer[i] = term->char_buffer[i + n_lines]; + term->attrib_buffer[i] = term->attrib_buffer[i + n_lines]; + } + + for (i = 0; i < n_lines; i++) + { + term->char_buffer[last_line - i] = char_buffer[i]; + term->attrib_buffer[last_line - i] = attrib_buffer[i]; + + gtk_term_line_init (term, last_line - i); + } + + g_free (char_buffer); + g_free (attrib_buffer); + + if (GTK_WIDGET_DRAWABLE (term)) + { + gdk_window_copy_area (term->text_area, + term->text_gc, + 0, + first_line * term->char_height, + NULL, + 0, + (first_line + n_lines) * term->char_height, + term->term_width * term->char_width, + (1 + last_line - first_line - n_lines) * term->char_height); + gdk_window_clear_area (term->text_area, + 0, + (1 + last_line - n_lines) * term->char_height, + term->term_width * term->char_width, + n_lines * term->char_height); + CURSOR_ON (term); + } + + term->refresh_blocked = refresh_blocked_saved; +} + +static void +gtk_term_scroll_down (GtkTerm *term, + guint first_line, + guint last_line, + guint n_lines) +{ + gchar **char_buffer; + GtkTermAttrib ** attrib_buffer; + guint i; + gboolean refresh_blocked_saved; + + if (GTK_WIDGET_DRAWABLE (term)) + gtk_term_force_refresh (term); + + refresh_blocked_saved = term->refresh_blocked; + term->refresh_blocked = FALSE; + CURSOR_OFF (term); + + char_buffer = g_new (gchar*, n_lines); + attrib_buffer = g_new (GtkTermAttrib*, n_lines); + + for (i = 0; i < n_lines; i++) + { + char_buffer[i] = term->char_buffer[last_line - i]; + attrib_buffer[i] = term->attrib_buffer[last_line - i]; + } + + for (i = last_line; i >= first_line + n_lines; i--) + { + term->char_buffer[i] = term->char_buffer[i - n_lines]; + term->attrib_buffer[i] = term->attrib_buffer[i - n_lines]; + } + + for (i = 0; i < n_lines; i++) + { + term->char_buffer[first_line + i] = char_buffer[i]; + term->attrib_buffer[first_line + i] = attrib_buffer[i]; + + gtk_term_line_init (term, first_line + i); + } + + g_free (char_buffer); + g_free (attrib_buffer); + + if (GTK_WIDGET_DRAWABLE (term)) + { + gdk_window_copy_area (term->text_area, + term->text_gc, + 0, + (first_line + n_lines) * term->char_height, + NULL, + 0, + first_line * term->char_height, + term->term_width * term->char_width, + (1 + last_line - first_line - n_lines) * term->char_height); + gdk_window_clear_area (term->text_area, + 0, + first_line * term->char_height, + term->term_width * term->char_width, + n_lines * term->char_height); + CURSOR_ON (term); + } + + term->refresh_blocked = refresh_blocked_saved; +} + +static void gtk_term_update_area (GtkTerm *term, GdkRectangle *area) { @@ -321,10 +489,12 @@ guint first_line, last_line; guint first_char, last_char; guint i; + gboolean refresh_blocked_saved; + g_return_if_fail (term != NULL); g_return_if_fail (GTK_IS_TERM (term)); - + gdk_window_get_size (term->text_area, &width, &height); if (!area) @@ -373,21 +543,30 @@ g_return_if_fail (first_char < term->max_term_width); g_return_if_fail (last_char < term->max_term_width); + refresh_blocked_saved = term->refresh_blocked; + term->refresh_blocked = FALSE; + for (i = first_line; i <= last_line; i++) { gtk_term_update_line (term, i, first_char, last_char); } + /* if (term->cur_y >= first_line && + term->cur_y <= last_line && + term->cur_x >= first_char && + term->cur_x <= last_char) FIXME */ if (term->cur_y == CLAMP (term->cur_y - term->first_line, first_line, last_line) && term->cur_x == CLAMP (term->cur_x, first_char, last_char)) gtk_term_update_cursor (term); + + term->refresh_blocked = refresh_blocked_saved; } static void -gtk_term_update_region (GtkTerm *term, - guint b_x, - guint b_y, - guint e_x, - guint e_y) +gtk_term_update_from_to (GtkTerm *term, + guint b_x, + guint b_y, + guint e_x, + guint e_y) { while (b_y <= e_y) { @@ -405,7 +584,7 @@ } static void -gtk_term_update_cursor (GtkTerm *term) +gtk_term_draw_cursor (GtkTerm *term) { GtkTermAttrib attrib; gboolean colors_reversed_saved; @@ -439,7 +618,7 @@ term->char_width * term->cur_x, term->char_height * term->cur_y + term->char_vorigin, term->char_width, - CURSOR_THIKNESS); + MIN (CURSOR_THIKNESS, term->char_descent)); } static void @@ -448,24 +627,39 @@ guint first_char, guint last_char) { - guint len, i; - - len = last_char - first_char + 1; - - i = first_char; - while (i <= last_char) { - GtkTermAttrib *attrib; - guint first; - - first = i; - - attrib = &term->attrib_buffer[line][first]; - - while (i < last_char && ATTRIB_EQ(term->attrib_buffer[line][i + 1], *attrib)) - i++; - - gtk_term_draw_line_seg (term, line, first, i, attrib); - i++; + register guint i; + + if (term->refresh_blocked) + { + for (i = first_char; i <= last_char; i++) + term->attrib_buffer[line][i].flags |= FLAG_DIRTY; + term->flags_dirty = TRUE; + } + else + { + i = first_char; + while (i <= last_char) + { + GtkTermAttrib *attrib; + guint first; + + first = i; + + term->attrib_buffer[line][first].flags &= ~FLAG_DIRTY; + attrib = &term->attrib_buffer[line][first]; + + do + { + i++; + if (i <= last_char) + term->attrib_buffer[line][i].flags &= ~FLAG_DIRTY; + else + break; + } + while (ATTRIB_EQ(term->attrib_buffer[line][i], *attrib)); + + gtk_term_draw_line_seg (term, line, first, i - 1, attrib); + } } } @@ -496,7 +690,7 @@ else fore = term->fore[attrib->i_fore]; - if (attrib->flags & FLAG_REVERSE) + if (((attrib->flags & FLAG_REVERSE) != 0) != term->inverted) { GdkColor *tmp; @@ -553,131 +747,4 @@ term->char_height * line + term->char_vorigin, &term->char_buffer[line][first_char], len); -} - -static void -gtk_term_scroll_up (GtkTerm *term, - guint first_line, - guint last_line, - guint n_lines) -{ - gchar **char_buffer; - GtkTermAttrib ** attrib_buffer; - guint i; - - if (first_line == term->first_line) - first_line = 0; - - if (term->first_used_line > first_line) - { - if (term->first_used_line > n_lines) - term->first_used_line -= n_lines; - else - term->first_used_line = first_line; - } - - char_buffer = g_new (gchar*, n_lines); - attrib_buffer = g_new (GtkTermAttrib*, n_lines); - - for (i = 0; i < n_lines; i++) - { - char_buffer[i] = term->char_buffer[first_line + i]; - attrib_buffer[i] = term->attrib_buffer[first_line + i]; - } - - CURSOR_OFF (term); - - for (i = first_line; i <= last_line - n_lines; i++) - { - term->char_buffer[i] = term->char_buffer[i + n_lines]; - term->attrib_buffer[i] = term->attrib_buffer[i + n_lines]; - } - - for (i = 0; i < n_lines; i++) - { - term->char_buffer[last_line - i] = char_buffer[i]; - term->attrib_buffer[last_line - i] = attrib_buffer[i]; - - gtk_term_line_init (term, last_line - i); - } - - g_free (char_buffer); - g_free (attrib_buffer); - - if (GTK_WIDGET_DRAWABLE (term)) - { - gdk_window_copy_area (term->text_area, - term->text_gc, - 0, - first_line * term->char_height, - NULL, - 0, - (first_line + n_lines) * term->char_height, - term->term_width * term->char_width, - (1 + last_line - first_line - n_lines) * term->char_height); - gdk_window_clear_area (term->text_area, - 0, - (1 + last_line - n_lines) * term->char_height, - term->term_width * term->char_width, - n_lines * term->char_height); - CURSOR_ON (term); - } -} - -static void -gtk_term_scroll_down (GtkTerm *term, - guint first_line, - guint last_line, - guint n_lines) -{ - gchar **char_buffer; - GtkTermAttrib ** attrib_buffer; - guint i; - - char_buffer = g_new (gchar*, n_lines); - attrib_buffer = g_new (GtkTermAttrib*, n_lines); - - for (i = 0; i < n_lines; i++) - { - char_buffer[i] = term->char_buffer[last_line - i]; - attrib_buffer[i] = term->attrib_buffer[last_line - i]; - } - - CURSOR_OFF (term); - - for (i = last_line; i >= first_line + n_lines; i--) - { - term->char_buffer[i] = term->char_buffer[i - n_lines]; - term->attrib_buffer[i] = term->attrib_buffer[i - n_lines]; - } - - for (i = 0; i < n_lines; i++) - { - term->char_buffer[first_line + i] = char_buffer[i]; - term->attrib_buffer[first_line + i] = attrib_buffer[i]; - - gtk_term_line_init (term, first_line + i); - } - - g_free (char_buffer); - g_free (attrib_buffer); - - if (GTK_WIDGET_DRAWABLE (term)) - { - gdk_window_copy_area (term->text_area, - term->text_gc, - 0, - (first_line + n_lines) * term->char_height, - NULL, - 0, - first_line * term->char_height, - term->term_width * term->char_width, - (1 + last_line - first_line - n_lines) * term->char_height); - gdk_window_clear_area (term->text_area, - 0, - first_line * term->char_height, - term->term_width * term->char_width, - n_lines * term->char_height); - CURSOR_ON (term); - } } diff -uNr gnome-0.11/programs/gemvt/gtktty.c gnome-0.12/programs/gemvt/gtktty.c --- gnome-0.11/programs/gemvt/gtktty.c Sat Dec 6 09:03:56 1997 +++ gnome-0.12/programs/gemvt/gtktty.c Tue Jan 20 21:52:40 1998 @@ -33,7 +33,7 @@ /* --- limits --- */ -#define INPUT_BUFFER_LEN (8192) +#define INPUT_BUFFER_LEN (8192 * 4) #define MAX_SCROLL_BACK (999) /* --- typedefs --- */ @@ -135,7 +135,8 @@ sizeof (GtkTtyClass), (GtkClassInitFunc) gtk_tty_class_init, (GtkObjectInitFunc) gtk_tty_init, - (GtkArgFunc) NULL, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; tty_type = gtk_type_unique (gtk_term_get_type (), &tty_info); @@ -196,6 +197,13 @@ term_class->text_resize = gtk_tty_text_resize; class->os_hintp = gtk_tty_os_get_hintp (); + +#ifdef HAVE_WAIT4 + class->meassure_time = TRUE; +#else /* !HAVE_WAIT4 */ + class->meassure_time = FALSE; +#endif /* !HAVE_WAIT4 */ + class->key_press = NULL; class->program_exec = NULL; class->program_exit = NULL; @@ -245,7 +253,7 @@ scrollback = MIN (scrollback, MAX_SCROLL_BACK); gtk_term_setup (GTK_TERM (tty), width, height, width, scrollback); - list = gtk_vtemu_get_types (); + list = gtk_vtemu_create_type_list (); tty->vtemu = gtk_vtemu_new (GTK_TERM (tty), list->data); g_list_free (list); @@ -681,9 +689,9 @@ } static void -gtk_tty_text_resize (GtkTerm *term, - guint *new_width, - guint *new_height) +gtk_tty_text_resize (GtkTerm *term, + guint *new_width, + guint *new_height) { GtkTty *tty; @@ -858,34 +866,56 @@ GtkTty *tty; gint len; gchar buffer[INPUT_BUFFER_LEN]; + guint c; g_return_if_fail (data != NULL); g_return_if_fail (GTK_IS_TTY (data)); tty = data; - - len = read (tty->pty_fd, buffer, INPUT_BUFFER_LEN); - - if (len > 0) - gtk_tty_put_out (tty, buffer, len); - else if (len < 0) + + c = 0; + do { - /* we assume the child died.... - */ + len = read (tty->pty_fd, buffer, INPUT_BUFFER_LEN); - gdk_input_remove (tty->input_tag); - tty->input_tag = 0; - - gtk_tty_os_wait (tty); - - gtk_signal_emit (GTK_OBJECT (tty), - tty_signals[PROGRAM_EXIT], - tty->prg_name, - tty->exit_status, - tty->exit_signal); + if (len > 0) + { + gtk_tty_put_out (tty, buffer, len); + /* gtk_term_force_refresh (GTK_TERM (tty)); */ + } + c++; } - else - g_warning ("hum, zero characters to read on input ready for read?"); + while (len > 0 && c < 3); + + if (len < 0) + { + +#ifdef EAGAIN + if (errno != EAGAIN) + { +#endif /* EAGAIN */ + + /* we assume the child died.... + */ + + gdk_input_remove (tty->input_tag); + tty->input_tag = 0; + + gtk_tty_os_wait (tty); + + gtk_signal_emit (GTK_OBJECT (tty), + tty_signals[PROGRAM_EXIT], + tty->prg_name, + tty->exit_status, + tty->exit_signal); +#ifdef EAGAIN + } +#endif /* EAGAIN */ + + } + /* else + * g_warning ("hum, zero characters to read on input ready for read?"); + */ } void diff -uNr gnome-0.11/programs/gemvt/gtktty.h gnome-0.12/programs/gemvt/gtktty.h --- gnome-0.11/programs/gemvt/gtktty.h Sat Dec 6 09:03:56 1997 +++ gnome-0.12/programs/gemvt/gtktty.h Tue Jan 20 21:52:40 1998 @@ -108,6 +108,8 @@ GtkTermClass parent_class; gpointer os_hintp; + + guint meassure_time : 1; gint (* key_press) (GtkTty *tty, const gchar *char_code, diff -uNr gnome-0.11/programs/gemvt/gtkttyos.c gnome-0.12/programs/gemvt/gtkttyos.c --- gnome-0.11/programs/gemvt/gtkttyos.c Sun Dec 14 15:48:32 1997 +++ gnome-0.12/programs/gemvt/gtkttyos.c Tue Jan 20 21:52:40 1998 @@ -27,6 +27,10 @@ #include #include +#ifdef __FreeBSD__ +# include +#endif /* __FreeBSD__ */ + #if HAVE_SYS_WAIT_H # include #endif @@ -66,9 +70,18 @@ g_warning ("tcgetattr(stdin,) failed: %s", g_strerror (errno)); osdat->tty_termios.c_iflag = BRKINT | ICRNL | IMAXBEL; - osdat->tty_termios.c_oflag = CREAD | OPOST | ONLCR | NL0 | CR0 | TAB0 | BS0 | VT0 | FF0; + + osdat->tty_termios.c_oflag = CREAD | OPOST | ONLCR | NL0 | CR0 | TAB0 | BS0 | FF0; +#ifdef VT0 + /* FreeBSD doesn't have it? + */ + osdat->tty_termios.c_oflag |= VT0; +#endif /* VT0 */ + osdat->tty_termios.c_cflag = CS8; + osdat->tty_termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOE | ECHOK | ECHOCTL | ECHOKE; + osdat->tty_termios.c_cc[VERASE] = '\b'; osdat->tty_termios.c_cc[VKILL] = '\025'; } @@ -109,7 +122,7 @@ { *s2 = *suf_2; - tty->pty_fd = open (pty_name, O_RDWR); + tty->pty_fd = open (pty_name, O_RDWR | O_NONBLOCK); if (tty->pty_fd >= 0) { gint tty_fd; diff -uNr gnome-0.11/programs/gemvt/gtkvt102.c gnome-0.12/programs/gemvt/gtkvt102.c --- gnome-0.11/programs/gemvt/gtkvt102.c Sat Jan 3 13:42:55 1998 +++ gnome-0.12/programs/gemvt/gtkvt102.c Tue Jan 20 21:52:40 1998 @@ -20,6 +20,8 @@ */ #include #include +#include "gtkvt102.h" +#include "config.h" /* --- limits --- */ @@ -58,6 +60,7 @@ GtkVtEmu pub; GtkVt102EscStates state; + gboolean toggle_meta; gboolean disp_ctrl; guint32 display_bitmap; guint32 display_bitmap_restricted; @@ -65,17 +68,13 @@ gboolean relative_origin; GtkCursorMode cursor_mode; gboolean cursor_blinking; + gchar *charset_table; gulong tab_stop[5]; guint n_params; gulong param[GTKVT102_MAX_PARAMS]; }; /* --- prototypes --- */ -static void gtk_vt102_reset (GtkVtEmu *base_emu, - gboolean blank_screen); -static guint gtk_vt102_input (GtkVtEmu *base_emu, - const guchar *buffer, - guint count); static void gtk_vt102_lf (GtkVtEmu *base_emu); static void gtk_vt102_reverse_lf (GtkVtEmu *base_emu); static void gtk_vt102_cr (GtkVtEmu *base_emu); @@ -102,7 +101,6 @@ "linux", "linux-m", #endif /* !HAVE_TERMCAP_LINUX */ - NULL, }; GtkVtEmuTermEntry gtk_vt102_entry = { @@ -111,12 +109,17 @@ gtk_vt102_input, gtk_vt102_reset, gtk_vt102_types, + sizeof (gtk_vt102_types) / sizeof (gtk_vt102_types[0]), }; +/* --- charset/font conversion tables --- */ +#include "gtkvt102c2f.c" + + /* --- functions --- */ -static void +void gtk_vt102_reset (GtkVtEmu *base_emu, gboolean blank_screen) { @@ -133,8 +136,12 @@ base_emu->insert_mode = FALSE; base_emu->lf_plus_cr = FALSE; base_emu->need_wrap = FALSE; + + if (base_emu->term_inverted) + gtk_vtemu_invert (base_emu); vtemu->state = GTKVT102_ESC_Normal; + vtemu->toggle_meta = FALSE; vtemu->disp_ctrl = FALSE; /* the control char display bitmap (and the restricted one) * are taken from the linux console @@ -172,6 +179,7 @@ vtemu->relative_origin = FALSE; vtemu->cursor_mode = base_emu->dfl_cursor_mode; vtemu->cursor_blinking = base_emu->dfl_cursor_blinking; + vtemu->charset_table = NULL; vtemu->tab_stop[0] = 0x01010100; vtemu->tab_stop[1] = 0x01010101; vtemu->tab_stop[2] = 0x01010101; @@ -187,7 +195,7 @@ gtk_term_clear (base_emu->term, TRUE, TRUE); } -static guint +guint gtk_vt102_input (GtkVtEmu *base_emu, const guchar *buffer, guint count) @@ -206,11 +214,13 @@ vtemu = (GtkVt102Emu*) base_emu; term = base_emu->term; - + /* * printf("buffer_count: %d\n", count); */ + gtk_term_block_refresh (term); + gtk_term_set_cursor_mode (term, GTK_CURSOR_INVISIBLE, vtemu->cursor_blinking); gtk_term_get_cursor (term, &base_emu->cur_x, &base_emu->cur_y); @@ -251,7 +261,13 @@ } gtk_term_set_scroll_offset (term, 0); + if (vtemu->charset_table) /* FIXME charset conversion */ + { + ch = vtemu->charset_table[vtemu->toggle_meta ? ch | 0x80 : ch]; + } + base_emu->need_wrap = gtk_term_putc (term, ch, base_emu->insert_mode); + gtk_term_get_cursor (term, &base_emu->cur_x, &base_emu->cur_y); continue; @@ -298,11 +314,12 @@ continue; case 14: /* shift out */ - /* FIXME: charset */ + vtemu->charset_table = c2f_vt102_any; /* FIXME */ + vtemu->charset_table = c2f_vt102_misc; continue; case 15: /* shift in */ - /* FIXME: charset */ + vtemu->charset_table = NULL; continue; case 24: /* cancel */ @@ -715,6 +732,8 @@ } gtk_term_set_cursor_mode (term, vtemu->cursor_mode, vtemu->cursor_blinking); + + gtk_term_unblock_refresh (term); return n_processed; } @@ -892,10 +911,8 @@ case 5: /* Inverted screen on/off */ - if (base_emu->term->term_inversed != on_off) - { - gtk_term_set_inversed (base_emu->term, on_off); - } + if (base_emu->term_inverted != on_off) + gtk_vtemu_invert (base_emu); break; case 6: @@ -943,6 +960,12 @@ base_emu->insert_mode = on_off; break; + case 5: /* stolen from dec_priv_mode FEATURE */ + /* Inverted screen on/off */ + if (base_emu->term_inverted != on_off) + gtk_vtemu_invert (base_emu); + break; + case 20: /* Lf, Enter == CrLf/Lf */ if (on_off) @@ -1000,17 +1023,25 @@ case 10: /* FIXME: charset_G0/charset_G1 */ + vtemu->charset_table = NULL; vtemu->disp_ctrl = FALSE; + vtemu->toggle_meta = FALSE; break; case 11: /* FIXME: charset_G0/charset_G1 */ + vtemu->charset_table = c2f_linux_any; /* FIXME */ + vtemu->charset_table = c2f_linux_misc; vtemu->disp_ctrl = TRUE; + vtemu->toggle_meta = FALSE; break; case 12: /* FIXME: charset_G0/charset_G1 */ + vtemu->charset_table = c2f_linux_any; /* FIXME */ + vtemu->charset_table = c2f_linux_misc; vtemu->disp_ctrl = TRUE; + vtemu->toggle_meta = TRUE; break; case 21: diff -uNr gnome-0.11/programs/gemvt/gtkvt102.h gnome-0.12/programs/gemvt/gtkvt102.h --- gnome-0.11/programs/gemvt/gtkvt102.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gtkvt102.h Tue Jan 20 21:57:04 1998 @@ -0,0 +1,54 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * gtkvt102: VT102 implementation for GtkVtEmu + implementation * gtkvtemui: virtual terminal emulation interface for GtkTty + * Copyright (C) 1997 Tim Janik + * + * This library 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 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __GTK_VT102_H__ +#define __GTK_VT102_H__ + + +#include "gtkvtemui.h" + + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + + +extern GtkVtEmuTermEntry gtk_vt102_entry; + +guint gtk_vt102_input (GtkVtEmu *base_emu, + const guchar *buffer, + guint count); +void gtk_vt102_reset (GtkVtEmu *base_emu, + gboolean blank_screen); + + + + + + +#ifdef __cplusplus +#pragma { +} +#endif /* __cplusplus */ + + +#endif /* __GTK_VT102_H__ */ diff -uNr gnome-0.11/programs/gemvt/gtkvt102c2f.c gnome-0.12/programs/gemvt/gtkvt102c2f.c --- gnome-0.11/programs/gemvt/gtkvt102c2f.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gtkvt102c2f.c Tue Jan 20 21:52:41 1998 @@ -0,0 +1,1075 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * gtkvt102c2f: VT102 charset conversion tables for GtkVt102Emu + * Copyright (C) 1997 Tim Janik + * + * This library 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 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* --- charset/font conversion tables --- */ + +/* the characters output by the terminal application will be used + * as index into these tables. the most appropriate mappings has + * been tried to be achieved for the -misc-* fonts. + */ + +/* charset to font character conversion table for + * TERM=linux and font -misc-* + */ +static gchar c2f_linux_misc[256] = { + '\000' /* 0) 0x00 NUL */, + '\001' /* 1) 0x01 SOH */, + '\002' /* 2) 0x02 STX */, + '\003' /* 3) 0x03 ETX */, + 0x01 /* 4) 0x04 EOT -> DIAMOND */, + '\005' /* 5) 0x05 ENQ */, + '\006' /* 6) 0x06 ACK */, + '\007' /* 7) 0x07 '\a' */, + '\010' /* 8) 0x08 '\b' */, + 0x03 /* 9) 0x09 '\t' -> Ht */, + 0x06 /* 10) 0x0a '\n' -> Lf */, + 0x0a /* 11) 0x0b '\v' -> Vt */, + 0x04 /* 12) 0x0c '\f' -> Ff */, + 0x05 /* 13) 0x0d '\r' -> Cr */, + '\016' /* 14) 0x0e SO */, + '\017' /* 15) 0x0f SI */, + '>' /* 16) 0x10 DLE -> ARROW POINTING RIGHT */, + '<' /* 17) 0x11 DC1 -> ARROW POINTING LEFT */, + '\022' /* 18) 0x12 DC2 */, + '\023' /* 19) 0x13 DC3 */, + '\024' /* 20) 0x14 DC4 */, + '\025' /* 21) 0x15 NAK */, + '\026' /* 22) 0x16 SYN */, + '\027' /* 23) 0x17 ETB */, + '^' /* 24) 0x18 CAN -> arrow pointing up */, + 'v' /* 25) 0x19 EM -> ARROW POINTING DOWN */, + '\032' /* 26) 0x1a SUB */, + '\033' /* 27) 0x1b ESC */, + '\034' /* 28) 0x1c FS */, + '\035' /* 29) 0x1d GS */, + '\036' /* 30) 0x1e RS */, + '\037' /* 31) 0x1f US */, + '\040' /* 32) 0x20 ' ' */, + '\041' /* 33) 0x21 '!' */, + '\042' /* 34) 0x22 '"' */, + '\043' /* 35) 0x23 '#' */, + '\044' /* 36) 0x24 '$' */, + '\045' /* 37) 0x25 '%' */, + '\046' /* 38) 0x26 '&' */, + '\047' /* 39) 0x27 '\'' */, + '\050' /* 40) 0x28 '(' */, + '\051' /* 41) 0x29 ')' */, + '\052' /* 42) 0x2a '*' */, + '\053' /* 43) 0x2b '+' */, + '\054' /* 44) 0x2c ',' */, + '\055' /* 45) 0x2d '-' */, + '\056' /* 46) 0x2e '.' */, + '\057' /* 47) 0x2f '/' */, + 0x02 /* 48) 0x30 '0' -> SOLID SQUARE BLOCK / FULL SQUARE (#) */, + '\061' /* 49) 0x31 '1' */, + '\062' /* 50) 0x32 '2' */, + '\063' /* 51) 0x33 '3' */, + '\064' /* 52) 0x34 '4' */, + '\065' /* 53) 0x35 '5' */, + '\066' /* 54) 0x36 '6' */, + '\067' /* 55) 0x37 '7' */, + '\070' /* 56) 0x38 '8' */, + '\071' /* 57) 0x39 '9' */, + '\072' /* 58) 0x3a ':' */, + '\073' /* 59) 0x3b ';' */, + '\074' /* 60) 0x3c '<' */, + '\075' /* 61) 0x3d '=' */, + '\076' /* 62) 0x3e '>' */, + '\077' /* 63) 0x3f '?' */, + '\100' /* 64) 0x40 '@' */, + '\101' /* 65) 0x41 'A' */, + '\102' /* 66) 0x42 'B' */, + '\103' /* 67) 0x43 'C' */, + '\104' /* 68) 0x44 'D' */, + '\105' /* 69) 0x45 'E' */, + '\106' /* 70) 0x46 'F' */, + '\107' /* 71) 0x47 'G' */, + '\110' /* 72) 0x48 'H' */, + '\111' /* 73) 0x49 'I' */, + '\112' /* 74) 0x4a 'J' */, + '\113' /* 75) 0x4b 'K' */, + '\114' /* 76) 0x4c 'L' */, + '\115' /* 77) 0x4d 'M' */, + '\116' /* 78) 0x4e 'N' */, + '\117' /* 79) 0x4f 'O' */, + '\120' /* 80) 0x50 'P' */, + '\121' /* 81) 0x51 'Q' */, + '\122' /* 82) 0x52 'R' */, + '\123' /* 83) 0x53 'S' */, + '\124' /* 84) 0x54 'T' */, + '\125' /* 85) 0x55 'U' */, + '\126' /* 86) 0x56 'V' */, + '\127' /* 87) 0x57 'W' */, + '\130' /* 88) 0x58 'X' */, + '\131' /* 89) 0x59 'Y' */, + '\132' /* 90) 0x5a 'Z' */, + '\133' /* 91) 0x5b '[' */, + '\134' /* 92) 0x5c '\' */, + '\135' /* 93) 0x5d ']' */, + '\136' /* 94) 0x5e '^' */, + 0x14 /* 95) 0x5f '_' -> BOTTOM HORIZONTAL LINE */, + '\140' /* 96) 0x60 '`' */, + '\141' /* 97) 0x61 'a' */, + '\142' /* 98) 0x62 'b' */, + '\143' /* 99) 0x63 'c' */, + '\144' /* 100) 0x64 'd' */, + '\145' /* 101) 0x65 'e' */, + '\146' /* 102) 0x66 'f' */, + '\147' /* 103) 0x67 'g' */, + '\150' /* 104) 0x68 'h' */, + '\151' /* 105) 0x69 'i' */, + '\152' /* 106) 0x6a 'j' */, + '\153' /* 107) 0x6b 'k' */, + '\154' /* 108) 0x6c 'l' */, + '\155' /* 109) 0x6d 'm' */, + '\156' /* 110) 0x6e 'n' */, + '\157' /* 111) 0x6f 'o' */, + '\160' /* 112) 0x70 'p' */, + '\161' /* 113) 0x71 'q' */, + '\162' /* 114) 0x72 'r' */, + '\163' /* 115) 0x73 's' */, + '\164' /* 116) 0x74 't' */, + '\165' /* 117) 0x75 'u' */, + '\166' /* 118) 0x76 'v' */, + '\167' /* 119) 0x77 'w' */, + '\170' /* 120) 0x78 'x' */, + '\171' /* 121) 0x79 'y' */, + '\172' /* 122) 0x7a 'z' */, + '\173' /* 123) 0x7b '{' */, + '\174' /* 124) 0x7c '|' */, + '\175' /* 125) 0x7d '}' */, + 0x10 /* 126) 0x7e '~' -> UPPER HORIZONTAL LINE */, + '\177' /* 127) 0x7f DEL */, + '\200' /* 128) 0x80 */, + '\201' /* 129) 0x81 */, + '\202' /* 130) 0x82 */, + '\203' /* 131) 0x83 */, + '\204' /* 132) 0x84 */, + '\205' /* 133) 0x85 */, + '\206' /* 134) 0x86 */, + '\207' /* 135) 0x87 */, + '\210' /* 136) 0x88 */, + '\211' /* 137) 0x89 */, + '\212' /* 138) 0x8a */, + '\213' /* 139) 0x8b */, + '\214' /* 140) 0x8c */, + '\215' /* 141) 0x8d */, + '\216' /* 142) 0x8e */, + '\217' /* 143) 0x8f */, + '\220' /* 144) 0x90 */, + '\221' /* 145) 0x91 */, + '\222' /* 146) 0x92 */, + '\223' /* 147) 0x93 */, + '\224' /* 148) 0x94 */, + '\225' /* 149) 0x95 */, + '\226' /* 150) 0x96 */, + '\227' /* 151) 0x97 */, + '\230' /* 152) 0x98 */, + '\231' /* 153) 0x99 */, + '\232' /* 154) 0x9a */, + '\233' /* 155) 0x9b */, + 0xa3 /* 156) 0x9c -> POUND ??? */, + '\235' /* 157) 0x9d */, + '\236' /* 158) 0x9e */, + '\237' /* 159) 0x9f */, + '\240' /* 160) 0xa0 */, + '\241' /* 161) 0xa1 */, + '\242' /* 162) 0xa2 */, + '\243' /* 163) 0xa3 */, + '\244' /* 164) 0xa4 */, + '\245' /* 165) 0xa5 */, + '\246' /* 166) 0xa6 */, + '\247' /* 167) 0xa7 */, + '\250' /* 168) 0xa8 */, + '\251' /* 169) 0xa9 */, + '\252' /* 170) 0xaa */, + '\253' /* 171) 0xab */, + '\254' /* 172) 0xac */, + '\255' /* 173) 0xad */, + '\256' /* 174) 0xae */, + '\257' /* 175) 0xaf */, + '#' /* 176) 0xb0 -> LIGHT SQUARES / BOARD OF SQUARES / SQUARE (#) */, + 0x02 /* 177) 0xb1 -> DENSE SQUARES / CHECKER BOARD (STIPPLE) / CHESS BOARD */, + '\262' /* 178) 0xb2 */, + 0x19 /* 179) 0xb3 -> VERTICAL LINE */, + 0x16 /* 180) 0xb4 -> RIGHT TEE */, + '\265' /* 181) 0xb5 */, + '\266' /* 182) 0xb6 */, + '\267' /* 183) 0xb7 */, + '\270' /* 184) 0xb8 */, + '\271' /* 185) 0xb9 */, + '\272' /* 186) 0xba */, + '\273' /* 187) 0xbb */, + '\274' /* 188) 0xbc */, + '\275' /* 189) 0xbd */, + '\276' /* 190) 0xbe */, + 0x0c /* 191) 0xbf -> RIGHT UPPER CORNER */, + 0x0e /* 192) 0xc0 -> LEFT BOTTOM CORNER */, + 0x17 /* 193) 0xc1 -> BOTTOM TEE */, + 0x18 /* 194) 0xc2 -> NORMAL TEE */, + 0x15 /* 195) 0xc3 -> LEFT TEE */, + 0x12 /* 196) 0xc4 -> MIDDLE HORIZONTAL LINE */, + 0x0f /* 197) 0xc5 -> CROSS */, + '\306' /* 198) 0xc6 */, + '\307' /* 199) 0xc7 */, + '\310' /* 200) 0xc8 */, + '\311' /* 201) 0xc9 */, + '\312' /* 202) 0xca */, + '\313' /* 203) 0xcb */, + '\314' /* 204) 0xcc */, + '\315' /* 205) 0xcd */, + '\316' /* 206) 0xce */, + '\317' /* 207) 0xcf */, + '\320' /* 208) 0xd0 */, + '\321' /* 209) 0xd1 */, + '\322' /* 210) 0xd2 */, + '\323' /* 211) 0xd3 */, + '\324' /* 212) 0xd4 */, + '\325' /* 213) 0xd5 */, + '\326' /* 214) 0xd6 */, + '\327' /* 215) 0xd7 */, + 0x0f /* 216) 0xd8 -> CROSS ??? */, + 0x0b /* 217) 0xd9 -> RIGHT BOTTOM CORNER */, + 0x0d /* 218) 0xda -> LEFT UPPER CORNER */, + '\333' /* 219) 0xdb */, + '\334' /* 220) 0xdc */, + '\335' /* 221) 0xdd */, + '\336' /* 222) 0xde */, + '\337' /* 223) 0xdf */, + '\340' /* 224) 0xe0 */, + '\341' /* 225) 0xe1 */, + '\342' /* 226) 0xe2 */, + 0x1c /* 227) 0xe3 -> PI ??? */, + '\344' /* 228) 0xe4 */, + '\345' /* 229) 0xe5 */, + '\346' /* 230) 0xe6 */, + '\347' /* 231) 0xe7 */, + '\350' /* 232) 0xe8 */, + '\351' /* 233) 0xe9 */, + '\352' /* 234) 0xea */, + '\353' /* 235) 0xeb */, + '\354' /* 236) 0xec */, + '\355' /* 237) 0xed */, + '\356' /* 238) 0xee */, + '\357' /* 239) 0xef */, + '\360' /* 240) 0xf0 */, + 0xb1 /* 241) 0xf1 -> PLUS-MINUS */, + 0x1b /* 242) 0xf2 -> GREATER-OR-EQUAL ??? */, + 0x1a /* 243) 0xf3 -> LESS-OR-EQUAL ??? */, + '\364' /* 244) 0xf4 */, + '\365' /* 245) 0xf5 */, + '\366' /* 246) 0xf6 */, + '\367' /* 247) 0xf7 */, + 0xb0 /* 248) 0xf8 -> DEGREE SYMBOL (°) */, + 0xb7 /* 249) 0xf9 -> MIDDLE DOT ??? */, + 0xb8 /* 250) 0xfa -> LOWER MIDDLE DOT ??? */, + '?' /* 251) 0xfb -> SQUARE ROOT */, + '?' /* 252) 0xfc -> POWER OF N */, + 0xb2 /* 253) 0xfd -> POWER OF 2 */, + 0xb3 /* 254) 0xfe -> POWER OF 3 ??? */, + '\377' /* 255) 0xff */, +}; + +/* charset to font character conversion table for + * TERM=linux and unspecified font + */ +static gchar c2f_linux_any[256] = { + '\000' /* 0) 0x00 NUL */, + '\001' /* 1) 0x01 SOH */, + '\002' /* 2) 0x02 STX */, + '\003' /* 3) 0x03 ETX */, + '?' /* 4) 0x04 EOT -> DIAMOND */, + '\005' /* 5) 0x05 ENQ */, + '\006' /* 6) 0x06 ACK */, + '\007' /* 7) 0x07 '\a' */, + '\010' /* 8) 0x08 '\b' */, + '\011' /* 9) 0x09 '\t' */, + '\012' /* 10) 0x0a '\n' */, + '\013' /* 11) 0x0b '\v' */, + '\014' /* 12) 0x0c '\f' */, + '\015' /* 13) 0x0d '\r' */, + '\016' /* 14) 0x0e SO */, + '\017' /* 15) 0x0f SI */, + '>' /* 16) 0x10 DLE -> ARROW POINTING RIGHT */, + '<' /* 17) 0x11 DC1 -> ARROW POINTING LEFT */, + '\022' /* 18) 0x12 DC2 */, + '\023' /* 19) 0x13 DC3 */, + '\024' /* 20) 0x14 DC4 */, + '\025' /* 21) 0x15 NAK */, + '\026' /* 22) 0x16 SYN */, + '\027' /* 23) 0x17 ETB */, + '^' /* 24) 0x18 CAN -> arrow pointing up */, + 'v' /* 25) 0x19 EM -> ARROW POINTING DOWN */, + '\032' /* 26) 0x1a SUB */, + '\033' /* 27) 0x1b ESC */, + '\034' /* 28) 0x1c FS */, + '\035' /* 29) 0x1d GS */, + '\036' /* 30) 0x1e RS */, + '\037' /* 31) 0x1f US */, + '\040' /* 32) 0x20 ' ' */, + '\041' /* 33) 0x21 '!' */, + '\042' /* 34) 0x22 '"' */, + '\043' /* 35) 0x23 '#' */, + '\044' /* 36) 0x24 '$' */, + '\045' /* 37) 0x25 '%' */, + '\046' /* 38) 0x26 '&' */, + '\047' /* 39) 0x27 '\'' */, + '\050' /* 40) 0x28 '(' */, + '\051' /* 41) 0x29 ')' */, + '\052' /* 42) 0x2a '*' */, + '\053' /* 43) 0x2b '+' */, + '\054' /* 44) 0x2c ',' */, + '\055' /* 45) 0x2d '-' */, + '\056' /* 46) 0x2e '.' */, + '\057' /* 47) 0x2f '/' */, + '#' /* 48) 0x30 '0' -> SOLID SQUARE BLOCK / FULL SQUARE (#) */, + '\061' /* 49) 0x31 '1' */, + '\062' /* 50) 0x32 '2' */, + '\063' /* 51) 0x33 '3' */, + '\064' /* 52) 0x34 '4' */, + '\065' /* 53) 0x35 '5' */, + '\066' /* 54) 0x36 '6' */, + '\067' /* 55) 0x37 '7' */, + '\070' /* 56) 0x38 '8' */, + '\071' /* 57) 0x39 '9' */, + '\072' /* 58) 0x3a ':' */, + '\073' /* 59) 0x3b ';' */, + '\074' /* 60) 0x3c '<' */, + '\075' /* 61) 0x3d '=' */, + '\076' /* 62) 0x3e '>' */, + '\077' /* 63) 0x3f '?' */, + '\100' /* 64) 0x40 '@' */, + '\101' /* 65) 0x41 'A' */, + '\102' /* 66) 0x42 'B' */, + '\103' /* 67) 0x43 'C' */, + '\104' /* 68) 0x44 'D' */, + '\105' /* 69) 0x45 'E' */, + '\106' /* 70) 0x46 'F' */, + '\107' /* 71) 0x47 'G' */, + '\110' /* 72) 0x48 'H' */, + '\111' /* 73) 0x49 'I' */, + '\112' /* 74) 0x4a 'J' */, + '\113' /* 75) 0x4b 'K' */, + '\114' /* 76) 0x4c 'L' */, + '\115' /* 77) 0x4d 'M' */, + '\116' /* 78) 0x4e 'N' */, + '\117' /* 79) 0x4f 'O' */, + '\120' /* 80) 0x50 'P' */, + '\121' /* 81) 0x51 'Q' */, + '\122' /* 82) 0x52 'R' */, + '\123' /* 83) 0x53 'S' */, + '\124' /* 84) 0x54 'T' */, + '\125' /* 85) 0x55 'U' */, + '\126' /* 86) 0x56 'V' */, + '\127' /* 87) 0x57 'W' */, + '\130' /* 88) 0x58 'X' */, + '\131' /* 89) 0x59 'Y' */, + '\132' /* 90) 0x5a 'Z' */, + '\133' /* 91) 0x5b '[' */, + '\134' /* 92) 0x5c '\' */, + '\135' /* 93) 0x5d ']' */, + '\136' /* 94) 0x5e '^' */, + '_' /* 95) 0x5f '_' -> BOTTOM HORIZONTAL LINE */, + '\140' /* 96) 0x60 '`' */, + '\141' /* 97) 0x61 'a' */, + '\142' /* 98) 0x62 'b' */, + '\143' /* 99) 0x63 'c' */, + '\144' /* 100) 0x64 'd' */, + '\145' /* 101) 0x65 'e' */, + '\146' /* 102) 0x66 'f' */, + '\147' /* 103) 0x67 'g' */, + '\150' /* 104) 0x68 'h' */, + '\151' /* 105) 0x69 'i' */, + '\152' /* 106) 0x6a 'j' */, + '\153' /* 107) 0x6b 'k' */, + '\154' /* 108) 0x6c 'l' */, + '\155' /* 109) 0x6d 'm' */, + '\156' /* 110) 0x6e 'n' */, + '\157' /* 111) 0x6f 'o' */, + '\160' /* 112) 0x70 'p' */, + '\161' /* 113) 0x71 'q' */, + '\162' /* 114) 0x72 'r' */, + '\163' /* 115) 0x73 's' */, + '\164' /* 116) 0x74 't' */, + '\165' /* 117) 0x75 'u' */, + '\166' /* 118) 0x76 'v' */, + '\167' /* 119) 0x77 'w' */, + '\170' /* 120) 0x78 'x' */, + '\171' /* 121) 0x79 'y' */, + '\172' /* 122) 0x7a 'z' */, + '\173' /* 123) 0x7b '{' */, + '\174' /* 124) 0x7c '|' */, + '\175' /* 125) 0x7d '}' */, + '~' /* 126) 0x7e '~' -> UPPER HORIZONTAL LINE */, + '\177' /* 127) 0x7f DEL */, + '\200' /* 128) 0x80 */, + '\201' /* 129) 0x81 */, + '\202' /* 130) 0x82 */, + '\203' /* 131) 0x83 */, + '\204' /* 132) 0x84 */, + '\205' /* 133) 0x85 */, + '\206' /* 134) 0x86 */, + '\207' /* 135) 0x87 */, + '\210' /* 136) 0x88 */, + '\211' /* 137) 0x89 */, + '\212' /* 138) 0x8a */, + '\213' /* 139) 0x8b */, + '\214' /* 140) 0x8c */, + '\215' /* 141) 0x8d */, + '\216' /* 142) 0x8e */, + '\217' /* 143) 0x8f */, + '\220' /* 144) 0x90 */, + '\221' /* 145) 0x91 */, + '\222' /* 146) 0x92 */, + '\223' /* 147) 0x93 */, + '\224' /* 148) 0x94 */, + '\225' /* 149) 0x95 */, + '\226' /* 150) 0x96 */, + '\227' /* 151) 0x97 */, + '\230' /* 152) 0x98 */, + '\231' /* 153) 0x99 */, + '\232' /* 154) 0x9a */, + '\233' /* 155) 0x9b */, + 0xa3 /* 156) 0x9c -> POUND ??? */, + '\235' /* 157) 0x9d */, + '\236' /* 158) 0x9e */, + '\237' /* 159) 0x9f */, + '\240' /* 160) 0xa0 */, + '\241' /* 161) 0xa1 */, + '\242' /* 162) 0xa2 */, + '\243' /* 163) 0xa3 */, + '\244' /* 164) 0xa4 */, + '\245' /* 165) 0xa5 */, + '\246' /* 166) 0xa6 */, + '\247' /* 167) 0xa7 */, + '\250' /* 168) 0xa8 */, + '\251' /* 169) 0xa9 */, + '\252' /* 170) 0xaa */, + '\253' /* 171) 0xab */, + '\254' /* 172) 0xac */, + '\255' /* 173) 0xad */, + '\256' /* 174) 0xae */, + '\257' /* 175) 0xaf */, + '#' /* 176) 0xb0 -> LIGHT SQUARES / BOARD OF SQUARES / SQUARE (#) */, + '*' /* 177) 0xb1 -> DENSE SQUARES / CHECKER BOARD (STIPPLE) / CHESS BOARD */, + '\262' /* 178) 0xb2 */, + '|' /* 179) 0xb3 -> VERTICAL LINE */, + '+' /* 180) 0xb4 -> RIGHT TEE */, + '\265' /* 181) 0xb5 */, + '\266' /* 182) 0xb6 */, + '\267' /* 183) 0xb7 */, + '\270' /* 184) 0xb8 */, + '\271' /* 185) 0xb9 */, + '\272' /* 186) 0xba */, + '\273' /* 187) 0xbb */, + '\274' /* 188) 0xbc */, + '\275' /* 189) 0xbd */, + '\276' /* 190) 0xbe */, + '+' /* 191) 0xbf -> RIGHT UPPER CORNER */, + '+' /* 192) 0xc0 -> LEFT BOTTOM CORNER */, + '+' /* 193) 0xc1 -> BOTTOM TEE */, + '+' /* 194) 0xc2 -> NORMAL TEE */, + '+' /* 195) 0xc3 -> LEFT TEE */, + '-' /* 196) 0xc4 -> MIDDLE HORIZONTAL LINE */, + '+' /* 197) 0xc5 -> CROSS */, + '\306' /* 198) 0xc6 */, + '\307' /* 199) 0xc7 */, + '\310' /* 200) 0xc8 */, + '\311' /* 201) 0xc9 */, + '\312' /* 202) 0xca */, + '\313' /* 203) 0xcb */, + '\314' /* 204) 0xcc */, + '\315' /* 205) 0xcd */, + '\316' /* 206) 0xce */, + '\317' /* 207) 0xcf */, + '\320' /* 208) 0xd0 */, + '\321' /* 209) 0xd1 */, + '\322' /* 210) 0xd2 */, + '\323' /* 211) 0xd3 */, + '\324' /* 212) 0xd4 */, + '\325' /* 213) 0xd5 */, + '\326' /* 214) 0xd6 */, + '\327' /* 215) 0xd7 */, + '+' /* 216) 0xd8 -> CROSS ??? */, + '+' /* 217) 0xd9 -> RIGHT BOTTOM CORNER */, + '+' /* 218) 0xda -> LEFT UPPER CORNER */, + '\333' /* 219) 0xdb */, + '\334' /* 220) 0xdc */, + '\335' /* 221) 0xdd */, + '\336' /* 222) 0xde */, + '\337' /* 223) 0xdf */, + '\340' /* 224) 0xe0 */, + '\341' /* 225) 0xe1 */, + '\342' /* 226) 0xe2 */, + '?' /* 227) 0xe3 -> PI ??? */, + '\344' /* 228) 0xe4 */, + '\345' /* 229) 0xe5 */, + '\346' /* 230) 0xe6 */, + '\347' /* 231) 0xe7 */, + '\350' /* 232) 0xe8 */, + '\351' /* 233) 0xe9 */, + '\352' /* 234) 0xea */, + '\353' /* 235) 0xeb */, + '\354' /* 236) 0xec */, + '\355' /* 237) 0xed */, + '\356' /* 238) 0xee */, + '\357' /* 239) 0xef */, + '\360' /* 240) 0xf0 */, + '?' /* 241) 0xf1 -> PLUS-MINUS */, + '?' /* 242) 0xf2 -> GREATER-OR-EQUAL ??? */, + '?' /* 243) 0xf3 -> LESS-OR-EQUAL ??? */, + '\364' /* 244) 0xf4 */, + '\365' /* 245) 0xf5 */, + '\366' /* 246) 0xf6 */, + '\367' /* 247) 0xf7 */, + 0xb0 /* 248) 0xf8 -> DEGREE SYMBOL (°) */, + 0xb7 /* 249) 0xf9 -> MIDDLE DOT ??? */, + '?' /* 250) 0xfa -> LOWER MIDDLE DOT ??? */, + '?' /* 251) 0xfb -> SQUARE ROOT */, + '?' /* 252) 0xfc -> POWER OF N */, + 0xb2 /* 253) 0xfd -> POWER OF 2 */, + 0xb3 /* 254) 0xfe -> POWER OF 3 ??? */, + '\377' /* 255) 0xff */, +}; + +/* charset to font character conversion table for + * TERM=vt102 and font -misc-* + */ +static gchar c2f_vt102_misc[256] = { + '\000' /* 0) 0x00 NUL */, + '\001' /* 1) 0x01 SOH */, + '\002' /* 2) 0x02 STX */, + '\003' /* 3) 0x03 ETX */, + '\004' /* 4) 0x04 EOT */, + '\005' /* 5) 0x05 ENQ */, + '\006' /* 6) 0x06 ACK */, + '\007' /* 7) 0x07 '\a' */, + '\010' /* 8) 0x08 '\b' */, + 0x03 /* 9) 0x09 '\t' -> Ht */, + 0x06 /* 10) 0x0a '\n' -> Lf */, + 0x0a /* 11) 0x0b '\v' -> Vt */, + 0x04 /* 12) 0x0c '\f' -> Ff */, + 0x05 /* 13) 0x0d '\r' -> Cr */, + '\016' /* 14) 0x0e SO */, + '\017' /* 15) 0x0f SI */, + '\020' /* 16) 0x10 DLE */, + '\021' /* 17) 0x11 DC1 */, + '\022' /* 18) 0x12 DC2 */, + '\023' /* 19) 0x13 DC3 */, + '\024' /* 20) 0x14 DC4 */, + '\025' /* 21) 0x15 NAK */, + '\026' /* 22) 0x16 SYN */, + '\027' /* 23) 0x17 ETB */, + '\030' /* 24) 0x18 CAN */, + '\031' /* 25) 0x19 EM */, + '\032' /* 26) 0x1a SUB */, + '\033' /* 27) 0x1b ESC */, + '\034' /* 28) 0x1c FS */, + '\035' /* 29) 0x1d GS */, + '\036' /* 30) 0x1e RS */, + '\037' /* 31) 0x1f US */, + '\040' /* 32) 0x20 ' ' */, + '\041' /* 33) 0x21 '!' */, + '\042' /* 34) 0x22 '"' */, + '\043' /* 35) 0x23 '#' */, + '\044' /* 36) 0x24 '$' */, + '\045' /* 37) 0x25 '%' */, + '\046' /* 38) 0x26 '&' */, + '\047' /* 39) 0x27 '\'' */, + '\050' /* 40) 0x28 '(' */, + '\051' /* 41) 0x29 ')' */, + '\052' /* 42) 0x2a '*' */, + '>' /* 43) 0x2b '+' -> ARROW POINTING RIGHT */, + '<' /* 44) 0x2c ',' -> ARROW POINTING LEFT */, + '^' /* 45) 0x2d '-' -> ARROW POINTING UP */, + 'v' /* 46) 0x2e '.' -> ARROW POINTING DOWN */, + '\057' /* 47) 0x2f '/' */, + '\060' /* 48) 0x30 '0' */, + '\061' /* 49) 0x31 '1' */, + '\062' /* 50) 0x32 '2' */, + '\063' /* 51) 0x33 '3' */, + '\064' /* 52) 0x34 '4' */, + '\065' /* 53) 0x35 '5' */, + '\066' /* 54) 0x36 '6' */, + '\067' /* 55) 0x37 '7' */, + '\070' /* 56) 0x38 '8' */, + '\071' /* 57) 0x39 '9' */, + '\072' /* 58) 0x3a ':' */, + '\073' /* 59) 0x3b ';' */, + '\074' /* 60) 0x3c '<' */, + '\075' /* 61) 0x3d '=' */, + '\076' /* 62) 0x3e '>' */, + '\077' /* 63) 0x3f '?' */, + '\100' /* 64) 0x40 '@' */, + '\101' /* 65) 0x41 'A' */, + '\102' /* 66) 0x42 'B' */, + '\103' /* 67) 0x43 'C' */, + '\104' /* 68) 0x44 'D' */, + '\105' /* 69) 0x45 'E' */, + '\106' /* 70) 0x46 'F' */, + '\107' /* 71) 0x47 'G' */, + '\110' /* 72) 0x48 'H' */, + '\111' /* 73) 0x49 'I' */, + '\112' /* 74) 0x4a 'J' */, + '\113' /* 75) 0x4b 'K' */, + '\114' /* 76) 0x4c 'L' */, + '\115' /* 77) 0x4d 'M' */, + '\116' /* 78) 0x4e 'N' */, + '\117' /* 79) 0x4f 'O' */, + '\120' /* 80) 0x50 'P' */, + '\121' /* 81) 0x51 'Q' */, + '\122' /* 82) 0x52 'R' */, + '\123' /* 83) 0x53 'S' */, + '\124' /* 84) 0x54 'T' */, + '\125' /* 85) 0x55 'U' */, + '\126' /* 86) 0x56 'V' */, + '\127' /* 87) 0x57 'W' */, + '\130' /* 88) 0x58 'X' */, + '\131' /* 89) 0x59 'Y' */, + '\132' /* 90) 0x5a 'Z' */, + '\133' /* 91) 0x5b '[' */, + '\134' /* 92) 0x5c '\' */, + '\135' /* 93) 0x5d ']' */, + '\136' /* 94) 0x5e '^' */, + 0x7f /* 95) 0x5f '_' -> SPACE ??? (xterm does this) */, + 0x01 /* 96) 0x60 '`' -> DIAMOND */, + 0x02 /* 97) 0x61 'a' -> SOLID SQUARE BLOCK / FULL SQUARE (#) */, + 0x03 /* 98) 0x62 'b' -> Ht */, + 0x04 /* 99) 0x63 'c' -> Ff */, + 0x05 /* 100) 0x64 'd' -> Cr */, + 0x06 /* 101) 0x65 'e' -> Lf */, + 0xb0 /* 102) 0x66 'f' -> DEGREE SYMBOL (°) */, + 0xb1 /* 103) 0x67 'g' -> PLUS-MINUS */, + 0x09 /* 104) 0x68 'h' -> Nl */, + 0x0a /* 105) 0x69 'i' -> Vt */, + 0x0b /* 106) 0x6a 'j' -> RIGHT BOTTOM CORNER */, + 0x0c /* 107) 0x6b 'k' -> RIGHT UPPER CORNER */, + 0x0d /* 108) 0x6c 'l' -> LEFT UPPER CORNER */, + 0x0e /* 109) 0x6d 'm' -> LEFT BOTTOM CORNER */, + 0x0f /* 110) 0x6e 'n' -> CROSS */, + 0x10 /* 111) 0x6f 'o' -> UPPER HORIZONTAL LINE */, + 0x11 /* 112) 0x70 'p' -> UPPER HORIZONTAL LINE - 1 */, + 0x12 /* 113) 0x71 'q' -> MIDDLE HORIZONTAL LINE */, + 0x13 /* 114) 0x72 'r' -> BOTTOM HORIZONTAL LINE + 1 */, + 0x14 /* 115) 0x73 's' -> BOTTOM HORIZONTAL LINE */, + 0x15 /* 116) 0x74 't' -> LEFT TEE */, + 0x16 /* 117) 0x75 'u' -> RIGHT TEE */, + 0x17 /* 118) 0x76 'v' -> BOTTOM TEE */, + 0x18 /* 119) 0x77 'w' -> NORMAL TEE */, + 0x19 /* 120) 0x78 'x' -> VERTICAL LINE */, + 0x1a /* 121) 0x79 'y' -> LESS-OR-EQUAL ??? */, + 0x1b /* 122) 0x7a 'z' -> GREATER-OR-EQUAL ??? */, + 0x1c /* 123) 0x7b '{' -> PI ??? */, + 0x1d /* 124) 0x7c '|' -> UNEQUAL ??? */, + 0xa3 /* 125) 0x7d '}' -> POUND ??? */, + 0x1f /* 126) 0x7e '~' -> MIDDLE DOT ??? (xterm does this) */, + '\177' /* 127) 0x7f DEL */, + '\200' /* 128) 0x80 */, + '\201' /* 129) 0x81 */, + '\202' /* 130) 0x82 */, + '\203' /* 131) 0x83 */, + '\204' /* 132) 0x84 */, + '\205' /* 133) 0x85 */, + '\206' /* 134) 0x86 */, + '\207' /* 135) 0x87 */, + '\210' /* 136) 0x88 */, + '\211' /* 137) 0x89 */, + '\212' /* 138) 0x8a */, + '\213' /* 139) 0x8b */, + '\214' /* 140) 0x8c */, + '\215' /* 141) 0x8d */, + '\216' /* 142) 0x8e */, + '\217' /* 143) 0x8f */, + '\220' /* 144) 0x90 */, + '\221' /* 145) 0x91 */, + '\222' /* 146) 0x92 */, + '\223' /* 147) 0x93 */, + '\224' /* 148) 0x94 */, + '\225' /* 149) 0x95 */, + '\226' /* 150) 0x96 */, + '\227' /* 151) 0x97 */, + '\230' /* 152) 0x98 */, + '\231' /* 153) 0x99 */, + '\232' /* 154) 0x9a */, + '\233' /* 155) 0x9b */, + '\234' /* 156) 0x9c */, + '\235' /* 157) 0x9d */, + '\236' /* 158) 0x9e */, + '\237' /* 159) 0x9f */, + '\240' /* 160) 0xa0 */, + '\241' /* 161) 0xa1 */, + '\242' /* 162) 0xa2 */, + '\243' /* 163) 0xa3 */, + '\244' /* 164) 0xa4 */, + '\245' /* 165) 0xa5 */, + '\246' /* 166) 0xa6 */, + '\247' /* 167) 0xa7 */, + '\250' /* 168) 0xa8 */, + '\251' /* 169) 0xa9 */, + '\252' /* 170) 0xaa */, + '\253' /* 171) 0xab */, + '\254' /* 172) 0xac */, + '\255' /* 173) 0xad */, + '\256' /* 174) 0xae */, + '\257' /* 175) 0xaf */, + '\260' /* 176) 0xb0 */, + '\261' /* 177) 0xb1 */, + '\262' /* 178) 0xb2 */, + '\263' /* 179) 0xb3 */, + '\264' /* 180) 0xb4 */, + '\265' /* 181) 0xb5 */, + '\266' /* 182) 0xb6 */, + '\267' /* 183) 0xb7 */, + '\270' /* 184) 0xb8 */, + '\271' /* 185) 0xb9 */, + '\272' /* 186) 0xba */, + '\273' /* 187) 0xbb */, + '\274' /* 188) 0xbc */, + '\275' /* 189) 0xbd */, + '\276' /* 190) 0xbe */, + '\277' /* 191) 0xbf */, + '\300' /* 192) 0xc0 */, + '\301' /* 193) 0xc1 */, + '\302' /* 194) 0xc2 */, + '\303' /* 195) 0xc3 */, + '\304' /* 196) 0xc4 */, + '\305' /* 197) 0xc5 */, + '\306' /* 198) 0xc6 */, + '\307' /* 199) 0xc7 */, + '\310' /* 200) 0xc8 */, + '\311' /* 201) 0xc9 */, + '\312' /* 202) 0xca */, + '\313' /* 203) 0xcb */, + '\314' /* 204) 0xcc */, + '\315' /* 205) 0xcd */, + '\316' /* 206) 0xce */, + '\317' /* 207) 0xcf */, + '\320' /* 208) 0xd0 */, + '\321' /* 209) 0xd1 */, + '\322' /* 210) 0xd2 */, + '\323' /* 211) 0xd3 */, + '\324' /* 212) 0xd4 */, + '\325' /* 213) 0xd5 */, + '\326' /* 214) 0xd6 */, + '\327' /* 215) 0xd7 */, + '\330' /* 216) 0xd8 */, + '\331' /* 217) 0xd9 */, + '\332' /* 218) 0xda */, + '\333' /* 219) 0xdb */, + '\334' /* 220) 0xdc */, + '\335' /* 221) 0xdd */, + '\336' /* 222) 0xde */, + '\337' /* 223) 0xdf */, + '\340' /* 224) 0xe0 */, + '\341' /* 225) 0xe1 */, + '\342' /* 226) 0xe2 */, + '\343' /* 227) 0xe3 */, + '\344' /* 228) 0xe4 */, + '\345' /* 229) 0xe5 */, + '\346' /* 230) 0xe6 */, + '\347' /* 231) 0xe7 */, + '\350' /* 232) 0xe8 */, + '\351' /* 233) 0xe9 */, + '\352' /* 234) 0xea */, + '\353' /* 235) 0xeb */, + '\354' /* 236) 0xec */, + '\355' /* 237) 0xed */, + '\356' /* 238) 0xee */, + '\357' /* 239) 0xef */, + '\360' /* 240) 0xf0 */, + '\361' /* 241) 0xf1 */, + '\362' /* 242) 0xf2 */, + '\363' /* 243) 0xf3 */, + '\364' /* 244) 0xf4 */, + '\365' /* 245) 0xf5 */, + '\366' /* 246) 0xf6 */, + '\367' /* 247) 0xf7 */, + '\370' /* 248) 0xf8 */, + '\371' /* 249) 0xf9 */, + '\372' /* 250) 0xfa */, + '\373' /* 251) 0xfb */, + '\374' /* 252) 0xfc */, + '\375' /* 253) 0xfd */, + '\376' /* 254) 0xfe */, + '\377' /* 255) 0xff */, +}; + +/* charset to font character conversion table for + * TERM=vt102 and and unspecified font + */ +static gchar c2f_vt102_any[256] = { + '\000' /* 0) 0x00 NUL */, + '\001' /* 1) 0x01 SOH */, + '\002' /* 2) 0x02 STX */, + '\003' /* 3) 0x03 ETX */, + '\004' /* 4) 0x04 EOT */, + '\005' /* 5) 0x05 ENQ */, + '\006' /* 6) 0x06 ACK */, + '\007' /* 7) 0x07 '\a' */, + '\010' /* 8) 0x08 '\b' */, + '\011' /* 9) 0x09 '\t' */, + '\012' /* 10) 0x0a '\n' */, + '\013' /* 11) 0x0b '\v' */, + '\014' /* 12) 0x0c '\f' */, + '\015' /* 13) 0x0d '\r' */, + '\016' /* 14) 0x0e SO */, + '\017' /* 15) 0x0f SI */, + '\020' /* 16) 0x10 DLE */, + '\021' /* 17) 0x11 DC1 */, + '\022' /* 18) 0x12 DC2 */, + '\023' /* 19) 0x13 DC3 */, + '\024' /* 20) 0x14 DC4 */, + '\025' /* 21) 0x15 NAK */, + '\026' /* 22) 0x16 SYN */, + '\027' /* 23) 0x17 ETB */, + '\030' /* 24) 0x18 CAN */, + '\031' /* 25) 0x19 EM */, + '\032' /* 26) 0x1a SUB */, + '\033' /* 27) 0x1b ESC */, + '\034' /* 28) 0x1c FS */, + '\035' /* 29) 0x1d GS */, + '\036' /* 30) 0x1e RS */, + '\037' /* 31) 0x1f US */, + '\040' /* 32) 0x20 ' ' */, + '\041' /* 33) 0x21 '!' */, + '\042' /* 34) 0x22 '"' */, + '\043' /* 35) 0x23 '#' */, + '\044' /* 36) 0x24 '$' */, + '\045' /* 37) 0x25 '%' */, + '\046' /* 38) 0x26 '&' */, + '\047' /* 39) 0x27 '\'' */, + '\050' /* 40) 0x28 '(' */, + '\051' /* 41) 0x29 ')' */, + '\052' /* 42) 0x2a '*' */, + '>' /* 43) 0x2b '+' -> ARROW POINTING RIGHT */, + '<' /* 44) 0x2c ',' -> ARROW POINTING LEFT */, + '^' /* 45) 0x2d '-' -> ARROW POINTING UP */, + 'v' /* 46) 0x2e '.' -> ARROW POINTING DOWN */, + '\057' /* 47) 0x2f '/' */, + '\060' /* 48) 0x30 '0' */, + '\061' /* 49) 0x31 '1' */, + '\062' /* 50) 0x32 '2' */, + '\063' /* 51) 0x33 '3' */, + '\064' /* 52) 0x34 '4' */, + '\065' /* 53) 0x35 '5' */, + '\066' /* 54) 0x36 '6' */, + '\067' /* 55) 0x37 '7' */, + '\070' /* 56) 0x38 '8' */, + '\071' /* 57) 0x39 '9' */, + '\072' /* 58) 0x3a ':' */, + '\073' /* 59) 0x3b ';' */, + '\074' /* 60) 0x3c '<' */, + '\075' /* 61) 0x3d '=' */, + '\076' /* 62) 0x3e '>' */, + '\077' /* 63) 0x3f '?' */, + '\100' /* 64) 0x40 '@' */, + '\101' /* 65) 0x41 'A' */, + '\102' /* 66) 0x42 'B' */, + '\103' /* 67) 0x43 'C' */, + '\104' /* 68) 0x44 'D' */, + '\105' /* 69) 0x45 'E' */, + '\106' /* 70) 0x46 'F' */, + '\107' /* 71) 0x47 'G' */, + '\110' /* 72) 0x48 'H' */, + '\111' /* 73) 0x49 'I' */, + '\112' /* 74) 0x4a 'J' */, + '\113' /* 75) 0x4b 'K' */, + '\114' /* 76) 0x4c 'L' */, + '\115' /* 77) 0x4d 'M' */, + '\116' /* 78) 0x4e 'N' */, + '\117' /* 79) 0x4f 'O' */, + '\120' /* 80) 0x50 'P' */, + '\121' /* 81) 0x51 'Q' */, + '\122' /* 82) 0x52 'R' */, + '\123' /* 83) 0x53 'S' */, + '\124' /* 84) 0x54 'T' */, + '\125' /* 85) 0x55 'U' */, + '\126' /* 86) 0x56 'V' */, + '\127' /* 87) 0x57 'W' */, + '\130' /* 88) 0x58 'X' */, + '\131' /* 89) 0x59 'Y' */, + '\132' /* 90) 0x5a 'Z' */, + '\133' /* 91) 0x5b '[' */, + '\134' /* 92) 0x5c '\' */, + '\135' /* 93) 0x5d ']' */, + '\136' /* 94) 0x5e '^' */, + ' ' /* 95) 0x5f '_' -> SPACE ??? (xterm does this) */, + '?' /* 96) 0x60 '`' -> DIAMOND */, + '#' /* 97) 0x61 'a' -> SOLID SQUARE BLOCK / FULL SQUARE (#) */, + '?' /* 98) 0x62 'b' -> Ht */, + '?' /* 99) 0x63 'c' -> Ff */, + '?' /* 100) 0x64 'd' -> Cr */, + '?' /* 101) 0x65 'e' -> Lf */, + 0xb0 /* 102) 0x66 'f' -> DEGREE SYMBOL (°) */, + 0xb1 /* 103) 0x67 'g' -> PLUS-MINUS */, + '?' /* 104) 0x68 'h' -> Nl */, + '?' /* 105) 0x69 'i' -> Vt */, + '+' /* 106) 0x6a 'j' -> RIGHT BOTTOM CORNER */, + '+' /* 107) 0x6b 'k' -> RIGHT UPPER CORNER */, + '+' /* 108) 0x6c 'l' -> LEFT UPPER CORNER */, + '+' /* 109) 0x6d 'm' -> LEFT BOTTOM CORNER */, + '+' /* 110) 0x6e 'n' -> CROSS */, + '~' /* 111) 0x6f 'o' -> UPPER HORIZONTAL LINE */, + '?' /* 112) 0x70 'p' -> UPPER HORIZONTAL LINE - 1 */, + '-' /* 113) 0x71 'q' -> MIDDLE HORIZONTAL LINE */, + '?' /* 114) 0x72 'r' -> BOTTOM HORIZONTAL LINE + 1 */, + '_' /* 115) 0x73 's' -> BOTTOM HORIZONTAL LINE */, + '+' /* 116) 0x74 't' -> LEFT TEE */, + '+' /* 117) 0x75 'u' -> RIGHT TEE */, + '+' /* 118) 0x76 'v' -> BOTTOM TEE */, + '+' /* 119) 0x77 'w' -> NORMAL TEE */, + '|' /* 120) 0x78 'x' -> VERTICAL LINE */, + '?' /* 121) 0x79 'y' -> LESS-OR-EQUAL ??? */, + '?' /* 122) 0x7a 'z' -> GREATER-OR-EQUAL ??? */, + '?' /* 123) 0x7b '{' -> PI ??? */, + '?' /* 124) 0x7c '|' -> UNEQUAL ??? */, + 0xa3 /* 125) 0x7d '}' -> POUND ??? */, + '?' /* 126) 0x7e '~' -> MIDDLE DOT ??? (xterm does this) */, + '\177' /* 127) 0x7f DEL */, + '\200' /* 128) 0x80 */, + '\201' /* 129) 0x81 */, + '\202' /* 130) 0x82 */, + '\203' /* 131) 0x83 */, + '\204' /* 132) 0x84 */, + '\205' /* 133) 0x85 */, + '\206' /* 134) 0x86 */, + '\207' /* 135) 0x87 */, + '\210' /* 136) 0x88 */, + '\211' /* 137) 0x89 */, + '\212' /* 138) 0x8a */, + '\213' /* 139) 0x8b */, + '\214' /* 140) 0x8c */, + '\215' /* 141) 0x8d */, + '\216' /* 142) 0x8e */, + '\217' /* 143) 0x8f */, + '\220' /* 144) 0x90 */, + '\221' /* 145) 0x91 */, + '\222' /* 146) 0x92 */, + '\223' /* 147) 0x93 */, + '\224' /* 148) 0x94 */, + '\225' /* 149) 0x95 */, + '\226' /* 150) 0x96 */, + '\227' /* 151) 0x97 */, + '\230' /* 152) 0x98 */, + '\231' /* 153) 0x99 */, + '\232' /* 154) 0x9a */, + '\233' /* 155) 0x9b */, + '\234' /* 156) 0x9c */, + '\235' /* 157) 0x9d */, + '\236' /* 158) 0x9e */, + '\237' /* 159) 0x9f */, + '\240' /* 160) 0xa0 */, + '\241' /* 161) 0xa1 */, + '\242' /* 162) 0xa2 */, + '\243' /* 163) 0xa3 */, + '\244' /* 164) 0xa4 */, + '\245' /* 165) 0xa5 */, + '\246' /* 166) 0xa6 */, + '\247' /* 167) 0xa7 */, + '\250' /* 168) 0xa8 */, + '\251' /* 169) 0xa9 */, + '\252' /* 170) 0xaa */, + '\253' /* 171) 0xab */, + '\254' /* 172) 0xac */, + '\255' /* 173) 0xad */, + '\256' /* 174) 0xae */, + '\257' /* 175) 0xaf */, + '\260' /* 176) 0xb0 */, + '\261' /* 177) 0xb1 */, + '\262' /* 178) 0xb2 */, + '\263' /* 179) 0xb3 */, + '\264' /* 180) 0xb4 */, + '\265' /* 181) 0xb5 */, + '\266' /* 182) 0xb6 */, + '\267' /* 183) 0xb7 */, + '\270' /* 184) 0xb8 */, + '\271' /* 185) 0xb9 */, + '\272' /* 186) 0xba */, + '\273' /* 187) 0xbb */, + '\274' /* 188) 0xbc */, + '\275' /* 189) 0xbd */, + '\276' /* 190) 0xbe */, + '\277' /* 191) 0xbf */, + '\300' /* 192) 0xc0 */, + '\301' /* 193) 0xc1 */, + '\302' /* 194) 0xc2 */, + '\303' /* 195) 0xc3 */, + '\304' /* 196) 0xc4 */, + '\305' /* 197) 0xc5 */, + '\306' /* 198) 0xc6 */, + '\307' /* 199) 0xc7 */, + '\310' /* 200) 0xc8 */, + '\311' /* 201) 0xc9 */, + '\312' /* 202) 0xca */, + '\313' /* 203) 0xcb */, + '\314' /* 204) 0xcc */, + '\315' /* 205) 0xcd */, + '\316' /* 206) 0xce */, + '\317' /* 207) 0xcf */, + '\320' /* 208) 0xd0 */, + '\321' /* 209) 0xd1 */, + '\322' /* 210) 0xd2 */, + '\323' /* 211) 0xd3 */, + '\324' /* 212) 0xd4 */, + '\325' /* 213) 0xd5 */, + '\326' /* 214) 0xd6 */, + '\327' /* 215) 0xd7 */, + '\330' /* 216) 0xd8 */, + '\331' /* 217) 0xd9 */, + '\332' /* 218) 0xda */, + '\333' /* 219) 0xdb */, + '\334' /* 220) 0xdc */, + '\335' /* 221) 0xdd */, + '\336' /* 222) 0xde */, + '\337' /* 223) 0xdf */, + '\340' /* 224) 0xe0 */, + '\341' /* 225) 0xe1 */, + '\342' /* 226) 0xe2 */, + '\343' /* 227) 0xe3 */, + '\344' /* 228) 0xe4 */, + '\345' /* 229) 0xe5 */, + '\346' /* 230) 0xe6 */, + '\347' /* 231) 0xe7 */, + '\350' /* 232) 0xe8 */, + '\351' /* 233) 0xe9 */, + '\352' /* 234) 0xea */, + '\353' /* 235) 0xeb */, + '\354' /* 236) 0xec */, + '\355' /* 237) 0xed */, + '\356' /* 238) 0xee */, + '\357' /* 239) 0xef */, + '\360' /* 240) 0xf0 */, + '\361' /* 241) 0xf1 */, + '\362' /* 242) 0xf2 */, + '\363' /* 243) 0xf3 */, + '\364' /* 244) 0xf4 */, + '\365' /* 245) 0xf5 */, + '\366' /* 246) 0xf6 */, + '\367' /* 247) 0xf7 */, + '\370' /* 248) 0xf8 */, + '\371' /* 249) 0xf9 */, + '\372' /* 250) 0xfa */, + '\373' /* 251) 0xfb */, + '\374' /* 252) 0xfc */, + '\375' /* 253) 0xfd */, + '\376' /* 254) 0xfe */, + '\377' /* 255) 0xff */, +}; diff -uNr gnome-0.11/programs/gemvt/gtkvtemu.c gnome-0.12/programs/gemvt/gtkvtemu.c --- gnome-0.11/programs/gemvt/gtkvtemu.c Sat Dec 6 09:04:00 1997 +++ gnome-0.12/programs/gemvt/gtkvtemu.c Tue Jan 20 21:52:42 1998 @@ -1,7 +1,7 @@ /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * - * gtkvtemu: virtual terminal emulation for GtkTerm + * gtkvtemu: virtual terminal emulation for GtkTty * Copyright (C) 1997 Tim Janik * * This library is free software; you can redistribute it and/or @@ -19,41 +19,18 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include -#include "gtkvtemu.h" +#include "gtkvtemui.h" -typedef struct _GtkVtEmuTermEntry GtkVtEmuTermEntry; - -typedef enum -{ - GTK_VTEMU_ID_FIRST, - GTK_VTEMU_ID_LINUX, - GTK_VTEMU_ID_XTERM, - GTK_VTEMU_ID_LAST -} GtkVtEmuInternalId; - -struct _GtkVtEmuTermEntry -{ - GtkVtEmuInternalId internal_id; - guint vtemu_struct_size; - GtkVtEmuInputFunc *input_func; - GtkVtEmuResetFunc *reset_func; - gchar **terminal_types; -}; - - -/* --- VT102/VT100/LINUX --- */ -#include "gtkvt102.c" -/* amongst the function implementations, - * this defines gtk_vt102_entry of GtkVtEmuTermEntry - */ +/* --- terminal emulations --- */ +#include "gtkvt102.h" /* --- VT Emulation list --- */ static GtkVtEmuTermEntry *gtk_vtemu_entries[] = { - >k_vt102_entry, + >k_vt102_entry /* vt102 / vt100 / linux */, }; static guint gtk_vtemu_n_entries = sizeof (gtk_vtemu_entries) / sizeof (GtkVtEmuTermEntry*); @@ -62,54 +39,64 @@ /* --- functions --- */ GList* -gtk_vtemu_get_types (void) +gtk_vtemu_create_type_list (void) { guint i; GList *list; list = NULL; - for (i = 0; i < gtk_vtemu_n_entries; i++) + i = gtk_vtemu_n_entries; + do { GtkVtEmuTermEntry *entry; guint n; - + + i--; entry = gtk_vtemu_entries[i]; - for (n = 0; entry->terminal_types[n]; n++) + n = entry->n_terminal_types; + do + { + n--; list = g_list_prepend (list, entry->terminal_types[n]); + } + while (n > 0); } + while (i > 0); - list = g_list_reverse (list); + /* list = g_list_reverse (list); */ return list; } GtkVtEmu* -gtk_vtemu_new (GtkTerm *term, - gchar *terminal_type) +gtk_vtemu_new (GtkTerm *term, + const gchar *terminal_type) { GtkVtEmuTermEntry *entry; GtkVtEmu *vtemu; - guint nth_type = 0; + guint alias_index = 0; guint i; g_return_val_if_fail (term != NULL, NULL); g_return_val_if_fail (GTK_IS_TERM (term), NULL); g_return_val_if_fail (terminal_type != NULL, NULL); - + entry = NULL; - for (i = 0; i < gtk_vtemu_n_entries && !entry; i++) + for (i = 0; i < gtk_vtemu_n_entries; i++) { - for (nth_type = 0; gtk_vtemu_entries[i]->terminal_types[nth_type]; nth_type++) - if (g_string_equal (gtk_vtemu_entries[i]->terminal_types[nth_type], terminal_type)) + for (alias_index = 0; alias_index < gtk_vtemu_entries[i]->n_terminal_types; alias_index++) + if (g_str_equal (gtk_vtemu_entries[i]->terminal_types[alias_index], (gpointer) terminal_type)) { entry = gtk_vtemu_entries[i]; break; } + if (entry) + break; } if (!entry) { - g_warning ("Could not resolve terminal type `%s'", terminal_type); + g_warning ("Failed to lookup terminal type `%s'", terminal_type); return NULL; } @@ -120,8 +107,10 @@ vtemu->term = term; vtemu->internal_id = entry->internal_id; - vtemu->terminal_type = entry->terminal_types[nth_type]; - vtemu->terminal_aliases = NULL; + vtemu->internal_index = i; + vtemu->terminal_aliases = entry->terminal_types; + vtemu->n_terminal_aliases = entry->n_terminal_types; + vtemu->terminal_type = vtemu->terminal_aliases[alias_index]; vtemu->led_states = 0; vtemu->led_override = FALSE; vtemu->cur_x = 0; @@ -131,8 +120,7 @@ vtemu->insert_mode = FALSE; vtemu->lf_plus_cr = FALSE; vtemu->need_wrap = FALSE; - vtemu->input_func = entry->input_func; - vtemu->reset_func = entry->reset_func; + vtemu->term_inverted = FALSE; vtemu->reporter = NULL; vtemu->reporter_data = NULL; @@ -151,16 +139,16 @@ g_return_val_if_fail (vtemu != NULL, 0); g_return_val_if_fail (vtemu->internal_id > GTK_VTEMU_ID_FIRST, 0); g_return_val_if_fail (vtemu->internal_id < GTK_VTEMU_ID_LAST, 0); - g_return_val_if_fail (vtemu->input_func != NULL, 0); + g_return_val_if_fail (vtemu->internal_index < gtk_vtemu_n_entries, 0); - return_val = (*vtemu->input_func) (vtemu, buffer, count); + return_val = (* gtk_vtemu_entries[vtemu->internal_index]->input_func) (vtemu, buffer, count); return return_val; } void gtk_vtemu_report (GtkVtEmu *vtemu, - guchar *buffer, + const guchar *buffer, guint count) { g_return_if_fail (vtemu != NULL); @@ -191,9 +179,20 @@ g_return_if_fail (vtemu != NULL); g_return_if_fail (vtemu->internal_id > GTK_VTEMU_ID_FIRST); g_return_if_fail (vtemu->internal_id < GTK_VTEMU_ID_LAST); - g_return_if_fail (vtemu->reset_func != NULL); + g_return_if_fail (vtemu->internal_index < gtk_vtemu_n_entries); - (*vtemu->reset_func) (vtemu, blank_screen != FALSE); + (* gtk_vtemu_entries[vtemu->internal_index]->reset_func) (vtemu, blank_screen != FALSE); +} + +void +gtk_vtemu_invert (GtkVtEmu *vtemu) +{ + g_return_if_fail (vtemu != NULL); + g_return_if_fail (vtemu->internal_id > GTK_VTEMU_ID_FIRST); + g_return_if_fail (vtemu->internal_id < GTK_VTEMU_ID_LAST); + + vtemu->term_inverted = ! vtemu->term_inverted; + gtk_term_invert (vtemu->term); } void diff -uNr gnome-0.11/programs/gemvt/gtkvtemu.h gnome-0.12/programs/gemvt/gtkvtemu.h --- gnome-0.11/programs/gemvt/gtkvtemu.h Sat Dec 6 09:04:00 1997 +++ gnome-0.12/programs/gemvt/gtkvtemu.h Tue Jan 20 21:52:42 1998 @@ -1,7 +1,7 @@ /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * - * gtkvtemu: virtual terminal emulation for GtkTerm + * gtkvtemu: virtual terminal emulation for GtkTty * Copyright (C) 1997 Tim Janik * * This library is free software; you can redistribute it and/or @@ -32,17 +32,11 @@ -typedef struct _GtkVtEmu GtkVtEmu; - -typedef guint (GtkVtEmuInputFunc) (GtkVtEmu *vtemu, - const guchar *buffer, - guint count); -typedef void (GtkVtEmuResetFunc) (GtkVtEmu *vtemu, - gboolean blank_screen); -typedef void (GtkVtEmuReporter) (GtkVtEmu *vtemu, - guchar *buffer, - guint count, - gpointer user_data); +typedef struct _GtkVtEmu GtkVtEmu; +typedef void (GtkVtEmuReporter) (GtkVtEmu *vtemu, + const guchar *buffer, + guint count, + gpointer user_data); struct _GtkVtEmu @@ -50,9 +44,11 @@ GtkTerm *term; guint internal_id; + guint internal_index; gchar *terminal_type; - GList *terminal_aliases; + gchar **terminal_aliases; + guint n_terminal_aliases; guint32 led_states; gboolean led_override; @@ -63,29 +59,29 @@ gboolean insert_mode; gboolean lf_plus_cr; gboolean need_wrap; - - GtkVtEmuInputFunc *input_func; - GtkVtEmuResetFunc *reset_func; + gboolean term_inverted; GtkVtEmuReporter *reporter; gpointer reporter_data; }; -GList* gtk_vtemu_get_types (void); +GList* gtk_vtemu_create_type_list (void); + GtkVtEmu* gtk_vtemu_new (GtkTerm *term, - gchar *terminal_type); + const gchar *terminal_type); guint gtk_vtemu_input (GtkVtEmu *vtemu, const guchar *buffer, guint count); void gtk_vtemu_report (GtkVtEmu *vtemu, - guchar *buffer, + const guchar *buffer, guint count); void gtk_vtemu_set_reporter (GtkVtEmu *vtemu, GtkVtEmuReporter *callback, gpointer user_data); void gtk_vtemu_reset (GtkVtEmu *vtemu, gboolean blank_screen); +void gtk_vtemu_invert (GtkVtEmu *vtemu); void gtk_vtemu_destroy (GtkVtEmu *vtemu); diff -uNr gnome-0.11/programs/gemvt/gtkvtemui.h gnome-0.12/programs/gemvt/gtkvtemui.h --- gnome-0.11/programs/gemvt/gtkvtemui.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gtkvtemui.h Tue Jan 20 21:52:42 1998 @@ -0,0 +1,76 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * gtkvtemui: virtual terminal emulation interface for GtkTty + * Copyright (C) 1997 Tim Janik + * + * This library 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 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __GTK_VT_EMU_INTERFACE_H__ +#define __GTK_VT_EMU_INTERFACE_H__ + + +#include "gtkvtemu.h" + + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + + + +typedef enum +{ + GTK_VTEMU_ID_FIRST, + GTK_VTEMU_ID_LINUX, + /* GTK_VTEMU_ID_XTERM, */ + GTK_VTEMU_ID_LAST +} GtkVtEmuInterfaceId; + + +typedef guint (GtkVtEmuInputFunc) (GtkVtEmu *vtemu, + const guchar *buffer, + guint count); +typedef void (GtkVtEmuResetFunc) (GtkVtEmu *vtemu, + gboolean blank_screen); + + +typedef struct _GtkVtEmuTermEntry GtkVtEmuTermEntry; + +struct _GtkVtEmuTermEntry +{ + GtkVtEmuInterfaceId internal_id; + guint vtemu_struct_size; + GtkVtEmuInputFunc *input_func; + GtkVtEmuResetFunc *reset_func; + gchar **terminal_types; + guint n_terminal_types; +}; + + + + + + + + +#ifdef __cplusplus +#pragma { +} +#endif /* __cplusplus */ + + +#endif /* __GTK_VT_EMU_INTERFACE_H__ */ diff -uNr gnome-0.11/programs/gemvt/gvtconf.c gnome-0.12/programs/gemvt/gvtconf.c --- gnome-0.11/programs/gemvt/gvtconf.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gvtconf.c Wed Jan 21 17:45:30 1998 @@ -0,0 +1,206 @@ +/* GemVt - GNU Emulator of a Virtual Terminal + * Copyright (C) 1997 Tim Janik + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#include "config.h" +#include "gvtconf.h" +#include +#include +#include +#include + + + +/* --- defines --- */ +#define EXIT_PROCESS (-129) + + +/* --- variables --- */ +gchar *prg_name = NULL; + + +/* --- command line arguments --- */ +enum { + ARG_HELP = 'h', + ARG_EXEC = 'e', + ARG_STATUS_BAR = 'x', + ARG_IGNORE = 256, + ARG_VERSION, +}; +static gchar short_options[] = { + ARG_HELP, + ARG_EXEC, ':', + ARG_STATUS_BAR, ':', ':', + 0 +}; +static struct option long_options[] = { + { "help", no_argument, NULL, ARG_HELP }, + { "execute", required_argument, NULL, ARG_EXEC }, + { "status-bar", optional_argument, NULL, ARG_STATUS_BAR }, + { "version", no_argument, NULL, ARG_VERSION }, + /* Gdk options */ + { "display", required_argument, NULL, ARG_IGNORE }, + { "sync", no_argument, NULL, ARG_IGNORE }, + { "show-events", no_argument, NULL, ARG_IGNORE }, + { "no-show-events", no_argument, NULL, ARG_IGNORE }, + { "no-xshm", no_argument, NULL, ARG_IGNORE }, + { "debug-level", required_argument, NULL, ARG_IGNORE }, + { NULL, 0, NULL, 0 } +}; + +/* --- functions --- */ +gint +gvt_config_args (GvtConfig *config, + FILE *f_error, + gint argc, + gchar *argv[]) +{ + register gint ch; + register gint exit_status; + + g_assert (config); + g_assert (f_error); + g_assert (argc > 0); + g_assert (argv); + + /* initialize getopt() + */ + optarg = NULL; + optind = 0; + optopt = 0; + + /* don't let getopt() print error messages + */ + opterr = 0; + + ch = ~EOF; + exit_status = EXIT_PROCESS; + while (ch != EOF && exit_status == EXIT_PROCESS) + { + static int longindex; + + longindex = -1; + ch = getopt_long (argc, argv, short_options, long_options, &longindex); + switch (ch) + { + register gchar *string; + register guint i; + + case ARG_HELP: + string = g_downcase (g_strdup (prg_name)); + fprintf (f_error, + "usage: %s [ Options ] [ -e [program-args] ]\n" + "Options:\n" + " -e, --execute\t\t" "execute , should be last arg!\n" + " -x, --status-bar\t" "have status bar? [{0|1}]\n" + " -h, --help\t\t" "print usage and exit successfully\n" + " --version\t\t" "print version and exit successfully\n", + string); + g_free (string); + exit_status = 0; + break; + + case EOF: + break; + + case ARG_IGNORE: + break; + + case ARG_STATUS_BAR: + if (optarg) + config->have_status_bar = strtol (optarg, NULL, 10) != 0; + else + config->have_status_bar = TRUE; + break; + + case ARG_VERSION: + fprintf (f_error, "%s %s\n", PRGNAME_LONG, VERSION); + exit_status = 0; + break; + + case '?': + default: + if (optopt != '?' || ch != '?') + { + if (ch != '?') + fprintf (f_error, "%s: invalid option `%c'\n", prg_name, ch); + else if (optopt != ':' && strchr (short_options, optopt)) + fprintf (f_error, "%s: option `%c' misses argument\n", prg_name, optopt); + else + fprintf (f_error, "%s: invalid option `%c'\n", prg_name, optopt); + } + else + { + g_assert (strlen (argv [optind - 1]) > 1); + + i = 0; + while (long_options[i].name && + strcmp (long_options[i].name, &argv[optind - 1][2]) != 0) + i++; + if (long_options[i].name) + fprintf (f_error, "%s: option `%s' misses argument\n", prg_name, long_options[i].name); + else + fprintf (f_error, "%s: invalid option `%s'\n", prg_name, argv[optind - 1]); + } + exit_status = -1; + break; + } + } + + if (exit_status == EXIT_PROCESS) + while (optind < argc) + { + config->strings = g_list_append (config->strings, argv[optind++]); + } + + return exit_status; +} + +gchar* +g_downcase (gchar *string) +{ + register gchar *s; + + g_return_val_if_fail (string, NULL); + + s = string; + + while (*s) + { + *s = tolower (*s); + s++; + } + + return string; +} + +gchar* +g_upcase (gchar *string) +{ + register gchar *s; + + g_return_val_if_fail (string, NULL); + + s = string; + + while (*s) + { + *s = toupper (*s); + s++; + } + + return string; +} diff -uNr gnome-0.11/programs/gemvt/gvtconf.h gnome-0.12/programs/gemvt/gvtconf.h --- gnome-0.11/programs/gemvt/gvtconf.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gvtconf.h Tue Jan 20 21:52:42 1998 @@ -0,0 +1,71 @@ +/* GemVt - GNU Emulator of a Virtual Terminal + * Copyright (C) 1997 Tim Janik + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __GVTCONF_H__ +#define __GVTCONF_H__ + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + + +/* --- typedefs --- */ +typedef struct _GvtConfig GvtConfig; + + +/* --- structures --- */ +struct _GvtConfig +{ + gboolean have_status_bar; + gboolean prefix_dash; + GList *strings; +}; + + +/* --- variables --- */ +extern gchar *prg_name; + + +/* --- prototypes -- */ +/* parse command line arguments and return the exit staus + * of the program. if the returned value is less than -128 + * proceed with execution. + */ +gint gvt_config_args (GvtConfig *config, + FILE *f_error, + gint argc, + gchar *argv[]); +gchar* g_downcase (gchar *string); +gchar* g_upcase (gchar *string); + + + + + + +#ifdef __cplusplus +#pragma { +} +#endif /* __cplusplus */ + + +#endif /* __GVTCONF_H__ */ diff -uNr gnome-0.11/programs/gemvt/gvtgui.c gnome-0.12/programs/gemvt/gvtgui.c --- gnome-0.11/programs/gemvt/gvtgui.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gvtgui.c Tue Jan 20 21:52:42 1998 @@ -0,0 +1,281 @@ +#include "config.h" +#include "gvtgui.h" +#include "gem-r.xpm" +#include "gem-g.xpm" +#include "gem-b.xpm" +#include + + + + +/* -- defines --- */ +#define LABEL_PADDING (5) + + +/* --- prototypes --- */ +static void gvt_status_bar_gem_state (GtkWidget *status_bar, + GvtStateType state); +static void gvt_status_bar_label_state (GtkWidget *status_bar); + + +/* --- functions --- */ +GtkWidget* +gvt_status_bar_new (GtkWidget *parent, + GtkTty *tty) +{ + GtkWidget *status_bar; + GtkWidget *hbox_main; + GtkWidget *vbox_gems; + GdkPixmap *xpm_map; + GdkBitmap *bit_map; + GtkWidget *pixmap; + GtkWidget *label; + GtkWidget *hbox_labels; + GtkWidget *hbox_leds; + register guint i; + + g_assert (parent != NULL); + g_assert (GTK_IS_CONTAINER (parent)); + g_assert (tty != NULL); + g_assert (GTK_IS_TTY (tty)); + + status_bar = gtk_vbox_new (FALSE, 0); + if (GTK_IS_BOX (parent)) + gtk_box_pack_start (GTK_BOX (parent), status_bar, TRUE, TRUE, 0); + else + gtk_container_add (GTK_CONTAINER (parent), status_bar); + gtk_object_set_data (GTK_OBJECT (status_bar), "tty", tty); + + hbox_main = gtk_hbox_new (FALSE, 5); + gtk_box_pack_start (GTK_BOX (status_bar), hbox_main, TRUE, TRUE, 3); + gtk_widget_show (hbox_main); + + vbox_gems = gtk_vbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (hbox_main), vbox_gems, FALSE, FALSE, 3); + gtk_widget_show (vbox_gems); + + bit_map = NULL; + xpm_map = gdk_pixmap_create_from_xpm_d (vbox_gems->window, + &bit_map, + >k_widget_get_style (vbox_gems)->bg[GTK_STATE_NORMAL], + gem_r_xpm); + pixmap = gtk_pixmap_new (xpm_map, bit_map); + gtk_box_pack_start (GTK_BOX (vbox_gems), pixmap, FALSE, FALSE, 0); + gtk_object_set_data (GTK_OBJECT (status_bar), "gem-red", pixmap); + + bit_map = NULL; + xpm_map = gdk_pixmap_create_from_xpm_d (vbox_gems->window, + &bit_map, + >k_widget_get_style (vbox_gems)->bg[GTK_STATE_NORMAL], + gem_g_xpm); + pixmap = gtk_pixmap_new (xpm_map, bit_map); + gtk_box_pack_start (GTK_BOX (vbox_gems), pixmap, FALSE, FALSE, 0); + gtk_object_set_data (GTK_OBJECT (status_bar), "gem-green", pixmap); + + bit_map = NULL; + xpm_map = gdk_pixmap_create_from_xpm_d (vbox_gems->window, + &bit_map, + >k_widget_get_style (vbox_gems)->bg[GTK_STATE_NORMAL], + gem_b_xpm); + pixmap = gtk_pixmap_new (xpm_map, bit_map); + gtk_box_pack_start (GTK_BOX (vbox_gems), pixmap, FALSE, FALSE, 0); + gtk_object_set_data (GTK_OBJECT (status_bar), "gem-blue", pixmap); + + gvt_status_bar_gem_state (status_bar, GVT_STATE_NONE); + + hbox_labels = gtk_hbox_new (FALSE, 5); + gtk_box_pack_start (GTK_BOX (hbox_main), hbox_labels, FALSE, FALSE, 0); + gtk_widget_show (hbox_labels); + + label = gtk_label_new ("-program-"); + gtk_box_pack_start (GTK_BOX (hbox_labels), label, TRUE, TRUE, LABEL_PADDING); + gtk_widget_show (label); + gtk_object_set_data (GTK_OBJECT (status_bar), "label-program", label); + + label = gtk_label_new ("-status-"); + gtk_box_pack_start (GTK_BOX (hbox_labels), label, TRUE, TRUE, LABEL_PADDING + 6); + gtk_widget_show (label); + gtk_object_set_data (GTK_OBJECT (status_bar), "label-status", label); + + label = gtk_label_new ("-time-"); + gtk_box_pack_start (GTK_BOX (hbox_labels), label, TRUE, TRUE, LABEL_PADDING); + if (GTK_TTY_CLASS (GTK_OBJECT (tty)->klass)->meassure_time) + gtk_widget_show (label); + gtk_object_set_data (GTK_OBJECT (status_bar), "label-time", label); + + gvt_status_bar_label_state (status_bar); + + hbox_leds = gtk_hbox_new (FALSE, 5); + gtk_box_pack_end (GTK_BOX (hbox_main), hbox_leds, FALSE, FALSE, 0); + gtk_widget_show (hbox_leds); + for (i = 0; i < 8; i++) + { + GtkWidget *led; + + led = gtk_led_new (); + gtk_box_pack_start (GTK_BOX (hbox_leds), led, TRUE, TRUE, 5); + gtk_widget_show (led); + + gtk_tty_add_update_led (tty, GTK_LED(led), 1 << i); + } + + /* gtk_widget_show (status_bar); */ + + return status_bar; +} + +void +gvt_status_bar_update (GtkWidget *status_bar) +{ + GtkTty *tty; + + g_assert (status_bar != NULL); + g_assert (GTK_IS_CONTAINER (status_bar)); + + tty = gtk_object_get_data (GTK_OBJECT (status_bar), "tty"); + g_assert (tty != NULL); + + if (gtk_object_get_data (GTK_OBJECT (tty), "program")) + gvt_status_bar_gem_state (status_bar, tty->pid ? GVT_STATE_RUNNING : GVT_STATE_DEAD); + else + gvt_status_bar_gem_state (status_bar, tty->pid ? GVT_STATE_RUNNING : GVT_STATE_NONE); + + gvt_status_bar_label_state (status_bar); +} + +static void +gvt_status_bar_gem_state (GtkWidget *status_bar, + GvtStateType state) +{ + GtkWidget *gems[4] = { NULL, NULL, NULL }; + GtkWidget *parent; + guint show = 0; + register guint i; + + gems[0] = gtk_object_get_data (GTK_OBJECT (status_bar), "gem-red"); + gems[1] = gtk_object_get_data (GTK_OBJECT (status_bar), "gem-green"); + gems[2] = gtk_object_get_data (GTK_OBJECT (status_bar), "gem-blue"); + parent = gems[0]->parent; + g_assert (parent); + + switch (state) + { + case GVT_STATE_NONE: + show = 2; + break; + + case GVT_STATE_RUNNING: + show = 1; + break; + + case GVT_STATE_DEAD: + show = 0; + break; + + default: + g_assert_not_reached (); + } + + gtk_container_block_resize (GTK_CONTAINER (parent)); + + for (i = 0; i < 3; i++) + { + if (i == show) + gtk_widget_show (gems[i]); + else + gtk_widget_hide (gems[i]); + } + + gtk_container_unblock_resize (GTK_CONTAINER (parent)); +} + +static void +gvt_status_bar_label_state (GtkWidget *status_bar) +{ +#define SAVE_BUFFER_LENGTH (64) + GtkTty *tty; + GtkWidget *parent; + GtkWidget *label_program; + GtkWidget *label_status; + GtkWidget *label_time; + gchar *program; + gchar state[SAVE_BUFFER_LENGTH]; + gchar sys_time[SAVE_BUFFER_LENGTH]; + gchar user_time[SAVE_BUFFER_LENGTH]; + gchar *buffer; + register guint i; + + tty = gtk_object_get_data (GTK_OBJECT (status_bar), "tty"); + g_assert (tty != NULL); + label_program = gtk_object_get_data (GTK_OBJECT (status_bar), "label-program"); + g_assert (label_program != NULL); + label_status = gtk_object_get_data (GTK_OBJECT (status_bar), "label-status"); + g_assert (label_status != NULL); + label_time = gtk_object_get_data (GTK_OBJECT (status_bar), "label-time"); + g_assert (label_time != NULL); + parent = label_program->parent; + g_assert (parent); + + program = gtk_object_get_data (GTK_OBJECT (tty), "program"); + + if (!program) + { + strcpy (state, "None"); + sys_time[0] = '0'; + sys_time[1] = 0; + user_time[0] = '0'; + user_time[1] = 0; + } + else + { + if (tty->pid) + { + sprintf (state, "running (%d)", tty->pid); + sys_time[0] = '-'; + sys_time[1] = 0; + user_time[0] = '-'; + user_time[1] = 0; + } + else + { + if (tty->exit_signal) + strcpy (state, g_strsignal (tty->exit_signal)); + else + sprintf (state, "Exit [%+d]", tty->exit_status); + + sprintf (sys_time, "%f", tty->sys_sec + tty->sys_usec/1000000.0); + for (i = strlen (sys_time) - 1; sys_time[i] == '0'; i--) + sys_time[i] = 0; + sprintf (user_time, "%f", tty->user_sec + tty->user_usec/1000000.0); + for (i = strlen (user_time) - 1; user_time[i] == '0'; i--) + user_time[i] = 0; + } + } + + gtk_container_block_resize (GTK_CONTAINER (parent)); + + if (program) + { + register guint l; + + l = strlen (program); + if (l > 32) + buffer = g_strconcat ("Program: .../", program + 32 - l, NULL); + else + buffer = g_strconcat ("Program: ", program, NULL); + } + else + buffer = g_strconcat ("Program: ", "None", NULL); + gtk_label_set (GTK_LABEL (label_program), buffer); + g_free (buffer); + + buffer = g_strconcat ("Status: ", state, NULL); + gtk_label_set (GTK_LABEL (label_status), buffer); + g_free (buffer); + + buffer = g_strconcat ("System: ", sys_time, " User: ", user_time, NULL); + gtk_label_set (GTK_LABEL (label_time), buffer); + g_free (buffer); + + gtk_container_unblock_resize (GTK_CONTAINER (parent)); +} diff -uNr gnome-0.11/programs/gemvt/gvtgui.h gnome-0.12/programs/gemvt/gvtgui.h --- gnome-0.11/programs/gemvt/gvtgui.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gvtgui.h Tue Jan 20 21:52:42 1998 @@ -0,0 +1,53 @@ +/* GemVt - GNU Emulator of a Virtual Terminal + * Copyright (C) 1997 Tim Janik + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __GVTGUI_H__ +#define __GVTGUI_H__ + +#include +#include "gtktty.h" + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + + +typedef enum +{ + GVT_STATE_NONE, + GVT_STATE_RUNNING, + GVT_STATE_DEAD +} GvtStateType; + + +GtkWidget* gvt_status_bar_new (GtkWidget *parent, + GtkTty *tty); +void gvt_status_bar_update (GtkWidget *status_bar); + + + + + + +#ifdef __cplusplus +#pragma { +} +#endif /* __cplusplus */ + + +#endif /* __GVTGUI_H__ */ diff -uNr gnome-0.11/programs/gemvt/gvtmain.c gnome-0.12/programs/gemvt/gvtmain.c --- gnome-0.11/programs/gemvt/gvtmain.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gemvt/gvtmain.c Wed Jan 21 17:45:30 1998 @@ -0,0 +1,878 @@ +/* GemVt - GNU Emulator of a Virtual Terminal + * Copyright (C) 1997 Tim Janik + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "config.h" +#include "gtktty.h" +#include "gtkled.h" +#include "gvtgui.h" +#include "gvtconf.h" +#include "gemvt.xpm" +#include +#include +#include +#include + +#ifdef HAVE_GNOME +# include +#endif HAVE_GNOME + +#ifdef HAVE_LIBGLE +# include +#endif /* HAVE_LIBGLE */ + + +/* --- typedefs --- */ +typedef struct +{ + GdkColor *back_col; + GdkColor *fore_col; + GdkColor *dim_col; + GdkColor *bold_col; + guint32 back_val; + guint32 fore_val; + guint32 dim_val; + guint32 bold_val; +} GvtColorEntry; + +enum +{ + GVT_VOIDLINE, + GVT_ONLINE, + GVT_OFFLINE +}; + +/* --- prototypes --- */ +static RETSIGTYPE gvt_signal_handler (int sig_num); +static gint gvt_tty_key_press (GtkTty *tty, + const gchar *char_code, + guint length, + guint keyval, + guint key_state, + gpointer data); +static gint gvt_tty_button_press (GtkWidget *widget, + GdkEventButton *event); +static void gvt_execute (GtkWidget *widget, + gpointer user_data); +static void gvt_program_exec (GtkTty *tty, + const gchar *prg_name, + gchar * const argv[], + gchar * const envp[], + gpointer user_data); +static void gvt_program_exit (GtkTty *tty, + const gchar *prg_name, + gchar exit_status, + guint exit_signal, + gpointer user_data); +static void gvt_term_set_color_table(GtkTerm *term, + GdkColormap *cmap, + GvtColorEntry *color_table, + guint len, + guint first); +static void gtk_menu_position_func (GtkMenu *menu, + gint *x, + gint *y, + gpointer user_data); +static void gvt_menu_adjust (GtkMenu *menu); +static void gvt_menus_setup (void); + + + +/* --- external variables --- */ +/* hm, seems like some systems miss the automatic declaration + * of the environment char array, so we explicitly declare it + * here, and implicitly assume every system has it... + */ +extern char **environ; + +/* --- static variables --- */ +static GvtColorEntry color_table[] = +{ + { NULL, NULL, NULL, NULL, 0x000000, 0x000000, 0x000000, 0x000000 }, /* black */ + { NULL, NULL, NULL, NULL, 0xd00000, 0xd00000, 0x880000, 0xff0000 }, /* red */ + { NULL, NULL, NULL, NULL, 0x00d000, 0x00d000, 0x008800, 0x00ff00 }, /* green */ + { NULL, NULL, NULL, NULL, 0xd0d000, 0xd0d000, 0x888800, 0xffff00 }, /* orange */ + { NULL, NULL, NULL, NULL, 0x0000d0, 0x0000d0, 0x000088, 0x0000ff }, /* blue */ + { NULL, NULL, NULL, NULL, 0xd000d0, 0xd000d0, 0x880088, 0xff00ff }, /* pink */ + { NULL, NULL, NULL, NULL, 0x00d0d0, 0x00d0d0, 0x008888, 0x00ffff }, /* cyan */ + { NULL, NULL, NULL, NULL, 0xd0d0d0, 0xd0d0d0, 0x888888, 0xffffff }, /* white */ +}; +static GtkMenu *menu_1 = NULL; +static GtkMenu *menu_2; +static GtkMenu *menu_3; +static GtkTty *menu_tty; +static gint menu_pos_x, menu_pos_y; +static GvtConfig config = +{ + TRUE /* have_status_bar */, + FALSE /* prefix_dash */, + NULL /* strings */, +}; + + +/* --- main() --- */ +int +main (int argc, + char *argv[]) +{ + gchar *home_dir; + gchar *rc_file; + guchar *string; + GtkWidget *window; + GtkWidget *main_vbox; + GtkWidget *tty_vbox; + GtkWidget *status_hbox; + GtkWidget *tty_hbox; + GtkWidget *status_bar; + GtkWidget *label; + GtkWidget *tty; + GtkWidget *exec_hbox; + GtkWidget *entry; + guint id; + gint exit_status; + + + prg_name = g_strdup (argv[0]); + + /* parse arguments + */ + exit_status = gvt_config_args (&config, stderr, argc, argv); + if (exit_status > -129) + return exit_status; + + + /* Gtk+/GNOME/GLE initialization + */ +#ifdef HAVE_GNOME + gnome_init(&argc, &argv); +#else /* !HAVE_GNOME */ + gtk_init (&argc, &argv); +#endif /* !HAVE_GNOME */ + +#ifdef HAVE_LIBGLE + gle_init (&argc, &argv); +#endif /* HAVE_LIBGLE */ + + + /* parse ~/.gtkrc, (this file also ommitted by the gnome_init stuff + */ + home_dir = getenv ("HOME"); + if (!home_dir) /* fatal! */ + home_dir = "."; + + string = "gtkrc"; + rc_file = g_new (gchar, strlen (home_dir) + 2 + strlen (string) + 1); + *rc_file = 0; + strcat (rc_file, home_dir); + strcat (rc_file, "/."); + strcat (rc_file, string); + + /* printf("%s\n", rc_file); + */ + gtk_rc_parse (rc_file); + g_free (rc_file); + + string = strrchr (prg_name, '/'); + if (string) + string++; + else + string = prg_name; + rc_file = g_new (gchar, strlen (home_dir) + 2 + strlen (string) + 2 + 1); + *rc_file = 0; + strcat (rc_file, home_dir); + strcat (rc_file, "/."); + strcat (rc_file, string); + strcat (rc_file, "rc"); + + /* parse ~/.rc + */ + /* printf("%s\n", rc_file); + */ + /* FIXME: invoke rc-parser here */ + g_free (rc_file); + + + /* catch system signals + */ + gvt_signal_handler (0); + + + /* build gui + */ + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "GemVt"); + gtk_window_set_policy (GTK_WINDOW (window), + TRUE, + TRUE, + TRUE); + gtk_signal_connect_object (GTK_OBJECT (window), + "delete_event", + GTK_SIGNAL_FUNC (gtk_main_quit), + NULL); + + main_vbox = gtk_vbox_new (FALSE, 5); + gtk_container_border_width (GTK_CONTAINER (main_vbox), 2); + gtk_container_add (GTK_CONTAINER (window), main_vbox); + gtk_widget_show (main_vbox); + + tty_hbox = gtk_hbox_new (FALSE, 0); + gtk_container_border_width (GTK_CONTAINER (tty_hbox), 0); + gtk_box_pack_start (GTK_BOX (main_vbox), tty_hbox, TRUE, TRUE, 0); + gtk_widget_show (tty_hbox); + + tty_vbox = gtk_vbox_new (FALSE, 0); + gtk_container_border_width (GTK_CONTAINER (tty_vbox), 0); + gtk_box_pack_start (GTK_BOX (tty_hbox), tty_vbox, FALSE, FALSE, 0); + gtk_widget_show (tty_vbox); + + status_hbox = gtk_hbox_new (FALSE, 0); + gtk_container_border_width (GTK_CONTAINER (status_hbox), 0); + gtk_box_pack_start (GTK_BOX (tty_vbox), status_hbox, FALSE, TRUE, 0); + gtk_widget_show (status_hbox); + + string = + "Hi, this is GemVt bothering you ;)\n\r" + "Enter `-bash' or something the like and\n\r" + "Have Fun!!!\n\r"; + + tty = gtk_tty_new (80, 25, 99); + gtk_tty_put_out (GTK_TTY (tty), string, strlen (string)); + gtk_box_pack_start (GTK_BOX (tty_vbox), tty, TRUE, TRUE, 0); + gtk_widget_show (tty); + id = gtk_signal_connect (GTK_OBJECT (tty), + "key_press", + GTK_SIGNAL_FUNC (gvt_tty_key_press), + NULL); + gtk_object_set_data (GTK_OBJECT (tty), "key_press_hid", (gpointer) id); + gtk_signal_connect (GTK_OBJECT (tty), + "button_press_event", + GTK_SIGNAL_FUNC (gvt_tty_button_press), + NULL); + gvt_term_set_color_table (GTK_TERM (tty), + /* gdk_colormap_get_system (), */ + gtk_widget_get_colormap (GTK_WIDGET (tty)), + color_table, + sizeof (color_table) / sizeof (GvtColorEntry), + 0); + + status_bar = gvt_status_bar_new (status_hbox, GTK_TTY (tty)); + if (config.have_status_bar) + gtk_widget_show (status_bar); + gtk_object_set_data (GTK_OBJECT (tty), "status-bar", status_bar); + + exec_hbox = gtk_hbox_new (FALSE, 5); + gtk_box_pack_start (GTK_BOX (main_vbox), exec_hbox, FALSE, TRUE, 0); + gtk_widget_show (exec_hbox); + + label = gtk_label_new ("Execute:"); + gtk_box_pack_start (GTK_BOX (exec_hbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + entry = gtk_entry_new (); + gtk_box_pack_start (GTK_BOX (exec_hbox), entry, TRUE, TRUE, 5); + gtk_widget_show (entry); + gtk_signal_connect (GTK_OBJECT (entry), + "activate", + GTK_SIGNAL_FUNC (gvt_execute), + tty); + + gtk_signal_connect (GTK_OBJECT (tty), + "program_exec", + GTK_SIGNAL_FUNC (gvt_program_exec), + entry); + gtk_signal_connect (GTK_OBJECT (tty), + "program_exit", + GTK_SIGNAL_FUNC (gvt_program_exit), + entry); + gtk_widget_grab_focus (GTK_WIDGET (entry)); + + gtk_widget_show (window); + + gvt_menus_setup (); + + + /* gtk's main loop + */ + gtk_main (); + + gtk_widget_destroy (window); + + /* exit program + */ + return 0; +} + + +RETSIGTYPE +gvt_signal_handler (int sig_num) +{ + static gboolean in_call = FALSE; + + if (in_call) + { + fprintf (stderr, + "\naborting on another signal: `%s'\n", + g_strsignal (sig_num)); + fflush (stderr); + gtk_exit (-1); + } + else + in_call = TRUE; + + signal (SIGINT, gvt_signal_handler); + signal (SIGTRAP, gvt_signal_handler); + signal (SIGABRT, gvt_signal_handler); + signal (SIGBUS, gvt_signal_handler); + signal (SIGSEGV, gvt_signal_handler); + signal (SIGPIPE, gvt_signal_handler); + /* signal (SIGTERM, gvt_signal_handler); */ + + if (sig_num > 0) + { + fprintf (stderr, "%s: (pid: %d) caught signal: `%s'\n", + prg_name, + getpid (), + g_strsignal (sig_num)); + fflush (stderr); + g_debug (prg_name); + } + in_call = FALSE; +} + +static void +gvt_execute (GtkWidget *widget, + gpointer user_data) +{ + GtkEntry *entry; + GtkTty *tty; + + g_return_if_fail (widget != NULL); + g_return_if_fail (GTK_IS_ENTRY (widget)); + g_return_if_fail (user_data != NULL); + g_return_if_fail (GTK_IS_TTY (user_data)); + + entry = GTK_ENTRY (widget); + tty = GTK_TTY (user_data); + + if (tty->pid) + g_warning ("Program already running: %d", tty->pid); + else + { + guchar *prg = NULL; + GList *args; + guchar *p; + guchar *s, *e, *f; + + s = g_strdup (gtk_entry_get_text (entry)); + f = s; + e = s + strlen (s); + + p = strchr (s, ' '); + if (p) + { + *p = 0; + prg = s; + s = p + 1; + } + else if (s < e) + { + prg = s; + s = e; + } + + args = NULL; + p = strchr (s, ' '); + while (p || s < e) + { + if (p) + { + *p = 0; + args = g_list_append (args, s); + s = p + 1; + } + else if (s < e) + { + args = g_list_append (args, s); + s = e; + } + + p = strchr (s, ' '); + } + + if (prg) + { + gchar **argv; + GList *list; + guint i; + + argv = g_new (gchar*, g_list_length (args) + 1 + 1); + + argv[0] = prg; + + if (prg[0] == '-') + prg++; + + list = args; + i = 1; + while (list) + { + argv[i++] = list->data; + list = list->next; + } + argv[i] = NULL; + + putenv ("TERM="); + + gtk_tty_execute (tty, prg, argv, environ); + + g_free (argv); + } + + g_list_free (args); + g_free (f); + } +} + +static void +gvt_program_exec (GtkTty *tty, + const gchar *prg_name, + gchar * const argv[], + gchar * const envp[], + gpointer user_data) +{ + GtkWidget *status_bar; + GtkEntry *entry; + register guint id; + + g_return_if_fail (tty != NULL); + g_return_if_fail (GTK_IS_TTY (tty)); + g_return_if_fail (user_data != NULL); + g_return_if_fail (GTK_IS_ENTRY (user_data)); + + entry = GTK_ENTRY (user_data); + status_bar = gtk_object_get_data (GTK_OBJECT (tty), "status-bar"); + g_assert (status_bar != NULL); + + id = (gint) gtk_object_get_data (GTK_OBJECT (tty), "key_press_hid"); + if (id) + { + gtk_signal_disconnect (GTK_OBJECT (tty), id); + gtk_object_set_data (GTK_OBJECT (tty), "key_press_hid", (gpointer) 0); + } + + gtk_object_set_data (GTK_OBJECT (tty), "program", (gpointer) prg_name); + + gvt_status_bar_update (status_bar); + + if (GTK_WIDGET_HAS_FOCUS (entry)) + gtk_widget_grab_focus (GTK_WIDGET (tty)); +} + +static void +gvt_program_exit (GtkTty *tty, + const gchar *prg_name, + gchar exit_status, + guint exit_signal, + gpointer user_data) +{ + GtkEntry *entry; + GtkWidget *status_bar; + register guint id; + + g_return_if_fail (tty != NULL); + g_return_if_fail (GTK_IS_TTY (tty)); + g_return_if_fail (user_data != NULL); + g_return_if_fail (GTK_IS_ENTRY (user_data)); + + entry = GTK_ENTRY (user_data); + status_bar = gtk_object_get_data (GTK_OBJECT (tty), "status-bar"); + g_assert (status_bar != NULL); + + id = (gint) gtk_object_get_data (GTK_OBJECT (tty), "key_press_hid"); + g_assert (id == 0); + id = gtk_signal_connect (GTK_OBJECT (tty), + "key_press", + GTK_SIGNAL_FUNC (gvt_tty_key_press), + NULL); + gtk_object_set_data (GTK_OBJECT (tty), "key_press_hid", (gpointer) id); + + gvt_status_bar_update (status_bar); + + gtk_object_set_data (GTK_OBJECT (tty), "program", NULL); + + if (GTK_WIDGET_HAS_FOCUS (tty)) + gtk_widget_grab_focus (GTK_WIDGET (entry)); +} + +void +gvt_term_set_color_table (GtkTerm *term, + GdkColormap *cmap, + GvtColorEntry *color_table, + guint len, + guint first) +{ + guint i; + + g_assert (term && GTK_IS_TERM (term)); + g_assert (cmap); + g_assert (color_table); + + for (i = 0; i < len; i++) + { + GdkColor *dim; + GdkColor *bold; + + if (!color_table[i].back_col) + { + color_table[i].back_col = g_new0 (GdkColor, 1); + color_table[i].back_col->red = color_table[i].back_val >> 8 & 0xff00; + color_table[i].back_col->red += color_table[i].back_col->red >> 8; + color_table[i].back_col->green = color_table[i].back_val & 0xff00; + color_table[i].back_col->green += color_table[i].back_col->green >> 8; + color_table[i].back_col->blue = color_table[i].back_val & 0xff; + color_table[i].back_col->blue += color_table[i].back_col->blue << 8; + + if (!gdk_color_alloc (cmap, color_table[i].back_col)) + { + g_warning ("failed to allocate background color #%06X (%d)", + color_table[i].back_val, + i); + g_free (color_table[i].back_col); + color_table[i].back_col = NULL; + continue; + } + } + + if (!color_table[i].fore_col) + { + color_table[i].fore_col = g_new0 (GdkColor, 1); + color_table[i].fore_col->red = color_table[i].fore_val >> 8 & 0xff00; + color_table[i].fore_col->red += color_table[i].fore_col->red >> 8; + color_table[i].fore_col->green = color_table[i].fore_val & 0xff00; + color_table[i].fore_col->green += color_table[i].fore_col->green >> 8; + color_table[i].fore_col->blue = color_table[i].fore_val & 0xff; + color_table[i].fore_col->blue += color_table[i].fore_col->blue << 8; + + if (!gdk_color_alloc (cmap, color_table[i].fore_col)) + { + g_warning ("failed to allocate foreground color #%06X (%d)", + color_table[i].fore_val, + i); + g_free (color_table[i].fore_col); + color_table[i].fore_col = NULL; + continue; + } + } + + if (!color_table[i].dim_col) + { + color_table[i].dim_col = g_new0 (GdkColor, 1); + color_table[i].dim_col->red = color_table[i].dim_val >> 8 & 0xff00; + color_table[i].dim_col->red += color_table[i].dim_col->red >> 8; + color_table[i].dim_col->green = color_table[i].dim_val & 0xff00; + color_table[i].dim_col->green += color_table[i].dim_col->green >> 8; + color_table[i].dim_col->blue = color_table[i].dim_val & 0xff; + color_table[i].dim_col->blue += color_table[i].dim_col->blue << 8; + + if (!gdk_color_alloc (cmap, color_table[i].dim_col)) + { + g_warning ("failed to allocate dimmed foreground color #%06X (%d) (using foreground)", + color_table[i].dim_val, + i); + g_free (color_table[i].dim_col); + color_table[i].dim_col = NULL; + dim = color_table[i].fore_col; + } + else + dim = color_table[i].dim_col; + } + else + dim = color_table[i].dim_col; + + if (!color_table[i].bold_col) + { + color_table[i].bold_col = g_new0 (GdkColor, 1); + color_table[i].bold_col->red = color_table[i].bold_val >> 8 & 0xff00; + color_table[i].bold_col->red += color_table[i].bold_col->red >> 8; + color_table[i].bold_col->green = color_table[i].bold_val & 0xff00; + color_table[i].bold_col->green += color_table[i].bold_col->green >> 8; + color_table[i].bold_col->blue = color_table[i].bold_val & 0xff; + color_table[i].bold_col->blue += color_table[i].bold_col->blue << 8; + + if (!gdk_color_alloc (cmap, color_table[i].bold_col)) + { + g_warning ("failed to allocate bold foreground color #%06X (%d) (using foregound)", + color_table[i].bold_val, + i); + g_free (color_table[i].bold_col); + color_table[i].bold_col = NULL; + bold = color_table[i].fore_col; + } + else + bold = color_table[i].bold_col; + } + else + bold = color_table[i].bold_col; + + gtk_term_set_color (term, + first + i, + color_table[i].back_col, + color_table[i].fore_col, + dim, + bold); + } +} + +static gint +gvt_tty_key_press (GtkTty *tty, + const gchar *char_code, + guint length, + guint keyval, + guint key_state, + gpointer data) +{ + GtkWidget *status_bar; + register guint id; + + /* return wether we handled the key press: + * FALSE) let GtkTty handle the keypress, + * TRUE) we do something like gtk_tty_put_in (tty, char_code, length) on + * our own. + */ + + status_bar = gtk_object_get_data (GTK_OBJECT (tty), "status-bar"); + + gvt_status_bar_update (status_bar); + + id = (gint) gtk_object_get_data (GTK_OBJECT (tty), "key_press_hid"); + if (id) + { + gtk_signal_disconnect (GTK_OBJECT (tty), id); + gtk_object_set_data (GTK_OBJECT (tty), "key_press_hid", (gpointer) 0); + } + + return FALSE; +} + +static gint +gvt_tty_button_press (GtkWidget *widget, + GdkEventButton *event) +{ + GtkTty *tty; + + /* 1) return wether we handled the event + * 2) if we handled it we need to prevent gtktty region selection, + * therefor we stop the emission of the signal + */ + + tty = GTK_TTY (widget); + + if ((event->state & (GDK_SHIFT_MASK | + GDK_LOCK_MASK | + GDK_CONTROL_MASK | + GDK_MOD1_MASK)) == + GDK_CONTROL_MASK) + { + switch (event->button) + { + case 1: + gtk_signal_emit_stop_by_name (GTK_OBJECT (widget), "button_press_event"); + gdk_window_get_pointer (NULL, &menu_pos_x, &menu_pos_y, NULL); + menu_tty = tty; + gvt_menu_adjust (menu_1); + gtk_menu_popup (menu_1, + NULL, NULL, + gtk_menu_position_func, NULL, + 1, event->time); + + return TRUE; + } + } + + return FALSE; +} + +static void +gtk_menu_position_func (GtkMenu *menu, + gint *x, + gint *y, + gpointer user_data) +{ + *x = menu_pos_x; + *y = menu_pos_y; +} + +static void +gvt_menu_toggle_status_bar (GtkWidget *widget, + gpointer data) +{ + GtkWidget *status_bar; + + status_bar = gtk_object_get_data (GTK_OBJECT (menu_tty), "status-bar"); + g_assert (status_bar != NULL); + + if (GTK_WIDGET_VISIBLE (status_bar)) + gtk_widget_hide (status_bar); + else + gtk_widget_show (status_bar); +} + +static void +gvt_menu_tty_redraw (GtkWidget *widget, + gpointer data) +{ + gtk_widget_draw (GTK_WIDGET (menu_tty), NULL); +} + +static void +gvt_menu_send_signal (GtkWidget *widget, + gpointer data) +{ + g_assert (menu_tty != NULL); + g_assert (menu_tty->pid > 0); + + kill (menu_tty->pid, (gint) data); +} + + +static void +gvt_menu_adjust (GtkMenu *menu) +{ + GList *list, *free_list; + + g_assert (menu != NULL); + + list = free_list = gtk_container_children (GTK_CONTAINER (menu)); + + while (list) + { + gint ac; + + ac = (gint) gtk_object_get_data (GTK_OBJECT (list->data), "activate"); + + switch (ac) + { + case GVT_ONLINE: + gtk_widget_set_sensitive (GTK_WIDGET (list->data), menu_tty->pid > 0); + break; + + case GVT_OFFLINE: + gtk_widget_set_sensitive (GTK_WIDGET (list->data), menu_tty->pid == 0); + break; + } + + list = list->next; + } + + g_list_free (free_list); +} + +static void +gvt_menus_setup (void) +{ + if (!menu_1) + { + GtkWidget *item; + GtkWidget *menu; + + menu = gtk_menu_new (); + item = gtk_menu_item_new_with_label ("Main Options"); + gtk_widget_set_sensitive (item, FALSE); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new (); + gtk_widget_set_sensitive (item, FALSE); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("Redraw"); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_tty_redraw), + NULL); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("Toggle Status Bar"); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_toggle_status_bar), + NULL); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new (); + gtk_widget_set_sensitive (item, FALSE); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("SIGSTOP"); + gtk_object_set_data (GTK_OBJECT (item), "activate", (gpointer) GVT_ONLINE); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_send_signal), + (gpointer) SIGSTOP); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("SIGCONT"); + gtk_object_set_data (GTK_OBJECT (item), "activate", (gpointer) GVT_ONLINE); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_send_signal), + (gpointer) SIGCONT); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("SIGINT"); + gtk_object_set_data (GTK_OBJECT (item), "activate", (gpointer) GVT_ONLINE); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_send_signal), + (gpointer) SIGINT); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("SIGHUP"); + gtk_object_set_data (GTK_OBJECT (item), "activate", (gpointer) GVT_ONLINE); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_send_signal), + (gpointer) SIGHUP); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("SIGTERM"); + gtk_object_set_data (GTK_OBJECT (item), "activate", (gpointer) GVT_ONLINE); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_send_signal), + (gpointer) SIGTERM); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("SIGKILL"); + gtk_object_set_data (GTK_OBJECT (item), "activate", (gpointer) GVT_ONLINE); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gvt_menu_send_signal), + (gpointer) SIGKILL); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new (); + gtk_widget_set_sensitive (item, FALSE); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + item = gtk_menu_item_new_with_label ("Quit"); + gtk_signal_connect(GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (gtk_main_quit), + NULL); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); + + menu_1 = GTK_MENU (menu); + + menu = gtk_menu_new (); + menu_2 = GTK_MENU (menu); + + menu = gtk_menu_new (); + menu_3 = GTK_MENU (menu); + } +} diff -uNr gnome-0.11/programs/gemvt/ltconfig gnome-0.12/programs/gemvt/ltconfig --- gnome-0.11/programs/gemvt/ltconfig Mon Dec 29 15:30:59 1997 +++ gnome-0.12/programs/gemvt/ltconfig Tue Jan 20 22:03:10 1998 @@ -26,13 +26,36 @@ # A lot of this script is taken from autoconf-2.10. +echo=echo +if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : +else + # The Solaris and AIX default echo program unquotes backslashes. + # This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # So, we emulate echo with printf '%s\n' + echo="printf %s\\n" + if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : + else + # Oops. We have no working printf. Try to find a not-so-buggy echo. + echo=echo + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH /usr/ucb; do + if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + fi +fi + # The name of this program. -progname=`echo "$0" | sed 's%^.*/%%'` +progname=`$echo "$0" | sed 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool -VERSION=1.0f +VERSION=1.0h ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' rm="rm -f" @@ -41,10 +64,10 @@ # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but don't quote variable references. -double_quote_subst='s/\([\\"\\\\]\)/\\\1/g' +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Global variables: can_build_shared=yes @@ -279,7 +302,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` case "$host_os" in -aix*) +aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. @@ -293,6 +316,7 @@ # Determine commands to create old-style static archives. old_archive_cmds='$AR cru $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= # Set a sane default for `AR'. test -z "$AR" && AR=ar @@ -391,7 +415,7 @@ # Now see if the compiler is really GCC. with_gcc=no echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:394: checking whether we are using GNU C" >&5 + echo "$progname:418: checking whether we are using GNU C" >&5 $rm conftest.c cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then with_gcc=yes fi $rm conftest.c @@ -431,6 +455,12 @@ os2*) # We can build DLLs from non-PIC. ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + pic_flag='-m68020 -resident32 -malways-restore-a4' + ;; *) pic_flag='-fPIC' ;; @@ -504,8 +534,8 @@ echo > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:507: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + echo "$progname:537: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # Append any errors to the config.log. cat conftest.err 1>&5 @@ -547,8 +577,8 @@ echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:550: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +echo "$progname:580: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then echo "$ac_t$link_static_flag" 1>&6 else echo "$ac_t"none 1>&6 @@ -580,7 +610,7 @@ if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:583: checking for ld used by GCC" >&5 + echo "$progname:613: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -598,10 +628,10 @@ esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:601: checking for GNU ld" >&5 + echo "$progname:631: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:604: checking for non-GNU ld" >&5 + echo "$progname:634: checking for non-GNU ld" >&5 fi if test -z "$LD"; then @@ -660,30 +690,30 @@ hardcode_shlibpath_var=unsupported runpath_var= +case "$host_os" in +amigaos* | sunos4*) + # On these operating systems, we should treat GNU ld like the system ld. + gnu_ld_acts_native=yes + ;; +*) + gnu_ld_acts_native=no + ;; +esac + ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # See if GNU ld supports shared libraries. +if test "$with_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then - case "$host_os" in - sunos4*) + # See if GNU ld supports shared libraries. + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes ld_shlibs=yes - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - else - ld_shlibs=no - fi - ;; - esac + else + ld_shlibs=no + fi if test "$ld_shlibs" = yes; then - archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs' hardcode_libdir_flag_spec='${wl}-rpath $wl$libdir' export_dynamic_flag_spec='${wl}-export-dynamic' fi @@ -692,7 +722,7 @@ case "$host_os" in aix3*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes @@ -705,17 +735,24 @@ aix4*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname' hardcode_direct=yes hardcode_minus_L=yes ;; + amigaos*) + archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # doesn't break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs /usr/lib/c++rt0.o' + archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -723,7 +760,7 @@ # Unfortunately, older versions of FreeBSD 2 don't have this feature. freebsd2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -731,7 +768,7 @@ # FreeBSD 3, at last, uses gcc -shared to do shared libraries. freebsd3*) - archive_cmds='$CC -shared -o $lib$libobjs$deplibs' + archive_cmds='$CC -shared -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -739,21 +776,23 @@ ;; hpux9*) - archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs;mv $objdir/$soname $lib' + archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; hpux10*) - archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' + archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6*) - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' + archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ;; @@ -766,7 +805,7 @@ ;; openbsd*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no @@ -776,8 +815,7 @@ hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;echo DATA >> $objdir/$libname.def;echo " SINGLE NONSHARED" >> $objdir/$libname.def;echo EXPORTS >> $objdir/$libname.def;e -mxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' ;; @@ -789,18 +827,26 @@ ;; sco3.2v5*) - archive_cmds='$LD -G -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -o $lib$libobjs' hardcode_direct=yes ;; solaris2*) - archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no ;; sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + if test "$with_gcc" = yes; then + archive_cmds='$CC -shared -o $lib$libobjs' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + fi + + if test "$with_gnu_ld" = yes; then + export_dynamic_flag_spec='${wl}-export-dynamic' + fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -808,7 +854,7 @@ ;; uts4*) - archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no hardcode_minus_L=no @@ -829,13 +875,15 @@ /*) ;; # Let the user override the test with a path. *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in /usr/ucb $PATH /bin; do + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && dir=. if test -f $ac_dir/nm; then # Check to see if the nm accepts a BSD-compat flag. - if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + # Adding the `sed 1!d' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -p" else NM="$ac_dir/nm" @@ -870,6 +918,10 @@ aix*) symcode='[BCDTU]' ;; +irix*) + # Cannot use undefined symbols on IRIX because inlined functions mess us up. + symcode='[BCDEGRST]' + ;; solaris2*) symcode='[BDTU]' ;; @@ -898,11 +950,11 @@ main(){nm_test_var='a';nm_test_func();return(0);} EOF -echo "$progname:900: checking if global_symbol_pipe works" >&5 -if { (eval echo $progname:901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then +echo "$progname:953: checking if global_symbol_pipe works" >&5 +if { (eval echo $progname:954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then # Now try to grab the symbols. nlist=conftest.nm - if { echo "$progname:904: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + if { echo "$progname:957: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then @@ -945,7 +997,7 @@ dld_preloaded_symbols[] = { EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> conftest.c + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c cat <<\EOF >> conftest.c {0}, }; @@ -960,7 +1012,7 @@ save_CFLAGS="$CFLAGS" LIBS='conftestm.o' CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo $progname:1015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 @@ -1029,7 +1081,9 @@ libname_spec='lib$name' soname_spec= postinstall_cmds= +postuninstall_cmds= finish_cmds= +finish_eval= shlibpath_var= version_type=none dynamic_linker="$host_os ld.so" @@ -1045,6 +1099,12 @@ soname_spec='$libname.so.$major' ;; +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "$lib" | sed '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + freebsd2* | freebsd3*) version_type=sunos library_names_spec='$libname.so.$versuffix $libname.so' @@ -1109,7 +1169,6 @@ ;; os2*) - version_type=none libname_spec='$name' library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' @@ -1190,36 +1249,41 @@ echo "checking whether to build static libraries... $enable_static" 1>&6 echo $ac_n "checking for objdir... $ac_c" 1>&6 -rm -f _libs 2>/dev/null -mkdir _libs 2>/dev/null -if test -d _libs; then - objdir=_libs +rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. objdir=_libs fi -rmdir _libs 2>/dev/null +rmdir .libs 2>/dev/null echo "$ac_t$objdir" 1>&6 +# Copy echo and quote the copy, instead of the original, because it is +# used later. +ltecho="$echo" + # Now quote all the things that may contain metacharacters. -for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ +for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ link_static_flag no_builtin_flag export_dynamic_flag_spec \ profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \ old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - archive_cmds postinstall_cmds \ - allow_undefined_flag finish_cmds global_symbol_pipe \ + old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ + allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \ striplib old_striplib \ hardcode_libdir_flag_spec hardcode_libdir_separator; do case "$var" in reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | archive_cmds | postinstall_cmds | finish_cmds) + old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \ + postinstall_cmds | postuninstall_cmds | finish_cmds) # Double-quote double-evaled strings. - eval "$var=\`echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" + eval "$var=\`\$echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" ;; *) - eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + eval "$var=\`\$echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" ;; esac done @@ -1244,6 +1308,9 @@ # Compiler and other test output produced by $progname, useful for # debugging $progname, is in ./config.log if it exists. +# An echo program that doesn't interpret backslashes. +echo="$ltecho" + # The version of $progname that generated this script. LTCONFIG_VERSION="$VERSION" @@ -1317,6 +1384,7 @@ RANLIB="$RANLIB" old_archive_cmds="$old_archive_cmds" old_postinstall_cmds="$old_postinstall_cmds" +old_postuninstall_cmds="$old_postuninstall_cmds" # Create an old-style archive from a shared archive. old_archive_from_new_cmds="$old_archive_from_new_cmds" @@ -1324,6 +1392,7 @@ # Commands used to build and install a shared archive. archive_cmds="$archive_cmds" postinstall_cmds="$postinstall_cmds" +postuninstall_cmds="$postuninstall_cmds" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="$allow_undefined_flag" @@ -1331,6 +1400,9 @@ # Commands used to finish a libtool library installation in a directory. finish_cmds="$finish_cmds" +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval="$finish_eval" + # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="$global_symbol_pipe" @@ -1396,7 +1468,7 @@ ;; *) cat <> $ofile # Find the path to this script. -thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\` +thisdir=\`$echo "\$0" | sed -e 's%/[^/]*\$%%'\` test "X\$0" = "X\$thisdir" && thisdir=. # Execute the libtool backend. diff -uNr gnome-0.11/programs/gemvt/ltmain.sh gnome-0.12/programs/gemvt/ltmain.sh --- gnome-0.11/programs/gemvt/ltmain.sh Thu Dec 11 00:34:51 1997 +++ gnome-0.12/programs/gemvt/ltmain.sh Tue Jan 20 22:03:11 1998 @@ -22,40 +22,14 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -#FIXME: echo=echo -echo='printf %s\n' -if test "X`$echo '\t'`" = 'X\t'; then : -else - # The Solaris and AIX default echo program unquotes backslashes. - # This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # So, we emulate echo with printf '%s\n' - echo='printf %s\n' - if test "X`$echo '\t'`" = 'X\t'; then : - else - # Oops. We have no working printf. Try to find a not-so-buggy echo. - echo=echo - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - save_PATH="$PATH" - PATH="$PATH":/usr/ucb - for dir in $PATH; do - if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - PATH="$save_PATH" - fi -fi - # The name of this program. progname=`$echo "$0" | sed 's%^.*/%%'` +modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.0f +VERSION=1.0h default_mode= help="Try \`$progname --help' for more information." @@ -66,7 +40,7 @@ # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g' +sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -76,14 +50,14 @@ if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "$LTCONFIG_VERSION" != "$VERSION"; then - $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - $echo "$progname: not configured to build any kind of library" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: not configured to build any kind of library" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi @@ -131,7 +105,7 @@ ;; --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION" + echo "$PROGRAM (GNU $PACKAGE) $VERSION" exit 0 ;; @@ -140,16 +114,16 @@ ;; --features) - $echo "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" + echo "enable shared libraries" else - $echo "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $echo "enable static libraries" + echo "enable static libraries" else - $echo "disable static libraries" + echo "disable static libraries" fi exit 0 ;; @@ -169,7 +143,7 @@ ;; -*) - $echo "$progname: unrecognized option \`$arg'" 1>&2 + $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -182,7 +156,7 @@ done if test -n "$prevopt"; then - $echo "$progname: option \`$prevopt' requires an argument" 1>&2 + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -220,9 +194,9 @@ # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then - $echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else - $echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; @@ -231,20 +205,20 @@ # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$progname: unrecognized option \`-dlopen'" 1>&2 + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." + help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case "$mode" in # libtool compile mode compile) - progname="$progname: compile" + modename="$modename: compile" # Get the compilation command and the source file. base_compile= lastarg= @@ -255,7 +229,7 @@ do # The only flag that cannot be specified is the output filename. if test "X$arg" = "X-o"; then - $echo "$progname: you cannot specify the output filename with \`-o'" 1>&2 + $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -307,13 +281,13 @@ case "$libobj" in *.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;; *) - $echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2 + $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then - $echo "$progname: you must specify a compilation command" 1>&2 + $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -369,8 +343,8 @@ # Create an invalid libtool object if no PIC, so that we don't accidentally # link it into a program. if test "$build_libtool_libs" != yes; then - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > \$libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > \$libobj" || exit $? fi exit 0 @@ -378,9 +352,9 @@ # libtool link mode link) - progname="$progname: link" + modename="$modename: link" CC="$nonopt" - allow_undefined=no + allow_undefined=yes compile_command="$CC" finalize_command="$CC" @@ -408,7 +382,7 @@ case "$arg" in -all-static | -static) if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$progname: warning: complete static linking is impossible in this configuration" 1>&2 + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 fi build_libtool_libs=no build_old_libs=yes @@ -468,7 +442,8 @@ ;; -allow-undefined) - allow_undefined=yes + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; @@ -504,7 +479,7 @@ # Add the corresponding hardcode_libdir_flag, if it is not identical. ;; *) - $echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2 + $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 exit 1 ;; esac @@ -513,6 +488,11 @@ -l*) deplibs="$deplibs $arg" ;; + -no-undefined) + allow_undefined=no + continue + ;; + -o) prev=output ;; -rpath) @@ -583,7 +563,7 @@ # Check to see that this really is a libtool archive. if egrep '^# Generated by ltmain.sh' $arg >/dev/null 2>&1; then : else - $echo "$progname: \`$arg' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 exit 1 fi @@ -594,7 +574,7 @@ esac if test -z "$libdir"; then - $echo "$progname: \`$arg' contains no -rpath information" 1>&2 + $echo "$modename: \`$arg' contains no -rpath information" 1>&2 exit 1 fi @@ -605,7 +585,7 @@ done if test -z "$linklib"; then - $echo "$progname: cannot find name of link library for \`$arg'" 1>&2 + $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 exit 1 fi @@ -707,7 +687,7 @@ *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - $echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2 + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" @@ -725,7 +705,7 @@ ;; *) - $echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2 + $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 exit 1 ;; esac @@ -745,7 +725,7 @@ else # Transform directly to old archives if we don't build new libraries. if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$progname: cannot find static library for \`$arg'" 1>&2 + $echo "$modename: cannot find static library for \`$arg'" 1>&2 exit 1 fi @@ -778,12 +758,14 @@ esac # Now actually substitute the argument into the commands. - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi done if test -n "$prev"; then - $echo "$progname: the \`$prevarg' option requires an argument" 1>&2 + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -792,13 +774,13 @@ oldobjs= case "$output" in "") - $echo "$progname: you must specify an output file" 1>&2 + $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; */*) - $echo "$progname: output file \`$output' must have no directory components" 1>&2 + $echo "$modename: output file \`$output' must have no directory components" 1>&2 exit 1 ;; @@ -807,7 +789,7 @@ case "$output" in lib*) ;; *) - $echo "$progname: libtool library \`$arg' must begin with \`lib'" 1>&2 + $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -825,13 +807,13 @@ age=0 if test -n "$objs"; then - $echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 exit 1 fi # How the heck are we supposed to write a wrapper for a shared library? if test -n "$link_against_libtool_libs"; then - $echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 + $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 exit 1 fi @@ -839,21 +821,21 @@ deplibs="$deplibs -lc" if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` fi if test -z "$rpath"; then - $echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2 + $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 $echo "$help" 1>&2 exit 1 fi set dummy $rpath if test $# -gt 2; then - $echo "$progname: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" @@ -863,7 +845,7 @@ IFS="$save_ifs" if test -n "$5"; then - $echo "$progname: too many parameters to \`-version-info'" 1>&2 + $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -876,8 +858,8 @@ case "$current" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -885,8 +867,8 @@ case "$revision" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -894,15 +876,15 @@ case "$age" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then - $echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi @@ -942,8 +924,8 @@ ;; *) - $echo "$progname: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac @@ -965,7 +947,7 @@ # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then - $echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi @@ -1007,9 +989,9 @@ IFS="$save_ifs" # Create links to the real library. - for link in $linknames; do - $show "(cd $objdir && $LN_S $realname $link)" - $run eval '(cd $objdir && $LN_S $realname $link)' || exit $? + for linkname in $linknames; do + $show "(cd $objdir && $LN_S $realname $linkname)" + $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? done # If -export-dynamic was specified, set the dlname. @@ -1022,33 +1004,33 @@ *.lo | *.o) if test -n "$link_against_libtool_libs"; then - $echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2 + $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 exit 1 fi if test -n "$deplibs"; then - $echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` fi if test -n "$rpath"; then - $echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 fi if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 fi case "$output" in *.lo) if test -n "$objs"; then - $echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2 + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" @@ -1082,8 +1064,8 @@ if test "$build_libtool_libs" != yes; then # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > $libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > $libobj" || exit $? exit 0 fi @@ -1110,7 +1092,7 @@ *) if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 fi if test -n "$rpath"; then @@ -1203,7 +1185,7 @@ if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` + count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` (test "$count" -ge 0) 2>/dev/null || count=-1 else $rm "$nlist"T @@ -1230,7 +1212,7 @@ if test -f "$nlist"; then sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" else - $echo '/* NONE */' >> "$objdir/$dlsyms" + echo '/* NONE */' >> "$objdir/$dlsyms" EOF fi @@ -1258,7 +1240,7 @@ EOF if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> "$objdir/$dlsyms" + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" fi cat <<\EOF >> "$objdir/$dlsyms" @@ -1272,7 +1254,7 @@ ;; *) - echo "$progname: unknown suffix for \`$dlsyms'" 1>&2 + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit 1 ;; esac @@ -1286,12 +1268,12 @@ compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` elif test "$export_dynamic" != yes; then - test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 + test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 else # We keep going just in case the user didn't refer to # dld_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. - $echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2 + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 # Nullify the symbol file. compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` @@ -1361,8 +1343,8 @@ case "$hardcode_action" in relink) # AGH! Flame the AIX and HP-UX people for me, will ya? - $echo "$progname: warning: using a buggy system linker" 1>&2 - $echo "$progname: relinking will be required before \`$output' can be installed" 1>&2 + $echo "$modename: warning: using a buggy system linker" 1>&2 + $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 ;; esac @@ -1475,7 +1457,7 @@ # The program doesn't exist. \$echo "\$0: error: \$progdir/\$program does not exist" 1>&2 \$echo "This script is just a wrapper for \$program." 1>&2 - \$echo "See the $PACKAGE documentation for more information." 1>&2 + echo "See the $PACKAGE documentation for more information." 1>&2 exit 1 fi fi @@ -1562,7 +1544,7 @@ # libtool install mode install) - progname="$progname: install" + modename="$modename: install" # There may be an optional /bin/sh argument at the beginning of # install_prog (especially on Windows NT). @@ -1642,22 +1624,22 @@ done if test -z "$install_prog"; then - $echo "$progname: you must specify an install program" 1>&2 + $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then - $echo "$progname: the \`$prev' option requires an argument" 1>&2 + $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then - $echo "$progname: no file or destination specified" 1>&2 + $echo "$modename: no file or destination specified" 1>&2 else - $echo "$progname: you must specify a destination" 1>&2 + $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 @@ -1679,7 +1661,7 @@ # Not a directory, so check to see that there is only one file specified. set dummy $files if test $# -gt 2; then - $echo "$progname: \`$dest' is not a directory" 1>&2 + $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1691,7 +1673,7 @@ case "$file" in *.lo) ;; *) - $echo "$progname: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1720,7 +1702,7 @@ # Check to see that this really is a libtool archive. if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : else - $echo "$progname: \`$file' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1769,7 +1751,7 @@ $show "$striplib $destdir/$realname" $run $striplib $destdir/$realname || exit $? else - $echo "$progname: warning: no library stripping program" 1>&2 + $echo "$modename: warning: no library stripping program" 1>&2 fi fi @@ -1840,7 +1822,7 @@ destfile= ;; *) - $echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1877,7 +1859,7 @@ # Check the variables that should have been set. if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - $echo "$progname: invalid libtool wrapper script \`$file'" 1>&2 + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 exit 1 fi @@ -1894,26 +1876,26 @@ fi libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`" if test -z "$libdir"; then - $echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2 + $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 elif test -f "$libfile"; then : else - $echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done if test "$hardcode_action" = relink; then if test "$finalize" = yes; then - $echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 $show "$finalize_command" if $run eval "$finalize_command"; then : else - $echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2 + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 continue fi file="$objdir/$file"T else - $echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 fi else # Install the binary that we compiled earlier. @@ -1942,7 +1924,7 @@ $show "$old_striplib $oldlib" $run $old_striplib $oldlib || exit $? else - $echo "$progname: warning: no static library stripping program" 1>&2 + $echo "$modename: warning: no static library stripping program" 1>&2 fi fi @@ -1958,7 +1940,7 @@ done if test -n "$future_libdirs"; then - $echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then @@ -1973,44 +1955,51 @@ # libtool finish mode finish) - progname="$progname: finish" + modename="$modename: finish" libdirs="$nonopt" - if test -n "$finish_cmds" && test -n "$libdirs"; then + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do - # Do each command in the postinstall commands. - cmds=`eval \\$echo \"$finish_cmds\"` - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=`eval \\$echo \"$finish_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + cmds=`eval \\$echo \"$finish_eval\"` + $run eval "$cmds" + fi done fi - $echo "To link against installed libraries in LIBDIR, users may have to:" + echo "To link against installed libraries in LIBDIR, users may have to:" if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to their \`$shlibpath_var' environment variable" + echo " - add LIBDIR to their \`$shlibpath_var' environment variable" fi - $echo " - use the \`-LLIBDIR' linker flag" + echo " - use the \`-LLIBDIR' linker flag" exit 0 ;; # libtool execute mode execute) - progname="$progname: execute" + modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then - $echo "$progname: you must specify a COMMAND" 1>&2 + $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi @@ -2019,7 +2008,7 @@ for file in $execute_dlfiles; do if test -f "$file"; then : else - $echo "$progname: \`$file' is not a file" 1>&2 + $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -2030,7 +2019,7 @@ # Check to see that this really is a libtool archive. if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : else - $echo "$progname: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -2048,7 +2037,7 @@ # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. - test -n "$library_names" && $echo "$progname: warning: \`$file' was not linked with \`-export-dynamic'" + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi @@ -2058,7 +2047,7 @@ if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else - $echo "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; @@ -2070,7 +2059,7 @@ ;; *) - $echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac @@ -2122,7 +2111,7 @@ # Now actually exec the command. eval "exec \$cmd$args" - $echo "$progname: cannot exec \$cmd$args" + $echo "$modename: cannot exec \$cmd$args" exit 1 else # Display what would be done. @@ -2135,7 +2124,7 @@ # libtool uninstall mode uninstall) - progname="$progname: uninstall" + modename="$modename: uninstall" rm="$nonopt" files= @@ -2148,7 +2137,7 @@ done if test -z "$rm"; then - $echo "$progname: you must specify an RM program" 1>&2 + $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -2174,6 +2163,33 @@ test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" + $show "$rm $rmfiles" + $run $rm $rmfiles + + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=`eval \\$echo \"$postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=`eval \\$echo \"$old_postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. fi ;; @@ -2183,23 +2199,27 @@ oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'` rmfiles="$rmfiles $dir/$oldobj" fi + $show "$rm $rmfiles" + $run $rm $rmfiles ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles + *) + $show "$rm $rmfiles" + $run $rm $rmfiles + ;; + esac done exit 0 ;; "") - $echo "$progname: you must specify a MODE" 1>&2 + $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac - $echo "$progname: invalid operation mode \`$mode'" 1>&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi # test -z "$show_help" @@ -2207,7 +2227,7 @@ # We need to display help for each of the modes. case "$mode" in "") cat <&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac -$echo -$echo "Try \`$progname --help' for more information about other modes." +echo +$echo "Try \`$modename --help' for more information about other modes." exit 0 diff -uNr gnome-0.11/programs/gemvt/main.c gnome-0.12/programs/gemvt/main.c --- gnome-0.11/programs/gemvt/main.c Sun Dec 14 15:48:32 1997 +++ gnome-0.12/programs/gemvt/main.c Wed Dec 31 18:00:00 1969 @@ -1,866 +0,0 @@ -/* GemVt - GNU Emulator of a Virtual Terminal - * Copyright (C) 1997 Tim Janik - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - */ -#define __main_c__ - -#include "gtktty.h" -#include "gtkled.h" -#include "config.h" -#include "gemvt.xpm" -#include "gem-r.xpm" -#include "gem-g.xpm" -#include "gem-b.xpm" -#include -#include -#include -#include - -#ifdef GNOMIFY -#include "gnome.h" -#endif GNOMIFY - - -/* --- typedefs --- */ -typedef struct -{ - GdkColor *back_col; - GdkColor *fore_col; - GdkColor *dim_col; - GdkColor *bold_col; - guint32 back_val; - guint32 fore_val; - guint32 dim_val; - guint32 bold_val; -} GvtColorEntry; - -/* --- prototypes --- */ -static RETSIGTYPE gvt_signal_handler (int sig_num); -static gint gvt_tty_key_press (GtkTty *tty, - const gchar *char_code, - guint length, - guint keyval, - guint key_state, - gpointer data); -static void gvt_execute (GtkWidget *widget, - gpointer user_data); -static void gvt_kill (GtkButton *button, - gpointer user_data); -static void gvt_program_exec (GtkTty *tty, - const gchar *prg_name, - gchar * const argv[], - gchar * const envp[], - gpointer user_data); -static void gvt_program_exit (GtkTty *tty, - const gchar *prg_name, - gchar exit_status, - guint exit_signal, - gpointer user_data); -static void gvt_term_set_color_table(GtkTerm *term, - GdkColormap *cmap, - GvtColorEntry *color_table, - guint len, - guint first); -static -GtkWidget* gvt_gem_create (GtkContainer *parent, - gchar col); -static void gvt_gem_set_color (GtkWidget *gem, - gchar col); -static void gvt_gem_rotate (GtkWidget *gem); - - - -/* --- external variables --- */ -/* hm, seems like some systems miss the automatic declaration - * of the environment char array, so we explicitly declare it - * here, and implicitly assume every system has it... - */ -extern char **environ; - -/* --- static variables --- */ -static GvtColorEntry color_table[] = -{ - { NULL, NULL, NULL, NULL, 0x000000, 0x000000, 0x000000, 0x000000 }, /* black */ - { NULL, NULL, NULL, NULL, 0xd00000, 0xd00000, 0x880000, 0xff0000 }, /* red */ - { NULL, NULL, NULL, NULL, 0x00d000, 0x00d000, 0x008800, 0x00ff00 }, /* green */ - { NULL, NULL, NULL, NULL, 0xd0d000, 0xd0d000, 0x888800, 0xffff00 }, /* orange */ - { NULL, NULL, NULL, NULL, 0x0000d0, 0x0000d0, 0x000088, 0x0000ff }, /* blue */ - { NULL, NULL, NULL, NULL, 0xd000d0, 0xd000d0, 0x880088, 0xff00ff }, /* pink */ - { NULL, NULL, NULL, NULL, 0x00d0d0, 0x00d0d0, 0x008888, 0x00ffff }, /* cyan */ - { NULL, NULL, NULL, NULL, 0xd0d0d0, 0xd0d0d0, 0x888888, 0xffffff }, /* white */ -}; -static GtkWidget *status_label; -static GtkWidget *time_label; -static GtkWidget *signal_button; -static gchar *prg_name; - -/* --- main() --- */ -int -main (int argc, - char *argv[]) -{ - register gchar *home_dir; - register gchar *rc_file; - register guchar *string; - register GtkWidget *window; - register GtkWidget *main_vbox; - register GtkWidget *tty_vbox; - register GtkWidget *tty_hbox; - register GtkWidget *status_hbox; - register GtkWidget *led_hbox; - GtkWidget *led[8]; - register GtkWidget *label; - register GtkWidget *tty; - register GtkWidget *exec_hbox; - register GtkWidget *entry; - register GtkWidget *button; - register GtkWidget *gem; - register guint i; - - - prg_name = g_strdup (argv[0]); - - /* Gtk+/GNOME initialization - */ -#ifdef GNOMIFY - gnome_init(&argc, &argv); -#else /* !GNOMIFY */ - gtk_init (&argc, &argv); -#endif /* !GNOMIFY */ - - /* parse ~/.gtkrc, (this file also ommitted by the gnome_init stuff - */ - home_dir = getenv ("HOME"); - if (!home_dir) /* fatal! */ - home_dir = "."; - - string = "gtkrc"; - rc_file = g_new (gchar, strlen (home_dir) + 2 + strlen (string) + 1); - *rc_file = 0; - strcat (rc_file, home_dir); - strcat (rc_file, "/."); - strcat (rc_file, string); - - printf("%s\n", rc_file); - gtk_rc_parse (rc_file); - g_free (rc_file); - - string = strrchr (prg_name, '/'); - if (string) - string++; - else - string = prg_name; - rc_file = g_new (gchar, strlen (home_dir) + 2 + strlen (string) + 2 + 1); - *rc_file = 0; - strcat (rc_file, home_dir); - strcat (rc_file, "/."); - strcat (rc_file, string); - strcat (rc_file, "rc"); - - /* parse ~/.rc - */ - printf("%s\n", rc_file); - /* FIXME: invoke rc-parser here, this requires GScanner in GLib first ;( */ - g_free (rc_file); - - - /* catch system signals - */ - gvt_signal_handler (0); - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (window), "GemVt"); - gtk_window_set_policy (GTK_WINDOW (window), - TRUE, - TRUE, - TRUE); - gtk_signal_connect_object (GTK_OBJECT (window), - "destroy", - GTK_SIGNAL_FUNC (gtk_main_quit), - NULL); - - main_vbox = gtk_vbox_new (FALSE, 5); - gtk_container_border_width (GTK_CONTAINER (main_vbox), 10); - gtk_container_add (GTK_CONTAINER (window), main_vbox); - gtk_widget_show (main_vbox); - - tty_hbox = gtk_hbox_new (FALSE, 5); - gtk_container_border_width (GTK_CONTAINER (tty_hbox), 0); - gtk_box_pack_start (GTK_BOX (main_vbox), tty_hbox, TRUE, TRUE, 0); - gtk_widget_show (tty_hbox); - - tty_vbox = gtk_vbox_new (FALSE, 5); - gtk_container_border_width (GTK_CONTAINER (tty_vbox), 0); - gtk_box_pack_start (GTK_BOX (tty_hbox), tty_vbox, FALSE, FALSE, 0); - gtk_widget_show (tty_vbox); - - status_hbox = gtk_hbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (tty_vbox), status_hbox, FALSE, FALSE, 0); - gtk_widget_show (status_hbox); - - status_label = gtk_label_new ("No Program"); - gtk_box_pack_start (GTK_BOX (status_hbox), status_label, TRUE, TRUE, 10); - gtk_widget_show (status_label); - - time_label = gtk_label_new ("System: 0 User: 0"); - gtk_box_pack_start (GTK_BOX (status_hbox), time_label, TRUE, TRUE, 10); - gtk_widget_show (time_label); - - led_hbox = gtk_hbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (status_hbox), led_hbox, FALSE, FALSE, 0); - gtk_widget_show (led_hbox); - for (i = 0; i < 8; i++) - { - led[i] = gtk_led_new (); - gtk_box_pack_start (GTK_BOX (led_hbox), led[i], TRUE, TRUE, 5); - gtk_widget_show (led[i]); - } - - string = - "Hi, this is GemVt bothering you ;)\n\r" - "Enter `-bash' or something the like and\n\r" - "Have Fun!!!\n\r"; - - tty = gtk_tty_new (80, 25, 99); - gtk_tty_put_out (GTK_TTY (tty), string, strlen (string)); - gtk_box_pack_start (GTK_BOX (tty_vbox), tty, TRUE, TRUE, 5); - for (i = 0; i < 8; i++) - { - gtk_tty_add_update_led (GTK_TTY (tty), GTK_LED(led[i]), 1 << i); - } - gtk_widget_show (tty); - gtk_signal_connect (GTK_OBJECT (tty), - "key_press", - GTK_SIGNAL_FUNC (gvt_tty_key_press), - NULL); - gvt_term_set_color_table (GTK_TERM (tty), - /* gdk_colormap_get_system (), */ - gtk_widget_get_colormap (GTK_WIDGET (tty)), - color_table, - sizeof (color_table) / sizeof (GvtColorEntry), - 0); - - exec_hbox = gtk_hbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (main_vbox), exec_hbox, FALSE, TRUE, 0); - gtk_widget_show (exec_hbox); - - label = gtk_label_new ("Execute:"); - gtk_box_pack_start (GTK_BOX (exec_hbox), label, FALSE, FALSE, 0); - gtk_widget_show (label); - - entry = gtk_entry_new (); - gtk_box_pack_start (GTK_BOX (exec_hbox), entry, TRUE, TRUE, 5); - gtk_widget_show (entry); - gtk_signal_connect (GTK_OBJECT (entry), - "activate", - GTK_SIGNAL_FUNC (gvt_execute), - tty); - - gtk_signal_connect (GTK_OBJECT (tty), - "program_exec", - GTK_SIGNAL_FUNC (gvt_program_exec), - entry); - gtk_signal_connect (GTK_OBJECT (tty), - "program_exit", - GTK_SIGNAL_FUNC (gvt_program_exit), - entry); - - signal_button = gtk_button_new_with_label ("Send Signal - 1) TERM 2) KILL"); - gtk_box_pack_start (GTK_BOX (exec_hbox), signal_button, FALSE, TRUE, 0); - gtk_widget_set_sensitive (signal_button, FALSE); - gtk_widget_show (signal_button); - gtk_signal_connect (GTK_OBJECT (signal_button), - "clicked", - GTK_SIGNAL_FUNC (gvt_kill), - tty); - - button = gtk_button_new (); - gtk_box_pack_start (GTK_BOX (exec_hbox), button, FALSE, TRUE, 5); - gtk_widget_show (button); - gem = gvt_gem_create (GTK_CONTAINER (button), 'r'); - gtk_container_add (GTK_CONTAINER (button), gem); - gtk_signal_connect_object (GTK_OBJECT (button), - "clicked", - GTK_SIGNAL_FUNC (gvt_gem_rotate), - (GtkObject*) gem); - - button = gtk_button_new_with_label ("Close"); - gtk_box_pack_start (GTK_BOX (main_vbox), button, FALSE, TRUE, 5); - gtk_widget_show (button); - gtk_signal_connect_object (GTK_OBJECT (button), - "clicked", - GTK_SIGNAL_FUNC (gtk_widget_destroy), - (GtkObject*) window); - gtk_signal_connect_object (GTK_OBJECT (window), - "delete_event", - GTK_SIGNAL_FUNC (gtk_button_clicked), - GTK_OBJECT (button)); - - gtk_widget_show (window); - - - /* gtk's main loop - */ - gtk_main (); - - /* exit program - */ - return 0; -} - - -RETSIGTYPE -gvt_signal_handler (int sig_num) -{ - static gboolean in_call = FALSE; - - if (in_call) - { - fprintf (stderr, - "\naborting on another signal: `%s'\n", - g_strsignal (sig_num)); - fflush (stderr); - gtk_exit (-1); - } - else - in_call = TRUE; - - signal (SIGINT, gvt_signal_handler); - signal (SIGTRAP, gvt_signal_handler); - signal (SIGABRT, gvt_signal_handler); - signal (SIGBUS, gvt_signal_handler); - signal (SIGSEGV, gvt_signal_handler); - signal (SIGPIPE, gvt_signal_handler); - /* signal (SIGTERM, gvt_signal_handler); */ - - if (sig_num > 0) { - fprintf (stderr, "%s: (pid: %d) caught signal: `%s'\n", - prg_name, - getpid (), - g_strsignal (sig_num)); - fflush (stderr); - g_debug (prg_name); - } - in_call = FALSE; -} - -static void -gvt_execute (GtkWidget *widget, - gpointer user_data) -{ - GtkEntry *entry; - GtkTty *tty; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_ENTRY (widget)); - g_return_if_fail (user_data != NULL); - g_return_if_fail (GTK_IS_TTY (user_data)); - - entry = GTK_ENTRY (widget); - tty = GTK_TTY (user_data); - - if (tty->pid) - g_warning ("Program already running: %d", tty->pid); - else - { - guchar *prg = NULL; - GList *args; - guchar *p; - guchar *s, *e, *f; - - s = g_strdup (gtk_entry_get_text (entry)); - f = s; - e = s + strlen (s); - - p = strchr (s, ' '); - if (p) - { - *p = 0; - prg = s; - s = p + 1; - } - else if (s < e) - { - prg = s; - s = e; - } - - args = NULL; - p = strchr (s, ' '); - while (p || s < e) - { - if (p) - { - *p = 0; - args = g_list_append (args, s); - s = p + 1; - } - else if (s < e) - { - args = g_list_append (args, s); - s = e; - } - - p = strchr (s, ' '); - } - - if (prg) - { - gchar **argv; - GList *list; - guint i; - - argv = g_new (gchar*, g_list_length (args) + 1 + 1); - - argv[0] = prg; - - if (prg[0] == '-') - prg++; - - list = args; - i = 1; - while (list) - { - argv[i++] = list->data; - list = list->next; - } - argv[i] = NULL; - - putenv ("TERM="); - - gtk_tty_execute (tty, prg, argv, environ); - - g_free (argv); - } - - g_list_free (args); - g_free (f); - } -} - -static gint -gvt_tty_key_press (GtkTty *tty, - const gchar *char_code, - guint length, - guint keyval, - guint key_state, - gpointer data) -{ - /* returning TRUE means let GtkTty handle the keypress - * if we return FALSE we have to do a gtk_tty_put_in (tty, char_code, length) - * ourselves. - * for the moment we just put out '*'s if someone presses a key but there is - * nochild... - */ - - if (tty->pid != 0) - return FALSE; - else - { - /* we check the length of the original code to make sure - * we don't react on shift and stuff... - */ - if (keyval < 127) - gtk_tty_put_in (tty, char_code, length); - - return TRUE; - } -} - -GtkWidget* -gvt_gem_create (GtkContainer *parent, - gchar col) -{ - GtkWidget *vbox; - GtkWidget *pixmap; - GdkPixmap *xpm_map; - GdkBitmap *bit_map; - - g_assert (parent != NULL); - g_assert (GTK_IS_CONTAINER (parent)); - - vbox = gtk_vbox_new (FALSE, 0); - gtk_container_add (parent, vbox); - gtk_widget_show (vbox); - gtk_object_set_data (GTK_OBJECT (vbox), "active-gem", NULL); - - bit_map = NULL; - xpm_map = gdk_pixmap_create_from_xpm_d (vbox->window, - &bit_map, - >k_widget_get_style (vbox)->bg[GTK_STATE_NORMAL], - gem_r_xpm); - pixmap = gtk_pixmap_new (xpm_map, bit_map); - gtk_box_pack_start (GTK_BOX (vbox), pixmap, FALSE, FALSE, 0); - gtk_object_set_data (GTK_OBJECT (pixmap), "gem-color", "red"); - gtk_object_set_data (GTK_OBJECT (vbox), "red-gem", pixmap); - - bit_map = NULL; - xpm_map = gdk_pixmap_create_from_xpm_d (vbox->window, - &bit_map, - >k_widget_get_style (vbox)->bg[GTK_STATE_NORMAL], - gem_g_xpm); - pixmap = gtk_pixmap_new (xpm_map, bit_map); - gtk_box_pack_start (GTK_BOX (vbox), pixmap, FALSE, FALSE, 0); - gtk_object_set_data (GTK_OBJECT (pixmap), "gem-color", "green"); - gtk_object_set_data (GTK_OBJECT (vbox), "green-gem", pixmap); - - bit_map = NULL; - xpm_map = gdk_pixmap_create_from_xpm_d (vbox->window, - &bit_map, - >k_widget_get_style (vbox)->bg[GTK_STATE_NORMAL], - gem_b_xpm); - pixmap = gtk_pixmap_new (xpm_map, bit_map); - gtk_box_pack_start (GTK_BOX (vbox), pixmap, FALSE, FALSE, 0); - gtk_object_set_data (GTK_OBJECT (pixmap), "gem-color", "blue"); - gtk_object_set_data (GTK_OBJECT (vbox), "blue-gem", pixmap); - - gvt_gem_set_color (vbox, col); - - return vbox; -} - -static void -gvt_gem_set_color (GtkWidget *gem, - gchar col) -{ - GtkObject *object; - GtkWidget *pixmap; - GtkWidget *new_pixmap; - - g_assert (gem != NULL); - g_assert (GTK_IS_OBJECT (gem)); - - object = GTK_OBJECT (gem); - - pixmap = gtk_object_get_data (object, "active-gem"); - - switch (col) - { - case 'r': - new_pixmap = gtk_object_get_data (object, "red-gem"); - break; - - case 'g': - new_pixmap = gtk_object_get_data (object, "green-gem"); - break; - - case 'b': - new_pixmap = gtk_object_get_data (object, "blue-gem"); - break; - - default: - new_pixmap = NULL; - } - - if (pixmap) - { - gtk_container_block_resize (GTK_CONTAINER (pixmap->parent)); - gtk_widget_hide (pixmap); - } - - gtk_object_set_data (object, "active-gem", new_pixmap); - if (new_pixmap) - gtk_widget_show (new_pixmap); - - if (pixmap) - gtk_container_unblock_resize (GTK_CONTAINER (pixmap->parent)); -} - -static void -gvt_gem_rotate (GtkWidget *gem) -{ - GtkObject *object; - GtkWidget *pixmap; - gchar *old_col; - gchar col; - - g_assert (gem != NULL); - g_assert (GTK_IS_OBJECT (gem)); - - object = GTK_OBJECT (gem); - - pixmap = gtk_object_get_data (object, "active-gem"); - - if (pixmap) - { - g_assert (GTK_IS_OBJECT (pixmap)); - - old_col = gtk_object_get_data (GTK_OBJECT (pixmap), "gem-color"); - } - else - old_col = NULL; - - if (!old_col) - old_col = "red"; - - switch (old_col[0]) - { - default: - case 'r': - col = 'g'; - break; - - case 'g': - col = 'b'; - break; - - case 'b': - col = 'r'; - break; - } - - gvt_gem_set_color (gem, col); -} - -static void -gvt_kill (GtkButton *button, - gpointer user_data) -{ - GtkTty *tty; - static guint pid = 0; - - g_return_if_fail (user_data != NULL); - g_return_if_fail (GTK_IS_TTY (user_data)); - - tty = user_data; - - if (tty->pid) - { - if (pid == tty->pid) - { - kill (pid, SIGKILL); - pid = 0; - } - else - { - pid = tty->pid; - kill (pid, SIGTERM); - } - } - else - pid = 0; -} - -static void -gvt_program_exec (GtkTty *tty, - const gchar *prg_name, - gchar * const argv[], - gchar * const envp[], - gpointer user_data) -{ - GtkEntry *entry; - gchar *string; - gchar *text = "Executing `%s'..."; - - g_return_if_fail (tty != NULL); - g_return_if_fail (GTK_IS_TTY (tty)); - g_return_if_fail (user_data != NULL); - g_return_if_fail (GTK_IS_ENTRY (user_data)); - - entry = GTK_ENTRY (user_data); - - gtk_widget_set_sensitive (signal_button, TRUE); - - string = g_new (gchar, strlen (text) + strlen (prg_name) + 1); - sprintf (string, text, prg_name); - gtk_label_set (GTK_LABEL (status_label), string); - g_free (string); - - gtk_label_set (GTK_LABEL (time_label), "System: 0 User: 0"); - - if (GTK_WIDGET_HAS_FOCUS (entry)) - gtk_widget_grab_focus (GTK_WIDGET (tty)); -} - -static void -gvt_program_exit (GtkTty *tty, - const gchar *prg_name, - gchar exit_status, - guint exit_signal, - gpointer user_data) -{ - GtkEntry *entry; - - g_return_if_fail (tty != NULL); - g_return_if_fail (GTK_IS_TTY (tty)); - g_return_if_fail (user_data != NULL); - g_return_if_fail (GTK_IS_ENTRY (user_data)); - - entry = GTK_ENTRY (user_data); - - gtk_widget_set_sensitive (signal_button, FALSE); - - if (exit_signal) - { - gchar *text = "Program `%s' got %s"; - gchar *string; - - string = g_new (gchar, strlen (text) + strlen (prg_name) + strlen (g_strsignal (exit_signal)) + 1); - sprintf (string, text, prg_name, g_strsignal (exit_signal)); - gtk_label_set (GTK_LABEL (status_label), string); - g_free (string); - } - else - { - gchar *text = "Program `%s' exited with status %+d"; - gchar *string; - - string = g_new (gchar, strlen (text) + strlen (prg_name) + 10 + 1); - sprintf (string, text, prg_name, exit_status); - gtk_label_set (GTK_LABEL (status_label), string); - g_free (string); - } - - if (1) - { - gchar string[256]; - gchar sys_time[64]; - gchar user_time[64]; - guint i; - - sprintf (sys_time, "%f", tty->sys_sec + tty->sys_usec/1000000.0); - for (i = strlen (sys_time) - 1; sys_time[i] == '0'; i--) - sys_time[i] = 0; - sprintf (user_time, "%f", tty->user_sec + tty->user_usec/1000000.0); - for (i = strlen (user_time) - 1; user_time[i] == '0'; i--) - user_time[i] = 0; - - sprintf (string, "System: %s User: %s", sys_time, user_time); - gtk_label_set (GTK_LABEL (time_label), string); - } - - if (GTK_WIDGET_HAS_FOCUS (tty)) - gtk_widget_grab_focus (GTK_WIDGET (entry)); -} - -void -gvt_term_set_color_table (GtkTerm *term, - GdkColormap *cmap, - GvtColorEntry *color_table, - guint len, - guint first) -{ - guint i; - - g_assert (term && GTK_IS_TERM (term)); - g_assert (cmap); - g_assert (color_table); - - for (i = 0; i < len; i++) - { - GdkColor *dim; - GdkColor *bold; - - if (!color_table[i].back_col) - { - color_table[i].back_col = g_new0 (GdkColor, 1); - color_table[i].back_col->red = color_table[i].back_val >> 8 & 0xff00; - color_table[i].back_col->red += color_table[i].back_col->red >> 8; - color_table[i].back_col->green = color_table[i].back_val & 0xff00; - color_table[i].back_col->green += color_table[i].back_col->green >> 8; - color_table[i].back_col->blue = color_table[i].back_val & 0xff; - color_table[i].back_col->blue += color_table[i].back_col->blue << 8; - - if (!gdk_color_alloc (cmap, color_table[i].back_col)) - { - g_warning ("failed to allocate background color #%06X (%d)", - color_table[i].back_val, - i); - g_free (color_table[i].back_col); - color_table[i].back_col = NULL; - continue; - } - } - - if (!color_table[i].fore_col) - { - color_table[i].fore_col = g_new0 (GdkColor, 1); - color_table[i].fore_col->red = color_table[i].fore_val >> 8 & 0xff00; - color_table[i].fore_col->red += color_table[i].fore_col->red >> 8; - color_table[i].fore_col->green = color_table[i].fore_val & 0xff00; - color_table[i].fore_col->green += color_table[i].fore_col->green >> 8; - color_table[i].fore_col->blue = color_table[i].fore_val & 0xff; - color_table[i].fore_col->blue += color_table[i].fore_col->blue << 8; - - if (!gdk_color_alloc (cmap, color_table[i].fore_col)) - { - g_warning ("failed to allocate foreground color #%06X (%d)", - color_table[i].fore_val, - i); - g_free (color_table[i].fore_col); - color_table[i].fore_col = NULL; - continue; - } - } - - if (!color_table[i].dim_col) - { - color_table[i].dim_col = g_new0 (GdkColor, 1); - color_table[i].dim_col->red = color_table[i].dim_val >> 8 & 0xff00; - color_table[i].dim_col->red += color_table[i].dim_col->red >> 8; - color_table[i].dim_col->green = color_table[i].dim_val & 0xff00; - color_table[i].dim_col->green += color_table[i].dim_col->green >> 8; - color_table[i].dim_col->blue = color_table[i].dim_val & 0xff; - color_table[i].dim_col->blue += color_table[i].dim_col->blue << 8; - - if (!gdk_color_alloc (cmap, color_table[i].dim_col)) - { - g_warning ("failed to allocate dimmed foreground color #%06X (%d) (using foreground)", - color_table[i].dim_val, - i); - g_free (color_table[i].dim_col); - color_table[i].dim_col = NULL; - dim = color_table[i].fore_col; - } - else - dim = color_table[i].dim_col; - } - else - dim = color_table[i].dim_col; - - if (!color_table[i].bold_col) - { - color_table[i].bold_col = g_new0 (GdkColor, 1); - color_table[i].bold_col->red = color_table[i].bold_val >> 8 & 0xff00; - color_table[i].bold_col->red += color_table[i].bold_col->red >> 8; - color_table[i].bold_col->green = color_table[i].bold_val & 0xff00; - color_table[i].bold_col->green += color_table[i].bold_col->green >> 8; - color_table[i].bold_col->blue = color_table[i].bold_val & 0xff; - color_table[i].bold_col->blue += color_table[i].bold_col->blue << 8; - - if (!gdk_color_alloc (cmap, color_table[i].bold_col)) - { - g_warning ("failed to allocate bold foreground color #%06X (%d) (using foregound)", - color_table[i].bold_val, - i); - g_free (color_table[i].bold_col); - color_table[i].bold_col = NULL; - bold = color_table[i].fore_col; - } - else - bold = color_table[i].bold_col; - } - else - bold = color_table[i].bold_col; - - gtk_term_set_color (term, - first + i, - color_table[i].back_col, - color_table[i].fore_col, - dim, - bold); - } -} diff -uNr gnome-0.11/programs/gemvt/mkinstalldirs gnome-0.12/programs/gemvt/mkinstalldirs --- gnome-0.11/programs/gemvt/mkinstalldirs Sun Dec 14 15:48:32 1997 +++ gnome-0.12/programs/gemvt/mkinstalldirs Tue Jan 20 21:52:42 1998 @@ -4,7 +4,7 @@ # Created: 1993-05-16 # Public domain -# $Id: mkinstalldirs,v 1.4 1997/12/11 23:05:01 timj Exp $ +# $Id: mkinstalldirs,v 1.5 1998/01/21 03:32:09 timj Exp $ errstatus=0 diff -uNr gnome-0.11/programs/genius/ChangeLog gnome-0.12/programs/genius/ChangeLog --- gnome-0.11/programs/genius/ChangeLog Tue Jan 6 22:13:43 1998 +++ gnome-0.12/programs/genius/ChangeLog Wed Jan 14 12:26:18 1998 @@ -1,3 +1,172 @@ +Tue Jan 13 22:21:25 1998 George Lebl + + * mpwrap.c: if the result would be complex, an error is + returned for now + +Tue Jan 13 21:24:10 1998 George Lebl + + * parse.y: UMINUS and NEG bind more closely then ^ + + * mpwrap.c: fixed a cosmetic error in format_float with 0.0 + displaying 0. instead of 0 + +Tue Jan 13 19:49:29 1998 George Lebl + + * mymath.c: e is calculated as a float not rational :) + + * mpwrap.[ch]: new function, mpw_make_float + +Mon Jan 12 02:54:50 1998 George Lebl + + * Makefile.am,geniustest.c,geniustest.pl,geniustests.txt: simple + files for testing may be a base for a command line + implementation of genius (geniustests.txt are some tests) + + * eval.c: fixed YET ANOTHER BUG in copynode (didn't set new + args to NULL when the old ones were NULL, STUPID!) + + * mymath.c: fixed a small memory leak in getpi + + * mpwrap.c: fixed pow_ui, fixed pow_q + +Sun Jan 11 19:03:13 1998 George Lebl + + * funclib.[ch]: ported to mp wrappers + + * util.c: a minor bug fixed in my_realloc + +Sun Jan 11 19:00:12 1998 George Lebl + + * mpwrap.c,mpwrap.h,Makefile.am: added the MP wrapper functions. + + * mymath.[ch]: ported to the new mp wrappers + + * calc.[ch]: ported to mp wrappers + + * eval.[ch],structs.h,lexer.l,parse.y: ported to the new wrappers + + * eval.c: fixed a bug in copynode + +Sat Jan 10 15:41:27 1998 George Lebl + + * eval.c: "while" now works right + + * README: examples updated to work + + * eval.[ch],calc.c: took out primstr, and reimplemented a + better function in calc.c, this one now has the right output + (only spits out infix notation) + + * calc.h: added all prototypes + + * calc.c: got rid of some unused vars, added #include "dict.h" + + * eval.c: got rid of some unused vars + + * dict.[ch]: d_initcontext is now void not int + + * struct.h,dict.[ch],calc.c,eval.c,lexer.l: slight changes in naming + to be more consistent + + * calc.[ch],genius.c: added function to add missing parentheses + on the end of expression to calc, and made it do just that + in genius.c + + * genius.c: the entrybox is cleared after an expression is evaluated + +Sat Jan 10 00:45:07 1998 George Lebl + + * lexer.l,parse.y,eval.[ch]: added logical and,or,xor and not + operators. ! was not touched and still means factorial + + * README: updated + + * Makefile.am: using YACCFLAGS for arguments instead fo YACC + + * eval.c,calc.c: messed with the expression printing to at + least print something debuggable before making it right + + * eval.c: secondright is now copied, this fixes ifelse + + * lexer.l: fixed a bug in argument references during parse + + * eval.c: while doesn't check for a number (it does it's + own evaluation), but it still seems broken + +Fri Jan 09 21:05:18 1998 George Lebl + + * genius.c: couple of minor changes, Ctrl-Q now also quits + + * eval.[ch]: added if,while and ifelse construct operations, also + reversed how branches returns the argument (it was wrong) and + made a function for telling which ones should get evaluated during + calculations (evalnode) + + * structs.h, eval.[ch]: added a secondright argument to primitives + since ifelse needs it + + * parse.y: added the parsing info for while,if,ifelse. lexer already + included it + + * eval.c: split up evalnode to several functions + + * README: updated + + * eval.h: took out an obscolete prototype + + * eval.[ch],parse.y,lexer.l: added comparison operators, + ==,!=,<=>,>,<,>=,<= + + * genius.c: ! taken out of the numpad, % put in + +Fri Jan 09 16:17:38 1998 George Lebl + + * eval.c: fixed another bug in copynode, this fixes some segfaults, + and makes global functions work, local ones still segfault + + * eval.c: fixed a bug in evaluation, first evaluate left THEN + the right side. this caused trouble with separators and + function declarations + + * calc.c: the parse error message now says "before" instead of + "at" since it makes more sense + +Fri Jan 09 02:08:11 1998 George Lebl + + * eval.[ch],parse.y,lexer.l,dict.c: took function declaration from + parse time to execution time. Still segfaults all over the place + + * eval.c: fixed copynode, added function for adding fake function + nodes for declarations + +Thu Jan 08 00:11:22 1998 George Lebl + + * README: updated to reflect the changes + + * COPYING: added + + * genius.c: make floats ints is now disabled by default as + it is not too intuitive, meaning it might not do what a user + expects + +Wed Jan 07 23:44:13 1998 George Lebl + + * dict.[ch]: addfunc now returns a pointer to the actual created + record + + * eval.[ch],parse.y,lexer.y: added a separator primitive, all it does is + right side. meaning you can have more expressions after each other + and taht will return the value of the last one + + * dict.[ch]: created dictionary contexts so that local + variables/functions are possible + + * eval.[ch],parse.y,lexer.y,funclib.c: added user function support, not + yet completely finished, but it is working quite nicely already, + recursion does not yet work and I know what's the problem and will + fix it, though there are not yet any structures for programming, + there are many MANY small changes around these files to support this + Tue Jan 06 18:38:17 1998 George Lebl * eval.[ch],parse.y: added mod ('%') operator diff -uNr gnome-0.11/programs/genius/Makefile.am gnome-0.12/programs/genius/Makefile.am --- gnome-0.11/programs/genius/Makefile.am Mon Jan 5 11:12:38 1998 +++ gnome-0.12/programs/genius/Makefile.am Wed Jan 21 21:10:34 1998 @@ -1,6 +1,6 @@ Utilitiesdir = $(datadir)/apps/Utilities -YACC += -d +YACCFLAGS += -d -t INCLUDES = \ -I../.. \ @@ -9,7 +9,7 @@ $(X_CFLAGS) if HAVE_LIBGMP -bin_PROGRAMS = genius +bin_PROGRAMS = genius geniustest endif genius_SOURCES = \ @@ -27,7 +27,10 @@ funclib.h \ mymath.c \ mymath.h \ + mpwrap.c \ + mpwrap.h \ structs.h \ + parse.h \ lexer.l \ parse.y @@ -38,6 +41,34 @@ $(X_LIBS) $(x_libs) \ -lgmp @LEXLIB@ +geniustest_SOURCES = \ + calc.c \ + calc.h \ + eval.c \ + eval.h \ + geniustest.c \ + util.c \ + util.h \ + dict.c \ + dict.h \ + funclib.c \ + funclib.h \ + mymath.c \ + mymath.h \ + mpwrap.c \ + mpwrap.h \ + structs.h \ + lexer.l \ + parse.y + +geniustest_LDADD = \ + $(top_builddir)/libgnomeui/libgnomeui.la \ + $(top_builddir)/libgnome/libgnome.la \ + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) \ + -lgmp @LEXLIB@ + + EXTRA_DIST = genius.desktop if HAVE_LIBGMP @@ -45,3 +76,5 @@ $(mkinstalldirs) $(Utilitiesdir) $(INSTALL_DATA) $(srcdir)/genius.desktop $(Utilitiesdir)/genius.desktop endif + +parse.c: parse.y \ No newline at end of file diff -uNr gnome-0.11/programs/genius/Makefile.in gnome-0.12/programs/genius/Makefile.in --- gnome-0.11/programs/genius/Makefile.in Wed Jan 7 20:31:33 1998 +++ gnome-0.12/programs/genius/Makefile.in Wed Jan 21 21:13:53 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -113,7 +114,7 @@ -I$(includedir) \ $(X_CFLAGS) -@HAVE_LIBGMP_TRUE@bin_PROGRAMS = genius +@HAVE_LIBGMP_TRUE@bin_PROGRAMS = genius geniustest genius_SOURCES = \ calc.c \ @@ -130,7 +131,10 @@ funclib.h \ mymath.c \ mymath.h \ + mpwrap.c \ + mpwrap.h \ structs.h \ + parse.h \ lexer.l \ parse.y @@ -141,6 +145,33 @@ $(X_LIBS) $(x_libs) \ -lgmp @LEXLIB@ +geniustest_SOURCES = \ + calc.c \ + calc.h \ + eval.c \ + eval.h \ + geniustest.c \ + util.c \ + util.h \ + dict.c \ + dict.h \ + funclib.c \ + funclib.h \ + mymath.c \ + mymath.h \ + mpwrap.c \ + mpwrap.h \ + structs.h \ + lexer.l \ + parse.y + +geniustest_LDADD = \ + $(top_builddir)/libgnomeui/libgnomeui.la \ + $(top_builddir)/libgnome/libgnome.la \ + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) \ + -lgmp @LEXLIB@ + EXTRA_DIST = genius.desktop mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../../config.h @@ -155,10 +186,15 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ genius_OBJECTS = calc.o eval.o genius.o util.o dict.o funclib.o \ -mymath.o lexer.o parse.o +mymath.o mpwrap.o lexer.o parse.o genius_DEPENDENCIES = $(top_builddir)/libgnomeui/libgnomeui.la \ $(top_builddir)/libgnome/libgnome.la genius_LDFLAGS = +geniustest_OBJECTS = calc.o eval.o geniustest.o util.o dict.o funclib.o \ +mymath.o mpwrap.o lexer.o parse.o +geniustest_DEPENDENCIES = $(top_builddir)/libgnomeui/libgnomeui.la \ +$(top_builddir)/libgnome/libgnome.la +geniustest_LDFLAGS = LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LEXLIB = @LEXLIB@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) @@ -172,14 +208,14 @@ TAR = tar GZIP = --best -SOURCES = $(genius_SOURCES) -OBJECTS = $(genius_OBJECTS) +SOURCES = $(genius_SOURCES) $(geniustest_SOURCES) +OBJECTS = $(genius_OBJECTS) $(geniustest_OBJECTS) default: all .SUFFIXES: .SUFFIXES: .S .c .h .l .lo .o .s .y -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/genius/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -253,6 +289,10 @@ genius: $(genius_OBJECTS) $(genius_DEPENDENCIES) @rm -f genius $(LINK) $(genius_LDFLAGS) $(genius_OBJECTS) $(genius_LDADD) $(LIBS) + +geniustest: $(geniustest_OBJECTS) $(geniustest_DEPENDENCIES) + @rm -f geniustest + $(LINK) $(geniustest_LDFLAGS) $(geniustest_OBJECTS) $(geniustest_LDADD) $(LIBS) .y.c: $(YACC) $(YFLAGS) $< && mv y.tab.c $*.c if test -f y.tab.h; then \ @@ -298,12 +338,13 @@ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file; \ done -calc.o calc.lo: calc.c calc.h eval.h structs.h util.h funclib.h -dict.o dict.lo: dict.c eval.h structs.h dict.h util.h funclib.h -eval.o eval.lo: eval.c eval.h structs.h calc.h dict.h util.h funclib.h \ - mymath.h -funclib.o funclib.lo: funclib.c eval.h structs.h dict.h funclib.h \ - mymath.h +calc.o calc.lo: calc.c calc.h structs.h mpwrap.h eval.h util.h dict.h \ + funclib.h +dict.o dict.lo: dict.c eval.h mpwrap.h structs.h dict.h util.h funclib.h +eval.o eval.lo: eval.c mpwrap.h eval.h structs.h calc.h dict.h util.h \ + funclib.h mymath.h +funclib.o funclib.lo: funclib.c mpwrap.h eval.h structs.h dict.h \ + funclib.h mymath.h genius.o genius.lo: genius.c ../../gnome.h ../../libgnome/libgnome.h \ ../../libgnome/gnome-defs.h ../../libgnome/gnome-util.h \ ../../libgnome/gnome-hook.h ../../libgnome/gnome-config.h \ @@ -316,11 +357,29 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ - genius.h calc.h util.h -lexer.o lexer.lo: lexer.c eval.h structs.h dict.h parse.h -mymath.o mymath.lo: mymath.c mymath.h -parse.o parse.lo: parse.c eval.h structs.h dict.h + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ + genius.h calc.h structs.h mpwrap.h util.h +geniustest.o geniustest.lo: geniustest.c ../../gnome.h \ + ../../libgnome/libgnome.h ../../libgnome/gnome-defs.h \ + ../../libgnome/gnome-util.h ../../libgnome/gnome-hook.h \ + ../../libgnome/gnome-config.h ../../libgnome/gnome-dns.h \ + ../../libgnome/gnome-dentry.h ../../libgnome/gnome-i18n.h \ + ../../libgnome/gnome-score.h ../../libgnome/gnome-string.h \ + ../../libgnome/gnome-triggers.h ../../libgnomeui/libgnomeui.h \ + ../../libgnomeui/gnome-app.h \ + ../../libgnomeui/gnome-app-helper.h \ + ../../libgnomeui/gnome-actionarea.h \ + ../../libgnomeui/gnome-colors.h \ + ../../libgnomeui/gnome-color-selector.h \ + ../../libgnomeui/gnome-messagebox.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ + calc.h structs.h mpwrap.h util.h +lexer.o lexer.lo: lexer.c mpwrap.h eval.h structs.h dict.h parse.h +mpwrap.o mpwrap.lo: mpwrap.c calc.h structs.h mpwrap.h util.h mymath.h +mymath.o mymath.lo: mymath.c mpwrap.h mymath.h +parse.o parse.lo: parse.c mpwrap.h eval.h structs.h dict.h util.o util.lo: util.c util.h info: @@ -390,11 +449,13 @@ maintainer-clean-generic clean mostlyclean distclean maintainer-clean -YACC += -d +YACCFLAGS += -d -t @HAVE_LIBGMP_TRUE@install-data-local: @HAVE_LIBGMP_TRUE@ $(mkinstalldirs) $(Utilitiesdir) @HAVE_LIBGMP_TRUE@ $(INSTALL_DATA) $(srcdir)/genius.desktop $(Utilitiesdir)/genius.desktop + +parse.c: parse.y # 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. diff -uNr gnome-0.11/programs/genius/README gnome-0.12/programs/genius/README --- gnome-0.11/programs/genius/README Wed Dec 31 01:28:54 1997 +++ gnome-0.12/programs/genius/README Mon Jan 12 20:01:30 1998 @@ -1,15 +1,202 @@ -This is version pre-alpha-1 of the Genius Calculator +Genius Calculator +================= -It's actually getting usable. I used it myself the other day! +Although it's under heavy development, it's actually getting usable. +I use it myself as my desktop calculator. -here's what doesn't work: (this is hardly the whole TODO list:) +To make myself look important, I also made up an official looking name for +the programming language of Genius, it's called GEL, (Genius Extention +Language) :) -1)no keyboard bindings for = ... so type in the expression and press the = -button -2)no scientific panel (there are no scientific functions yet) -3)there is only a VERY simple makefile, no autoconf! -4)need to make more functions! -5)no integration with gnome yet (meaning it doesn't yet use the gnome lib) +Here's what doesn't work or isn't done yet: (somewhat of a TODO list) + +- scientific/function GUI panel +- need to make more built-in functions! +- complex numbers +- ILU interface (or whatever GNOME will use) +- split off the GUI part and make it talk to the engine with ILU +- do a code clean-up (such as split up eval.[ch]) and make the names of + types, functions and variables more consistent +- make the string functions stop reallocating ALL the time +- anonymous functions (functions that do not have a name, might be a + problem though) +- profile and make the code leaner and meaner +- make the addparenth work for any number of parenthesis +- USE GLIB for hashtables for dictionaries +- make a general stack implementation and use it +- instead of functions calls and recursion, use an evaluation stack +- optimize the engine a bit more + +Features of Genius: + + * arbitrary precision integers, multiple precision floats + * uses rationals when possible + * will calculate and show half calculated expressions if the calculation + could not be completed + * tries to optionally convert floats to integers to make calculatons more + acurate (since integers are arbitrary precision) + * can read prefix, infix or postfix expressions + * variables + * user functions + * it will now add missing parenthesis on the ends of expressions + * more ... + +How to use this thing: (this is just a quick description) + +Just type in the expression and press enter to get a result (or press the = +button). The expression is written in GEL (Genius Extention Language). +A simple GEL expression looks just like a math expression. So you don't need +to learn GEL to use the calculator. GEL is used when you want to define +and use functions, and variables. + +**************************************************************************** +What follows is a simple description of GEL: + +A program in GEL is basically an expression which evaluates to a number, +since there exist only numbers. + +For variables use the = operator, that operator sets the variable and +returns the number you set, so you can do something like "a=b=5", just +like in C. (this is in infix mode in postfix this would be "a b 5 = ="). +Variables are really functions with no argument + +there are a number of built in functions (currently "e" "pi" "sin" "cos" +"tan") + +to type functions in: + +infix) function(argument1,argument1) +prefix) function argument1 argument2 +postfix) argument1 argument2 function + +(of course the number of arguments is different for eac function, up to 8) + +NOTE: that if there are no arguments you can't put any parenthesis around +them, so "function()" is illegal, it has to be "function", this is only +in infix mode. + +To define a function do: + +\ { } + +to use the arguments use arg1, arg2 ... also note this is exactly the same +for all notations (prefix,infix,postfix) due to some limitations of the +parser I can't do this postfix-like for that notation + +for example: + +3\sum { arg1 + arg2 + arg3 } + +then "sum(1,1,1)" yields 3 + +finally there is the ';' operator, which is a way to separate expressions, +such a combined expression will return whatever is the result of the last +one, so + +3 ; 5 + +yeilds 5 + +this will require some parenthesizing to make it unambiguous sometimes, +especially if the ; is not the top most primitive + +There are 3 constructs, if, ifelse and while. They are rather simple + +here's the syntax: +infix or prefix) + if expression1 (expression2) + ifelse expression1 (expression2) (expression3) + while expression1 (expression2) +postfix) + expression1 (expression2) if + expression1 (expression2) (expression3) ifelse + expression1 (expression2) while + +if will evaluate to expression2 if expression1 is not 0 otherwise it +will evaluate to 0. + +ifelse will evaluate to expression2 if expression1 is not 0 otherwise it +will evaluate to expression3. + +while will evaluate to the last iteration of expression2 or 0 if no +iterations were made. It will also evaluate expression2 n times and +expression1 n+1 times, where n is the number of iterations that were +done. + +NOTE: Parenthesis are required around expressions 2 and 3 in both infix +and prefix, they are optional, but recommended in postfix. + +And now the comparison operators: + +==,>=,<=,!=,<,> return 1 for TRUE, 0 for FALSE + +<=> returns -1 if left side is smaller, 0 if both sides are equal, 1 + if left side is larger + +To build up logical expressions use the words "not","and","or","xor" + + +EXAMPLE PROGRAM in GEL: + a user factorial function (there already is one built in so + this function is useless) + + 1\f { ifelse (arg1 <= 1) (1) (f(arg1-1) * arg1) } + + or with indentation it becomes (there is yet no way to input + programs in this way) + + 1\f { + ifelse (arg1 <= 1) + (1) + (f(arg1-1) * arg1) + } + + this is a direct port of the factorial function from the bc manpage :) + + here's an iterative version: + + 1\f { r=arg1 ; while (arg1>1) ( arg1=arg1-1 ; r=r*arg1 ) ; r } + + let's try this in posfix: + + 1\f { r arg1 = ; (arg1 1 >) (arg1 arg1 1 - =;r r arg1 * =) while;r } + + or fully parenthesized prefix (to make it lisplike if you wish) + + 1\f { (= r arg1);while(> arg1 1)((= arg1 (- arg1 1));(= r (* r arg1)));r } + + +**************************************************************************** + +NOTE: GMP sefaults on some very large numbers so factorials of large numbers +willd o this ... I'll try to catch those before they happen, but I don't +see this as a high priority ... the listbox will segfault anyway on such +numbers :) + +Requirements: + - lex (tested under flex) + - yacc (tested under bison -y) + - gmp (tested with 2.0.2) + - gtk+ + - gnome libs +All except gmp seem to be pretty much standard or Linux systems, and even +on most other platforms. (except gtk and gnome libs, but since this is +distributed with gnome ...) + +It's under GPL so read COPYING + +George + +----------------------------------------------------------------------------- +OLD history, read ChangeLog for new changes: + +what's new since pre-alpha-1: + - support for all the primitives + - some scientific functions + - uses gnomeapp + - variables + - user defined functions + - and a lot more ... read the ChangeLog! what's new since unusable-3: - version change :) @@ -53,12 +240,3 @@ occurs or a part just can't be evaluated (such as division by zero) - results are now put on the display list in the GUI. - -NOTE: GMP sefaults on some very large numbers so factorials of large numbers -willd o this ... I'll try to catch those before they happen, but I don't -see this as a high priority ... the listbox will segfault anyway on such -numbers :) - -it's under GPL so read COPYING - -George diff -uNr gnome-0.11/programs/genius/calc.c gnome-0.12/programs/genius/calc.c --- gnome-0.11/programs/genius/calc.c Tue Jan 6 20:03:08 1998 +++ gnome-0.12/programs/genius/calc.c Mon Jan 12 20:01:30 1998 @@ -26,12 +26,15 @@ #include "calc.h" #include "eval.h" #include "util.h" +#include "dict.h" #include "funclib.h" -int yyparse(void); +#include "mpwrap.h" + extern FILE *yyin; extern char *yytext; +extern int yydebug; /* stack ... has to be global:-( */ evalstack_t evalstack={NULL,0,-1}; @@ -45,165 +48,90 @@ /*error reporting function*/ void (*errorout)(char *)=NULL; -/*round off the number at some digits*/ -void -makemaxdigits(char *s,int digits) -{ - int i; - int sd=0; /*digit where the number starts*/ - - if(s[0]=='-') - sd=1; - - if(!s || digits<=0) - return; - - digits+=sd; - - if(strlen(s)<=digits) - return; - - if(s[digits]<'5') { - s[digits]='\0'; - return; - } - s[digits]='\0'; - - for(i=digits-1;i>=sd;i--) { - if(s[i]<'9') { - s[i]++; - return; - } - s[i]='\0'; - } - shiftstr(s,1); - s[sd]='1'; -} - - -/*formats a floating point with mantissa in p and exponent in e*/ -char * -formatfloat(char *p,long int e) -{ - long int len; - int i; - if(((e-1)<-8 || (e-1)>8) || - calcstate.scientific_notation) { - p=my_realloc(p,strlen(p)+1, - strlen(p)+1+((int)log10(abs(e))+2)+1); - if(p[0]=='-') { - if(strlen(p)>2) { - shiftstr(p+2,1); - p[2]='.'; - } - } else { - if(strlen(p)>1) { - shiftstr(p+1,1); - p[1]='.'; - } - } - sprintf(p,"%se%ld",p,e-1); - } else if(e>0) { - len=strlen(p); - if(p[0]=='-') - len--; - if(e>len) { - p=my_realloc(p,strlen(p)+1, - strlen(p)+1+e-len); - for(i=0;i0 && - calcstate.max_digits=strlen(p)) { - g_free(p2); - return p; - } else { - g_free(p); - return p2; - } - } - return p; + s=makeexprstr(s,l); + s=appendstr(s,p); + s=makeexprstr(s,r); + return s; } +/*appends to S the primitive op and it's arguments*/ char * -getnumstring_q(mpq_t num) +str_prim(char *s, int op, tree_t *l, tree_t *r, tree_t *sr) { - char *p,*p2; - mpf_t fr; + char tmp[3]; + s=appendstr(s,"("); + switch(op) { + case E_SEPAR: s=str_normalprim(s,";",l,r); break; + case E_EQUALS: s=str_normalprim(s,"=",l,r); break; + case E_PLUS: s=str_normalprim(s,"+",l,r); break; + case E_MINUS: s=str_normalprim(s,"-",l,r); break; + case E_MUL: s=str_normalprim(s,"*",l,r); break; + case E_DIV: s=str_normalprim(s,"/",l,r); break; + case E_MOD: s=str_normalprim(s,"%",l,r); break; + case E_NEG: s=str_normalprim(s,"~",l,r); break; + case E_EXP: s=str_normalprim(s,"^",l,r); break; + case E_FACT: s=str_normalprim(s,"!",l,r); break; + case E_FUNCDEF: + if(l->type!=ACTION_NODE || + l->data.action.type!=FUNCTION_TYPE) { + s=appendstr(s,"?error?)"); + return s; + } - p=mpz_get_str(NULL,10,mpq_numref(num)); - p=appendstr(p,"/"); - p2=mpz_get_str(NULL,10,mpq_denref(num)); - p=appendstr(p,p2); - g_free(p2); - if(calcstate.max_digits>0 && - calcstate.max_digits=strlen(p)) { - g_free(p2); - return p; - } else { - g_free(p); - return p2; - } + tmp[2]='\0'; + tmp[1]='\\'; + tmp[0]=(char)(l->data.action.data.function.func->nargs) + +'0'; + s=appendstr(s,tmp); + s=appendstr(s,l->data.action.data.function.func->id); + s=appendstr(s,"{"); + s=makeexprstr(s,r); + s=appendstr(s,"}"); + break; + case E_IF_CONS: + s=appendstr(s,"if("); + s=makeexprstr(s,l); + s=appendstr(s,")("); + s=makeexprstr(s,r); + s=appendstr(s,")"); + break; + case E_IFELSE_CONS: + s=appendstr(s,"ifelse("); + s=makeexprstr(s,l); + s=appendstr(s,")("); + s=makeexprstr(s,r); + s=appendstr(s,")("); + s=makeexprstr(s,sr); + s=appendstr(s,")"); + break; + case E_WHILE_CONS: + s=appendstr(s,"while("); + s=makeexprstr(s,l); + s=appendstr(s,")("); + s=makeexprstr(s,r); + s=appendstr(s,")"); + break; + case E_EQ_CMP: s=str_normalprim(s,"==",l,r); break; + case E_NE_CMP: s=str_normalprim(s,"!=",l,r); break; + case E_CMP_CMP: s=str_normalprim(s,"<=>",l,r); break; + case E_LT_CMP: s=str_normalprim(s,"<",l,r); break; + case E_GT_CMP: s=str_normalprim(s,">",l,r); break; + case E_LE_CMP: s=str_normalprim(s,"<=",l,r); break; + case E_GE_CMP: s=str_normalprim(s,">=",l,r); break; + case E_LOGICAL_AND: s=str_normalprim(s,"and",l,r); break; + case E_LOGICAL_OR: s=str_normalprim(s,"or",l,r); break; + case E_LOGICAL_XOR: s=str_normalprim(s,"xor",l,r); break; + case E_LOGICAL_NOT: s=str_normalprim(s,"not",l,r); break; + default: + s=appendstr(s,""); + break; } - return p; + s=appendstr(s,")"); + return s; } /*make a string representation of an expression*/ @@ -211,33 +139,15 @@ makeexprstr(char *s,tree_t *n) { char *p; - char tmp[20]; int i; - mpf_t fr; if(!n) return s; if(n->type==NUMBER_NODE) { - if(n->data.number.type==FLOAT_TYPE) { - p=getnumstring_f(n->data.number.data.fval); - } else if(n->data.number.type==INTEGER_TYPE) { - if(calcstate.results_as_floats) { - mpf_init(fr); - mpf_set_z(fr,n->data.number.data.ival); - p=getnumstring_f(fr); - mpf_clear(fr); - } else - p=getnumstring_z(n->data.number.data.ival); - } else { /*type==RATIONAL_TYPE*/ - if(calcstate.results_as_floats) { - mpf_init(fr); - mpf_set_q(fr,n->data.number.data.rval); - p=getnumstring_f(fr); - mpf_clear(fr); - } else - p=getnumstring_q(n->data.number.data.rval); - } + p=mpw_getstring(n->data.val,calcstate.max_digits, + calcstate.scientific_notation, + calcstate.results_as_floats); if(!s) return p; s=appendstr(s,p); @@ -245,30 +155,28 @@ return s; } else if(n->type==ACTION_NODE) { if(n->data.action.type==PRIMITIVE_TYPE) { - s=appendstr(s,"("); - s=makeexprstr(s,n->left); - - primstr(tmp,n->data.action.data.primitive); - s=appendstr(s,tmp); - - s=makeexprstr(s,n->right); - s=appendstr(s,")"); + s=str_prim(s,n->data.action.data.primitive, + n->left,n->right,n->secondright); return s; } else { /*type==FUNCTION_TYPE*/ s=appendstr(s,n->data.action.data.function.func->id); - if(n->data.action.data.function.func->args <= 0) + if(n->data.action.data.function.func->nargs<=0) return s; - s=appendstr(s,"("); - s=makeexprstr(s, - n->data.action.data.function.args[0]); - for(i=1;idata.action.data.function.func->args;i++) { - s=appendstr(s,","); + if(n->data.action.data.function.args) { + s=appendstr(s,"("); s=makeexprstr(s, - n->data.action.data.function.args[i]); + n->data.action.data.function.args[0]); + for(i=1;idata.action.data.function.func-> + nargs;i++) { + s=appendstr(s,","); + s=makeexprstr(s, + n->data.action.data. + function.args[i]); + } + s=appendstr(s,")"); + } else { + s=appendstr(s,"(?args?)"); } - - s=makeexprstr(s,n->right); - s=appendstr(s,")"); return s; } } @@ -276,17 +184,63 @@ return s; } +/*add the right parenthesis and brackets to the end of the expression*/ +char * +addparenth(char *s) +{ + /*it won't do anything if we exceed, but such large hardly ever + done by hand*/ + char stack[256]; + int top=0; + char *p; + char tmp[2]; + + for(p=s;*p!='\0';p++) { + switch(*p) { + case '(': + if(top>=256) + return s; + stack[top++]=')'; + break; + case '{': + if(top>=256) + return s; + stack[top++]='}'; + break; + case ')': + if(top<=0) + return s; + if(stack[--top]!=')') + return s; + break; + case '}': + if(top<=0) + return s; + if(stack[--top]!='}') + return s; + break; + } + } + tmp[1]='\0'; + while(top>0) { + tmp[0]=stack[--top]; + s=appendstr(s,tmp); + } + return s; +} + char * evalexp(char * str, calcstate_t state,void (*errorfunc)(char *)) { int fd[2]; char * p; - static int first_time=TRUE; - - if(first_time) - funclib_addall(); - first_time=FALSE; + /*init the context stack and clear out any stale dictionaries + except the global one, if this is the first time called it + will also register the builtin routines with the global + dictionary*/ + d_singlecontext(); + errorout=errorfunc; error_num=NO_ERROR; @@ -294,8 +248,8 @@ /*set the state variable for calculator*/ calcstate=state; - mpf_set_default_prec(state.float_prec); - mp_set_memory_functions(g_malloc,my_realloc,my_free); + mpw_init_mp(); + mpw_set_default_prec(state.float_prec); pipe(fd); yyin=fdopen(fd[0],"r"); @@ -309,6 +263,7 @@ write(fd[1],str,strlen(str)); close(fd[1]); + /*yydebug=TRUE; */ /*turn debugging of parsing on here!*/ while(yyparse() && !feof(yyin)) ; @@ -351,7 +306,7 @@ char *out=NULL; out=appendstr(out,"ERROR: "); out=appendstr(out,s); - out=appendstr(out," at '"); + out=appendstr(out," before '"); out=appendstr(out,yytext); out=appendstr(out,"'"); diff -uNr gnome-0.11/programs/genius/calc.h gnome-0.12/programs/genius/calc.h --- gnome-0.11/programs/genius/calc.h Mon Jan 5 11:12:38 1998 +++ gnome-0.12/programs/genius/calc.h Mon Jan 12 20:01:30 1998 @@ -19,12 +19,16 @@ #ifndef _CALC_H_ #define _CALC_H_ +#include "structs.h" + typedef enum {INFIX_NOTATION,POSTFIX_NOTATION,PREFIX_NOTATION} notation_t; typedef enum { NO_ERROR=0, - PARSE_ERROR + PARSE_ERROR, + INTERNAL_MPW_ERROR, + NUMERICAL_MPW_ERROR } error_t; -typedef struct { +typedef struct _calcstate_t { /*about incoming stuff*/ notation_t notation_in; /*notation of input*/ int float_prec; /*precision of floats to use*/ @@ -36,6 +40,25 @@ int scientific_notation; /*allways scientific notation*/ } calcstate_t; + +/*so we can use and set the yyparse function for parse errors*/ +int yyparse(void); + +/*spit out ordinary primitives, such as plus, minus etc*/ +char * str_normalprim(char *s,char *p, tree_t *l, tree_t *r); + +/*appends to S the primitive op and it's arguments*/ +char * str_prim(char *s, int op, tree_t *l, tree_t *r, tree_t *sr); + +/*make a string representation of an expression*/ +char * makeexprstr(char *s,tree_t *n); + +/*add the right parenthesis and brackets to the end of the expression*/ +char * addparenth(char *s); + +/*this is the function to be mstly called outsied of calc.c + evaluate the xpression string and give back a string with the + result*/ char * evalexp(char * str, calcstate_t state,void (*errorfunc)(char *)); #endif diff -uNr gnome-0.11/programs/genius/dict.c gnome-0.12/programs/genius/dict.c --- gnome-0.11/programs/genius/dict.c Tue Jan 6 20:03:09 1998 +++ gnome-0.12/programs/genius/dict.c Mon Jan 12 20:01:30 1998 @@ -24,13 +24,18 @@ #include "util.h" #include "funclib.h" -static func_t * dict[DICT_LEN]; -static int dictsize=0; +static context_t context={NULL,-1,0}; +/*return current context number (0 is global, -1 is uninitialized)*/ +int +d_curcontext(void) +{ + return context.top; +} /*make builtin function and return it*/ func_t * -d_makebifunc(char *id, dictfunc f, int args) +d_makebifunc(char *id, dictfunc f, int nargs, int dynamic) { func_t *n; @@ -38,7 +43,9 @@ n->id=(char *)g_malloc(strlen(id)+1); strcpy(n->id,id); n->data.func=f; - n->args=args; + n->nargs=nargs; + n->context=context.top; + n->dynamic=dynamic; n->type=BUILTIN_FUNC; return n; @@ -46,48 +53,108 @@ /*make a user function and return it*/ func_t * -d_makeufunc(char *id, tree_t *value, int args) +d_makeufunc(char *id, tree_t *value, dict_t *dict, int nargs, int dynamic) { func_t *n; n=(func_t *)g_malloc(sizeof(func_t)); n->id=(char *)g_malloc(strlen(id)+1); strcpy(n->id,id); - n->data.value=value; - n->args=args; + n->data.user.value=value; + n->data.user.dict=dict; + n->nargs=nargs; + n->context=context.top; + n->dynamic=dynamic; n->type=USER_FUNC; return n; } -/*add a functuion struct to the dict*/ -int +/*make a new blank dictionary and return it*/ +dict_t * +d_newdict(void) +{ + dict_t *n; + n=(dict_t *)g_malloc(sizeof(dict_t)); + n->size=256; + n->top=-1; /*-1 means that dictionary is empty!*/ + n->dict=(func_t * *)g_malloc(sizeof(func_t *)*256); + return n; +} + +void +d_initcontext(void) +{ + context.size=256; + context.top=0; /*0 means that element 0 exists!*/ + context.stack=(dict_t * *)g_malloc(sizeof(dict_t *)*256); + context.stack[0]=d_newdict(); + + /*this is where the built in functions register into the global + dictionary*/ + funclib_addall(); +} + +/*add a functuion struct to the dict (in current context)*/ +func_t * d_addfunc(func_t *func) { func_t *n; - if(dictsize>=DICT_LEN) { - freefunc(func); - return FALSE; - } - n=d_lookup(func->id); + + /*we already found it (in current context)*/ + n=d_lookup(func->id,FALSE); if(n) { replacefunc(n,func); - return TRUE; + return n; + } + + if((CURDICT->top+1)>=CURDICT->size) { + /*make the dict larger*/ + CURDICT->dict=(func_t * *)my_realloc( + CURDICT->dict,sizeof(func_t *)*CURDICT->size, + sizeof(func_t *)*(CURDICT->size+256)); + if(CURDICT->dict==NULL) /*out of mem right here!*/ + return NULL; + CURDICT->size+=256; } - dict[dictsize++]=func; + CURDICT->dict[++CURDICT->top]=func; + return func; +} + +/*set value of an existing function (in local context), used for arguments + WARNING, does not free the memory allocated by previous value!*/ +int +d_setvalue(char *id,tree_t *value) +{ + func_t *f; + f=d_lookup(id,FALSE); + if(!f || f->type!=USER_FUNC) + return FALSE; + f->data.user.value=value; return TRUE; } /*dictionary functions*/ +/*lookup a function in the dictionary, either the whole thing if global + is TRUE, or just the current context otherwise + a terribly inefficent linear search, it was just easy to code nothing + else, a hash would be more appropriate*/ func_t * -d_lookup(char *id) +d_lookup(char *id,int global) { - int i; + int i,n; + + for(i=0;i<=CURDICT->top;i++) + if(strcmp(CURDICT->dict[i]->id,id)==0) + return CURDICT->dict[i]; + + if(global) + for(n=context.top;n>=0;n--) + for(i=0;i<=DICTAT(n)->top;i++) + if(strcmp(DICTAT(n)->dict[i]->id,id)==0) + return DICTAT(n)->dict[i]; - for(i=0;iid,id)==0) - return dict[i]; return NULL; } @@ -98,6 +165,35 @@ return FALSE; } +/*clear all context dictionaries and pop out all the contexts except + the global one + also init the context stack if it hasn't been done*/ +void +d_singlecontext(void) +{ + if(context.stack==NULL) + d_initcontext(); + else + while(context.top>0) + freedict(d_popcontext(),TRUE); +} + +/*free all memory allocated by a dictionary (except for non-dynamic (static) + functions if dynamiconly is TRUE)*/ +void +freedict(dict_t *n,int dynamiconly) +{ + int i; + + if(!n) + return; + + for(i=0;i<=n->top;i++) + if(!dynamiconly || n->dict[i]->dynamic) + freefunc(n->dict[i]); + g_free(n); +} + void freefunc(func_t *n) { @@ -105,8 +201,12 @@ return; if(n->id) g_free(n->id); - if(n->type==USER_FUNC && n->data.value) - freetree(n->data.value); + if(n->type==USER_FUNC) { + if(n->data.user.value) + freetree(n->data.user.value); + if(n->data.user.dict) + freedict(n->data.user.dict,FALSE); + } g_free(n); } @@ -118,10 +218,70 @@ return; if(old->id) g_free(old->id); - if(old->type==USER_FUNC && old->data.value) - freetree(old->data.value); + if(old->type==USER_FUNC) { + if(old->data.user.value) + freetree(old->data.user.value); + if(old->data.user.dict) + freedict(old->data.user.dict,FALSE); + } old->id=new->id; + old->context=new->context; + old->dynamic=new->dynamic; old->type=new->type; old->data=new->data; g_free(new); +} + +/*copy a dictionary, but not functions, they stay the same pointers, this + should only be done with dictionaries with no dymanic entries as those + would be easily cleared*/ +dict_t * +copydict(dict_t *n) +{ + dict_t *r; + int i; + + if(!n) + return NULL; + + r=(dict_t *)g_malloc(sizeof(dict_t)); + if(!r) + return NULL; + r->dict=(func_t * *)g_malloc(sizeof(func_t *)*n->size); + r->size=n->size; + r->top=n->top; + for(i=0;i<=n->top;i++) + r->dict[i]=n->dict[i]; + + return r; +} + +/*push a new dictionary onto the context stack*/ +int +d_addcontext(dict_t *n) +{ + if((context.top+1)>=context.size) { + /*make the context stack larger*/ + context.stack=(dict_t * *)my_realloc( + context.stack,sizeof(dict_t *)*context.size, + sizeof(dict_t *)*(context.size+256)); + if(context.stack==NULL) /*out of mem right here!*/ + return FALSE; + context.size+=256; + } + if(!n) + context.stack[++context.top]=d_newdict(); + else + context.stack[++context.top]=n; + return TRUE; +} + +/*gimme the last dictinary*/ +dict_t * +d_popcontext(void) +{ + if(context.top==-1) + return NULL; + else + return context.stack[context.top--]; } diff -uNr gnome-0.11/programs/genius/dict.h gnome-0.12/programs/genius/dict.h --- gnome-0.11/programs/genius/dict.h Tue Jan 6 20:03:09 1998 +++ gnome-0.12/programs/genius/dict.h Mon Jan 12 20:01:31 1998 @@ -22,24 +22,75 @@ /*declarations of structures*/ #include "structs.h" -#define DICT_LEN 256 +/*the context stack structure*/ +typedef struct _context_t { + dict_t * * stack; + int top; + int size; +} context_t; + typedef tree_t *(*dictfunc)(tree_t * *); -/*functions for manipulating a tree*/ -func_t * d_makebifunc(char *id, dictfunc f, int args); /*create builtin*/ -func_t * d_makeufunc(char *id, tree_t *value, int args); /*create user*/ +/*dictionary access macros*/ +#define CURDICT (context.stack[context.top]) +#define DICTAT(X) (context.stack[X]) + +/*return current context number (0 is global, -1 is uninitialized)*/ +int d_curcontext(void); + +/*make builtin function and return it*/ +func_t * d_makebifunc(char *id, dictfunc f, int nargs, int dynamic); + +/*make a user function and return it*/ +func_t * d_makeufunc(char *id, tree_t *value, dict_t *dict, int nargs, + int dynamic); + +/*make a new blank dictionary and return it*/ +dict_t * d_newdict(void); + +void d_initcontext(void); + +/*add a functuion struct to the dict (in current context)*/ +func_t * d_addfunc(func_t *func); -int d_addfunc(func_t *func); +/*set value of an existing function (in local context), used for arguments + WARNING, does not free the memory allocated by previous value!*/ +int d_setvalue(char *id,tree_t *value); /*dictionary functions*/ -func_t *d_lookup(char *id); + +/*lookup a function in the dictionary, either the whole thing if global + is TRUE, or just the current context otherwise + a terribly inefficent linear search, it was just easy to code nothing + else, a hash would be more appropriate*/ +func_t * d_lookup(char *id,int global); + int d_delete(char *id); -/*memory free function*/ +/*clear all context dictionaries and pop out all the contexts except + the global one + also init the context stack if it hasn't been done*/ +void d_singlecontext(void); + +/*free all memory allocated by a dictionary (except for non-dynamic (static) + functions if dynamiconly is TRUE)*/ +void freedict(dict_t *n,int dynamiconly); + void freefunc(func_t *n); /*replace old with stuff from new and free new*/ void replacefunc(func_t *old,func_t *new); + +/*copy a dictionary, but not functions, they stay the same pointers, this + should only be done with dictionaries with no dymanic entries as those + would be easily cleared*/ +dict_t * copydict(dict_t *n); + +/*push a new dictionary onto the context stack*/ +int d_addcontext(dict_t *n); + +/*gimme the last dictinary*/ +dict_t * d_popcontext(void); #endif diff -uNr gnome-0.11/programs/genius/eval.c gnome-0.12/programs/genius/eval.c --- gnome-0.11/programs/genius/eval.c Tue Jan 6 22:13:43 1998 +++ gnome-0.12/programs/genius/eval.c Mon Jan 12 20:01:31 1998 @@ -18,8 +18,8 @@ #include #include -#include #include +#include "mpwrap.h" #include "eval.h" #include "calc.h" #include "dict.h" @@ -32,97 +32,115 @@ extern void (*errorout)(char *); -/*returns 10 01 or 11 depending if the operation has left, right or both -branches*/ +/*returns 100 010 or 110 depending if the operation has left, right or both +branches, sometimes ??1 will mean a second right is used*/ int branches(int op) { switch(op) { - case E_EQUALS: return 3; - case E_PLUS: return 3; - case E_MINUS: return 3; - case E_MUL: return 3; - case E_DIV: return 3; - case E_MOD: return 3; + case E_SEPAR: return 6; + case E_EQUALS: return 6; + case E_PLUS: return 6; + case E_MINUS: return 6; + case E_MUL: return 6; + case E_DIV: return 6; + case E_MOD: return 6; case E_NEG: return 2; - case E_EXP: return 3; - case E_FACT: return 1; + case E_EXP: return 6; + case E_FACT: return 4; + case E_FUNCDEF: return 6; + case E_IF_CONS: return 6; + case E_IFELSE_CONS: return 7; + case E_WHILE_CONS: return 6; + case E_EQ_CMP: return 6; + case E_NE_CMP: return 6; + case E_CMP_CMP: return 6; + case E_LT_CMP: return 6; + case E_GT_CMP: return 6; + case E_LE_CMP: return 6; + case E_GE_CMP: return 6; + case E_LOGICAL_AND: return 6; + case E_LOGICAL_OR: return 6; + case E_LOGICAL_XOR: return 6; + case E_LOGICAL_NOT: return 2; } return 0; } -/*sets s to the string representation of the primitive, s has to be big -enough! */ -void -primstr(char *s, int op) +/*similiar to the above, which branches should be evaluated*/ +int +brancheseval(int op) { switch(op) { - case E_EQUALS: strcpy(s,"="); return; - case E_PLUS: strcpy(s,"+"); return; - case E_MINUS: strcpy(s,"-"); return; - case E_MUL: strcpy(s,"*"); return; - case E_DIV: strcpy(s,"/"); return; - case E_MOD: strcpy(s,"%"); return; - case E_NEG: strcpy(s,"~"); return; - case E_EXP: strcpy(s,"^"); return; - case E_FACT: strcpy(s,"!"); return; + case E_SEPAR: return 6; + case E_EQUALS: return 2; + case E_PLUS: return 6; + case E_MINUS: return 6; + case E_MUL: return 6; + case E_DIV: return 6; + case E_MOD: return 6; + case E_NEG: return 2; + case E_EXP: return 6; + case E_FACT: return 4; + case E_FUNCDEF: return 0; + case E_IF_CONS: return 4; + case E_IFELSE_CONS: return 4; + case E_WHILE_CONS: return 0; /*this has to be done each + iteration!*/ + case E_EQ_CMP: return 6; + case E_NE_CMP: return 6; + case E_CMP_CMP: return 6; + case E_LT_CMP: return 6; + case E_GT_CMP: return 6; + case E_LE_CMP: return 6; + case E_GE_CMP: return 6; + case E_LOGICAL_AND: return 6; + case E_LOGICAL_OR: return 6; + case E_LOGICAL_XOR: return 6; + case E_LOGICAL_NOT: return 2; } - strcpy(s,""); -} - -tree_t * -makenum_z_ui(unsigned long num) -{ - tree_t *n; - n=(tree_t *)g_malloc(sizeof(tree_t)); - n->type=NUMBER_NODE; - n->data.number.type=INTEGER_TYPE; - mpz_init(n->data.number.data.ival); - mpz_set_ui(n->data.number.data.ival,num); - n->left=NULL; - n->right=NULL; - return n; + return 0; } tree_t * -makenum_z(mpz_t num) +makenum_ui(unsigned long num) { tree_t *n; n=(tree_t *)g_malloc(sizeof(tree_t)); n->type=NUMBER_NODE; - n->data.number.type=INTEGER_TYPE; - mpz_init_set(n->data.number.data.ival,num); + mpw_init(n->data.val); + mpw_set_ui(n->data.val,num); n->left=NULL; n->right=NULL; + n->secondright=NULL; return n; } tree_t * -makenum_q(mpq_t num) +makenum_si(long num) { tree_t *n; n=(tree_t *)g_malloc(sizeof(tree_t)); n->type=NUMBER_NODE; - n->data.number.type=RATIONAL_TYPE; - mpq_init(n->data.number.data.rval); - mpq_set(n->data.number.data.rval,num); + mpw_init(n->data.val); + mpw_set_si(n->data.val,num); n->left=NULL; n->right=NULL; - makeint(n); /*convert to int if it's possible (e.g. 44/1 is 44)*/ + n->secondright=NULL; return n; } tree_t * -makenum_f(mpf_t num) +makenum(mpw_t num) { tree_t *n; n=(tree_t *)g_malloc(sizeof(tree_t)); n->type=NUMBER_NODE; - n->data.number.type=FLOAT_TYPE; - mpf_init_set(n->data.number.data.fval,num); + mpw_init(n->data.val); + mpw_set(n->data.val,num); n->left=NULL; n->right=NULL; - makeint(n); /*convert to int if it's possible (e.g. 44.0 is 44)*/ + n->secondright=NULL; return n; } @@ -134,11 +152,15 @@ n->type=ACTION_NODE; n->data.action.type=PRIMITIVE_TYPE; n->data.action.data.primitive=func; + if(branches(func)&1) + n->secondright=t_pop(stack); + else + n->secondright=NULL; if(branches(func)&2) n->right=t_pop(stack); else n->right=NULL; - if(branches(func)&1) + if(branches(func)&4) n->left=t_pop(stack); else n->left=NULL; @@ -156,11 +178,30 @@ n->data.action.type=FUNCTION_TYPE; n->data.action.data.function.func=func; n->data.action.data.function.args= - (tree_t * *)g_malloc(sizeof(tree_t *)*func->args); - for(i=func->args-1;i>=0;i--) + (tree_t * *)g_malloc(sizeof(tree_t *)*func->nargs); + for(i=func->nargs-1;i>=0;i--) n->data.action.data.function.args[i]=t_pop(stack); n->right=NULL; n->left=NULL; + n->secondright=NULL; + return n; +} + +/*same as above but used for declarations, it doesn'y pop any arguments of + the stack and doesn't build an argument array*/ +tree_t * +makefuncd0(func_t * func) +{ + tree_t *n; + + n=(tree_t *)g_malloc(sizeof(tree_t)); + n->type=ACTION_NODE; + n->data.action.type=FUNCTION_TYPE; + n->data.action.data.function.func=func; + n->data.action.data.function.args=NULL; + n->right=NULL; + n->left=NULL; + n->secondright=NULL; return n; } @@ -194,14 +235,8 @@ { if(!n) return; - if(n->type==NUMBER_NODE) { - if(n->data.number.type==INTEGER_TYPE) - mpz_clear(n->data.number.data.ival); - else if(n->data.number.type==FLOAT_TYPE) - mpf_clear(n->data.number.data.fval); - else /*RATIONAL_TYPE*/ - mpq_clear(n->data.number.data.rval); - } + if(n->type==NUMBER_NODE) + mpw_clear(n->data.val); } /*free arguments to a dictionary function*/ @@ -217,7 +252,7 @@ if(!n->data.action.data.function.args) return; - for(i=0;idata.action.data.function.func->args;i++) + for(i=0;idata.action.data.function.func->nargs;i++) if(n->data.action.data.function.args[i]) freetree(n->data.action.data.function.args[i]); } @@ -247,108 +282,276 @@ n=(tree_t *)g_malloc(sizeof(tree_t)); n->left=copynode(o->left); n->right=copynode(o->right); + n->secondright=copynode(o->secondright); n->type=o->type; if(o->type==NUMBER_NODE) { - n->data.number.type=o->data.number.type; - if(o->data.number.type==INTEGER_TYPE) { - mpz_init_set(n->data.number.data.ival, - o->data.number.data.ival); - } else if(o->data.number.type==FLOAT_TYPE) { - mpf_init_set(n->data.number.data.fval, - o->data.number.data.fval); - } else if(o->data.number.type==RATIONAL_TYPE) { - mpq_init(n->data.number.data.rval); - mpq_set(n->data.number.data.rval, - o->data.number.data.rval); - } + mpw_init(n->data.val); + mpw_set(n->data.val,o->data.val); } else { /*type==ACTION_NODE*/ n->data.action.type=o->data.action.type; if(o->data.action.type==PRIMITIVE_TYPE) { n->data.action.data.primitive= o->data.action.data.primitive; - } else if(o->data.number.type==FUNCTION_TYPE) { + } else if(o->data.action.type==FUNCTION_TYPE) { n->data.action.data.function.func= o->data.action.data.function.func; - for(i=0;idata.action.data.function.func->args;i++) - n->data.action.data.function.args[i]=copynode( - o->data.action.data.function.args[i]); + if(o->data.action.data.function.args) { + n->data.action.data.function.args= + (tree_t * *)g_malloc(sizeof(tree_t *)* + o->data.action.data.function.func-> + nargs); + for(i=0;idata.action.data.function.func-> + nargs;i++) + n->data.action.data.function.args[i]= + copynode( + o->data.action.data.function. + args[i]); + } else + n->data.action.data.function.args=NULL; } } return n; } -/*evaluate a treenode, the tree node will become a number node*/ -/*or at least all the calculatable parts will be calculated so*/ -/*it will be a reduced tree*/ -/*the tree will be freed*/ +/*evaluate arguments of a function*/ tree_t * -evalnode(tree_t *n) +evalargs(tree_t *n) { - tree_t *r=NULL; int i; + if(n->type!=ACTION_NODE || n->data.action.type!=FUNCTION_TYPE) + return NULL; - if(n==NULL) + for(i=0;idata.action.data.function.func->nargs;i++) + if((n->data.action.data.function.args[i]= + evalnode(n->data.action.data.function.args[i]))==NULL) + return NULL; + return n; +} + +/*evaluate a user function*/ +tree_t * +evaluserfunc(tree_t *n) +{ + tree_t *r; + char tmp[5]="arg?"; + int i; + func_t *f; + + if(n->type!=ACTION_NODE || n->data.action.type!=FUNCTION_TYPE || + n->data.action.data.function.func->type!=USER_FUNC) return NULL; - if(n->type==NUMBER_NODE) - return n; - if(n->data.action.type==FUNCTION_TYPE) { - for(i=0;idata.action.data.function.func->args;i++) - n->data.action.data.function.args[i]= - evalnode(n->data.action.data.function.args[i]); - - if(n->data.action.data.function.func->type==USER_FUNC) { - r=copynode( - n->data.action.data.function.func->data.value); - r=evalnode(r); - } else { - r=(*n->data.action.data.function.func->data.func) - (n->data.action.data.function.args); - } - if(r!=NULL) { - freetree(n); - return r; - } else if(error_num!=NO_ERROR) { - /*something errored out*/ - freetree(n); + if(n->data.action.data.function.func->data.user.value) + r=copynode(n->data.action.data.function.func-> + data.user.value); + else { + /*this was a dummy function, find the real + one*/ + f=d_lookup(n->data.action.data.function.func->id,TRUE); + if(!f) { + (*errorout)("Variable used uninitialized!"); return NULL; - } /*r==NULL && error_num==NO_ERROR*/ - /*this error is not too serious, just this action can't - be computed*/ - return n; + } + + r=copynode(f->data.user.value); + /*FIXME: maybe some reference counting here!*/ + n->data.action.data.function.func=f; } - if(n->right) { + /*only a variable*/ + if(r->type==NUMBER_NODE) + return r; + + d_addcontext(NULL); + /*push arguments on context stack*/ + for(i=0;idata.action.data.function.func->nargs;i++){ + tmp[3]=(char)i+'1'; /*the arg var name*/ + d_addfunc(d_makeufunc(tmp,copynode( + n->data.action.data.function.args[i]), + NULL,0,TRUE)); + } + r=evalnode(r); + freedict(d_popcontext(),TRUE); + + return r; +} + +/*evaluate branches of a primitive, returns 0 if all ok, 1 if n should + be returned or 2 on a serious error*/ +int +evalbranches(tree_t *n) +{ + int noeval=FALSE; + + if(n->type!=ACTION_NODE || n->data.action.type!=PRIMITIVE_TYPE) + return 2; + + if(brancheseval(n->data.action.data.primitive)&4) { + if((n->left=evalnode(n->left))==NULL) { + freetree(n); + return 2; /*an error occured*/ + } + /*can't evaluate this!*/ + if(n->left->type!=NUMBER_NODE) + noeval=TRUE; + } + if(brancheseval(n->data.action.data.primitive)&2) { if((n->right=evalnode(n->right))==NULL) { freetree(n); - return NULL; /*an error occured*/ + return 2; /*an error occured*/ } + /*can't evaluate this!*/ + if(n->right->type!=NUMBER_NODE) + noeval=TRUE; } - /*don't evaluate left side if this is an equals operation!*/ - if(n->data.action.data.primitive!=E_EQUALS && n->left) { - if((n->left=evalnode(n->left))==NULL) { + if(brancheseval(n->data.action.data.primitive)&1) { + if((n->secondright=evalnode(n->secondright))==NULL) { freetree(n); - return NULL; /*an error occured*/ + return 2; /*an error occured*/ } /*can't evaluate this!*/ - if(n->left->type!=NUMBER_NODE) - return n; + if(n->secondright->type!=NUMBER_NODE) + noeval=TRUE; } - /*can't evaluate this!*/ - if(n->right!=NULL && n->right->type!=NUMBER_NODE) + /*if something didn't evaluate we can't calculate this + primitive except for SEPARATOR which will just copy + the right side and so it works even with unevaluated + arguments*/ + if(noeval && n->data.action.data.primitive!=E_SEPAR) + return 1; + return 0; +} + +/*return TRUE if node is true (a number node !=0), false otherwise*/ +int +isnodetrue(tree_t *n) +{ + tree_t *m; + int r=FALSE; + int madecopy=FALSE; + + /*we don't have to make a copy and evaluate if the tree is a number + already*/ + if(n->type!=NUMBER_NODE) { + madecopy=TRUE; + m=evalnode(copynode(n)); + if(!m) + return FALSE; + if(m->type!=NUMBER_NODE) { + freetree(m); + return FALSE; + } + } else + m=n; + if(mpw_sgn(m->data.val)!=0) + r=TRUE; + else + r=FALSE; + if(madecopy) + freetree(m); + return r; +} + + +/*evaluate a treenode, the tree node will become a number node + or at least all the calculatable parts will be calculated so + it will be a reduced tree + the tree will be freed*/ +tree_t * +evalnode(tree_t *n) +{ + tree_t *r=NULL; + + if(n==NULL) + return NULL; + if(n->type==NUMBER_NODE) return n; - switch(n->data.action.data.primitive) { - case E_EQUALS: r=equalsop(n->left,n->right); break; - case E_PLUS: r=plusop(n->left,n->right); break; - case E_MINUS: r=minusop(n->left,n->right); break; - case E_MUL: r=mulop(n->left,n->right); break; - case E_DIV: r=divop(n->left,n->right); break; - case E_MOD: r=modop(n->left,n->right); break; - case E_NEG: r=negop(n->right); break; - case E_EXP: r=expop(n->left,n->right); break; - case E_FACT: r=factop(n->left); break; + + if(n->data.action.type==FUNCTION_TYPE) { + /*evaluate arguments*/ + if(!evalargs(n)) + return NULL; + + if(n->data.action.data.function.func->type==USER_FUNC) + r=evaluserfunc(n); + else + r=(*n->data.action.data.function.func->data.func) + (n->data.action.data.function.args); + } else { + /*evaluate the different primitive branches + note that some type of operations will not + allow certain branches to be evaluated at this + time*/ + switch(evalbranches(n)) { + case 1: return n; + case 2: return NULL; + } + switch(n->data.action.data.primitive) { + case E_SEPAR: r=copynode(n->right); break; + case E_EQUALS: r=equalsop(n->left,n->right); break; + case E_PLUS: r=plusop(n->left,n->right); break; + case E_MINUS: r=minusop(n->left,n->right); break; + case E_MUL: r=mulop(n->left,n->right); break; + case E_DIV: r=divop(n->left,n->right); break; + case E_MOD: r=modop(n->left,n->right); break; + case E_NEG: r=negop(n->right); break; + case E_EXP: r=expop(n->left,n->right); break; + case E_FACT: r=factop(n->left); break; + case E_FUNCDEF: r=funcdefop(n->left,n->right); break; + case E_IF_CONS: + if(n->left->type!=NUMBER_NODE) { + (*errorout)("Left value is NOT a" + " number!" + " (ignoring if construct)"); + return n; + } + if(isnodetrue(n->left)) + r=evalnode(copynode(n->right)); + else + r=makenum_ui(0); + break; + case E_IFELSE_CONS: + if(n->left->type!=NUMBER_NODE) { + (*errorout)("Left value is NOT a" + " number!" + " (ignoring ifelse construct)"); + return n; + } + if(isnodetrue(n->left)) + r=evalnode(copynode(n->right)); + else + r=evalnode(copynode(n->secondright)); + break; + case E_WHILE_CONS: + /*if there is NO iteration return 0*/ + if(isnodetrue(n->left)) { + r=evalnode(copynode(n->right)); + while(isnodetrue(n->left)) { + /*get rid of previous results*/ + freetree(r); + r=evalnode(copynode(n->right)); + } + } else + r=makenum_ui(0); + break; + case E_EQ_CMP: r=eqcmpop(n->left,n->right); break; + case E_NE_CMP: r=necmpop(n->left,n->right); break; + case E_CMP_CMP: r=cmpcmpop(n->left,n->right); break; + case E_LT_CMP: r=ltcmpop(n->left,n->right); break; + case E_GT_CMP: r=gtcmpop(n->left,n->right); break; + case E_LE_CMP: r=lecmpop(n->left,n->right); break; + case E_GE_CMP: r=gecmpop(n->left,n->right); break; + case E_LOGICAL_AND: + r=logicalandop(n->left,n->right); break; + case E_LOGICAL_OR: + r=logicalorop(n->left,n->right); break; + case E_LOGICAL_XOR: + r=logicalxorop(n->left,n->right); break; + case E_LOGICAL_NOT: + r=logicalnotop(n->right); break; + } } if(r!=NULL) { freetree(n); @@ -362,520 +565,327 @@ return n; } -/*make node float*/ -void -makefloat(tree_t *n) +tree_t * +plusop(tree_t *l,tree_t *r) { - mpf_t fr; + tree_t *n=NULL; + mpw_t res; - if(n->type!=NUMBER_NODE || n->data.number.type==FLOAT_TYPE) - return; - n->data.number.type=FLOAT_TYPE; - if(n->data.number.type==RATIONAL_TYPE) { - mpf_init(fr); - mpf_set_q(fr,n->data.number.data.rval); - mpq_clear(n->data.number.data.rval); - mpf_init(n->data.number.data.fval); - mpf_set(n->data.number.data.fval,fr); - mpf_clear(fr); - } else { /*type==INTEGER_TYPE*/ - mpf_init(fr); - mpf_set_z(fr,n->data.number.data.ival); - mpz_clear(n->data.number.data.ival); - mpf_init_set(n->data.number.data.fval,fr); - mpf_clear(fr); + mpw_init(res); + mpw_add(res,l->data.val,r->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } + mpw_make_int(res,calcstate.make_floats_ints); + n=makenum(res); + mpw_clear(res); + + return n; } -/*make float node rational*/ -void -makefloatrational(tree_t *n) +tree_t * +minusop(tree_t *l,tree_t *r) { - char *s; - long int e; - - if(n->type!=NUMBER_NODE || n->data.number.type!=FLOAT_TYPE) - return; + tree_t *n=NULL; + mpw_t res; - s=mpf_get_str(NULL,&e,10,0,n->data.number.data.fval); - e-=strlen(s); - if(e>0) { - s=my_realloc(s,strlen(s)+1,strlen(s)+e+1); - for(;e>0;e--) - strcat(s,"0"); + mpw_init(res); + mpw_sub(res,l->data.val,r->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } - mpf_clear(n->data.number.data.fval); - mpq_init(n->data.number.data.rval); - mpz_set_str(mpq_numref(n->data.number.data.rval),s,10); - mpz_set_ui(mpq_denref(n->data.number.data.rval),10); - mpz_pow_ui(mpq_denref(n->data.number.data.rval), - mpq_denref(n->data.number.data.rval),-e); + mpw_make_int(res,calcstate.make_floats_ints); + n=makenum(res); + mpw_clear(res); - g_free(s); - - n->data.number.type=RATIONAL_TYPE; - mpq_canonicalize(n->data.number.data.rval); + return n; } - -/*make node int if at all possible*/ -void -makeint(tree_t *n) +tree_t * +mulop(tree_t *l,tree_t *r) { - mpz_t ir; - mpf_t fr; + tree_t *n=NULL; + mpw_t res; - if(n->type!=NUMBER_NODE || n->data.number.type==INTEGER_TYPE) - return; - if(n->data.number.type==RATIONAL_TYPE) { - mpq_canonicalize(n->data.number.data.rval); - if(mpz_cmp_ui(mpq_denref(n->data.number.data.rval),1)==0) { - mpz_init_set(ir,mpq_numref(n->data.number.data.rval)); - mpq_clear(n->data.number.data.rval); - mpz_init_set(n->data.number.data.ival,ir); - mpz_clear(ir); - n->data.number.type=INTEGER_TYPE; - } - } else { /*type==FLOAT_TYPE*/ - if(!calcstate.make_floats_ints) /*are we allowed to do this?*/ - return; - /*gotta find a better way of doing this!*/ - mpz_init(ir); - mpz_set_f(ir,n->data.number.data.fval); - mpf_init(fr); - mpf_set_z(fr,ir); - if(mpf_cmp(fr,n->data.number.data.fval)==0) { - n->data.number.type=INTEGER_TYPE; - mpf_clear(n->data.number.data.fval); - mpz_init_set(n->data.number.data.ival,ir); - } - mpf_clear(fr); - mpz_clear(ir); + mpw_init(res); + mpw_mul(res,l->data.val,r->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } + mpw_make_int(res,calcstate.make_floats_ints); + n=makenum(res); + mpw_clear(res); + + return n; } -/*make both number nodes the same type*/ -void -makesame(tree_t *l,tree_t *r) +tree_t * +divop(tree_t *l,tree_t *r) { - mpf_t fr; - mpq_t rr; - - if(l->type!=NUMBER_NODE || r->type!=NUMBER_NODE) - return; - if(l->data.number.type==r->data.number.type) - return; + tree_t *n=NULL; + mpw_t res; - if(r->data.number.type==FLOAT_TYPE) { - mpf_init(fr); - if(l->data.number.type==INTEGER_TYPE) { - mpf_set_z(fr,l->data.number.data.ival); - mpz_clear(l->data.number.data.ival); - } else if(l->data.number.type==RATIONAL_TYPE) { - mpf_set_q(fr,l->data.number.data.rval); - mpq_clear(l->data.number.data.rval); - } - mpf_init_set(l->data.number.data.fval,fr); - l->data.number.type=FLOAT_TYPE; - mpf_clear(fr); - } else if(l->data.number.type==FLOAT_TYPE) { - mpf_init(fr); - if(r->data.number.type==INTEGER_TYPE) { - mpf_set_z(fr,r->data.number.data.ival); - mpz_clear(r->data.number.data.ival); - } else if(r->data.number.type==RATIONAL_TYPE) { - mpf_set_q(fr,r->data.number.data.rval); - mpq_clear(r->data.number.data.rval); - } - mpf_init_set(r->data.number.data.fval,fr); - r->data.number.type=FLOAT_TYPE; - mpf_clear(fr); - } else if(r->data.number.type==RATIONAL_TYPE) { - mpq_init(rr); /*l is for sure integer!*/ - mpq_set_z(rr,l->data.number.data.ival); - mpz_clear(l->data.number.data.ival); - mpq_init(l->data.number.data.rval); - mpq_set(l->data.number.data.rval,rr); - l->data.number.type=RATIONAL_TYPE; - mpq_clear(rr); - } else if(l->data.number.type==RATIONAL_TYPE) { - mpq_init(rr); /*r is for sure integer!*/ - mpq_set_z(rr,r->data.number.data.ival); - mpz_clear(r->data.number.data.ival); - mpq_init(r->data.number.data.rval); - mpq_set(r->data.number.data.rval,rr); - r->data.number.type=RATIONAL_TYPE; - mpq_clear(rr); + mpw_init(res); + mpw_div(res,l->data.val,r->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } + mpw_make_int(res,calcstate.make_floats_ints); + n=makenum(res); + mpw_clear(res); + + return n; } tree_t * -plusop(tree_t *l,tree_t *r) +modop(tree_t *l,tree_t *r) { tree_t *n=NULL; + mpw_t res; - makesame(l,r); - - /*if l is something so is r!*/ - switch(l->data.number.type) { - case INTEGER_TYPE: - mpz_add(l->data.number.data.ival, - l->data.number.data.ival, - r->data.number.data.ival); - n=makenum_z(l->data.number.data.ival); - break; - case FLOAT_TYPE: - mpf_add(l->data.number.data.fval, - l->data.number.data.fval, - r->data.number.data.fval); - n=makenum_f(l->data.number.data.fval); - break; - case RATIONAL_TYPE: - mpq_add(l->data.number.data.rval, - l->data.number.data.rval, - r->data.number.data.rval); - n=makenum_q(l->data.number.data.rval); - break; + mpw_init(res); + mpw_mod(res,l->data.val,r->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } + mpw_make_int(res,calcstate.make_floats_ints); + n=makenum(res); + mpw_clear(res); + return n; } tree_t * -minusop(tree_t *l,tree_t *r) +negop(tree_t *r) { tree_t *n=NULL; + mpw_t res; - makesame(l,r); - - /*if l is something so is r!*/ - switch(l->data.number.type) { - case INTEGER_TYPE: - mpz_sub(l->data.number.data.ival, - l->data.number.data.ival, - r->data.number.data.ival); - n=makenum_z(l->data.number.data.ival); - break; - case FLOAT_TYPE: - mpf_sub(l->data.number.data.fval, - l->data.number.data.fval, - r->data.number.data.fval); - n=makenum_f(l->data.number.data.fval); - break; - case RATIONAL_TYPE: - mpq_sub(l->data.number.data.rval, - l->data.number.data.rval, - r->data.number.data.rval); - n=makenum_q(l->data.number.data.rval); - break; + mpw_init(res); + mpw_neg(res,r->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } + n=makenum(res); + mpw_clear(res); + return n; } tree_t * -mulop(tree_t *l,tree_t *r) +expop(tree_t *l, tree_t *r) { tree_t *n=NULL; + mpw_t res; - makesame(l,r); - - /*if l is something so is r!*/ - switch(l->data.number.type) { - case INTEGER_TYPE: - mpz_mul(l->data.number.data.ival, - l->data.number.data.ival, - r->data.number.data.ival); - n=makenum_z(l->data.number.data.ival); - break; - case FLOAT_TYPE: - mpf_mul(l->data.number.data.fval, - l->data.number.data.fval, - r->data.number.data.fval); - n=makenum_f(l->data.number.data.fval); - break; - case RATIONAL_TYPE: - mpq_mul(l->data.number.data.rval, - l->data.number.data.rval, - r->data.number.data.rval); - n=makenum_q(l->data.number.data.rval); - break; + mpw_init(res); + mpw_pow(res,l->data.val,r->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } + mpw_make_int(res,calcstate.make_floats_ints); + n=makenum(res); + mpw_clear(res); + return n; } tree_t * -divop(tree_t *l,tree_t *r) +factop(tree_t *l) { - mpq_t rr; tree_t *n=NULL; + mpw_t res; - makesame(l,r); - - /*if l is something so is r!*/ - switch(l->data.number.type) { - case INTEGER_TYPE: - if(mpz_sgn(r->data.number.data.ival)==0) { - (*errorout)("Division by zero! (ignoring '/')"); - return NULL; - } - mpq_init(rr); - mpq_set_z(rr,l->data.number.data.ival); - mpz_set(mpq_denref(rr),r->data.number.data.ival); - n=makenum_q(rr); - mpq_clear(rr); - break; - case FLOAT_TYPE: - if(mpf_sgn(r->data.number.data.fval)==0) { - (*errorout)("Division by zero! (ignoring '/')"); - return NULL; - } - mpf_div(l->data.number.data.fval, - l->data.number.data.fval, - r->data.number.data.fval); - n=makenum_f(l->data.number.data.fval); - break; - case RATIONAL_TYPE: - if(mpq_sgn(r->data.number.data.rval)==0) { - (*errorout)("Division by zero! (ignoring '/')"); - return NULL; - } - mpq_div(l->data.number.data.rval, - l->data.number.data.rval, - r->data.number.data.rval); - n=makenum_q(l->data.number.data.rval); - break; + mpw_init(res); + mpw_fac(res,l->data.val); + if(error_num==NUMERICAL_MPW_ERROR) { + mpw_clear(res); + error_num=NO_ERROR; + return NULL; } + mpw_make_int(res,calcstate.make_floats_ints); + n=makenum(res); + mpw_clear(res); + return n; } tree_t * -modop(tree_t *l,tree_t *r) +equalsop(tree_t *l, tree_t *r) { - tree_t *n=NULL; + if(!l || !r) + g_error("'=' can't function without proper nodes!"); + if(l->type!=ACTION_NODE || + l->data.action.type!=FUNCTION_TYPE || + l->data.action.data.function.args!=0) { + (*errorout)("Left value is NOT a 0\\function! (ignoring '=')"); + return NULL; + } + if(r->type!=NUMBER_NODE) { + (*errorout)("Right value is NOT computed! (ignoring '=')"); + return NULL; + } + d_addfunc(d_makeufunc(l->data.action.data.function.func->id, + copynode(r),NULL,0,TRUE)); - makesame(l,r); + return copynode(r); +} - /*if l is something so is r!*/ - if(l->data.number.type==INTEGER_TYPE) { - if(mpz_sgn(r->data.number.data.ival)==0) { - (*errorout)("Division by zero! (ignoring '%')"); - return NULL; - } - mpz_mod(l->data.number.data.ival,l->data.number.data.ival, - r->data.number.data.ival); - n=makenum_z(l->data.number.data.ival); - } else { - (*errorout)("Can't do modulo of floats or rationals!" - " (ignoring '%')"); +tree_t * +funcdefop(tree_t *l, tree_t *r) +{ + if(!l || !r) + g_error("funcdefop can't function without proper nodes!"); + if(l->type!=ACTION_NODE || + l->data.action.type!=FUNCTION_TYPE) { + (*errorout)("Left value is NOT a function!" + " (ignoring function definition)"); return NULL; } - return n; + d_addfunc(d_makeufunc(l->data.action.data.function.func->id, + copynode(r),NULL,l->data.action.data.function.func->nargs, + TRUE)); + + return makenum_ui(1); +} + +/*tree_t * +ifconsop(tree_t *l, tree_t *r) +{ } tree_t * -negop(tree_t *r) +ifelseconsop(tree_t *l, tree_t *r, tree_t *sr) { - tree_t *n=NULL; +} - switch(r->data.number.type) { - case INTEGER_TYPE: - mpz_neg(r->data.number.data.ival, - r->data.number.data.ival); - n=makenum_z(r->data.number.data.ival); - break; - case FLOAT_TYPE: - mpf_neg(r->data.number.data.fval, - r->data.number.data.fval); - n=makenum_f(r->data.number.data.fval); - break; - case RATIONAL_TYPE: - mpq_neg(r->data.number.data.rval, - r->data.number.data.rval); - n=makenum_q(r->data.number.data.rval); - break; - } +tree_t * +whileconsop(tree_t *l, tree_t *r) +{ +}*/ + +/*compare nodes, return -1 if first one is smaller, 0 if they are + equal, 1 if the first one is greater + makes them the same type as a side effect*/ +int +cmpnodes(tree_t *l, tree_t *r) +{ + int n=0; + + n=mpw_cmp(l->data.val,r->data.val); + + if(n>0) n=1; + else if(n<0) n=-1; return n; } -/*this can do rational exponantiation*/ -/*this is hardly an optimized calculaton!!!!!!!*/ -tree_t * -expoprat(tree_t *l, tree_t *r) -{ - mpf_t fr; - mpf_t fr2; - mpf_t frt; - unsigned long ne; - unsigned long de; - tree_t *r1; - tree_t *r2; - tree_t *n; +tree_t * +eqcmpop(tree_t *l, tree_t *r) +{ + if(cmpnodes(l,r)==0) + return makenum_ui(1); + else + return makenum_ui(0); +} - if((mpz_cmp_ui(mpq_numref(r->data.number.data.rval),ULONG_MAX)>0) || - (mpz_cmp_ui(mpq_denref(r->data.number.data.rval),ULONG_MAX)>0)) - { - (*errorout)("Exponent numerator/quotient too big!" - " (ignoring '^')"); - return NULL; - } - if(mpz_sgn(mpq_numref(r->data.number.data.rval))==0) - /*exponent is 0 return 1*/ - return makenum_z_ui(1); - - ne=mpz_get_ui(mpq_numref(r->data.number.data.rval)); - de=mpz_get_ui(mpq_denref(r->data.number.data.rval)); - /*this will make it allways - positive!*/ - - makefloat(l); - - - /* - * Newton's method: Xn+1 = Xn - f(Xn)/f'(Xn) - */ - - mpf_init(fr); - mpf_init(fr2); - mpf_init(frt); - mpf_div_ui(fr,l->data.number.data.fval,2); /*use half the value - as an initial guess*/ - for(;;) { - mympf_pow_ui(fr2,fr,de); - mpf_sub(fr2,fr2,l->data.number.data.fval); - - mympf_pow_ui(frt,fr,de-1); - mpf_mul_ui(frt,frt,de); - mpf_div(fr2,fr2,frt); - mpf_neg(fr2,fr2); - mpf_add(fr2,fr2,fr); - - - if(mpf_cmp(fr2,fr)==0) - break; - mpf_set(fr,fr2); - } - mpf_clear(fr2); - mpf_clear(frt); - - r1=makenum_f(fr); - mpf_clear(fr); - - r2=makenum_z(mpq_numref(r->data.number.data.rval)); - - n=expopint(r1,r2); - freetree(r1); - freetree(r2); - return n; -} -/*this can do integer exponantiation with all other types*/ -tree_t * -expopint(tree_t *l, tree_t *r) -{ - mpq_t rr; - unsigned long e; - int reverse=FALSE; - tree_t *n=NULL; +tree_t * +necmpop(tree_t *l, tree_t *r) +{ + if(cmpnodes(l,r)!=0) + return makenum_ui(1); + else + return makenum_ui(0); +} - if(mpz_cmp_ui(r->data.number.data.ival,ULONG_MAX)>0) { - (*errorout)("Exponent too big! (ignoring '^')"); - return NULL; - } - if(mpz_sgn(r->data.number.data.ival)==0) /*exponent is 0 return 1*/ - return makenum_z_ui(1); +tree_t * +cmpcmpop(tree_t *l, tree_t *r) +{ + return makenum_si(cmpnodes(l,r)); +} - e=mpz_get_ui(r->data.number.data.ival); /*this will make it allways - positive!*/ - if(mpz_sgn(r->data.number.data.ival)<0) - reverse=TRUE; - - switch(l->data.number.type) { - case RATIONAL_TYPE: - mpq_init(rr); - mpz_pow_ui(mpq_numref(rr), - mpq_numref(l->data.number.data.rval),e); - mpz_pow_ui(mpq_denref(rr), - mpq_denref(l->data.number.data.rval),e); - /*the exponent was negative! reverse the result!*/ - if(reverse) - mpq_inv(rr,rr); - n=makenum_q(rr); - mpq_clear(rr); - break; - case INTEGER_TYPE: - /*start calculation as if e was negative*/ - mpq_init(rr); - mpz_set_ui(mpq_numref(rr),1); - mpz_pow_ui(mpq_denref(rr),l->data.number.data.ival, - e); - if(!reverse) { - n=makenum_z(mpq_denref(rr)); - } else - n=makenum_q(rr); - mpq_clear(rr); - break; - case FLOAT_TYPE: - mympf_pow_ui(l->data.number.data.fval, - l->data.number.data.fval,e); - - if(reverse) - mpf_ui_div(l->data.number.data.fval,1, - l->data.number.data.fval); - n=makenum_f(l->data.number.data.fval); - break; - } - return n; +tree_t * +ltcmpop(tree_t *l, tree_t *r) +{ + if(cmpnodes(l,r)<0) + return makenum_ui(1); + else + return makenum_ui(0); } tree_t * -expop(tree_t *l, tree_t *r) +gtcmpop(tree_t *l, tree_t *r) { - if(r->data.number.type==INTEGER_TYPE) - return expopint(l,r); - else if(r->data.number.type==RATIONAL_TYPE) - return expoprat(l,r); - - /*FIXME: this is ugly and slow and has gotta go*/ - makefloatrational(r); - return expoprat(l,r); + if(cmpnodes(l,r)>0) + return makenum_ui(1); + else + return makenum_ui(0); } tree_t * -factop(tree_t *l) +lecmpop(tree_t *l, tree_t *r) { - tree_t *n; + if(cmpnodes(l,r)<=0) + return makenum_ui(1); + else + return makenum_ui(0); +} - if(l->data.number.type==INTEGER_TYPE) { - if(mpz_sgn(l->data.number.data.ival)==-1) { - (*errorout)("Can't do factorials of negative numbers!" - " (ignoring '!')"); - return NULL; - } - if(mpz_cmp_ui(l->data.number.data.ival,ULONG_MAX)>0) { - (*errorout)("Number too large to compute factorial!" - " (ignoring '!')"); - return NULL; - } - mpz_fac_ui(l->data.number.data.ival, - mpz_get_ui(l->data.number.data.ival)); - n=makenum_z(l->data.number.data.ival); - } else { - (*errorout)("Can't do factorials of rationals or floats!" - " (ignoring '!')"); - return NULL; - } - return n; +tree_t * +gecmpop(tree_t *l, tree_t *r) +{ + if(cmpnodes(l,r)>=0) + return makenum_ui(1); + else + return makenum_ui(0); } tree_t * -equalsop(tree_t *l, tree_t *r) +logicalandop(tree_t *l, tree_t *r) { - if(l->type!=ACTION_NODE || - l->data.action.type!=FUNCTION_TYPE) { - (*errorout)("Left value is NOT a function! (ignoring '=')"); - return NULL; - } - replacefunc(l->data.action.data.function.func, - d_makeufunc(l->data.action.data.function.func->id, - copynode(r),0)); + if(isnodetrue(l) && isnodetrue(r)) + return makenum_ui(1); + else + return makenum_ui(0); +} - return copynode(r); +tree_t * +logicalorop(tree_t *l, tree_t *r) +{ + if(isnodetrue(l) || isnodetrue(r)) + return makenum_ui(1); + else + return makenum_ui(0); +} + +tree_t * +logicalxorop(tree_t *l, tree_t *r) +{ + if(isnodetrue(l) != isnodetrue(r)) + return makenum_ui(1); + else + return makenum_ui(0); +} + +tree_t * +logicalnotop(tree_t *r) +{ + if(isnodetrue(r)) + return makenum_ui(0); + else + return makenum_ui(1); } + diff -uNr gnome-0.11/programs/genius/eval.h gnome-0.12/programs/genius/eval.h --- gnome-0.11/programs/genius/eval.h Tue Jan 6 22:13:43 1998 +++ gnome-0.12/programs/genius/eval.h Mon Jan 12 20:01:31 1998 @@ -19,42 +19,60 @@ #ifndef _EVAL_H_ #define _EVAL_H_ -#include +#include "mpwrap.h" /*declarations of structures*/ #include "structs.h" -typedef struct { +typedef struct _evalstack_t { tree_t * * stack; int size; int top; } evalstack_t; -/* builtins */ -#define E_EQUALS 1 -#define E_PLUS 2 -#define E_MINUS 3 -#define E_MUL 4 -#define E_DIV 5 -#define E_MOD 6 -#define E_NEG 7 -#define E_EXP 8 -#define E_FACT 9 +/* builtin primitives */ +#define E_SEPAR 1 +#define E_EQUALS 2 +#define E_PLUS 3 +#define E_MINUS 4 +#define E_MUL 5 +#define E_DIV 6 +#define E_MOD 7 +#define E_NEG 8 +#define E_EXP 9 +#define E_FACT 10 +#define E_FUNCDEF 11 +#define E_IF_CONS 12 +#define E_IFELSE_CONS 13 +#define E_WHILE_CONS 14 +#define E_EQ_CMP 15 +#define E_NE_CMP 16 +#define E_CMP_CMP 17 +#define E_LT_CMP 18 +#define E_GT_CMP 19 +#define E_LE_CMP 20 +#define E_GE_CMP 21 +#define E_LOGICAL_AND 22 +#define E_LOGICAL_OR 23 +#define E_LOGICAL_XOR 24 +#define E_LOGICAL_NOT 25 + /*functions for manipulating a tree*/ -tree_t * makenum_z(mpz_t num); -tree_t * makenum_z_ui(unsigned long num); -tree_t * makenum_q(mpq_t num); -tree_t * makenum_f(mpf_t num); +tree_t * makenum(mpw_t num); +tree_t * makenum_ui(unsigned long num); +tree_t * makenum_si(long num); tree_t * makefuncb(int func, evalstack_t * stack); tree_t * makefuncd(func_t * func, evalstack_t * stack); +/*same as above but used for declarations, it doesn'y pop any arguments of + the stack and doesn't build an argument array*/ +tree_t * makefuncd0(func_t * func); /*returns 1 or 2 depending if the operation has one or two branches*/ int branches(int op); -/*sets s to the string representation of the primitive, s has to be big -enough! */ -void primstr(char *s, int op); +/*similiar to the above, which branches should be evaluated*/ +int brancheseval(int op); /*stack manipulation*/ int t_push(tree_t *n,evalstack_t * stack); @@ -69,21 +87,22 @@ /*copy a node*/ tree_t * copynode(tree_t *o); -/*evaluate a treenode, the treenode will become a number node*/ -/*the tree will be freed*/ -tree_t *evalnode(tree_t *n); +/*evaluate arguments of a function*/ +tree_t * evalargs(tree_t *n); -/*make both number nodes the same type*/ -void makesame(tree_t *l,tree_t *r); +/*evaluate a user function*/ +tree_t * evaluserfunc(tree_t *n); -/*make node float*/ -void makefloat(tree_t *n); +/*evaluate branches of a primitive, returns 0 if all ok, 1 if n should + be returned or 2 on a serious error*/ +int evalbranches(tree_t *n); -/*make n an int if at all possible*/ -void makeint(tree_t *n); +/*return TRUE if node is true (a number node !=0), false otherwise*/ +int isnodetrue(tree_t *n); -/*make float node rational*/ -void makefloatrational(tree_t *n); +/*evaluate a treenode, the treenode will become a number node*/ +/*the tree will be freed*/ +tree_t *evalnode(tree_t *n); /*operations take two/one number nodes and return a number node*/ tree_t *plusop(tree_t *l,tree_t *r); @@ -95,17 +114,25 @@ tree_t *expop(tree_t *l, tree_t *r); tree_t *factop(tree_t *l); tree_t *equalsop(tree_t *l, tree_t *r); - -/*helper functions*/ - -/*this can do integer exponantiation with ints and rationals*/ -tree_t * expopint(tree_t *l, tree_t *r); - -/*my own power function for floats, very simple :) */ -void mympf_pow_ui(mpf_t rop,mpf_t op,unsigned long e); - -/*this can do rational exponantiation - this is hardly an optimized calculaton!!!!!!!*/ -tree_t * expoprat(tree_t *l, tree_t *r); +tree_t *funcdefop(tree_t *l, tree_t *r); +/*tree_t *ifconsop(tree_t *l, tree_t *r); +tree_t *ifelseconsop(tree_t *l, tree_t *r, tree_t *sr); +tree_t *whileconsop(tree_t *l, tree_t *r);*/ +tree_t *eqcmpop(tree_t *l, tree_t *r); +tree_t *necmpop(tree_t *l, tree_t *r); +tree_t *cmpcmpop(tree_t *l, tree_t *r); +tree_t *ltcmpop(tree_t *l, tree_t *r); +tree_t *gtcmpop(tree_t *l, tree_t *r); +tree_t *lecmpop(tree_t *l, tree_t *r); +tree_t *gecmpop(tree_t *l, tree_t *r); +tree_t *logicalandop(tree_t *l, tree_t *r); +tree_t *logicalorop(tree_t *l, tree_t *r); +tree_t *logicalxorop(tree_t *l, tree_t *r); +tree_t *logicalnotop(tree_t *r); + +/*compare nodes, return -1 if first one is smaller, 0 if they are + equal, 1 if the first one is greater + makes them the same type as a side effect*/ +int cmpnodes(tree_t *l, tree_t *r); #endif diff -uNr gnome-0.11/programs/genius/funclib.c gnome-0.12/programs/genius/funclib.c --- gnome-0.11/programs/genius/funclib.c Mon Jan 5 11:12:39 1998 +++ gnome-0.12/programs/genius/funclib.c Mon Jan 12 20:01:31 1998 @@ -18,7 +18,7 @@ #include #include -#include +#include "mpwrap.h" #include "eval.h" #include "dict.h" #include "funclib.h" @@ -28,34 +28,33 @@ tree_t * sin_op(tree_t * * a) { - mpf_t fr; - mpf_t pitmp; + mpw_t fr; + mpw_t pitmp; tree_t *n; if(a[0]->type!=NUMBER_NODE) return NULL; - mpf_init(fr); - makefloat(a[0]); - mpf_set(fr,a[0]->data.number.data.fval); - - mpf_init(pitmp); - mympf_getpi(pitmp); - mpf_mul_ui(pitmp,pitmp,2); + mpw_init(fr); + mpw_set(fr,a[0]->data.val); + + mpw_init(pitmp); + mympw_getpi(pitmp); + mpw_mul_ui(pitmp,pitmp,2); /*mod it down to -pi*20) - mpf_sub(fr,fr,pitmp); - mpf_neg(pitmp,pitmp); - while(mpf_cmp(fr,pitmp)<0) - mpf_sub(fr,fr,pitmp); - mpf_clear(pitmp); + while(mpw_cmp(fr,pitmp)>0) + mpw_sub(fr,fr,pitmp); + mpw_neg(pitmp,pitmp); + while(mpw_cmp(fr,pitmp)<0) + mpw_sub(fr,fr,pitmp); + mpw_clear(pitmp); - mympf_sin(fr,fr); + mympw_sin(fr,fr); - n=makenum_f(fr); - mpf_clear(fr); + n=makenum(fr); + mpw_clear(fr); return n; } @@ -63,36 +62,35 @@ tree_t * cos_op(tree_t * * a) { - mpf_t fr; - mpf_t pitmp; + mpw_t fr; + mpw_t pitmp; tree_t *n; if(a[0]->type!=NUMBER_NODE) return NULL; - mpf_init(fr); - makefloat(a[0]); - mpf_set(fr,a[0]->data.number.data.fval); + mpw_init(fr); + mpw_set(fr,a[0]->data.val); - mpf_init(pitmp); - mympf_getpi(pitmp); - mpf_mul_ui(pitmp,pitmp,2); + mpw_init(pitmp); + mympw_getpi(pitmp); + mpw_mul_ui(pitmp,pitmp,2); /*get it down to -pi*20) - mpf_sub(fr,fr,pitmp); - mpf_neg(pitmp,pitmp); - while(mpf_cmp(fr,pitmp)<0) - mpf_sub(fr,fr,pitmp); - mpf_clear(pitmp); + while(mpw_cmp(fr,pitmp)>0) + mpw_sub(fr,fr,pitmp); + mpw_neg(pitmp,pitmp); + while(mpw_cmp(fr,pitmp)<0) + mpw_sub(fr,fr,pitmp); + mpw_clear(pitmp); - mympf_cos(fr,fr); + mympw_cos(fr,fr); - n=makenum_f(fr); - mpf_clear(fr); + n=makenum(fr); + mpw_clear(fr); return n; } @@ -100,41 +98,40 @@ tree_t * tan_op(tree_t * * a) { - mpf_t fr; - mpf_t fr2; - mpf_t pitmp; + mpw_t fr; + mpw_t fr2; + mpw_t pitmp; tree_t *n; if(a[0]->type!=NUMBER_NODE) return NULL; - mpf_init(fr); - makefloat(a[0]); - mpf_set(fr,a[0]->data.number.data.fval); + mpw_init(fr); + mpw_set(fr,a[0]->data.val); - mpf_init(pitmp); - mympf_getpi(pitmp); - mpf_mul_ui(pitmp,pitmp,2); + mpw_init(pitmp); + mympw_getpi(pitmp); + mpw_mul_ui(pitmp,pitmp,2); /*get it down to -pi*20) - mpf_sub(fr,fr,pitmp); - mpf_neg(pitmp,pitmp); - while(mpf_cmp(fr,pitmp)<0) - mpf_sub(fr,fr,pitmp); - mpf_clear(pitmp); + while(mpw_cmp(fr,pitmp)>0) + mpw_sub(fr,fr,pitmp); + mpw_neg(pitmp,pitmp); + while(mpw_cmp(fr,pitmp)<0) + mpw_sub(fr,fr,pitmp); + mpw_clear(pitmp); /*is this algorithm allways precise??? sin/cos*/ - mpf_init(fr2); - mympf_cos(fr2,fr); - mympf_sin(fr,fr); - mpf_div(fr,fr,fr2); - mpf_clear(fr2); + mpw_init(fr2); + mympw_cos(fr2,fr); + mympw_sin(fr,fr); + mpw_div(fr,fr,fr2); + mpw_clear(fr2); - n=makenum_f(fr); - mpf_clear(fr); + n=makenum(fr); + mpw_clear(fr); return n; } @@ -142,15 +139,15 @@ tree_t * e_op(tree_t * * a) { - mpf_t fr; + mpw_t fr; tree_t *n; - mpf_init(fr); - mympf_gete(fr); + mpw_init(fr); + mympw_gete(fr); - n=makenum_f(fr); - mpf_clear(fr); + n=makenum(fr); + mpw_clear(fr); return n; } @@ -158,15 +155,15 @@ tree_t * pi_op(tree_t * * a) { - mpf_t fr; + mpw_t fr; tree_t *n; - mpf_init(fr); - mympf_getpi(fr); + mpw_init(fr); + mympw_getpi(fr); - n=makenum_f(fr); - mpf_clear(fr); + n=makenum(fr); + mpw_clear(fr); return n; } @@ -174,9 +171,9 @@ void funclib_addall(void) { - d_addfunc(d_makebifunc("sin",sin_op,1)); - d_addfunc(d_makebifunc("cos",cos_op,1)); - d_addfunc(d_makebifunc("tan",tan_op,1)); - d_addfunc(d_makebifunc("pi",pi_op,0)); - d_addfunc(d_makebifunc("e",e_op,0)); + d_addfunc(d_makebifunc("sin",sin_op,1,FALSE)); + d_addfunc(d_makebifunc("cos",cos_op,1,FALSE)); + d_addfunc(d_makebifunc("tan",tan_op,1,FALSE)); + d_addfunc(d_makebifunc("pi",pi_op,0,FALSE)); + d_addfunc(d_makebifunc("e",e_op,0,FALSE)); } diff -uNr gnome-0.11/programs/genius/genius.c gnome-0.12/programs/genius/genius.c --- gnome-0.11/programs/genius/genius.c Tue Jan 6 20:03:09 1998 +++ gnome-0.12/programs/genius/genius.c Mon Jan 12 20:01:31 1998 @@ -34,7 +34,7 @@ 256, INFIX_NOTATION, 12, - TRUE, + FALSE, FALSE, FALSE }; @@ -137,6 +137,7 @@ t=getentry(entry); if(!t || t[0]=='\0') return; + t=addparenth(t); /*add missing parenthesis*/ o=evalexp(t,curstate,geniuserror); if(errors) { @@ -160,7 +161,8 @@ adj->value=adj->upper; gtk_range_set_adjustment( GTK_RANGE(GTK_SCROLLED_WINDOW(scrolledwin)->vscrollbar),adj); - + /*clear the input box*/ + gtk_entry_set_text(GTK_ENTRY(entry),""); } /*about box*/ @@ -169,7 +171,7 @@ { GtkWidget *mb; - mb=gnome_messagebox_new("GnomENIUS Calculator\nby George Lebl", + mb=gnome_messagebox_new("GnomENIUS Calculator\n\nby George Lebl", GNOME_MESSAGEBOX_INFO,"OK",NULL,NULL); gtk_signal_connect_object(GTK_OBJECT(GNOME_MESSAGEBOX(mb)->button1), @@ -233,7 +235,7 @@ { char key=*(event->string); - if(key==3) /* ^C */ + if(key==3 || key==17) /* ^C || ^Q */ quitapp(NULL,NULL); else if(!GTK_WIDGET_HAS_FOCUS(entry) && strchr("\t\v ",key)==NULL) @@ -247,7 +249,7 @@ } GtkMenuEntry genius_menu [] = { - { "Calculator/Quit","C",(GtkMenuCallback)quitapp,NULL }, + { "Calculator/Quit","Q",(GtkMenuCallback)quitapp,NULL }, { "View/Numpad",NULL,(GtkMenuCallback)showhide,(gpointer)1 }, { "View/Scientific",NULL,(GtkMenuCallback)showhide,(gpointer)2 }, { "View/Options",NULL,(GtkMenuCallback)showhide,(gpointer)3 }, @@ -288,7 +290,7 @@ gtk_signal_connect(GTK_OBJECT(w), "delete_event", GTK_SIGNAL_FUNC(quitapp), NULL); - gtk_window_set_policy(GTK_WINDOW(w), 1, 1, 0); + gtk_window_set_policy(GTK_WINDOW(w),1,1,0); return w; } @@ -310,7 +312,7 @@ /*numpad button labels*/ char *numpad[5][4]={ - {" ^ "," ! "," ( "," ) "}, + {" ( "," ) "," ^ "," % "}, {" 7 "," 8 "," 9 "," / "}, {" 4 "," 5 "," 6 "," * "}, {" 1 "," 2 "," 3 "," - "}, @@ -446,7 +448,6 @@ (gpointer *)&curstate.make_floats_ints); gtk_box_pack_start(GTK_BOX(boxt),w,TRUE,TRUE,5); gtk_widget_show(w); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(w),1); gtk_box_pack_start(GTK_BOX(box),boxt,FALSE,FALSE,5); gtk_widget_show(boxt); diff -uNr gnome-0.11/programs/genius/geniustest.c gnome-0.12/programs/genius/geniustest.c --- gnome-0.11/programs/genius/geniustest.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/genius/geniustest.c Mon Jan 12 20:01:31 1998 @@ -0,0 +1,76 @@ +/* GnomENIUS Calculator + * Copyright (C) 1997 George Lebl. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* + * this is a command line testing program! + */ + +#include +#include + +#include +#include +#include "calc.h" +#include "util.h" + +/*Globals:*/ + +/*calculator state*/ +calcstate_t curstate={ + INFIX_NOTATION, + 256, + INFIX_NOTATION, + 12, + FALSE, + FALSE, + FALSE + }; + +void +puterror(char *s) +{ + fprintf(stderr,"%s\n",s); +} + +int +main(void) +{ + char *t=NULL; + char tmp[256]; + char *o; + + while(fgets(tmp,255,stdin)) + t=appendstr(t,tmp); + if(!t || t[0]=='\0') { + puts("no input"); + return 1; + } + t=addparenth(t); /*add missing parenthesis*/ + o=evalexp(t,curstate,puterror); + + if(!o) { + puts("errors"); + return 1; + } + puts(o); + + g_free(t); + g_free(o); + + return 0; +} diff -uNr gnome-0.11/programs/genius/lexer.c gnome-0.12/programs/genius/lexer.c --- gnome-0.11/programs/genius/lexer.c Tue Jan 6 20:08:07 1998 +++ gnome-0.12/programs/genius/lexer.c Mon Jan 12 20:14:57 1998 @@ -284,29 +284,42 @@ *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 23 -#define YY_END_OF_BUFFER 24 -static yyconst short int yy_acclist[74] = +#define YY_NUM_RULES 42 +#define YY_END_OF_BUFFER 43 +static yyconst short int yy_acclist[143] = { 0, - 24, 22, 23, 21, 22, 23, 21, 23, 22, 23, - 14, 22, 23, 14, 22, 23, 19, 22, 23, 20, - 22, 23, 20, 22, 23, 20, 22, 23, 15, 22, - 23, 22, 23, 21, 6, 13, 14, 14, 14, 20, - 20, 20, 20, 11, 11, 5, 12, 20, 20, 20, - 3, 10, 11, 11, 11, 4, 8, 20, 20, 20, - 2, 9, 16, 20, 20, 20, 1, 7, 20, 18, - 20, 17, 20 + 43, 41, 42, 40, 41, 42, 40, 42, 41, 42, + 41, 42, 39, 41, 42, 39, 41, 42, 39, 41, + 42, 1, 41, 42, 11, 41, 42, 13, 41, 42, + 12, 41, 42, 25, 41, 42, 25, 41, 42, 25, + 41, 42, 25, 41, 42, 25, 41, 42, 25, 41, + 42, 25, 41, 42, 25, 41, 42, 21, 41, 42, + 22, 41, 42, 2, 41, 42, 41, 42, 40, 7, + 31, 38, 39, 39, 39, 9, 6, 10, 25, 25, + 25, 20, 25, 25, 25, 17, 25, 25, 25, 25, + 25, 36, 36, 30, 24, 37, 8, 15, 25, 25, + + 25, 25, 14, 25, 25, 25, 25, 16, 25, 28, + 35, 36, 36, 36, 29, 24, 33, 23, 25, 25, + 25, 25, 25, 25, 27, 34, 25, 3, 25, 25, + 25, 18, 25, 26, 32, 19, 25, 25, 5, 25, + 4, 25 } ; -static yyconst short int yy_accept[71] = +static yyconst short int yy_accept[110] = { 0, 1, 1, 1, 1, 1, 2, 4, 7, 9, 11, - 14, 17, 20, 23, 26, 29, 32, 34, 35, 36, - 36, 38, 39, 39, 39, 39, 40, 41, 42, 43, - 44, 44, 45, 46, 46, 46, 47, 48, 48, 49, - 50, 51, 52, 54, 55, 55, 55, 55, 56, 56, - 57, 58, 59, 60, 61, 61, 61, 62, 63, 63, - 65, 66, 67, 67, 68, 69, 70, 72, 74, 74 + 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, + 43, 46, 49, 52, 55, 58, 61, 64, 67, 69, + 70, 71, 72, 72, 74, 75, 75, 75, 75, 75, + 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, + 88, 89, 90, 91, 92, 92, 93, 94, 94, 94, + 95, 96, 97, 97, 98, 100, 101, 102, 103, 105, + 106, 107, 108, 110, 111, 113, 114, 114, 114, 114, + 115, 115, 116, 117, 118, 120, 121, 122, 123, 124, + 125, 125, 125, 126, 127, 127, 128, 130, 131, 132, + + 134, 134, 135, 136, 138, 139, 141, 143, 143 } ; static yyconst int yy_ec[256] = @@ -314,17 +327,17 @@ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 4, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 5, 6, 1, 7, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 1, 1, 1, - 10, 1, 1, 11, 12, 12, 12, 12, 12, 12, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, - - 14, 15, 13, 13, 16, 13, 13, 13, 13, 17, - 18, 19, 13, 20, 21, 22, 13, 13, 13, 23, - 13, 13, 1, 1, 1, 24, 1, 1, 1, 1, + 1, 2, 4, 1, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 6, 7, 1, 8, 9, 9, + 9, 9, 9, 9, 9, 10, 11, 1, 12, 13, + 14, 15, 1, 16, 17, 17, 17, 17, 17, 17, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 1, 19, 1, 1, 1, 1, 20, 17, 17, 21, + + 22, 23, 24, 25, 26, 18, 18, 27, 18, 28, + 29, 30, 18, 31, 32, 33, 18, 18, 34, 35, + 18, 18, 36, 1, 37, 38, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -341,83 +354,114 @@ 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[25] = +static yyconst int yy_meta[39] = { 0, - 1, 1, 1, 1, 2, 1, 3, 3, 3, 1, - 4, 5, 6, 7, 5, 6, 6, 6, 6, 6, - 6, 6, 6, 1 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 1, 1, 3, 4, 5, 1, 4, + 4, 6, 4, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 1, 1, 1 } ; -static yyconst short int yy_base[81] = +static yyconst short int yy_base[118] = { 0, - 0, 0, 150, 145, 149, 166, 23, 25, 22, 26, - 46, 166, 0, 124, 18, 166, 55, 39, 32, 58, - 115, 51, 131, 0, 0, 0, 0, 116, 109, 110, - 61, 69, 89, 97, 64, 77, 0, 97, 83, 72, - 76, 33, 67, 81, 82, 0, 0, 0, 98, 101, - 166, 59, 66, 63, 51, 104, 107, 0, 47, 0, - 32, 22, 110, 113, 166, 16, 0, 0, 166, 120, - 125, 131, 132, 137, 143, 144, 150, 151, 156, 162 + 0, 0, 231, 230, 235, 238, 37, 39, 220, 35, + 40, 71, 214, 238, 218, 217, 216, 0, 24, 30, + 200, 197, 32, 202, 197, 238, 238, 238, 57, 67, + 238, 38, 63, 64, 76, 86, 0, 0, 0, 203, + 204, 238, 238, 0, 196, 190, 191, 184, 169, 0, + 167, 175, 165, 159, 92, 97, 128, 106, 112, 116, + 0, 0, 179, 238, 0, 79, 135, 129, 0, 116, + 119, 114, 0, 112, 105, 121, 137, 0, 0, 0, + 143, 149, 0, 238, 0, 99, 83, 88, 84, 87, + 155, 159, 163, 0, 93, 69, 0, 60, 42, 0, + + 167, 171, 238, 0, 22, 0, 0, 238, 181, 186, + 189, 194, 199, 204, 209, 214, 219 } ; -static yyconst short int yy_def[81] = +static yyconst short int yy_def[118] = { 0, - 69, 1, 1, 1, 69, 69, 69, 69, 69, 69, - 69, 69, 70, 70, 70, 69, 69, 69, 71, 69, - 10, 10, 72, 73, 74, 11, 70, 70, 70, 70, - 69, 69, 69, 75, 69, 69, 73, 74, 70, 70, - 70, 76, 32, 32, 77, 78, 79, 33, 69, 69, - 69, 70, 70, 70, 80, 69, 69, 78, 79, 70, - 70, 70, 69, 69, 69, 70, 70, 70, 0, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69 + 108, 1, 1, 1, 108, 108, 108, 108, 108, 108, + 108, 108, 12, 108, 108, 108, 108, 109, 109, 109, + 109, 109, 109, 109, 109, 108, 108, 108, 108, 108, + 108, 110, 108, 11, 34, 108, 111, 112, 113, 12, + 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 108, 108, 108, 108, 108, 108, + 114, 112, 113, 108, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 115, 56, 56, 108, 116, 117, 57, + 108, 108, 114, 108, 109, 109, 109, 109, 109, 109, + 108, 108, 108, 116, 117, 109, 109, 109, 109, 109, + + 108, 108, 108, 109, 109, 109, 109, 0, 108, 108, + 108, 108, 108, 108, 108, 108, 108 } ; -static yyconst short int yy_nxt[191] = +static yyconst short int yy_nxt[277] = { 0, - 6, 7, 8, 6, 6, 9, 10, 11, 11, 12, - 6, 13, 13, 13, 13, 14, 13, 13, 15, 13, - 13, 13, 13, 16, 18, 18, 18, 18, 19, 19, - 19, 20, 21, 21, 22, 29, 23, 30, 68, 23, - 18, 18, 34, 55, 67, 34, 55, 66, 24, 25, - 65, 20, 26, 26, 26, 63, 23, 22, 22, 23, - 31, 32, 33, 33, 19, 19, 19, 42, 42, 42, - 36, 36, 36, 69, 31, 43, 43, 44, 62, 45, - 61, 60, 45, 36, 36, 36, 56, 44, 44, 69, - 54, 46, 47, 53, 31, 48, 48, 48, 52, 45, - - 51, 49, 45, 69, 50, 50, 50, 50, 50, 50, - 57, 57, 57, 57, 57, 57, 64, 64, 64, 64, - 64, 64, 27, 41, 27, 27, 27, 19, 19, 40, - 39, 19, 36, 36, 37, 35, 37, 69, 37, 38, - 28, 38, 38, 38, 50, 50, 42, 42, 69, 17, - 42, 57, 57, 58, 17, 58, 69, 58, 59, 69, - 59, 59, 59, 64, 64, 5, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69 + 6, 7, 8, 9, 6, 6, 10, 11, 12, 12, + 13, 14, 15, 16, 17, 6, 18, 18, 6, 19, + 18, 18, 18, 18, 18, 20, 18, 21, 22, 23, + 18, 18, 18, 24, 25, 26, 27, 28, 30, 30, + 30, 30, 32, 32, 32, 32, 33, 34, 34, 35, + 35, 45, 47, 58, 46, 36, 107, 48, 37, 58, + 51, 36, 52, 55, 56, 57, 57, 57, 30, 30, + 32, 32, 32, 32, 38, 39, 106, 33, 40, 40, + 40, 40, 108, 35, 35, 105, 36, 85, 85, 37, + 104, 59, 36, 60, 60, 60, 60, 103, 108, 74, + + 74, 74, 74, 55, 75, 75, 76, 76, 100, 99, + 98, 81, 77, 82, 82, 82, 82, 97, 77, 60, + 60, 60, 60, 60, 60, 60, 60, 91, 76, 76, + 96, 78, 79, 91, 55, 80, 80, 80, 80, 108, + 90, 89, 92, 77, 93, 93, 93, 93, 88, 77, + 82, 82, 82, 82, 87, 108, 82, 82, 82, 82, + 101, 86, 102, 102, 102, 102, 93, 93, 93, 93, + 93, 93, 93, 93, 102, 102, 102, 102, 102, 102, + 102, 102, 44, 84, 44, 44, 44, 32, 32, 73, + 72, 32, 61, 61, 61, 62, 71, 62, 70, 62, + + 63, 69, 63, 63, 63, 83, 68, 83, 83, 83, + 74, 74, 67, 66, 74, 94, 65, 94, 64, 94, + 95, 108, 95, 95, 95, 54, 53, 50, 49, 43, + 42, 41, 108, 31, 108, 29, 29, 5, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108 } ; -static yyconst short int yy_chk[191] = +static yyconst short int yy_chk[277] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 7, 7, 8, 8, 9, 9, - 9, 10, 10, 10, 10, 15, 10, 15, 66, 10, - 18, 18, 19, 42, 62, 19, 42, 61, 10, 11, - 59, 11, 11, 11, 11, 55, 11, 22, 22, 11, - 17, 17, 17, 17, 20, 20, 20, 31, 31, 31, - 35, 35, 35, 22, 32, 32, 32, 32, 54, 32, - 53, 52, 32, 36, 36, 36, 45, 44, 44, 43, - 41, 32, 33, 40, 33, 33, 33, 33, 39, 33, - - 38, 34, 33, 44, 49, 49, 49, 50, 50, 50, - 56, 56, 56, 57, 57, 57, 63, 63, 63, 64, - 64, 64, 70, 30, 70, 70, 70, 71, 71, 29, - 28, 71, 72, 72, 73, 23, 73, 21, 73, 74, - 14, 74, 74, 74, 75, 75, 76, 76, 5, 4, - 76, 77, 77, 78, 3, 78, 0, 78, 79, 0, - 79, 79, 79, 80, 80, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, + 8, 8, 10, 10, 10, 10, 11, 11, 11, 11, + 11, 19, 20, 32, 19, 11, 105, 20, 11, 32, + 23, 11, 23, 29, 29, 29, 29, 29, 30, 30, + 33, 33, 33, 33, 11, 12, 99, 12, 12, 12, + 12, 12, 34, 35, 35, 98, 12, 66, 66, 12, + 96, 36, 12, 36, 36, 36, 36, 95, 34, 55, + + 55, 55, 55, 56, 56, 56, 56, 56, 90, 89, + 88, 58, 56, 58, 58, 58, 58, 87, 56, 59, + 59, 59, 59, 60, 60, 60, 60, 74, 76, 76, + 86, 56, 57, 74, 57, 57, 57, 57, 57, 75, + 72, 71, 77, 57, 77, 77, 77, 77, 70, 57, + 81, 81, 81, 81, 68, 76, 82, 82, 82, 82, + 91, 67, 91, 91, 91, 91, 92, 92, 92, 92, + 93, 93, 93, 93, 101, 101, 101, 101, 102, 102, + 102, 102, 109, 63, 109, 109, 109, 110, 110, 54, + 53, 110, 111, 111, 111, 112, 52, 112, 51, 112, + + 113, 49, 113, 113, 113, 114, 48, 114, 114, 114, + 115, 115, 47, 46, 115, 116, 45, 116, 41, 116, + 117, 40, 117, 117, 117, 25, 24, 22, 21, 17, + 16, 15, 13, 9, 5, 4, 3, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108 } ; static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; @@ -454,15 +498,15 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #line 20 "lexer.l" -#include #include #include +#include "mpwrap.h" #include "eval.h" #include "dict.h" #include "parse.h" #define NEGATIVE 1 -#line 466 "lex.yy.c" +#line 510 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -616,7 +660,7 @@ #line 30 "lexer.l" -#line 620 "lex.yy.c" +#line 664 "lex.yy.c" if ( yy_init ) { @@ -664,14 +708,14 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 70 ) + if ( yy_current_state >= 109 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *yy_state_ptr++ = yy_current_state; ++yy_cp; } - while ( yy_base[yy_current_state] != 166 ); + while ( yy_base[yy_current_state] != 238 ); yy_find_action: yy_current_state = *--yy_state_ptr; @@ -701,123 +745,174 @@ switch ( yy_act ) { /* beginning of action switch */ case 1: -#line 33 "lexer.l" +YY_RULE_SETUP +#line 32 "lexer.l" +return SEPAR; + YY_BREAK case 2: +YY_RULE_SETUP #line 34 "lexer.l" +return NEG; + YY_BREAK case 3: YY_RULE_SETUP -#line 34 "lexer.l" -{ - mpf_init_set_str(yylval.fval,yytext,10); - return NEGFLOAT; - } +#line 36 "lexer.l" +BEGIN INITIAL; return INFIX_EXPR; YY_BREAK case 4: -#line 40 "lexer.l" +YY_RULE_SETUP +#line 38 "lexer.l" +BEGIN NEGATIVE; return POSTFIX_EXPR; + YY_BREAK case 5: -#line 41 "lexer.l" +YY_RULE_SETUP +#line 40 "lexer.l" +BEGIN NEGATIVE; return PREFIX_EXPR; + YY_BREAK case 6: YY_RULE_SETUP -#line 41 "lexer.l" -{ - mpf_init_set_str(yylval.fval,yytext,10); - return FLOAT; - } +#line 42 "lexer.l" +return EQ_CMP; YY_BREAK case 7: YY_RULE_SETUP -#line 46 "lexer.l" -{ - char *s; - int base; - - s=g_malloc(strlen(yytext)-2); /*minus 3 and plus 1*/ - sscanf(yytext,"-%d#%[0-9a-zA-Z]s#",&base,s); - mpz_init_set_str(yylval.ival,s,base); - mpz_neg(yylval.ival,yylval.ival); - return NEGNORMINT; - } +#line 43 "lexer.l" +return NE_CMP; YY_BREAK case 8: YY_RULE_SETUP -#line 57 "lexer.l" -{ - char *s; - int base; - - s=g_malloc(strlen(yytext)-2); /*minus 3 and plus 1*/ - sscanf(yytext,"%d#%[0-9a-zA-Z]s#",&base,s); - mpz_init_set_str(yylval.ival,s,base); - return NORMINT; - } +#line 44 "lexer.l" +return CMP_CMP; YY_BREAK case 9: -#line 68 "lexer.l" +YY_RULE_SETUP +#line 46 "lexer.l" +return LE_CMP; + YY_BREAK case 10: -#line 69 "lexer.l" +YY_RULE_SETUP +#line 47 "lexer.l" +return GE_CMP; + YY_BREAK case 11: YY_RULE_SETUP -#line 69 "lexer.l" -{ - mpz_init_set_str(yylval.ival,yytext,0); - return NEGNORMINT; - } +#line 49 "lexer.l" +return LT_CMP; YY_BREAK case 12: -#line 75 "lexer.l" +YY_RULE_SETUP +#line 50 "lexer.l" +return GT_CMP; + YY_BREAK case 13: -#line 76 "lexer.l" +YY_RULE_SETUP +#line 52 "lexer.l" +return EQUALS; + YY_BREAK case 14: YY_RULE_SETUP -#line 76 "lexer.l" -{ - mpz_init_set_str(yylval.ival,yytext,0); - return NORMINT; - } +#line 54 "lexer.l" +return LOGICAL_NOT; YY_BREAK case 15: YY_RULE_SETUP -#line 81 "lexer.l" -return NEG; +#line 55 "lexer.l" +return LOGICAL_AND; YY_BREAK case 16: YY_RULE_SETUP -#line 83 "lexer.l" -BEGIN INITIAL; return INFIX_EXPR; +#line 56 "lexer.l" +return LOGICAL_XOR; YY_BREAK case 17: YY_RULE_SETUP -#line 85 "lexer.l" -BEGIN NEGATIVE; return POSTFIX_EXPR; +#line 57 "lexer.l" +return LOGICAL_OR; YY_BREAK case 18: YY_RULE_SETUP -#line 87 "lexer.l" -BEGIN NEGATIVE; return PREFIX_EXPR; +#line 59 "lexer.l" +return WHILE_CONS; YY_BREAK case 19: YY_RULE_SETUP -#line 89 "lexer.l" -return EQUALS; +#line 61 "lexer.l" +return IFELSE_CONS; YY_BREAK case 20: YY_RULE_SETUP -#line 91 "lexer.l" +#line 63 "lexer.l" +return IF_CONS; + YY_BREAK +case 21: +YY_RULE_SETUP +#line 65 "lexer.l" +{ + /*create a new context and push it on top of the + context stack, it's only temporary*/ + d_addcontext(NULL); + return BEGINBLOCK; + } + YY_BREAK +case 22: +YY_RULE_SETUP +#line 72 "lexer.l" +{ + + /*kill the temporary context, but keep the + declarations*/ + freedict(d_popcontext(),TRUE); + return ENDBLOCK; + } + YY_BREAK +case 23: +YY_RULE_SETUP +#line 80 "lexer.l" +{ + /*make static argument placeholders*/ + if((yylval.func=d_lookup(yytext,FALSE))==NULL) + yylval.func=d_addfunc(d_makeufunc(yytext, + NULL,NULL,0,FALSE)); + return FUNCID0; + } + YY_BREAK +case 24: +YY_RULE_SETUP +#line 88 "lexer.l" +{ + /*this is the function declaration*/ + + /*create a dummy function, first character is + the number of arguments*/ + yylval.func= + d_addfunc(d_makeufunc(&yytext[2],NULL, + NULL,(int)(yytext[0]-'0'), + FALSE)); + return FUNCDEF; + } + YY_BREAK +case 25: +YY_RULE_SETUP +#line 100 "lexer.l" { /* we need to find out the number of arguments - for this function */ + for this function, this is a limitation of + mostly the postfix and prefix notation + without parenthesis */ func_t *n; - n=d_lookup(yytext); + n=d_lookup(yytext,TRUE); if(!n) { - yylval.id=(char *) - g_malloc(strlen(yytext)+1); - strcpy(yylval.id,yytext); - return UNKNOWNID; + /*create a dummy function*/ + yylval.func= + d_addfunc(d_makeufunc( + yytext,NULL,NULL,0, + FALSE)); + return FUNCID0; } yylval.func=n; - switch(n->args) { + switch(n->nargs) { case 0: return FUNCID0; case 1: return FUNCID1; case 2: return FUNCID2; @@ -834,22 +929,103 @@ REJECT; } YY_BREAK -case 21: +case 26: +#line 136 "lexer.l" +case 27: +#line 137 "lexer.l" +case 28: +YY_RULE_SETUP +#line 137 "lexer.l" +{ + mpw_init(yylval.val); + mpw_set_str_float(yylval.val,yytext,10); + return NEGFLOAT; + } + YY_BREAK +case 29: +#line 144 "lexer.l" +case 30: +#line 145 "lexer.l" +case 31: +YY_RULE_SETUP +#line 145 "lexer.l" +{ + mpw_init(yylval.val); + mpw_set_str_float(yylval.val,yytext,10); + return FLOAT; + } + YY_BREAK +case 32: YY_RULE_SETUP -#line 122 "lexer.l" +#line 151 "lexer.l" +{ + char *s; + int base; + + s=g_malloc(strlen(yytext)-2); /*minus 3 and plus 1*/ + sscanf(yytext,"-%d#%[0-9a-zA-Z]s#",&base,s); + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,s,base); + mpw_neg(yylval.val,yylval.val); + return NEGNORMINT; + } + YY_BREAK +case 33: +YY_RULE_SETUP +#line 163 "lexer.l" +{ + char *s; + int base; + + s=g_malloc(strlen(yytext)-2); /*minus 3 and plus 1*/ + sscanf(yytext,"%d#%[0-9a-zA-Z]s#",&base,s); + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,s,base); + return NORMINT; + } + YY_BREAK +case 34: +#line 175 "lexer.l" +case 35: +#line 176 "lexer.l" +case 36: +YY_RULE_SETUP +#line 176 "lexer.l" +{ + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,yytext,0); + return NEGNORMINT; + } + YY_BREAK +case 37: +#line 183 "lexer.l" +case 38: +#line 184 "lexer.l" +case 39: +YY_RULE_SETUP +#line 184 "lexer.l" +{ + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,yytext,0); + return NORMINT; + } + YY_BREAK +case 40: +YY_RULE_SETUP +#line 190 "lexer.l" ; /*ignore whitespace*/ YY_BREAK -case 22: +case 41: YY_RULE_SETUP -#line 124 "lexer.l" +#line 192 "lexer.l" { return yytext[0]; } YY_BREAK -case 23: +case 42: YY_RULE_SETUP -#line 126 "lexer.l" +#line 194 "lexer.l" ECHO; YY_BREAK -#line 853 "lex.yy.c" +#line 1029 "lex.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(NEGATIVE): yyterminate(); @@ -1139,7 +1315,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 70 ) + if ( yy_current_state >= 109 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1169,11 +1345,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 70 ) + if ( yy_current_state >= 109 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 69); + yy_is_jam = (yy_current_state == 108); if ( ! yy_is_jam ) *yy_state_ptr++ = yy_current_state; @@ -1730,5 +1906,5 @@ return 0; } #endif -#line 126 "lexer.l" +#line 194 "lexer.l" diff -uNr gnome-0.11/programs/genius/lexer.l gnome-0.12/programs/genius/lexer.l --- gnome-0.11/programs/genius/lexer.l Tue Jan 6 20:03:09 1998 +++ gnome-0.12/programs/genius/lexer.l Mon Jan 12 20:01:31 1998 @@ -17,9 +17,9 @@ */ %{ -#include #include #include +#include "mpwrap.h" #include "eval.h" #include "dict.h" #include "parse.h" @@ -29,17 +29,122 @@ %% +\; return SEPAR; + +~ return NEG; + +infix BEGIN INITIAL; return INFIX_EXPR; + +postfix BEGIN NEGATIVE; return POSTFIX_EXPR; + +prefix BEGIN NEGATIVE; return PREFIX_EXPR; + +== return EQ_CMP; +!= return NE_CMP; +\<=\> return CMP_CMP; + +\<= return LE_CMP; +\>= return GE_CMP; + +\< return LT_CMP; +\> return GT_CMP; + += return EQUALS; + +not return LOGICAL_NOT; +and return LOGICAL_AND; +xor return LOGICAL_XOR; +or return LOGICAL_OR; + +while return WHILE_CONS; + +ifelse return IFELSE_CONS; + +if return IF_CONS; + +\{ { + /*create a new context and push it on top of the + context stack, it's only temporary*/ + d_addcontext(NULL); + return BEGINBLOCK; + } + +\} { + + /*kill the temporary context, but keep the + declarations*/ + freedict(d_popcontext(),TRUE); + return ENDBLOCK; + } + +arg[1-8] { + /*make static argument placeholders*/ + if((yylval.func=d_lookup(yytext,FALSE))==NULL) + yylval.func=d_addfunc(d_makeufunc(yytext, + NULL,NULL,0,FALSE)); + return FUNCID0; + } + +[0-8]\\[a-zA-Z][a-zA-Z0-9]* { + /*this is the function declaration*/ + + /*create a dummy function, first character is + the number of arguments*/ + yylval.func= + d_addfunc(d_makeufunc(&yytext[2],NULL, + NULL,(int)(yytext[0]-'0'), + FALSE)); + return FUNCDEF; + } + +[a-zA-Z][a-zA-Z0-9]* { + /* we need to find out the number of arguments + for this function, this is a limitation of + mostly the postfix and prefix notation + without parenthesis */ + func_t *n; + + n=d_lookup(yytext,TRUE); + if(!n) { + /*create a dummy function*/ + yylval.func= + d_addfunc(d_makeufunc( + yytext,NULL,NULL,0, + FALSE)); + return FUNCID0; + } + + yylval.func=n; + switch(n->nargs) { + case 0: return FUNCID0; + case 1: return FUNCID1; + case 2: return FUNCID2; + case 3: return FUNCID3; + case 4: return FUNCID4; + case 5: return FUNCID5; + case 6: return FUNCID6; + case 7: return FUNCID7; + case 8: return FUNCID8; + } + /*too many args or corrupted entry, this + shouldn't happen, and this is not a way + to deal with it, but oh well, for now*/ + REJECT; + } + -[0-9]*\.[0-9]+[e@]-?[0-9]+ | -[0-9]+[e@]-?[0-9]+ | -[0-9]*\.[0-9]+ { - mpf_init_set_str(yylval.fval,yytext,10); + mpw_init(yylval.val); + mpw_set_str_float(yylval.val,yytext,10); return NEGFLOAT; } [0-9]*\.[0-9]+[e@]-?[0-9]+ | [0-9]+[e@]-?[0-9]+ | [0-9]*\.[0-9]+ { - mpf_init_set_str(yylval.fval,yytext,10); + mpw_init(yylval.val); + mpw_set_str_float(yylval.val,yytext,10); return FLOAT; } @@ -49,8 +154,9 @@ s=g_malloc(strlen(yytext)-2); /*minus 3 and plus 1*/ sscanf(yytext,"-%d#%[0-9a-zA-Z]s#",&base,s); - mpz_init_set_str(yylval.ival,s,base); - mpz_neg(yylval.ival,yylval.ival); + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,s,base); + mpw_neg(yylval.val,yylval.val); return NEGNORMINT; } @@ -60,64 +166,26 @@ s=g_malloc(strlen(yytext)-2); /*minus 3 and plus 1*/ sscanf(yytext,"%d#%[0-9a-zA-Z]s#",&base,s); - mpz_init_set_str(yylval.ival,s,base); + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,s,base); return NORMINT; } -0x[0-9a-fA-F]+ | -0[0-7]+ | -[0-9]+ { - mpz_init_set_str(yylval.ival,yytext,0); + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,yytext,0); return NEGNORMINT; } 0x[0-9a-fA-F]+ | 0[0-7]+ | [0-9]+ { - mpz_init_set_str(yylval.ival,yytext,0); + mpw_init(yylval.val); + mpw_set_str_int(yylval.val,yytext,0); return NORMINT; } - -~ return NEG; - -infix BEGIN INITIAL; return INFIX_EXPR; - -postfix BEGIN NEGATIVE; return POSTFIX_EXPR; - -prefix BEGIN NEGATIVE; return PREFIX_EXPR; - -= return EQUALS; - -[a-zA-Z][a-zA-Z0-9]* { - /* we need to find out the number of arguments - for this function */ - func_t *n; - - n=d_lookup(yytext); - if(!n) { - yylval.id=(char *) - g_malloc(strlen(yytext)+1); - strcpy(yylval.id,yytext); - return UNKNOWNID; - } - - yylval.func=n; - switch(n->args) { - case 0: return FUNCID0; - case 1: return FUNCID1; - case 2: return FUNCID2; - case 3: return FUNCID3; - case 4: return FUNCID4; - case 5: return FUNCID5; - case 6: return FUNCID6; - case 7: return FUNCID7; - case 8: return FUNCID8; - } - /*too many args or corrupted entry, this - shouldn't happen, and this is not a way - to deal with it, but oh well, for now*/ - REJECT; - } [ \t\n\r]+ ; /*ignore whitespace*/ diff -uNr gnome-0.11/programs/genius/mpwrap.c gnome-0.12/programs/genius/mpwrap.c --- gnome-0.11/programs/genius/mpwrap.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/genius/mpwrap.c Wed Jan 14 12:26:20 1998 @@ -0,0 +1,1525 @@ +/* GnomENIUS Calculator + * Copyright (C) 1997 George Lebl. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include "calc.h" +#include "util.h" +#include "mymath.h" + +#include "mpwrap.h" + +extern void (*errorout)(char *); +extern error_t error_num; + +/*************************************************************************/ +/*low level stuff prototypes */ +/*************************************************************************/ + +/*my own power function for floats, very simple :) */ +static void mympf_pow_ui(mpf_t rop,mpf_t op,unsigned long int e); + +/*clear extra variables of type type, if type=op->type nothing is done*/ +static int mpwl_clear_extra_type(MpwRealNum *op,int type); + +/*only set the type, don't free it, and don't set the type variable + create an extra type of the variable for temporary use*/ +static void mpwl_make_extra_type(MpwRealNum *op,int type); + +static void mpwl_make_type(MpwRealNum *op,int type); + +/*this only adds a value of that type but does nto clear the old one! + retuns the new extra type set*/ +static int mpwl_make_same_extra_type(MpwRealNum *op1,MpwRealNum *op2); + +static void mympq_set_f(mpq_t rop,mpf_t op); +/*make new type and clear the old one*/ +static void mpwl_make_same_type(MpwRealNum *op1,MpwRealNum *op2); + +static void mpwl_clear(MpwRealNum *op); + +static void mpwl_init_type(MpwRealNum *op,int type); + +static void mpwl_free(MpwRealNum *op); + +static int mpwl_sgn(MpwRealNum *op); + +static void mpwl_set_si(MpwRealNum *rop,signed long int i); +static void mpwl_set_ui(MpwRealNum *rop,unsigned long int i); +static void mpwl_set_d(MpwRealNum *rop,double d); + +static void mpwl_set(MpwRealNum *rop,MpwRealNum *op); + +static void mpwl_add(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); + +static void mpwl_mul(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); +static void mpwl_mul_ui(MpwRealNum *rop,MpwRealNum *op,unsigned long int i); + +static void mpwl_div(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); +static void mpwl_div_ui(MpwRealNum *rop,MpwRealNum *op,unsigned long int i); +static void mpwl_ui_div_ui(MpwRealNum *rop,unsigned long int i,MpwRealNum *op); + +static void mpwl_mod(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); + +static void mpwl_neg(MpwRealNum *rop,MpwRealNum *op); + +static void mpwl_fac_ui(MpwRealNum *rop,unsigned int op); + +static void mpwl_fac(MpwRealNum *rop,MpwRealNum *op); + +static void mpwl_pow_q(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); + +/*power to an unsigned long and optionaly invert the answer*/ +static void mpwl_pow_ui(MpwRealNum *rop,MpwRealNum *op1,unsigned int e, + int reverse); + +static void mpwl_pow_z(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); + +static void mpwl_pow_f(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); + +static void mpwl_pow(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2); + +static int mpwl_cmp(MpwRealNum *op1, MpwRealNum *op2); + +static int mpwl_cmp_ui(MpwRealNum *op, unsigned long int i); + +static void mpwl_make_int(MpwRealNum *rop, int floats); + +/*make number into a float, this might be neccessary for unprecise + calculations*/ +static void mpwl_make_float(MpwRealNum *rop); + +static void mpwl_set_str_float(MpwRealNum *rop,char *s,int base); +static void mpwl_set_str_int(MpwRealNum *rop,char *s,int base); + +/**************/ +/*output stuff*/ + +/*round off the number at some digits*/ +static void str_make_max_digits(char *s,int digits); + +/*formats a floating point with mantissa in p and exponent in e*/ +static char * str_format_float(char *p,long int e,int scientific_notation); + +static char * str_getstring_z(mpz_t num, int max_digits, + int scientific_notation); +static char * str_getstring_q(mpq_t num, int max_digits, + int scientific_notation); +static char * str_getstring_f(mpf_t num, int max_digits, + int scientific_notation); + +static char * mpwl_getstring(MpwRealNum * num, int max_digits, + int scientific_notation, int results_as_floats); + +/*************************************************************************/ +/*low level stuff */ +/*************************************************************************/ + +/*my own power function for floats, very simple :) */ +static void +mympf_pow_ui(mpf_t rop,mpf_t op,unsigned long int e) +{ + mpf_t fr; + + if(rop==op) { + mpf_init(fr); + mpf_set_ui(fr,1); + for(;e>0;e--) + mpf_mul(fr,fr,op); + mpf_set(rop,fr); + mpf_clear(fr); + } else { /*different numbers safe to do a quicker way*/ + mpf_set_ui(rop,1); + for(;e>0;e--) + mpf_mul(rop,rop,op); + } +} + + +/*clear extra variables of type type, if type=op->type nothing is done*/ +static int +mpwl_clear_extra_type(MpwRealNum *op,int type) +{ + if(op->type==type) + return; + switch(type) { + case MPW_FLOAT: mpf_clear(op->data.fval); break; + case MPW_RATIONAL: mpq_clear(op->data.rval); break; + case MPW_INTEGER: mpz_clear(op->data.ival); break; + } +} + +static void +mympq_set_f(mpq_t rop,mpf_t op) +{ + char *s; + long int e; + + s=mpf_get_str(NULL,&e,10,0,op); + e-=strlen(s); + if(e>0) { + s=my_realloc(s,strlen(s)+1,strlen(s)+e+1); + for(;e>0;e--) + strcat(s,"0"); + } + mpz_set_str(mpq_numref(rop),s,10); + mpz_set_ui(mpq_denref(rop),10); + mpz_pow_ui(mpq_denref(rop),mpq_denref(rop),-e); + + g_free(s); + + mpq_canonicalize(rop); + +} + +/*only set the type, don't free it, and don't set the type variable + create an extra type of the variable for temporary use*/ +static void +mpwl_make_extra_type(MpwRealNum *op,int type) +{ + mpz_t ir; + if(op->type==type) + return; + switch(type) { + case MPW_FLOAT: + mpf_init(op->data.fval); + if(op->type==MPW_INTEGER) + mpf_set_z(op->data.fval,op->data.ival); + else if(op->type==MPW_RATIONAL) + mpf_set_q(op->data.fval,op->data.rval); + break; + case MPW_RATIONAL: + mpq_init(op->data.rval); + if(op->type==MPW_INTEGER) + mpq_set_z(op->data.rval,op->data.ival); + else if(op->type==MPW_FLOAT) + mympq_set_f(op->data.rval,op->data.fval); + break; + case MPW_INTEGER: + mpz_init(op->data.ival); + if(op->type==MPW_FLOAT) + mpz_set_f(op->data.ival,op->data.fval); + else if(op->type==MPW_RATIONAL) + mpz_set_q(op->data.ival,op->data.rval); + break; + } +} + +static void +mpwl_make_type(MpwRealNum *op,int type) +{ + int t; + + if(op->type==type) + return; + t=op->type; + mpwl_make_extra_type(op,type); + op->type=type; + mpwl_clear_extra_type(op,t); +} + +/*this only adds a value of that type but does nto clear the old one! + retuns the new extra type set*/ +static int +mpwl_make_same_extra_type(MpwRealNum *op1,MpwRealNum *op2) +{ + if(op1->type==op2->type) + return op1->type; + else if(op1->type > op2->type) { + mpwl_make_extra_type(op2,op1->type); + return op1->type; + } else { /*if(op1->type < op2->type)*/ + mpwl_make_extra_type(op1,op2->type); + return op2->type; + } +} + +/*make new type and clear the old one*/ +static void +mpwl_make_same_type(MpwRealNum *op1,MpwRealNum *op2) +{ + if(op1->type==op2->type) + return; + else if(op1->type > op2->type) + mpwl_make_type(op2,op1->type); + else /*if(op1->type < op2->type)*/ + mpwl_make_type(op1,op2->type); +} + +static void +mpwl_clear(MpwRealNum *op) +{ + if(!op) return; + + switch(op->type) { + case MPW_INTEGER: mpz_clear(op->data.ival); break; + case MPW_RATIONAL: mpq_clear(op->data.rval); break; + case MPW_FLOAT: mpf_clear(op->data.fval); break; + } +} + +static void +mpwl_init_type(MpwRealNum *op,int type) +{ + if(!op) return; + + op->type=type; + + switch(type) { + case MPW_INTEGER: + mpz_init(op->data.ival); + break; + case MPW_RATIONAL: + mpq_init(op->data.rval); + break; + case MPW_FLOAT: + mpf_init(op->data.fval); + break; + } +} + +static void +mpwl_free(MpwRealNum *op) +{ + if(!op) return; + mpwl_clear(op); + g_free(op); +} + +static int +mpwl_sgn(MpwRealNum *op) +{ + switch(op->type) { + case MPW_FLOAT: return mpf_sgn(op->data.fval); + case MPW_RATIONAL: return mpq_sgn(op->data.rval); + case MPW_INTEGER: return mpz_sgn(op->data.ival); + } + return 0; +} + +static int +mpwl_cmp(MpwRealNum *op1, MpwRealNum *op2) +{ + int r=0; + int t; + + t=mpwl_make_same_extra_type(op1,op2); + switch(t) { + case MPW_FLOAT: + r=mpf_cmp(op1->data.fval,op2->data.fval); + break; + case MPW_RATIONAL: + r=mpq_cmp(op1->data.rval,op2->data.rval); + break; + case MPW_INTEGER: + r=mpz_cmp(op1->data.ival,op2->data.ival); + break; + } + mpwl_clear_extra_type(op1,t); + mpwl_clear_extra_type(op2,t); + return r; +} + +static int +mpwl_cmp_ui(MpwRealNum *op, unsigned long int i) +{ + switch(op->type) { + case MPW_FLOAT: return mpf_cmp_ui(op->data.fval,i); + case MPW_RATIONAL: return mpq_cmp_ui(op->data.rval,i,1); + case MPW_INTEGER: return mpz_cmp_ui(op->data.ival,i); + } + return 0; +} + +static void +mpwl_set_d(MpwRealNum *rop,double d) +{ + switch(rop->type) { + case MPW_FLOAT: + mpf_set_d(rop->data.fval,d); + break; + case MPW_RATIONAL: + case MPW_INTEGER: + mpwl_clear(rop); + mpwl_init_type(rop,MPW_FLOAT); + mpf_set_d(rop->data.fval,d); + break; + } +} + +static void +mpwl_set_si(MpwRealNum *rop,signed long int i) +{ + switch(rop->type) { + case MPW_FLOAT: + mpwl_clear(rop); + mpwl_init_type(rop,MPW_INTEGER); + mpz_set_si(rop->data.ival,i); + break; + case MPW_RATIONAL: + mpq_set_si(rop->data.rval,i,1); + break; + case MPW_INTEGER: + mpz_set_si(rop->data.ival,i); + break; + } +} + +static void +mpwl_set_ui(MpwRealNum *rop,unsigned long int i) +{ + switch(rop->type) { + case MPW_FLOAT: + mpwl_clear(rop); + mpwl_init_type(rop,MPW_INTEGER); + mpz_set_ui(rop->data.ival,i); + break; + case MPW_RATIONAL: + mpq_set_ui(rop->data.rval,i,1); + break; + case MPW_INTEGER: + mpz_set_ui(rop->data.ival,i); + break; + } +} + +static void +mpwl_set(MpwRealNum *rop,MpwRealNum *op) +{ + if(rop==op) + return; + else if(rop->type==op->type) { + switch(op->type) { + case MPW_FLOAT: + mpf_set(rop->data.fval,op->data.fval); + break; + case MPW_RATIONAL: + mpq_set(rop->data.rval,op->data.rval); + mpwl_make_int(rop,FALSE); + break; + case MPW_INTEGER: + mpz_set(rop->data.ival,op->data.ival); + break; + } + } else { + mpwl_clear(rop); + mpwl_init_type(rop,op->type); + mpwl_set(rop,op); + } +} + +static void +mpwl_add(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + int t; + MpwRealNum r; + + t=mpwl_make_same_extra_type(op1,op2); + + mpwl_init_type(&r,t); + + switch(t) { + case MPW_FLOAT: + mpf_add(r.data.fval,op1->data.fval,op2->data.fval); + break; + case MPW_RATIONAL: + mpq_add(r.data.rval,op1->data.rval,op2->data.rval); + mpwl_make_int(&r,FALSE); + break; + case MPW_INTEGER: + mpz_add(r.data.ival,op1->data.ival,op2->data.ival); + break; + } + mpwl_clear_extra_type(op1,t); + mpwl_clear_extra_type(op2,t); + mpwl_set(rop,&r); + mpwl_clear(&r); +} + +static void +mpwl_mul(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + int t; + MpwRealNum r; + + t=mpwl_make_same_extra_type(op1,op2); + + mpwl_init_type(&r,t); + + switch(t) { + case MPW_FLOAT: + mpf_mul(r.data.fval,op1->data.fval,op2->data.fval); + break; + case MPW_RATIONAL: + mpq_mul(r.data.rval,op1->data.rval,op2->data.rval); + mpwl_make_int(&r,FALSE); + break; + case MPW_INTEGER: + mpz_mul(r.data.ival,op1->data.ival,op2->data.ival); + break; + } + mpwl_clear_extra_type(op1,t); + mpwl_clear_extra_type(op2,t); + mpwl_set(rop,&r); + mpwl_clear(&r); +} + +static void +mpwl_mul_ui(MpwRealNum *rop,MpwRealNum *op,unsigned long int i) +{ + if(rop->type!=op->type) { + mpwl_clear(rop); + mpwl_init_type(rop,op->type); + } + + switch(op->type) { + case MPW_FLOAT: + mpf_mul_ui(rop->data.fval,op->data.fval,i); + break; + case MPW_RATIONAL: + mpz_mul_ui(mpq_numref(rop->data.rval), + mpq_numref(op->data.rval),i); + mpwl_make_int(rop,FALSE); + break; + case MPW_INTEGER: + mpz_mul_ui(rop->data.ival,op->data.ival,i); + break; + } +} + +static void +mpwl_div(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + int t; + MpwRealNum r; + + if(mpwl_sgn(op2)==0) { + error_num=NUMERICAL_MPW_ERROR; + return; + } + + t=mpwl_make_same_extra_type(op1,op2); + + switch(t) { + case MPW_FLOAT: + mpwl_init_type(&r,t); + mpf_div(r.data.fval,op1->data.fval,op2->data.fval); + break; + case MPW_RATIONAL: + mpwl_init_type(&r,t); + mpq_div(r.data.rval,op1->data.rval,op2->data.rval); + mpwl_make_int(&r,FALSE); + break; + case MPW_INTEGER: + mpwl_init_type(&r,MPW_RATIONAL); + mpq_set_z(r.data.rval,op1->data.ival); + mpz_set(mpq_denref(r.data.rval), + op2->data.ival); + break; + } + mpwl_clear_extra_type(op1,t); + mpwl_clear_extra_type(op2,t); + mpwl_set(rop,&r); + mpwl_clear(&r); + +} + +static void +mpwl_div_ui(MpwRealNum *rop,MpwRealNum *op,unsigned long int i) +{ + int t; + if(i==0) { + error_num=NUMERICAL_MPW_ERROR; + return; + } + + switch(op->type) { + case MPW_FLOAT: + if(rop->type!=MPW_FLOAT) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_FLOAT); + } + mpf_div_ui(rop->data.fval,op->data.fval,i); + break; + case MPW_RATIONAL: + if(rop->type!=MPW_RATIONAL) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_RATIONAL); + } + mpz_mul_ui(mpq_denref(rop->data.rval), + mpq_denref(op->data.rval),i); + mpwl_make_int(rop,FALSE); + break; + case MPW_INTEGER: + t=rop->type; + if(rop->type!=MPW_RATIONAL) + mpwl_init_type(rop,MPW_RATIONAL); + mpq_set_z(rop->data.rval,op->data.ival); + mpz_set_ui(mpq_denref(rop->data.rval),i); + mpwl_clear_extra_type(rop,t); + break; + } +} + +static void +mpwl_ui_div(MpwRealNum *rop,unsigned long int i,MpwRealNum *op) +{ + int t; + if(mpwl_sgn(op)==0) { + error_num=NUMERICAL_MPW_ERROR; + return; + } + + switch(op->type) { + case MPW_FLOAT: + if(rop->type!=MPW_FLOAT) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_FLOAT); + } + mpf_ui_div(rop->data.fval,i,op->data.fval); + break; + case MPW_RATIONAL: + if(rop->type!=MPW_RATIONAL) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_RATIONAL); + } + mpq_inv(rop->data.rval,op->data.rval); + mpz_mul_ui(mpq_numref(rop->data.rval), + mpq_numref(rop->data.rval),i); + mpwl_make_int(rop,FALSE); + break; + case MPW_INTEGER: + t=rop->type; + if(rop->type!=MPW_RATIONAL) + mpwl_init_type(rop,MPW_RATIONAL); + mpz_set_ui(mpq_numref(rop->data.rval),i); + mpz_set(mpq_denref(rop->data.rval),op->data.ival); + mpwl_clear_extra_type(rop,t); + break; + } +} + +static void +mpwl_mod(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + if(mpwl_sgn(op2)==0) { + error_num=NUMERICAL_MPW_ERROR; + return; + } + + if(op1->type==MPW_INTEGER && op2->type==MPW_INTEGER) { + if(rop->type!=MPW_INTEGER) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_INTEGER); + } + mpz_mod(rop->data.ival,op1->data.ival,op2->data.ival); + } else { + (*errorout)("Can't do modulo of floats or rationals!"); + error_num=NUMERICAL_MPW_ERROR; + } +} + +static void +mpwl_neg(MpwRealNum *rop,MpwRealNum *op) +{ + if(rop->type!=op->type) { + mpwl_clear(rop); + mpwl_init_type(rop,op->type); + } + + switch(op->type) { + case MPW_FLOAT: + mpf_neg(rop->data.fval,op->data.fval); + break; + case MPW_RATIONAL: + mpq_neg(rop->data.rval,op->data.rval); + break; + case MPW_INTEGER: + mpz_neg(rop->data.ival,op->data.ival); + break; + } +} + +static void +mpwl_fac_ui(MpwRealNum *rop,unsigned int op) +{ + if(rop->type!=MPW_INTEGER) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_INTEGER); + } + mpz_fac_ui(rop->data.ival,op); +} + +static void +mpwl_fac(MpwRealNum *rop,MpwRealNum *op) +{ + if(op->type!=MPW_INTEGER) { + (*errorout)("Can't do factorials of rationals or floats!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + if(mpz_cmp_ui(op->data.ival,ULONG_MAX)>0) { + (*errorout)("Number too large to compute factorial!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + if(mpz_sgn(op->data.ival)<0) { + (*errorout)("Can't do factorials of negative numbers!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + + mpwl_fac_ui(rop,mpz_get_ui(op->data.ival)); +} + +static void +mpwl_pow_q(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + mpf_t fr; + mpf_t fr2; + mpf_t frt; + unsigned long ne; + unsigned long de; + int t; + int reverse=FALSE; + + if(op2->type!=MPW_RATIONAL) { + error_num=INTERNAL_MPW_ERROR; + return; + } + + if((mpz_cmp_ui(mpq_numref(op2->data.rval),ULONG_MAX)>0) || + (mpz_cmp_ui(mpq_denref(op2->data.rval),ULONG_MAX)>0)) + { + (*errorout)("Exponent numerator/quotient too big!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + + ne=mpz_get_ui(mpq_numref(op2->data.rval)); + de=mpz_get_ui(mpq_denref(op2->data.rval)); + /*this will make it allways + positive!*/ + if(mpwl_sgn(op1)<0 && ((de/2)*2)==de) { + (*errorout)("Can't yet handle complex numbers!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + + if(mpq_sgn(op2->data.rval)<0) + reverse=TRUE; + + mpwl_make_extra_type(op1,MPW_FLOAT); + t=MPW_FLOAT; + + + /* + * Newton's method: Xn+1 = Xn - f(Xn)/f'(Xn) + */ + + mpf_init(fr); + mpf_init(fr2); + mpf_init(frt); + mpf_div_ui(fr,op1->data.fval,2); /*use half the value + as an initial guess*/ + for(;;) { + mympf_pow_ui(fr2,fr,de); + mpf_sub(fr2,fr2,op1->data.fval); + + mympf_pow_ui(frt,fr,de-1); + mpf_mul_ui(frt,frt,de); + mpf_div(fr2,fr2,frt); + mpf_neg(fr2,fr2); + mpf_add(fr2,fr2,fr); + + + if(mpf_cmp(fr2,fr)==0) + break; + mpf_set(fr,fr2); + } + mpf_clear(fr2); + mpf_clear(frt); + + mympf_pow_ui(fr,fr,ne); + if(reverse) + mpf_ui_div(fr,1,fr); + + /*op1 might have equaled rop so clear extra type here*/ + mpwl_clear_extra_type(op1,t); + + mpwl_clear(rop); + mpwl_init_type(rop,MPW_FLOAT); + mpf_set(rop->data.fval,fr); +} + +/*power to an unsigned long and optionaly invert the answer*/ +static void +mpwl_pow_ui(MpwRealNum *rop,MpwRealNum *op1,unsigned int e, int reverse) +{ + MpwRealNum r; + + switch(op1->type) { + case MPW_RATIONAL: + mpwl_init_type(&r,MPW_RATIONAL); + mpz_pow_ui(mpq_numref(r.data.rval), + op1->data.ival,e); + mpz_pow_ui(mpq_denref(r.data.rval), + op1->data.ival,e); + /*the exponent was negative! reverse the result!*/ + if(reverse) + mpq_inv(r.data.rval,r.data.rval); + break; + case MPW_INTEGER: + if(!reverse) { + mpwl_init_type(&r,MPW_INTEGER); + mpz_pow_ui(r.data.ival, + op1->data.ival,e); + } else { + mpwl_init_type(&r,MPW_RATIONAL); + mpz_pow_ui(mpq_denref(r.data.rval), + op1->data.ival,e); + mpz_pow_ui(mpq_numref(r.data.rval), + op1->data.ival,e); + } + break; + case MPW_FLOAT: + mpwl_init_type(&r,MPW_FLOAT); + mympf_pow_ui(r.data.fval,op1->data.fval,e); + + if(reverse) + mpf_ui_div(r.data.fval,1,r.data.fval); + break; + } + mpwl_set(rop,&r); + mpwl_clear(&r); +} + +static void +mpwl_pow_z(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + if(op2->type!=MPW_INTEGER) { + error_num=INTERNAL_MPW_ERROR; + return; + } + + if(mpz_cmp_ui(op2->data.ival,ULONG_MAX)>0) { + (*errorout)("Exponent too big!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + + if(mpz_sgn(op2->data.ival)==0) + mpwl_set_ui(rop,1); + else if(mpz_sgn(op2->data.ival)>0) + mpwl_pow_ui(rop,op1,mpz_get_ui(op2->data.ival),FALSE); + else + mpwl_pow_ui(rop,op1,mpz_get_ui(op2->data.ival),TRUE); +} + +static void +mpwl_pow_f(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + MpwRealNum r; + + if(op2->type!=MPW_FLOAT) { + error_num=INTERNAL_MPW_ERROR; + return; + } + + mpwl_init_type(&r,MPW_FLOAT); + mpwl_set(&r,op2); + mpwl_make_type(&r,MPW_RATIONAL); + mpwl_pow_q(rop,op1,&r); + mpwl_clear(&r); +} + +static void +mpwl_pow(MpwRealNum *rop,MpwRealNum *op1,MpwRealNum *op2) +{ + if(mpwl_sgn(op2)==0) { + mpwl_set_ui(rop,1); + return; + } + + switch(op2->type) { + case MPW_FLOAT: mpwl_pow_f(rop,op1,op2); break; + case MPW_RATIONAL: mpwl_pow_q(rop,op1,op2); break; + case MPW_INTEGER: mpwl_pow_z(rop,op1,op2); break; + } +} + +static void +mpwl_make_int(MpwRealNum *rop, int floats) +{ + mpf_t fr; + switch(rop->type) { + case MPW_INTEGER: return; + case MPW_RATIONAL: + mpq_canonicalize(rop->data.rval); + if(mpz_cmp_ui(mpq_denref(rop->data.rval),1)==0) { + mpz_init_set(rop->data.ival, + mpq_numref(rop->data.rval)); + mpq_clear(rop->data.rval); + rop->type=MPW_INTEGER; + } + break; + case MPW_FLOAT: + if(!floats) return; + /*gotta find a better way of doing this!*/ + + mpz_set_f(rop->data.ival,rop->data.fval); + mpf_init(fr); + mpf_set_z(fr,rop->data.ival); + if(mpf_cmp(fr,rop->data.fval)==0) { + rop->type=MPW_INTEGER; + mpf_clear(rop->data.fval); + } else + mpz_clear(rop->data.ival); + mpf_clear(fr); + break; + } + +} + +/*make number into a float, this might be neccessary for unprecise + calculations*/ +static void +mpwl_make_float(MpwRealNum *rop) +{ + mpwl_make_type(rop,MPW_FLOAT); +} + +static void +mpwl_set_str_float(MpwRealNum *rop,char *s,int base) +{ + if(rop->type!=MPW_FLOAT) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_FLOAT); + } + mpf_set_str(rop->data.fval,s,base); +} + +static void +mpwl_set_str_int(MpwRealNum *rop,char *s,int base) +{ + if(rop->type!=MPW_INTEGER) { + mpwl_clear(rop); + mpwl_init_type(rop,MPW_INTEGER); + } + mpz_set_str(rop->data.ival,s,base); +} + + +/**************/ +/*output stuff*/ + +/*round off the number at some digits*/ +static void +str_make_max_digits(char *s,int digits) +{ + int i; + int sd=0; /*digit where the number starts*/ + + if(s[0]=='-') + sd=1; + + if(!s || digits<=0) + return; + + digits+=sd; + + if(strlen(s)<=digits) + return; + + if(s[digits]<'5') { + s[digits]='\0'; + return; + } + s[digits]='\0'; + + for(i=digits-1;i>=sd;i--) { + if(s[i]<'9') { + s[i]++; + return; + } + s[i]='\0'; + } + shiftstr(s,1); + s[sd]='1'; +} + +/*formats a floating point with mantissa in p and exponent in e*/ +static char * +str_format_float(char *p,long int e,int scientific_notation) +{ + long int len; + int i; + if(((e-1)<-8 || (e-1)>8) || scientific_notation) { + p=my_realloc(p,strlen(p)+1, + strlen(p)+1+((int)log10(abs(e))+2)+1); + if(p[0]=='-') { + if(strlen(p)>2) { + shiftstr(p+2,1); + p[2]='.'; + } + } else { + if(strlen(p)>1) { + shiftstr(p+1,1); + p[1]='.'; + } + } + sprintf(p,"%se%ld",p,e-1); + } else if(e>0) { + len=strlen(p); + if(p[0]=='-') + len--; + if(e>len) { + p=my_realloc(p,strlen(p)+1, + strlen(p)+1+e-len); + for(i=0;i0 && max_digits=strlen(p)) { + g_free(p2); + return p; + } else { + g_free(p); + return p2; + } + } + return p; +} + +static char * +str_getstring_q(mpq_t num, int max_digits,int scientific_notation) +{ + char *p,*p2; + mpf_t fr; + + p=mpz_get_str(NULL,10,mpq_numref(num)); + p=appendstr(p,"/"); + p2=mpz_get_str(NULL,10,mpq_denref(num)); + p=appendstr(p,p2); + g_free(p2); + if(max_digits>0 && max_digits=strlen(p)) { + g_free(p2); + return p; + } else { + g_free(p); + return p2; + } + } + return p; +} + +static char * +str_getstring_f(mpf_t num, int max_digits,int scientific_notation) +{ + char *p; + long e; + + p=mpf_get_str(NULL,&e,10,0,num); + str_make_max_digits(p,max_digits); + p=str_format_float(p,e,scientific_notation); + + return p; +} + +static char * +mpwl_getstring(MpwRealNum * num, int max_digits,int scientific_notation, + int results_as_floats) +{ + mpf_t fr; + char *p; + switch(num->type) { + case MPW_RATIONAL: + if(results_as_floats) { + mpf_init(fr); + mpf_set_q(fr,num->data.rval); + p=str_getstring_f(fr,max_digits, + scientific_notation); + mpf_clear(fr); + return p; + } + return str_getstring_q(num->data.rval,max_digits, + scientific_notation); + case MPW_INTEGER: + if(results_as_floats) { + mpf_init(fr); + mpf_set_z(fr,num->data.ival); + p=str_getstring_f(fr,max_digits, + scientific_notation); + mpf_clear(fr); + return p; + } + return str_getstring_z(num->data.ival,max_digits, + scientific_notation); + case MPW_FLOAT: + return str_getstring_f(num->data.fval,max_digits, + scientific_notation); + } +} + + + +/*************************************************************************/ +/*high level stuff */ +/*************************************************************************/ + +/*set default precision*/ +void +mpw_set_default_prec(unsigned long int i) +{ + mpf_set_default_prec(i); +} + +/*initialize a number*/ +void +mpw_init(mpw_ptr op) +{ + op->type=MPW_REAL; + op->r=(MpwRealNum *)g_malloc(sizeof(MpwRealNum)); + op->r->type=MPW_INTEGER; + mpz_init(op->r->data.ival); + op->i=NULL; +} + +/*clear memory held by number*/ +void +mpw_clear(mpw_ptr op) +{ + mpwl_free(op->r); + mpwl_free(op->i); + op->type=0; +} + +/*make them the same type without loosing information*/ +void +mpw_make_same_type(mpw_ptr op1,mpw_ptr op2) +{ + if(op1->type==MPW_REAL && op2->type==MPW_REAL) { + mpwl_make_same_type(op1->r,op2->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_set(mpw_ptr rop,mpw_ptr op) +{ + if(op->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_set(rop->r,op->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_set_d(mpw_ptr rop,double d) +{ + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_set_d(rop->r,d); +} + +void +mpw_set_si(mpw_ptr rop,signed long int i) +{ + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_set_si(rop->r,i); +} + +void +mpw_set_ui(mpw_ptr rop,unsigned long int i) +{ + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_set_ui(rop->r,i); +} + +int +mpw_sgn(mpw_ptr op) +{ + if(op->type==MPW_REAL) { + return mpwl_sgn(op->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } + return 0; +} + +void +mpw_neg(mpw_ptr rop,mpw_ptr op) +{ + if(op->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_neg(rop->r,op->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_add(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2) +{ + if(op1->type==MPW_REAL && op2->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_add(rop->r,op1->r,op2->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_sub(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2) +{ + /*well not the most optimized but at least we won't need to change + it when the time comes, plus I don't see sign changes doing that + much damage in the first place*/ + mpw_neg(op2,op2); + mpw_add(rop,op1,op2); + mpw_neg(op2,op2); +} + +void +mpw_mul(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2) +{ + if(op1->type==MPW_REAL && op2->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_mul(rop->r,op1->r,op2->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_mul_ui(mpw_ptr rop,mpw_ptr op, unsigned int i) +{ + if(op->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_mul_ui(rop->r,op->r,i); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_div(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2) +{ + if(mpw_sgn(op2)==0) { + (*errorout)("Division by zero!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + if(op1->type==MPW_REAL && op2->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_div(rop->r,op1->r,op2->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_div_ui(mpw_ptr rop,mpw_ptr op, unsigned int i) +{ + if(i==0) { + (*errorout)("Division by zero!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + if(op->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_div_ui(rop->r,op->r,i); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_ui_div(mpw_ptr rop,unsigned int i,mpw_ptr op) +{ + if(mpw_sgn(op)==0) { + (*errorout)("Division by zero!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + if(op->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_ui_div(rop->r,1,op->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_mod(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2) +{ + if(mpw_sgn(op2)==0) { + (*errorout)("Division by zero!"); + error_num=NUMERICAL_MPW_ERROR; + return; + } + if(op1->type==MPW_REAL && op2->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_mod(rop->r,op1->r,op2->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_pow(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2) +{ + if(op1->type==MPW_REAL && op2->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_pow(rop->r,op1->r,op2->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_pow_ui(mpw_ptr rop,mpw_ptr op, unsigned long int e) +{ + if(op->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_pow_ui(rop->r,op->r,e,FALSE); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +int +mpw_cmp(mpw_ptr op1, mpw_ptr op2) +{ + if(op1->type==MPW_REAL && op2->type==MPW_REAL) { + return mpwl_cmp(op1->r,op2->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +int +mpw_cmp_ui(mpw_ptr op, unsigned long int i) +{ + if(op->type==MPW_REAL) { + return mpwl_cmp_ui(op->r,i); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_fac_ui(mpw_ptr rop,unsigned long int i) +{ + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_fac_ui(rop->r,i); +} + +void +mpw_fac(mpw_ptr rop,mpw_ptr op) +{ + if(op->type==MPW_REAL) { + if(rop->type==MPW_COMPLEX) { + mpw_clear(rop); + mpw_init(rop); + } + mpwl_fac(rop->r,op->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +/*make a number int if possible, if floats is true try to convert to an + int if the two equal*/ +void +mpw_make_int(mpw_ptr rop,int floats) +{ + if(rop->type==MPW_REAL) { + mpwl_make_int(rop->r,floats); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +/*make number into a float, this might be neccessary for unprecise + calculations*/ +void +mpw_make_float(mpw_ptr rop) +{ + if(rop->type==MPW_REAL) { + mpwl_make_float(rop->r); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +/*init the mp stuff*/ +void +mpw_init_mp(void) +{ + mp_set_memory_functions(g_malloc,my_realloc,my_free); +} + +char * +mpw_getstring(mpw_ptr num, int max_digits,int scientific_notation, + int results_as_floats) +{ + if(num->type==MPW_REAL) { + mpwl_getstring(num->r,max_digits,scientific_notation, + results_as_floats); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_set_str_float(mpw_ptr rop,char *s,int base) +{ + if(rop->type==MPW_REAL) { + mpwl_set_str_float(rop->r,s,base); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} + +void +mpw_set_str_int(mpw_ptr rop,char *s,int base) +{ + if(rop->type==MPW_REAL) { + mpwl_set_str_int(rop->r,s,base); + } else { + /*FIXME: complex numbers*/ + g_error("can't deal with complex numbers"); + } +} diff -uNr gnome-0.11/programs/genius/mpwrap.h gnome-0.12/programs/genius/mpwrap.h --- gnome-0.11/programs/genius/mpwrap.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/genius/mpwrap.h Wed Jan 14 12:26:20 1998 @@ -0,0 +1,126 @@ +/* GnomENIUS Calculator + * Copyright (C) 1997 George Lebl. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _MPWRAP_H_ +#define _MPWRAP_H_ + +#include + +#define MPW_INTEGER 1 +#define MPW_RATIONAL 2 +#define MPW_FLOAT 3 + +#define MPW_REAL 1 +#define MPW_COMPLEX 2 + +/*number structures, this is where low level stuff is stored so it will be + different for each lib, members should never be directly accessed!*/ + +/*real only structure*/ +typedef struct _MpwRealNum { + int type; + struct { /*this is done as a struct so that conversions don't require + a temporary, make sure to clear the old one!, in the worst + case we have two unused pointers*/ + mpz_t ival; + mpq_t rval; + mpf_t fval; + } data; +} MpwRealNum; + +/*any number (includes complex) so it includes an imaginary member if type + is MPW_COMPLEX + + this is used as the number type*/ +struct _mpw_t { + int type; + MpwRealNum *r; /*real*/ + MpwRealNum *i; /*imaginary*/ +}; + +typedef struct _mpw_t mpw_t[1]; +typedef struct _mpw_t *mpw_ptr; + + +/*************************************************************************/ +/*high level stuff */ +/*************************************************************************/ + +/*set default precision*/ +void mpw_set_default_prec(unsigned long int i); + +/*initialize a number*/ +void mpw_init(mpw_ptr op); + +/*clear memory held by number*/ +void mpw_clear(mpw_ptr op); + +/*make them the same type without loosing information*/ +void mpw_make_same_type(mpw_ptr op1,mpw_ptr op2); + +void mpw_set(mpw_ptr rop,mpw_ptr op); +void mpw_set_d(mpw_ptr rop,double d); +void mpw_set_si(mpw_ptr rop,signed long int i); +void mpw_set_ui(mpw_ptr rop,unsigned long int i); + +int mpw_sgn(mpw_ptr op); + +void mpw_neg(mpw_ptr rop,mpw_ptr op); + +void mpw_add(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2); + +void mpw_sub(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2); + +void mpw_mul(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2); +void mpw_mul_ui(mpw_ptr rop,mpw_ptr op, unsigned int i); + +void mpw_div(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2); +void mpw_div_ui(mpw_ptr rop,mpw_ptr op, unsigned int i); +void mpw_ui_div(mpw_ptr rop,unsigned int i,mpw_ptr op); + +void mpw_mod(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2); + +void mpw_pow(mpw_ptr rop,mpw_ptr op1, mpw_ptr op2); +void mpw_pow_ui(mpw_ptr rop,mpw_ptr op, unsigned long int e); + +int mpw_cmp(mpw_ptr op1, mpw_ptr op2); +int mpw_cmp_ui(mpw_ptr op, unsigned long int i); + +void mpw_fac_ui(mpw_ptr rop,unsigned long int i); +void mpw_fac(mpw_ptr rop,mpw_ptr op); + +/*make a number int if possible, if floats is true try to convert to an + int if the two equal*/ +void mpw_make_int(mpw_ptr rop,int floats); + +/*make number into a float, this might be neccessary for unprecise + calculations*/ +void mpw_make_float(mpw_ptr rop); + +/*init the mp stuff*/ +void mpw_init_mp(void); + +/*get a string (g_malloc'ed) with the number in it*/ +char * mpw_getstring(mpw_ptr num,int max_digits,int scientific_notation, + int results_as_floats); + +void mpw_set_str_float(mpw_ptr rop,char *s,int base); + +void mpw_set_str_int(mpw_ptr rop,char *s,int base); + +#endif diff -uNr gnome-0.11/programs/genius/mymath.c gnome-0.12/programs/genius/mymath.c --- gnome-0.11/programs/genius/mymath.c Mon Jan 5 11:12:40 1998 +++ gnome-0.12/programs/genius/mymath.c Wed Jan 14 12:26:20 1998 @@ -16,204 +16,176 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include +#include "mpwrap.h" #include "mymath.h" /*get sin*/ void -mympf_sin(mpf_t rop, mpf_t op) +mympw_sin(mpw_t rop, mpw_t op) { - mpf_t ftmp; - mpf_t fres; - mpf_t foldres; - mpz_t ir; + mpw_t ftmp; + mpw_t fres; + mpw_t foldres; unsigned int i; int negate=TRUE; /*special case*/ - if(mpf_cmp_ui(op,0)==0) { - mpf_set_ui(rop,0); + if(mpw_cmp_ui(op,0)==0) { + mpw_set_ui(rop,0); return; } - mpf_init(ftmp); - mpf_init(fres); - mpf_init_set(foldres,op); - mpz_init(ir); + mpw_init(ftmp); + mpw_init(fres); + mpw_init(foldres); + mpw_set(foldres,op); for(i=3;;i+=2) { - mpz_fac_ui(ir,i); - mpf_set_z(ftmp,ir); - mympf_pow_ui(fres,op,i); - mpf_div(fres,fres,ftmp); + mpw_fac_ui(ftmp,i); + mpw_pow_ui(fres,op,i); + mpw_div(fres,fres,ftmp); if(negate) - mpf_neg(fres,fres); + mpw_neg(fres,fres); negate= !negate; - mpf_add(fres,fres,foldres); + mpw_add(fres,fres,foldres); - if(mpf_cmp(foldres,fres)==0) + if(mpw_cmp(foldres,fres)==0) break; - mpf_set(foldres,fres); + mpw_set(foldres,fres); } - mpz_clear(ir); - mpf_clear(ftmp); - mpf_clear(foldres); + mpw_clear(ftmp); + mpw_clear(foldres); - mpf_set(rop,fres); + mpw_set(rop,fres); - mpf_clear(fres); + mpw_clear(fres); } /*get cos*/ void -mympf_cos(mpf_t rop, mpf_t op) +mympw_cos(mpw_t rop, mpw_t op) { - mpf_t ftmp; - mpf_t fres; - mpf_t foldres; - mpz_t ir; + mpw_t ftmp; + mpw_t fres; + mpw_t foldres; unsigned int i; int negate=TRUE; /*special case*/ - if(mpf_cmp_ui(op,0)==0) { - mpf_set_ui(rop,1); + if(mpw_cmp_ui(op,0)==0) { + mpw_set_ui(rop,1); return; } - mpf_init(ftmp); - mpf_init(fres); - mpf_init(foldres); - mpf_set_ui(foldres,1); - mpz_init(ir); + mpw_init(ftmp); + mpw_init(fres); + mpw_init(foldres); + mpw_set_ui(foldres,1); for(i=2;;i+=2) { - mpz_fac_ui(ir,i); - mpf_set_z(ftmp,ir); - mympf_pow_ui(fres,op,i); - mpf_div(fres,fres,ftmp); + mpw_fac_ui(ftmp,i); + mpw_pow_ui(fres,op,i); + mpw_div(fres,fres,ftmp); if(negate) - mpf_neg(fres,fres); + mpw_neg(fres,fres); negate= !negate; - mpf_add(fres,fres,foldres); + mpw_add(fres,fres,foldres); - if(mpf_cmp(foldres,fres)==0) + if(mpw_cmp(foldres,fres)==0) break; - mpf_set(foldres,fres); + mpw_set(foldres,fres); } - mpz_clear(ir); - mpf_clear(ftmp); - mpf_clear(foldres); + mpw_clear(ftmp); + mpw_clear(foldres); - mpf_set(rop,fres); + mpw_set(rop,fres); - mpf_clear(fres); + mpw_clear(fres); } /*get e*/ void -mympf_gete(mpf_t rop) +mympw_gete(mpw_t rop) { - static mpf_t cache; + static mpw_t cache; static int iscached=FALSE; - mpf_t fres; - mpf_t foldres; - mpz_t ir; + mpw_t fres; + mpw_t foldres; unsigned int i; if(iscached) - mpf_set(rop,cache); + mpw_set(rop,cache); /*taylor series for x=1*/ - mpf_init(fres); - mpf_init(foldres); - mpf_set_ui(foldres,2); - mpz_init(ir); + mpw_init(fres); + mpw_init(foldres); + mpw_set_d(foldres,2.0); for(i=2;;i++) { - mpz_fac_ui(ir,i); - mpf_set_z(fres,ir); - mpf_ui_div(fres,1,fres); - mpf_add(fres,fres,foldres); + mpw_fac_ui(fres,i); + mpw_ui_div(fres,1,fres); + mpw_add(fres,fres,foldres); - if(mpf_cmp(foldres,fres)==0) + if(mpw_cmp(foldres,fres)==0) break; - mpf_set(foldres,fres); + mpw_set(foldres,fres); } - mpz_clear(ir); - mpf_clear(foldres); + mpw_clear(foldres); iscached=TRUE; - mpf_init_set(cache,fres); - mpf_set(rop,fres); + mpw_init(cache); + mpw_set(cache,fres); + mpw_set(rop,fres); - mpf_clear(fres); + mpw_clear(fres); } /*get the value for pi*/ void -mympf_getpi(mpf_t rop) +mympw_getpi(mpw_t rop) { - static mpf_t cache; + static mpw_t cache; static int iscached=FALSE; - mpf_t fr; - mpf_t fr2; - mpf_t frt; + mpw_t fr; + mpw_t fr2; + mpw_t frt; if(iscached) - mpf_set(rop,cache); + mpw_set(rop,cache); /* * Newton's method: Xn+1 = Xn - f(Xn)/f'(Xn) */ - mpf_init(fr); - mpf_init(fr2); - mpf_init(frt); - mpf_set_d(fr,3.14159265358979323846); /*use quite a precise guess - as theinitial one*/ + mpw_init(fr); + mpw_init(fr2); + mpw_init(frt); + mpw_set_d(fr,3.14159265358979323846); /*use quite a precise guess + as the initial one*/ for(;;) { - mympf_sin(fr2,fr); + mympw_sin(fr2,fr); - mympf_cos(frt,fr); - mpf_div(fr2,fr2,frt); - mpf_neg(fr2,fr2); - mpf_add(fr2,fr2,fr); + mympw_cos(frt,fr); + mpw_div(fr2,fr2,frt); + mpw_neg(fr2,fr2); + mpw_add(fr2,fr2,fr); - if(mpf_cmp(fr2,fr)==0) + if(mpw_cmp(fr2,fr)==0) break; - mpf_set(fr,fr2); + mpw_set(fr,fr2); } - mpf_clear(fr2); - mpf_clear(frt); + mpw_clear(fr2); + mpw_clear(frt); iscached=TRUE; - mpf_init_set(cache,fr); - mpf_set(rop,fr); -} - -/*my own power function for floats, very simple :) */ -void -mympf_pow_ui(mpf_t rop,mpf_t op,unsigned long e) -{ - mpf_t fr; - - if(rop==op) { - mpf_init(fr); - mpf_set_ui(fr,1); - for(;e>0;e--) - mpf_mul(fr,fr,op); - mpf_set(rop,fr); - mpf_clear(fr); - } else { /*different numbers safe to do a quicker way*/ - mpf_set_ui(rop,1); - for(;e>0;e--) - mpf_mul(rop,rop,op); - } + mpw_init(cache); + mpw_set(cache,fr); + mpw_set(rop,fr); + mpw_clear(fr); } diff -uNr gnome-0.11/programs/genius/mymath.h gnome-0.12/programs/genius/mymath.h --- gnome-0.11/programs/genius/mymath.h Mon Jan 5 11:12:40 1998 +++ gnome-0.12/programs/genius/mymath.h Mon Jan 12 20:01:32 1998 @@ -27,18 +27,15 @@ #endif /*get sin*/ -void mympf_sin(mpf_t rop, mpf_t op); +void mympw_sin(mpw_t rop, mpw_t op); /*get cos*/ -void mympf_cos(mpf_t rop, mpf_t op); +void mympw_cos(mpw_t rop, mpw_t op); /*get the value for pi*/ -void mympf_getpi(mpf_t rop); +void mympw_getpi(mpw_t rop); /*get the value for e*/ -void mympf_gete(mpf_t rop); - -/*my own power function for floats, very simple :) */ -void mympf_pow_ui(mpf_t rop,mpf_t op,unsigned long e); +void mympw_gete(mpw_t rop); #endif diff -uNr gnome-0.11/programs/genius/parse.c gnome-0.12/programs/genius/parse.c --- gnome-0.11/programs/genius/parse.c Tue Jan 6 22:14:29 1998 +++ gnome-0.12/programs/genius/parse.c Wed Jan 14 21:03:30 1998 @@ -18,39 +18,48 @@ #define FUNCID6 268 #define FUNCID7 269 #define FUNCID8 270 -#define UNKNOWNID 271 -#define INFIX_EXPR 272 -#define POSTFIX_EXPR 273 -#define PREFIX_EXPR 274 -#define NEG 275 -#define EQUALS 276 -#define UMINUS 277 +#define FUNCDEF 271 +#define BEGINBLOCK 272 +#define ENDBLOCK 273 +#define WHILE_CONS 274 +#define IF_CONS 275 +#define IFELSE_CONS 276 +#define INFIX_EXPR 277 +#define POSTFIX_EXPR 278 +#define PREFIX_EXPR 279 +#define NEG 280 +#define SEPAR 281 +#define EQUALS 282 +#define EQ_CMP 283 +#define NE_CMP 284 +#define CMP_CMP 285 +#define LT_CMP 286 +#define GT_CMP 287 +#define LE_CMP 288 +#define GE_CMP 289 +#define LOGICAL_XOR 290 +#define LOGICAL_OR 291 +#define LOGICAL_AND 292 +#define LOGICAL_NOT 293 +#define UMINUS 294 #line 19 "parse.y" -#include #include +#include "mpwrap.h" #include "eval.h" #include "dict.h" extern evalstack_t evalstack; -#define PUSH_FUNC(ACT) t_push(makefuncb(ACT,&evalstack),&evalstack); -#define PUSH_DFUNC(FUNC) t_push(makefuncd(FUNC,&evalstack),&evalstack); -#define ADD_USERFUNC(ID,ARGS) \ - { \ - tree_t *n; \ - n=t_pop(&evalstack); \ - d_addfunc(d_makeufunc(ID,n,ARGS)); \ - t_push(copynode(n),&evalstack); \ - g_free(ID); \ - } +#define PUSH_ACT(ACT) t_push(makefuncb(ACT,&evalstack),&evalstack); +#define PUSH_FUNC(FUNC) t_push(makefuncd(FUNC,&evalstack),&evalstack); +#define PUSH_FAKEFUNC(FUNC) t_push(makefuncd0(FUNC),&evalstack); -#line 40 "parse.y" +#line 33 "parse.y" typedef union { - mpz_t ival; - mpf_t fval; + mpw_t val; func_t *func; char *id; } YYSTYPE; @@ -64,23 +73,23 @@ -#define YYFINAL 244 +#define YYFINAL 350 #define YYFLAG -32768 -#define YYNTBASE 33 +#define YYNTBASE 50 -#define YYTRANSLATE(x) ((unsigned)(x) <= 277 ? yytranslate[x] : 43) +#define YYTRANSLATE(x) ((unsigned)(x) <= 294 ? yytranslate[x] : 69) 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, 28, 2, 2, 2, 26, 2, 2, 30, - 31, 24, 22, 32, 23, 2, 25, 2, 2, 2, + 2, 2, 44, 2, 2, 2, 43, 2, 2, 47, + 48, 41, 39, 49, 40, 2, 42, 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, 29, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 45, 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, @@ -98,74 +107,108 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 27 + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 46 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 3, 6, 9, 11, 15, 19, 23, 27, 31, - 35, 39, 42, 45, 48, 52, 54, 58, 60, 62, - 66, 71, 78, 87, 98, 111, 126, 143, 162, 166, - 170, 174, 178, 182, 186, 190, 193, 196, 200, 204, - 206, 208, 210, 213, 217, 222, 228, 235, 243, 252, - 262, 266, 270, 274, 278, 282, 286, 290, 293, 296, - 300, 302, 306, 308, 310, 313, 317, 322, 328, 335, - 343, 352, 362, 364, 366, 368, 370, 372 + 35, 39, 43, 47, 51, 55, 59, 63, 67, 71, + 75, 79, 82, 85, 88, 91, 95, 97, 100, 104, + 108, 113, 115, 117, 121, 125, 127, 132, 139, 148, + 159, 172, 187, 204, 223, 227, 229, 233, 237, 241, + 245, 249, 253, 257, 261, 265, 269, 273, 277, 281, + 285, 289, 293, 296, 299, 302, 306, 308, 311, 315, + 319, 324, 326, 328, 332, 336, 338, 341, 345, 350, + 356, 363, 371, 380, 390, 394, 396, 400, 404, 408, + 412, 416, 420, 424, 428, 432, 436, 440, 444, 448, + 452, 456, 460, 464, 467, 470, 474, 476, 479, 483, + 487, 492, 494, 496, 500, 504, 506, 509, 513, 518, + 524, 531, 539, 548, 558, 560, 562, 564, 566, 568, + 570 }; -static const short yyrhs[] = { 17, - 34, 0, 18, 36, 0, 19, 38, 0, 1, 0, - 16, 21, 34, 0, 34, 21, 34, 0, 34, 22, - 34, 0, 34, 23, 34, 0, 34, 24, 34, 0, - 34, 25, 34, 0, 34, 26, 34, 0, 34, 28, - 0, 20, 34, 0, 23, 34, 0, 34, 29, 34, - 0, 35, 0, 30, 34, 31, 0, 41, 0, 7, - 0, 7, 30, 31, 0, 8, 30, 34, 31, 0, - 9, 30, 34, 32, 34, 31, 0, 10, 30, 34, - 32, 34, 32, 34, 31, 0, 11, 30, 34, 32, - 34, 32, 34, 32, 34, 31, 0, 12, 30, 34, - 32, 34, 32, 34, 32, 34, 32, 34, 31, 0, - 13, 30, 34, 32, 34, 32, 34, 32, 34, 32, - 34, 32, 34, 31, 0, 14, 30, 34, 32, 34, - 32, 34, 32, 34, 32, 34, 32, 34, 32, 34, - 31, 0, 15, 30, 34, 32, 34, 32, 34, 32, - 34, 32, 34, 32, 34, 32, 34, 32, 34, 31, - 0, 16, 36, 21, 0, 36, 36, 21, 0, 36, - 36, 22, 0, 36, 36, 23, 0, 36, 36, 24, - 0, 36, 36, 25, 0, 36, 36, 26, 0, 36, - 20, 0, 36, 28, 0, 36, 36, 29, 0, 30, - 36, 31, 0, 37, 0, 40, 0, 7, 0, 36, - 8, 0, 36, 36, 9, 0, 36, 36, 36, 10, - 0, 36, 36, 36, 36, 11, 0, 36, 36, 36, - 36, 36, 12, 0, 36, 36, 36, 36, 36, 36, - 13, 0, 36, 36, 36, 36, 36, 36, 36, 14, - 0, 36, 36, 36, 36, 36, 36, 36, 36, 15, - 0, 21, 16, 38, 0, 21, 38, 38, 0, 22, - 38, 38, 0, 23, 38, 38, 0, 24, 38, 38, - 0, 25, 38, 38, 0, 26, 38, 38, 0, 20, - 38, 0, 28, 38, 0, 29, 38, 38, 0, 39, - 0, 30, 38, 31, 0, 40, 0, 7, 0, 8, - 38, 0, 9, 38, 38, 0, 10, 38, 38, 38, - 0, 11, 38, 38, 38, 38, 0, 12, 38, 38, - 38, 38, 38, 0, 13, 38, 38, 38, 38, 38, - 38, 0, 14, 38, 38, 38, 38, 38, 38, 38, - 0, 15, 38, 38, 38, 38, 38, 38, 38, 38, - 0, 41, 0, 42, 0, 3, 0, 5, 0, 4, - 0, 6, 0 +static const short yyrhs[] = { 22, + 51, 0, 23, 55, 0, 24, 60, 0, 1, 0, + 51, 26, 51, 0, 51, 27, 51, 0, 51, 39, + 51, 0, 51, 40, 51, 0, 51, 41, 51, 0, + 51, 42, 51, 0, 51, 43, 51, 0, 51, 28, + 51, 0, 51, 29, 51, 0, 51, 30, 51, 0, + 51, 31, 51, 0, 51, 32, 51, 0, 51, 33, + 51, 0, 51, 34, 51, 0, 51, 37, 51, 0, + 51, 36, 51, 0, 51, 35, 51, 0, 38, 51, + 0, 51, 44, 0, 25, 51, 0, 40, 51, 0, + 51, 45, 51, 0, 54, 0, 65, 53, 0, 19, + 51, 52, 0, 20, 51, 52, 0, 21, 51, 52, + 52, 0, 52, 0, 67, 0, 47, 51, 48, 0, + 17, 51, 18, 0, 7, 0, 8, 47, 51, 48, + 0, 9, 47, 51, 49, 51, 48, 0, 10, 47, + 51, 49, 51, 49, 51, 48, 0, 11, 47, 51, + 49, 51, 49, 51, 49, 51, 48, 0, 12, 47, + 51, 49, 51, 49, 51, 49, 51, 49, 51, 48, + 0, 13, 47, 51, 49, 51, 49, 51, 49, 51, + 49, 51, 49, 51, 48, 0, 14, 47, 51, 49, + 51, 49, 51, 49, 51, 49, 51, 49, 51, 49, + 51, 48, 0, 15, 47, 51, 49, 51, 49, 51, + 49, 51, 49, 51, 49, 51, 49, 51, 49, 51, + 48, 0, 55, 26, 56, 0, 56, 0, 56, 56, + 27, 0, 56, 56, 39, 0, 56, 56, 40, 0, + 56, 56, 41, 0, 56, 56, 42, 0, 56, 56, + 43, 0, 56, 56, 28, 0, 56, 56, 29, 0, + 56, 56, 30, 0, 56, 56, 31, 0, 56, 56, + 32, 0, 56, 56, 33, 0, 56, 56, 34, 0, + 56, 56, 37, 0, 56, 56, 36, 0, 56, 56, + 35, 0, 56, 38, 0, 56, 25, 0, 56, 44, + 0, 56, 56, 45, 0, 59, 0, 65, 58, 0, + 56, 56, 19, 0, 56, 56, 20, 0, 56, 56, + 56, 21, 0, 57, 0, 66, 0, 47, 55, 48, + 0, 17, 55, 18, 0, 7, 0, 56, 8, 0, + 56, 56, 9, 0, 56, 56, 56, 10, 0, 56, + 56, 56, 56, 11, 0, 56, 56, 56, 56, 56, + 12, 0, 56, 56, 56, 56, 56, 56, 13, 0, + 56, 56, 56, 56, 56, 56, 56, 14, 0, 56, + 56, 56, 56, 56, 56, 56, 56, 15, 0, 60, + 26, 61, 0, 61, 0, 27, 61, 61, 0, 39, + 61, 61, 0, 40, 61, 61, 0, 41, 61, 61, + 0, 42, 61, 61, 0, 43, 61, 61, 0, 28, + 61, 61, 0, 29, 61, 61, 0, 30, 61, 61, + 0, 31, 61, 61, 0, 32, 61, 61, 0, 33, + 61, 61, 0, 34, 61, 61, 0, 37, 61, 61, + 0, 36, 61, 61, 0, 35, 61, 61, 0, 38, + 61, 61, 0, 25, 61, 0, 44, 61, 0, 45, + 61, 61, 0, 64, 0, 65, 63, 0, 19, 61, + 62, 0, 20, 61, 62, 0, 21, 61, 62, 62, + 0, 62, 0, 66, 0, 47, 60, 48, 0, 17, + 60, 18, 0, 7, 0, 8, 61, 0, 9, 61, + 61, 0, 10, 61, 61, 61, 0, 11, 61, 61, + 61, 61, 0, 12, 61, 61, 61, 61, 61, 0, + 13, 61, 61, 61, 61, 61, 61, 0, 14, 61, + 61, 61, 61, 61, 61, 61, 0, 15, 61, 61, + 61, 61, 61, 61, 61, 61, 0, 16, 0, 67, + 0, 68, 0, 3, 0, 5, 0, 4, 0, 6, + 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 67, 68, 69, 70, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 89, 91, - 93, 95, 97, 99, 101, 104, 107, 110, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 131, 133, 135, 137, 139, 141, 143, 145, 147, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 166, 168, 170, 172, 174, 176, 178, - 180, 182, 186, 187, 190, 194, 200, 204 + 85, 86, 87, 88, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 119, 120, 123, 126, 129, 131, 133, 135, 137, + 139, 142, 145, 148, 153, 154, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 186, 190, 193, 195, 197, 199, 201, + 203, 205, 207, 209, 213, 214, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 243, 244, 247, 250, 253, 255, 257, 259, 261, + 263, 265, 267, 269, 273, 276, 277, 280, 284, 290, + 294 }; #endif @@ -174,323 +217,544 @@ static const char * const yytname[] = { "$","error","$undefined.","NORMINT", "NEGNORMINT","FLOAT","NEGFLOAT","FUNCID0","FUNCID1","FUNCID2","FUNCID3","FUNCID4", -"FUNCID5","FUNCID6","FUNCID7","FUNCID8","UNKNOWNID","INFIX_EXPR","POSTFIX_EXPR", -"PREFIX_EXPR","NEG","EQUALS","'+'","'-'","'*'","'/'","'%'","UMINUS","'!'","'^'", -"'('","')'","','","expr","inexpr","infunc","poexpr","pofunc","prexpr","prfunc", -"num","posnum","negnum", NULL +"FUNCID5","FUNCID6","FUNCID7","FUNCID8","FUNCDEF","BEGINBLOCK","ENDBLOCK","WHILE_CONS", +"IF_CONS","IFELSE_CONS","INFIX_EXPR","POSTFIX_EXPR","PREFIX_EXPR","NEG","SEPAR", +"EQUALS","EQ_CMP","NE_CMP","CMP_CMP","LT_CMP","GT_CMP","LE_CMP","GE_CMP","LOGICAL_XOR", +"LOGICAL_OR","LOGICAL_AND","LOGICAL_NOT","'+'","'-'","'*'","'/'","'%'","'!'", +"'^'","UMINUS","'('","')'","','","expr","inexpr","inparenth","inblock","infunc", +"poexprlist","poexpr","poparenth","poblock","pofunc","prexprlist","prexpr","prparenth", +"prblock","prfunc","funcdef","num","posnum","negnum", NULL }; #endif static const short yyr1[] = { 0, - 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 40, 40, 41, 41, 42, 42 + 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 52, 53, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 55, 55, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 57, 58, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 60, 60, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 62, 63, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 65, 66, 66, 67, 67, 68, + 68 }; static const short yyr2[] = { 0, 2, 2, 2, 1, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 2, 3, 1, 3, 1, 1, 3, - 4, 6, 8, 10, 12, 14, 16, 18, 3, 3, - 3, 3, 3, 3, 3, 2, 2, 3, 3, 1, - 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, - 1, 3, 1, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 1, 1, 1, 1, 1, 1 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 2, 2, 2, 3, 1, 2, 3, 3, + 4, 1, 1, 3, 3, 1, 4, 6, 8, 10, + 12, 14, 16, 18, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 2, 2, 3, 1, 2, 3, 3, + 4, 1, 1, 3, 3, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 3, 1, 2, 3, 3, + 4, 1, 1, 3, 3, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 1, 1, 1, 1, 1, 1, + 1 }; static const short yydefact[] = { 0, - 4, 0, 0, 0, 75, 76, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 16, 18, 77, 78, 42, 0, 0, 2, 40, 41, - 73, 74, 64, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 128, 129, 36, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 1, 32, 27, 0, 33, 130, 131, + 76, 0, 2, 46, 72, 67, 0, 73, 126, 127, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 86, 112, 107, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 22, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 23, 0, 0, 28, 0, 0, 77, 64, 63, + 65, 0, 0, 68, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 61, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 14, 0, 0, 0, 0, - 0, 0, 0, 12, 0, 0, 0, 43, 36, 37, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 58, - 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 17, 6, 7, 8, 9, 10, 11, 15, 29, 39, - 44, 30, 31, 32, 33, 34, 35, 38, 0, 66, - 0, 0, 0, 0, 0, 0, 51, 52, 53, 54, - 55, 56, 57, 60, 62, 21, 0, 0, 0, 0, - 0, 0, 0, 45, 0, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, - 68, 0, 0, 0, 0, 22, 0, 0, 0, 0, - 0, 0, 47, 0, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 0, 70, 0, 0, 23, - 0, 0, 0, 0, 0, 49, 0, 71, 0, 0, - 0, 0, 0, 0, 50, 72, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 27, 0, 0, - 28, 0, 0, 0 + 0, 0, 0, 105, 0, 0, 0, 0, 108, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, + 34, 5, 6, 12, 13, 14, 15, 16, 17, 18, + 21, 20, 19, 7, 8, 9, 10, 11, 26, 0, + 74, 45, 78, 69, 70, 47, 53, 54, 55, 56, + 57, 58, 59, 62, 61, 60, 48, 49, 50, 51, + 52, 66, 0, 0, 118, 0, 0, 0, 0, 0, + 0, 109, 110, 0, 87, 93, 94, 95, 96, 97, + 98, 99, 102, 101, 100, 103, 88, 89, 90, 91, + 92, 106, 114, 85, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 31, 35, 79, 71, 0, 75, 119, + 0, 0, 0, 0, 0, 111, 115, 0, 0, 0, + 0, 0, 0, 0, 80, 0, 120, 0, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 81, 0, + 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 0, 122, 0, 0, 39, 0, 0, 0, 0, + 0, 83, 0, 123, 0, 0, 0, 0, 0, 0, + 84, 124, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 42, 0, + 0, 0, 0, 43, 0, 0, 44, 0, 0, 0 }; -static const short yydefgoto[] = { 242, - 20, 21, 81, 29, 52, 53, 54, 31, 32 +static const short yydefgoto[] = { 348, + 24, 25, 115, 26, 33, 34, 35, 124, 36, 74, + 75, 76, 159, 77, 78, 79, 39, 40 }; -static const short yypact[] = { 34, --32768, 304, 156, 439,-32768,-32768, -26, -19, -18, -17, - -16, -11, -10, -9, 1, 13, 304, 304, 304, 344, --32768,-32768,-32768,-32768,-32768, 156, 156, 325,-32768,-32768, --32768,-32768,-32768, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 78, 439, 439, 439, 439, 439, 439, 439, - 439,-32768,-32768,-32768, -28, 304, 304, 304, 304, 304, - 304, 304, 304, 304, -27, -27, 959, 304, 304, 304, - 304, 304, 304,-32768, 304, 136, 2,-32768,-32768,-32768, - 20,-32768, 439, 439, 439, 439, 439, 439, 439,-32768, - 439, 439, 439, 439, 439, 439, 439,-32768, 439, 6, --32768, 970, 229, 246, 458, 510, 671, 683, 695, 87, --32768, 87, 159, 159, -27, -27, -27, 9,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 661,-32768, - 439, 439, 439, 439, 439, 439,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 304, 304, 304, 304, - 304, 304, 304,-32768, 633,-32768, 439, 439, 439, 439, - 439, 981, 707, 719, 731, 743, 755, 767,-32768, 605, --32768, 439, 439, 439, 439,-32768, 304, 304, 304, 304, - 304, 304,-32768, 577,-32768, 439, 439, 439, 992, 779, - 791, 803, 815, 827,-32768, 549,-32768, 439, 439,-32768, - 304, 304, 304, 304, 304,-32768, 391,-32768, 439, 1003, - 839, 851, 863, 875,-32768,-32768,-32768, 304, 304, 304, - 304, 1014, 887, 899, 911,-32768, 304, 304, 304, 1025, - 923, 935,-32768, 304, 304, 1036, 947,-32768, 304, 1047, --32768, 39, 47,-32768 +static const short yypact[] = { 109, +-32768, 458, 189, 30,-32768,-32768,-32768, -39, -37, -33, + -21, -20, 0, 1, 5,-32768, 458, 458, 458, 458, + 458, 458, 458, 1917,-32768,-32768, 11,-32768,-32768,-32768, +-32768, 189, 27, 391,-32768,-32768, 37,-32768,-32768,-32768, +-32768, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 50,-32768,-32768,-32768, 39,-32768, 458, + 458, 458, 458, 458, 458, 458, 458, 1895, 1895, 1895, +-32768, 832,-32768, 1688, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458,-32768, 458, 458,-32768, -19, 189,-32768,-32768,-32768, +-32768, 795, 189,-32768,-32768, 30, 30, 30, 30, 30, + 30, 30, 70, 70, 70,-32768, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30,-32768, 30, -17, 30, 30,-32768, 1711, + 506, 1040, 1064, 1088, 1112, 1136, 1160,-32768,-32768, 71, +-32768, 1936, 274, 1955, 1955, 1955, 226, 226, 226, 226, + 858, 858, 832, 47, 47, -32, -32, -32, 78, 1020, +-32768, 391,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 992, -15,-32768, 30, 30, 30, 30, 30, + 30,-32768,-32768, 70,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 96,-32768, 458, 458, 458, 458, + 458, 458, 458,-32768,-32768,-32768,-32768, 947,-32768,-32768, + 30, 30, 30, 30, 30,-32768,-32768, 1734, 1184, 1208, + 1232, 1256, 1280, 1304,-32768, 902,-32768, 30, 30, 30, + 30,-32768, 458, 458, 458, 458, 458, 458,-32768, 744, +-32768, 30, 30, 30, 1757, 1328, 1352, 1376, 1400, 1424, +-32768, 659,-32768, 30, 30,-32768, 458, 458, 458, 458, + 458,-32768, 138,-32768, 30, 1780, 1448, 1472, 1496, 1520, +-32768,-32768,-32768, 458, 458, 458, 458, 1803, 1544, 1568, + 1592,-32768, 458, 458, 458, 1826, 1616, 1640,-32768, 458, + 458, 1849, 1664,-32768, 458, 1872,-32768, 124, 125,-32768 }; static const short yypgoto[] = {-32768, - 61,-32768, 155,-32768, 342,-32768, 168, -2,-32768 + 276, -84,-32768,-32768, -7, 218,-32768,-32768,-32768, -71, + 589, -111,-32768,-32768, -2, 317, 117,-32768 }; -#define YYLAST 1078 +#define YYLAST 2000 -static const short yytable[] = { 22, - 74, 75, 101, 55, 5, 23, 6, 24, 25, 78, - 56, 57, 58, 59, 22, 22, 22, 26, 60, 61, - 62, 79, 5, 23, 6, 24, 25, 78, 121, 80, - 63, 27, 120, 64, 1, 26, 145, 75, 243, 79, - 122, 123, 124, 125, 126, 127, 244, 80, 128, 27, - 2, 3, 4, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 0, 0, 0, 22, 22, 22, 22, 22, - 22, 0, 22, 0, 0, 0, 0, 65, 66, 67, - 5, 23, 6, 24, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 91, 0, 0, 0, 42, 43, 44, - 45, 46, 47, 48, 0, 49, 50, 51, 69, 70, - 71, 72, 73, 0, 74, 75, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 0, 0, 0, 112, 113, - 114, 115, 116, 117, 0, 118, 0, 0, 5, 23, - 6, 24, 25, 78, 22, 22, 22, 22, 22, 22, - 22, 26, 0, 0, 0, 79, 119, 28, 5, 23, - 6, 24, 25, 80, 0, 27, 0, 0, 0, 0, - 30, 26, 0, 0, 22, 22, 22, 22, 22, 22, - 76, 77, 71, 72, 73, 27, 74, 75, 0, 0, - 0, 0, 0, 30, 30, 30, 0, 0, 22, 22, - 22, 22, 22, 0, 0, 0, 0, 162, 163, 164, - 165, 166, 167, 168, 0, 22, 22, 22, 22, 0, - 0, 0, 0, 0, 22, 22, 22, 0, 0, 0, - 0, 22, 22, 0, 0, 129, 22, 189, 190, 191, - 192, 193, 194, 30, 30, 0, 0, 0, 30, 68, - 69, 70, 71, 72, 73, 0, 74, 75, 0, 0, - 147, 210, 211, 212, 213, 214, 68, 69, 70, 71, - 72, 73, 0, 74, 75, 0, 0, 148, 222, 223, - 224, 225, 0, 155, 0, 0, 0, 230, 231, 232, - 0, 0, 0, 0, 236, 237, 30, 0, 0, 240, - 0, 0, 0, 0, 0, 0, 5, 0, 6, 170, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 0, 0, 30, 17, 184, 0, 18, 5, 23, 6, - 24, 25, 78, 19, 0, 0, 0, 30, 196, 0, - 26, 0, 0, 0, 79, 0, 0, 0, 0, 0, - 207, 30, 80, 0, 27, 0, 0, 0, 0, 0, - 0, 207, 0, 30, 68, 69, 70, 71, 72, 73, - 0, 74, 75, 0, 30, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 5, 23, 6, 24, 25, 78, 121, - 154, 169, 183, 195, 206, 215, 26, 0, 0, 0, - 79, 122, 123, 124, 125, 126, 127, 0, 80, 128, - 27, 0, 0, 0, 130, 131, 132, 133, 134, 135, - 136, 0, 137, 138, 139, 140, 141, 142, 143, 0, - 144, 5, 23, 6, 24, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 0, 0, 0, 0, 42, 43, - 44, 45, 46, 47, 48, 0, 49, 50, 51, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 68, 69, - 70, 71, 72, 73, 0, 74, 75, 0, 0, 149, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, - 173, 174, 175, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 186, 187, 188, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, - 68, 69, 70, 71, 72, 73, 0, 74, 75, 208, - 209, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 216, 5, 23, 6, 24, 25, 78, 121, 154, 169, - 183, 195, 206, 0, 26, 0, 0, 0, 79, 122, - 123, 124, 125, 126, 127, 0, 80, 128, 27, 5, - 23, 6, 24, 25, 78, 121, 154, 169, 183, 195, - 0, 0, 26, 0, 0, 0, 79, 122, 123, 124, - 125, 126, 127, 0, 80, 128, 27, 5, 23, 6, - 24, 25, 78, 121, 154, 169, 183, 0, 0, 0, - 26, 0, 0, 0, 79, 122, 123, 124, 125, 126, - 127, 0, 80, 128, 27, 5, 23, 6, 24, 25, - 78, 121, 154, 169, 0, 0, 0, 0, 26, 0, - 0, 0, 79, 122, 123, 124, 125, 126, 127, 0, - 80, 128, 27, 5, 23, 6, 24, 25, 78, 121, - 154, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 79, 122, 123, 124, 125, 126, 127, 0, 80, 128, - 27, 68, 69, 70, 71, 72, 73, 0, 74, 75, - 0, 0, 151, 68, 69, 70, 71, 72, 73, 0, - 74, 75, 0, 0, 152, 68, 69, 70, 71, 72, - 73, 0, 74, 75, 0, 0, 153, 68, 69, 70, - 71, 72, 73, 0, 74, 75, 0, 0, 177, 68, - 69, 70, 71, 72, 73, 0, 74, 75, 0, 0, - 178, 68, 69, 70, 71, 72, 73, 0, 74, 75, - 0, 0, 179, 68, 69, 70, 71, 72, 73, 0, - 74, 75, 0, 0, 180, 68, 69, 70, 71, 72, - 73, 0, 74, 75, 0, 0, 181, 68, 69, 70, - 71, 72, 73, 0, 74, 75, 0, 0, 182, 68, - 69, 70, 71, 72, 73, 0, 74, 75, 0, 0, - 201, 68, 69, 70, 71, 72, 73, 0, 74, 75, - 0, 0, 202, 68, 69, 70, 71, 72, 73, 0, - 74, 75, 0, 0, 203, 68, 69, 70, 71, 72, - 73, 0, 74, 75, 0, 0, 204, 68, 69, 70, - 71, 72, 73, 0, 74, 75, 0, 0, 205, 68, - 69, 70, 71, 72, 73, 0, 74, 75, 0, 0, - 218, 68, 69, 70, 71, 72, 73, 0, 74, 75, - 0, 0, 219, 68, 69, 70, 71, 72, 73, 0, - 74, 75, 0, 0, 220, 68, 69, 70, 71, 72, - 73, 0, 74, 75, 0, 0, 221, 68, 69, 70, - 71, 72, 73, 0, 74, 75, 0, 0, 227, 68, - 69, 70, 71, 72, 73, 0, 74, 75, 0, 0, - 228, 68, 69, 70, 71, 72, 73, 0, 74, 75, - 0, 0, 229, 68, 69, 70, 71, 72, 73, 0, - 74, 75, 0, 0, 234, 68, 69, 70, 71, 72, - 73, 0, 74, 75, 0, 0, 235, 68, 69, 70, - 71, 72, 73, 0, 74, 75, 0, 0, 239, 68, - 69, 70, 71, 72, 73, 0, 74, 75, 0, 111, - 68, 69, 70, 71, 72, 73, 0, 74, 75, 0, - 146, 68, 69, 70, 71, 72, 73, 0, 74, 75, - 0, 176, 68, 69, 70, 71, 72, 73, 0, 74, - 75, 0, 200, 68, 69, 70, 71, 72, 73, 0, - 74, 75, 0, 217, 68, 69, 70, 71, 72, 73, - 0, 74, 75, 0, 226, 68, 69, 70, 71, 72, - 73, 0, 74, 75, 0, 233, 68, 69, 70, 71, - 72, 73, 0, 74, 75, 0, 238, 68, 69, 70, - 71, 72, 73, 0, 74, 75, 0, 241 +static const short yytable[] = { 27, + 37, 156, 259, 168, 169, 170, 117, 80, 157, 81, + 117, 112, 113, 82, 27, 27, 27, 27, 27, 27, + 27, 222, 223, 224, 116, 83, 84, 114, 191, 37, + 243, 37, 5, 29, 6, 30, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 16, 85, 86, 50, 51, + 52, 87, 117, 123, 53, 158, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 157, 73, 27, 27, 27, + 27, 27, 27, 27, 27, 254, 245, 109, 110, 111, + 112, 113, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 1, + 27, 27, 266, 267, 37, 214, 73, 23, 28, 37, + 37, 157, 113, 349, 350, 0, 0, 0, 0, 0, + 2, 3, 4, 28, 28, 28, 28, 28, 28, 28, + 5, 29, 6, 30, 31, 118, 193, 256, 275, 289, + 301, 312, 321, 16, 0, 0, 194, 195, 257, 0, + 0, 0, 119, 0, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 120, 207, 208, 209, 210, + 211, 121, 212, 0, 32, 0, 0, 0, 0, 37, + 0, 5, 29, 6, 30, 31, 28, 28, 28, 28, + 28, 28, 28, 28, 16, 0, 0, 0, 0, 0, + 37, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, + 28, 0, 0, 0, 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, + 27, 122, 96, 0, 0, 37,-32768,-32768,-32768,-32768, + 0, 0, 0, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 37, 0, 0, 0, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 0, 37, 0, 0, + 0, 0, 88, 89, 90, 91, 92, 93, 94, 37, + 96, 0, 0, 0, 27, 27, 27, 27, 27, 0, + 37, 0, 107, 108, 109, 110, 111, 112, 113, 38, + 0, 27, 27, 27, 27, 0, 0, 0, 0, 0, + 27, 27, 27, 0, 192, 0, 0, 27, 27, 213, + 0, 0, 27, 0, 0, 0, 0, 0, 38, 0, + 38, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 28, 28, 28, 28, 28, 28, 28, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, + 0, 0, 0, 5, 29, 6, 30, 31, 118, 28, + 28, 28, 28, 28, 28, 0, 16, 0, 0, 122, + 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, + 0, 0, 0, 28, 28, 28, 28, 28, 120, 0, + 258, 0, 0, 38, 121, 0, 0, 32, 38, 38, + 28, 28, 28, 28, 0, 0, 0, 0, 0, 28, + 28, 28, 0, 0, 0, 0, 28, 28, 0, 0, + 5, 28, 6, 0, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 0, 276, 17, 18, 19, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 290, 0, 21, 0, 22, 0, 0, + 0, 0, 0, 0, 23, 0, 0, 302, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 268, 269, 270, 271, 272, 273, 274, 38, + 313, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 247, 0, 0, 0, 295, 296, + 297, 298, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, + 0, 0, 316, 317, 318, 319, 320, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 0, 0, 0, 328, + 329, 330, 331, 0, 0, 0, 38, 0, 336, 337, + 338, 0, 0, 0, 0, 342, 343, 0, 38, 0, + 346, 0, 0, 0, 0, 0, 0, 0, 0, 38, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 5, 29, 6, 30, 31, 118, 193, 256, 275, + 289, 301, 312, 0, 16, 0, 0, 194, 195, 257, + 0, 0, 0, 119, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 120, 207, 208, 209, + 210, 211, 121, 212, 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 215, 216, 217, 218, 219, 220, + 221, 0, 0, 0, 0, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 0, 242, 0, 244, 5, 29, 6, 30, + 31, 118, 193, 256, 275, 289, 301, 0, 0, 16, + 0, 0, 194, 195, 257, 0, 0, 0, 119, 0, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 120, 207, 208, 209, 210, 211, 121, 212, 0, + 32, 0, 0, 0, 0, 0, 0, 5, 29, 6, + 30, 31, 118, 193, 260, 261, 262, 263, 264, 265, + 16, 0, 0, 194, 195, 0, 0, 0, 0, 119, + 0, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 120, 207, 208, 209, 210, 211, 121, 212, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 277, + 278, 279, 280, 281, 0, 0, 0, 0, 96, 97, + 98, 99, 100, 101, 102, 103, 291, 292, 293, 294, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, + 303, 304, 305, 0, 96, 97, 98, 99, 100, 101, + 102, 103, 314, 315, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 322, 5, 29, 6, 30, 31, 118, + 193, 256, 275, 289, 0, 0, 0, 16, 0, 0, + 194, 195, 257, 0, 0, 0, 119, 0, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 120, + 207, 208, 209, 210, 211, 121, 212, 0, 32, 5, + 29, 6, 30, 31, 118, 193, 256, 275, 0, 0, + 0, 0, 16, 0, 0, 194, 195, 257, 0, 0, + 0, 119, 0, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 120, 207, 208, 209, 210, 211, + 121, 212, 0, 32, 5, 29, 6, 30, 31, 118, + 193, 256, 0, 0, 0, 0, 0, 16, 0, 0, + 194, 195, 257, 0, 0, 0, 119, 0, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 120, + 207, 208, 209, 210, 211, 121, 212, 255, 32, 0, + 0, 0, 0, 0, 0, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 0, 0, 0, 248, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 0, 0, 249, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 0, 0, 0, 250, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, + 251, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 252, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 0, 0, 0, 253, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 0, 0, 283, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 0, 0, 0, 284, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, + 285, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 286, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 0, 0, 0, 287, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 0, 0, 288, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 0, 0, 0, 307, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, + 308, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 309, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 0, 0, 0, 310, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 0, 0, 311, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 0, 0, 0, 324, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, + 325, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 326, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 0, 0, 0, 327, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 0, 0, 333, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 0, 0, 0, 334, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, + 335, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 340, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 0, 0, 0, 341, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 0, 0, 345, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 0, 0, 171, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 0, 107, + 108, 109, 110, 111, 112, 113, 0, 0, 246, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 0, 282, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, + 112, 113, 0, 0, 306, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 0, 0, 323, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 0, 0, + 332, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 339, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 0, 107, 108, 109, + 110, 111, 112, 113, 0, 0, 344, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 347, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, + 0, 23, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, + 112, 113, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 96,-32768,-32768,-32768, 100, 101, 102, 103, 0, + 0, 0, 0, 107, 108, 109, 110, 111, 112, 113 }; static const short yycheck[] = { 2, - 28, 29, 31, 30, 3, 4, 5, 6, 7, 8, - 30, 30, 30, 30, 17, 18, 19, 16, 30, 30, - 30, 20, 3, 4, 5, 6, 7, 8, 9, 28, - 30, 30, 31, 21, 1, 16, 31, 29, 0, 20, - 21, 22, 23, 24, 25, 26, 0, 28, 29, 30, - 17, 18, 19, 56, 57, 58, 59, 60, 61, 62, - 63, 64, -1, -1, -1, 68, 69, 70, 71, 72, - 73, -1, 75, -1, -1, -1, -1, 17, 18, 19, + 3, 73, 18, 88, 89, 90, 26, 47, 26, 47, + 26, 44, 45, 47, 17, 18, 19, 20, 21, 22, + 23, 133, 134, 135, 32, 47, 47, 17, 48, 32, + 48, 34, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 47, 47, 19, 20, + 21, 47, 26, 17, 25, 17, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 26, 47, 80, 81, 82, + 83, 84, 85, 86, 87, 170, 158, 41, 42, 43, + 44, 45, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 1, + 113, 114, 224, 18, 117, 123, 47, 47, 2, 122, + 123, 26, 45, 0, 0, -1, -1, -1, -1, -1, + 22, 23, 24, 17, 18, 19, 20, 21, 22, 23, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, -1, -1, -1, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, 22, 23, - 24, 25, 26, -1, 28, 29, 56, 57, 58, 59, - 60, 61, 62, 63, 64, -1, -1, -1, 68, 69, - 70, 71, 72, 73, -1, 75, -1, -1, 3, 4, - 5, 6, 7, 8, 147, 148, 149, 150, 151, 152, - 153, 16, -1, -1, -1, 20, 21, 3, 3, 4, - 5, 6, 7, 28, -1, 30, -1, -1, -1, -1, - 3, 16, -1, -1, 177, 178, 179, 180, 181, 182, - 26, 27, 24, 25, 26, 30, 28, 29, -1, -1, - -1, -1, -1, 26, 27, 28, -1, -1, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 147, 148, 149, - 150, 151, 152, 153, -1, 218, 219, 220, 221, -1, - -1, -1, -1, -1, 227, 228, 229, -1, -1, -1, - -1, 234, 235, -1, -1, 81, 239, 177, 178, 179, - 180, 181, 182, 76, 77, -1, -1, -1, 81, 21, - 22, 23, 24, 25, 26, -1, 28, 29, -1, -1, - 32, 201, 202, 203, 204, 205, 21, 22, 23, 24, - 25, 26, -1, 28, 29, -1, -1, 32, 218, 219, - 220, 221, -1, 129, -1, -1, -1, 227, 228, 229, - -1, -1, -1, -1, 234, 235, 129, -1, -1, 239, - -1, -1, -1, -1, -1, -1, 3, -1, 5, 155, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - -1, -1, 155, 20, 170, -1, 23, 3, 4, 5, - 6, 7, 8, 30, -1, -1, -1, 170, 184, -1, - 16, -1, -1, -1, 20, -1, -1, -1, -1, -1, - 196, 184, 28, -1, 30, -1, -1, -1, -1, -1, - -1, 207, -1, 196, 21, 22, 23, 24, 25, 26, - -1, 28, 29, -1, 207, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, -1, -1, -1, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, -1, -1, 83, 84, 85, 86, 87, 88, - 89, -1, 91, 92, 93, 94, 95, 96, 97, -1, - 99, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, -1, -1, -1, -1, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, - -1, -1, 131, 132, 133, 134, 135, 136, 21, 22, - 23, 24, 25, 26, -1, 28, 29, -1, -1, 32, - -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, - 159, 160, 161, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 172, 173, 174, 175, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 186, 187, 188, - 21, 22, 23, 24, 25, 26, -1, 28, 29, 198, - 199, 32, -1, -1, -1, -1, -1, -1, -1, -1, - 209, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, -1, 16, -1, -1, -1, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - -1, -1, 16, -1, -1, -1, 20, 21, 22, 23, - 24, 25, 26, -1, 28, 29, 30, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, -1, 28, 29, 30, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, -1, 16, -1, - -1, -1, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, 16, -1, -1, -1, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, -1, 32, 21, 22, 23, 24, 25, 26, -1, - 28, 29, -1, -1, 32, 21, 22, 23, 24, 25, - 26, -1, 28, 29, -1, -1, 32, 21, 22, 23, - 24, 25, 26, -1, 28, 29, -1, -1, 32, 21, - 22, 23, 24, 25, 26, -1, 28, 29, -1, -1, - 32, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, -1, 32, 21, 22, 23, 24, 25, 26, -1, - 28, 29, -1, -1, 32, 21, 22, 23, 24, 25, - 26, -1, 28, 29, -1, -1, 32, 21, 22, 23, - 24, 25, 26, -1, 28, 29, -1, -1, 32, 21, - 22, 23, 24, 25, 26, -1, 28, 29, -1, -1, - 32, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, -1, 32, 21, 22, 23, 24, 25, 26, -1, - 28, 29, -1, -1, 32, 21, 22, 23, 24, 25, - 26, -1, 28, 29, -1, -1, 32, 21, 22, 23, - 24, 25, 26, -1, 28, 29, -1, -1, 32, 21, - 22, 23, 24, 25, 26, -1, 28, 29, -1, -1, - 32, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, -1, 32, 21, 22, 23, 24, 25, 26, -1, - 28, 29, -1, -1, 32, 21, 22, 23, 24, 25, - 26, -1, 28, 29, -1, -1, 32, 21, 22, 23, - 24, 25, 26, -1, 28, 29, -1, -1, 32, 21, - 22, 23, 24, 25, 26, -1, 28, 29, -1, -1, - 32, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, -1, 32, 21, 22, 23, 24, 25, 26, -1, - 28, 29, -1, -1, 32, 21, 22, 23, 24, 25, - 26, -1, 28, 29, -1, -1, 32, 21, 22, 23, - 24, 25, 26, -1, 28, 29, -1, -1, 32, 21, - 22, 23, 24, 25, 26, -1, 28, 29, -1, 31, - 21, 22, 23, 24, 25, 26, -1, 28, 29, -1, - 31, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, 31, 21, 22, 23, 24, 25, 26, -1, 28, - 29, -1, 31, 21, 22, 23, 24, 25, 26, -1, - 28, 29, -1, 31, 21, 22, 23, 24, 25, 26, - -1, 28, 29, -1, 31, 21, 22, 23, 24, 25, - 26, -1, 28, 29, -1, 31, 21, 22, 23, 24, - 25, 26, -1, 28, 29, -1, 31, 21, 22, 23, - 24, 25, 26, -1, 28, 29, -1, 31 + 13, 14, 15, 16, -1, -1, 19, 20, 21, -1, + -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, -1, 47, -1, -1, -1, -1, 192, + -1, 3, 4, 5, 6, 7, 80, 81, 82, 83, + 84, 85, 86, 87, 16, -1, -1, -1, -1, -1, + 213, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, + 114, -1, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 247, 248, 249, 250, 251, 252, + 253, 34, 27, -1, -1, 258, 31, 32, 33, 34, + -1, -1, -1, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 276, -1, -1, -1, -1, -1, -1, + 283, 284, 285, 286, 287, 288, -1, 290, -1, -1, + -1, -1, 17, 18, 19, 20, 21, 22, 23, 302, + 27, -1, -1, -1, 307, 308, 309, 310, 311, -1, + 313, -1, 39, 40, 41, 42, 43, 44, 45, 3, + -1, 324, 325, 326, 327, -1, -1, -1, -1, -1, + 333, 334, 335, -1, 117, -1, -1, 340, 341, 122, + -1, -1, 345, -1, -1, -1, -1, -1, 32, -1, + 34, -1, -1, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 247, 248, 249, 250, 251, 252, 253, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, -1, 113, 114, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 283, + 284, 285, 286, 287, 288, -1, 16, -1, -1, 192, + -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, + -1, -1, -1, 307, 308, 309, 310, 311, 38, -1, + 213, -1, -1, 117, 44, -1, -1, 47, 122, 123, + 324, 325, 326, 327, -1, -1, -1, -1, -1, 333, + 334, 335, -1, -1, -1, -1, 340, 341, -1, -1, + 3, 345, 5, -1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, -1, 258, 19, 20, 21, -1, + -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 276, -1, 38, -1, 40, -1, -1, + -1, -1, -1, -1, 47, -1, -1, 290, 192, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 302, + -1, -1, 247, 248, 249, 250, 251, 252, 253, 213, + 313, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, -1, 49, -1, -1, -1, 283, 284, + 285, 286, 287, 288, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 258, -1, -1, -1, -1, -1, + -1, -1, 307, 308, 309, 310, 311, -1, -1, -1, + -1, -1, 276, -1, -1, -1, -1, -1, -1, 324, + 325, 326, 327, -1, -1, -1, 290, -1, 333, 334, + 335, -1, -1, -1, -1, 340, 341, -1, 302, -1, + 345, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, -1, 16, -1, -1, 19, 20, 21, + -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 126, 127, 128, 129, 130, 131, + 132, -1, -1, -1, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, -1, -1, 16, + -1, -1, 19, 20, 21, -1, -1, -1, 25, -1, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, + 47, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 216, 217, 218, 219, 220, 221, + 16, -1, -1, 19, 20, -1, -1, -1, -1, 25, + -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + -1, 47, -1, -1, -1, -1, -1, -1, -1, 261, + 262, 263, 264, 265, -1, -1, -1, -1, 27, 28, + 29, 30, 31, 32, 33, 34, 278, 279, 280, 281, + 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, + 292, 293, 294, -1, 27, 28, 29, 30, 31, 32, + 33, 34, 304, 305, 37, -1, 39, 40, 41, 42, + 43, 44, 45, 315, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, -1, -1, -1, 16, -1, -1, + 19, 20, 21, -1, -1, -1, 25, -1, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, -1, 47, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, 16, -1, -1, 19, 20, 21, -1, -1, + -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, -1, 47, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, 16, -1, -1, + 19, 20, 21, -1, -1, -1, 25, -1, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 18, 47, -1, + -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, -1, -1, -1, 49, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, + 49, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, -1, 49, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, -1, -1, -1, 49, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, + 49, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, -1, 49, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, -1, -1, -1, 49, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, + 49, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, -1, 49, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, -1, -1, -1, 49, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, + 49, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, -1, 49, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, -1, -1, -1, 49, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, + 49, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, -1, 49, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, -1, -1, 48, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, 48, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, + 48, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, + -1, 47, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, 27, 28, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, 39, 40, 41, 42, 43, 44, 45 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" @@ -991,283 +1255,463 @@ switch (yyn) { case 4: -#line 70 "parse.y" +#line 88 "parse.y" { yyclearin; ; break;} case 5: -#line 73 "parse.y" -{ ADD_USERFUNC(yyvsp[-2].id,0); ; +#line 91 "parse.y" +{ PUSH_ACT(E_SEPAR); ; break;} case 6: -#line 74 "parse.y" -{ PUSH_FUNC(E_EQUALS); ; +#line 92 "parse.y" +{ PUSH_ACT(E_EQUALS); ; break;} case 7: -#line 75 "parse.y" -{ PUSH_FUNC(E_PLUS); ; +#line 93 "parse.y" +{ PUSH_ACT(E_PLUS); ; break;} case 8: -#line 76 "parse.y" -{ PUSH_FUNC(E_MINUS); ; +#line 94 "parse.y" +{ PUSH_ACT(E_MINUS); ; break;} case 9: -#line 77 "parse.y" -{ PUSH_FUNC(E_MUL); ; +#line 95 "parse.y" +{ PUSH_ACT(E_MUL); ; break;} case 10: -#line 78 "parse.y" -{ PUSH_FUNC(E_DIV); ; +#line 96 "parse.y" +{ PUSH_ACT(E_DIV); ; break;} case 11: -#line 79 "parse.y" -{ PUSH_FUNC(E_MOD); ; +#line 97 "parse.y" +{ PUSH_ACT(E_MOD); ; break;} case 12: -#line 80 "parse.y" -{ PUSH_FUNC(E_FACT); ; +#line 98 "parse.y" +{ PUSH_ACT(E_EQ_CMP); ; break;} case 13: -#line 81 "parse.y" -{ PUSH_FUNC(E_NEG); ; +#line 99 "parse.y" +{ PUSH_ACT(E_NE_CMP); ; break;} case 14: -#line 82 "parse.y" -{ PUSH_FUNC(E_NEG); ; +#line 100 "parse.y" +{ PUSH_ACT(E_CMP_CMP); ; break;} case 15: -#line 83 "parse.y" -{ PUSH_FUNC(E_EXP); ; +#line 101 "parse.y" +{ PUSH_ACT(E_LT_CMP); ; break;} case 16: -#line 84 "parse.y" -{ PUSH_DFUNC(yyvsp[0].func); ; +#line 102 "parse.y" +{ PUSH_ACT(E_GT_CMP); ; + break;} +case 17: +#line 103 "parse.y" +{ PUSH_ACT(E_LE_CMP); ; + break;} +case 18: +#line 104 "parse.y" +{ PUSH_ACT(E_GE_CMP); ; break;} case 19: -#line 90 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 105 "parse.y" +{ PUSH_ACT(E_LOGICAL_AND); ; break;} case 20: -#line 92 "parse.y" -{ yyval.func = yyvsp[-2].func ; +#line 106 "parse.y" +{ PUSH_ACT(E_LOGICAL_OR); ; break;} case 21: -#line 94 "parse.y" -{ yyval.func = yyvsp[-3].func ; +#line 107 "parse.y" +{ PUSH_ACT(E_LOGICAL_XOR); ; break;} case 22: -#line 96 "parse.y" -{ yyval.func = yyvsp[-5].func ; +#line 108 "parse.y" +{ PUSH_ACT(E_LOGICAL_NOT); ; break;} case 23: -#line 98 "parse.y" -{ yyval.func = yyvsp[-7].func ; +#line 109 "parse.y" +{ PUSH_ACT(E_FACT); ; break;} case 24: -#line 100 "parse.y" -{ yyval.func = yyvsp[-9].func ; +#line 110 "parse.y" +{ PUSH_ACT(E_NEG); ; break;} case 25: -#line 103 "parse.y" -{ yyval.func = yyvsp[-11].func ; +#line 111 "parse.y" +{ PUSH_ACT(E_NEG); ; break;} case 26: -#line 106 "parse.y" -{ yyval.func = yyvsp[-13].func ; +#line 112 "parse.y" +{ PUSH_ACT(E_EXP); ; break;} case 27: -#line 109 "parse.y" -{ yyval.func = yyvsp[-15].func ; +#line 113 "parse.y" +{ PUSH_FUNC(yyvsp[0].func); ; break;} case 28: -#line 112 "parse.y" -{ yyval.func = yyvsp[-17].func ; +#line 114 "parse.y" +{ PUSH_ACT(E_FUNCDEF); ; break;} case 29: -#line 116 "parse.y" -{ ADD_USERFUNC(yyvsp[-2].id,0); ; +#line 115 "parse.y" +{ PUSH_ACT(E_WHILE_CONS); ; break;} case 30: -#line 117 "parse.y" -{ PUSH_FUNC(E_EQUALS); ; +#line 116 "parse.y" +{ PUSH_ACT(E_IF_CONS); ; break;} case 31: #line 118 "parse.y" -{ PUSH_FUNC(E_PLUS); ; - break;} -case 32: -#line 119 "parse.y" -{ PUSH_FUNC(E_MINUS); ; - break;} -case 33: -#line 120 "parse.y" -{ PUSH_FUNC(E_MUL); ; - break;} -case 34: -#line 121 "parse.y" -{ PUSH_FUNC(E_DIV); ; - break;} -case 35: -#line 122 "parse.y" -{ PUSH_FUNC(E_MOD); ; +{ PUSH_ACT(E_IFELSE_CONS); ; break;} case 36: -#line 123 "parse.y" -{ PUSH_FUNC(E_NEG); ; +#line 130 "parse.y" +{ yyval.func = yyvsp[0].func ; break;} case 37: -#line 124 "parse.y" -{ PUSH_FUNC(E_FACT); ; +#line 132 "parse.y" +{ yyval.func = yyvsp[-3].func ; break;} case 38: -#line 125 "parse.y" -{ PUSH_FUNC(E_EXP); ; +#line 134 "parse.y" +{ yyval.func = yyvsp[-5].func ; + break;} +case 39: +#line 136 "parse.y" +{ yyval.func = yyvsp[-7].func ; break;} case 40: -#line 127 "parse.y" -{ PUSH_DFUNC(yyvsp[0].func); ; +#line 138 "parse.y" +{ yyval.func = yyvsp[-9].func ; + break;} +case 41: +#line 141 "parse.y" +{ yyval.func = yyvsp[-11].func ; break;} case 42: -#line 132 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 144 "parse.y" +{ yyval.func = yyvsp[-13].func ; break;} case 43: -#line 134 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 147 "parse.y" +{ yyval.func = yyvsp[-15].func ; break;} case 44: -#line 136 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 150 "parse.y" +{ yyval.func = yyvsp[-17].func ; break;} case 45: -#line 138 "parse.y" -{ yyval.func = yyvsp[0].func ; - break;} -case 46: -#line 140 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 153 "parse.y" +{ PUSH_ACT(E_SEPAR); ; break;} case 47: -#line 142 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 157 "parse.y" +{ PUSH_ACT(E_EQUALS); ; break;} case 48: -#line 144 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 158 "parse.y" +{ PUSH_ACT(E_PLUS); ; break;} case 49: -#line 146 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 159 "parse.y" +{ PUSH_ACT(E_MINUS); ; break;} case 50: -#line 148 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 160 "parse.y" +{ PUSH_ACT(E_MUL); ; break;} case 51: -#line 151 "parse.y" -{ ADD_USERFUNC(yyvsp[-1].id,0); ; +#line 161 "parse.y" +{ PUSH_ACT(E_DIV); ; break;} case 52: -#line 152 "parse.y" -{ PUSH_FUNC(E_EQUALS); ; +#line 162 "parse.y" +{ PUSH_ACT(E_MOD); ; break;} case 53: -#line 153 "parse.y" -{ PUSH_FUNC(E_PLUS); ; +#line 163 "parse.y" +{ PUSH_ACT(E_EQ_CMP); ; break;} case 54: -#line 154 "parse.y" -{ PUSH_FUNC(E_MINUS); ; +#line 164 "parse.y" +{ PUSH_ACT(E_NE_CMP); ; break;} case 55: -#line 155 "parse.y" -{ PUSH_FUNC(E_MUL); ; +#line 165 "parse.y" +{ PUSH_ACT(E_CMP_CMP); ; break;} case 56: -#line 156 "parse.y" -{ PUSH_FUNC(E_DIV); ; +#line 166 "parse.y" +{ PUSH_ACT(E_LT_CMP); ; break;} case 57: -#line 157 "parse.y" -{ PUSH_FUNC(E_MOD); ; +#line 167 "parse.y" +{ PUSH_ACT(E_GT_CMP); ; break;} case 58: -#line 158 "parse.y" -{ PUSH_FUNC(E_NEG); ; +#line 168 "parse.y" +{ PUSH_ACT(E_LE_CMP); ; break;} case 59: -#line 159 "parse.y" -{ PUSH_FUNC(E_FACT); ; +#line 169 "parse.y" +{ PUSH_ACT(E_GE_CMP); ; break;} case 60: -#line 160 "parse.y" -{ PUSH_FUNC(E_EXP); ; +#line 170 "parse.y" +{ PUSH_ACT(E_LOGICAL_AND); ; break;} case 61: -#line 161 "parse.y" -{ PUSH_DFUNC(yyvsp[0].func); ; +#line 171 "parse.y" +{ PUSH_ACT(E_LOGICAL_OR); ; + break;} +case 62: +#line 172 "parse.y" +{ PUSH_ACT(E_LOGICAL_XOR); ; + break;} +case 63: +#line 173 "parse.y" +{ PUSH_ACT(E_LOGICAL_NOT); ; break;} case 64: -#line 167 "parse.y" -{ yyval.func = yyvsp[0].func ; +#line 174 "parse.y" +{ PUSH_ACT(E_NEG); ; break;} case 65: -#line 169 "parse.y" -{ yyval.func = yyvsp[-1].func ; +#line 175 "parse.y" +{ PUSH_ACT(E_FACT); ; break;} case 66: -#line 171 "parse.y" -{ yyval.func = yyvsp[-2].func ; +#line 176 "parse.y" +{ PUSH_ACT(E_EXP); ; break;} case 67: -#line 173 "parse.y" -{ yyval.func = yyvsp[-3].func ; +#line 177 "parse.y" +{ PUSH_FUNC(yyvsp[0].func); ; break;} case 68: -#line 175 "parse.y" -{ yyval.func = yyvsp[-4].func ; +#line 178 "parse.y" +{ PUSH_ACT(E_FUNCDEF); ; break;} case 69: -#line 177 "parse.y" -{ yyval.func = yyvsp[-5].func ; +#line 179 "parse.y" +{ PUSH_ACT(E_WHILE_CONS); ; break;} case 70: -#line 179 "parse.y" -{ yyval.func = yyvsp[-6].func ; +#line 180 "parse.y" +{ PUSH_ACT(E_IF_CONS); ; break;} case 71: #line 181 "parse.y" +{ PUSH_ACT(E_IFELSE_CONS); ; + break;} +case 76: +#line 194 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 77: +#line 196 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 78: +#line 198 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 79: +#line 200 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 80: +#line 202 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 81: +#line 204 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 82: +#line 206 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 83: +#line 208 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 84: +#line 210 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 85: +#line 213 "parse.y" +{ PUSH_ACT(E_SEPAR); ; + break;} +case 87: +#line 217 "parse.y" +{ PUSH_ACT(E_EQUALS); ; + break;} +case 88: +#line 218 "parse.y" +{ PUSH_ACT(E_PLUS); ; + break;} +case 89: +#line 219 "parse.y" +{ PUSH_ACT(E_MINUS); ; + break;} +case 90: +#line 220 "parse.y" +{ PUSH_ACT(E_MUL); ; + break;} +case 91: +#line 221 "parse.y" +{ PUSH_ACT(E_DIV); ; + break;} +case 92: +#line 222 "parse.y" +{ PUSH_ACT(E_MOD); ; + break;} +case 93: +#line 223 "parse.y" +{ PUSH_ACT(E_EQ_CMP); ; + break;} +case 94: +#line 224 "parse.y" +{ PUSH_ACT(E_NE_CMP); ; + break;} +case 95: +#line 225 "parse.y" +{ PUSH_ACT(E_CMP_CMP); ; + break;} +case 96: +#line 226 "parse.y" +{ PUSH_ACT(E_LT_CMP); ; + break;} +case 97: +#line 227 "parse.y" +{ PUSH_ACT(E_GT_CMP); ; + break;} +case 98: +#line 228 "parse.y" +{ PUSH_ACT(E_LE_CMP); ; + break;} +case 99: +#line 229 "parse.y" +{ PUSH_ACT(E_GE_CMP); ; + break;} +case 100: +#line 230 "parse.y" +{ PUSH_ACT(E_LOGICAL_AND); ; + break;} +case 101: +#line 231 "parse.y" +{ PUSH_ACT(E_LOGICAL_OR); ; + break;} +case 102: +#line 232 "parse.y" +{ PUSH_ACT(E_LOGICAL_XOR); ; + break;} +case 103: +#line 233 "parse.y" +{ PUSH_ACT(E_LOGICAL_NOT); ; + break;} +case 104: +#line 234 "parse.y" +{ PUSH_ACT(E_NEG); ; + break;} +case 105: +#line 235 "parse.y" +{ PUSH_ACT(E_FACT); ; + break;} +case 106: +#line 236 "parse.y" +{ PUSH_ACT(E_EXP); ; + break;} +case 107: +#line 237 "parse.y" +{ PUSH_FUNC(yyvsp[0].func); ; + break;} +case 108: +#line 238 "parse.y" +{ PUSH_ACT(E_FUNCDEF); ; + break;} +case 109: +#line 239 "parse.y" +{ PUSH_ACT(E_WHILE_CONS); ; + break;} +case 110: +#line 240 "parse.y" +{ PUSH_ACT(E_IF_CONS); ; + break;} +case 111: +#line 242 "parse.y" +{ PUSH_ACT(E_IFELSE_CONS); ; + break;} +case 116: +#line 254 "parse.y" +{ yyval.func = yyvsp[0].func ; + break;} +case 117: +#line 256 "parse.y" +{ yyval.func = yyvsp[-1].func ; + break;} +case 118: +#line 258 "parse.y" +{ yyval.func = yyvsp[-2].func ; + break;} +case 119: +#line 260 "parse.y" +{ yyval.func = yyvsp[-3].func ; + break;} +case 120: +#line 262 "parse.y" +{ yyval.func = yyvsp[-4].func ; + break;} +case 121: +#line 264 "parse.y" +{ yyval.func = yyvsp[-5].func ; + break;} +case 122: +#line 266 "parse.y" +{ yyval.func = yyvsp[-6].func ; + break;} +case 123: +#line 268 "parse.y" { yyval.func = yyvsp[-7].func ; break;} -case 72: -#line 183 "parse.y" +case 124: +#line 270 "parse.y" { yyval.func = yyvsp[-8].func ; break;} -case 75: -#line 190 "parse.y" +case 125: +#line 273 "parse.y" +{ PUSH_FAKEFUNC(yyvsp[0].func); ; + break;} +case 128: +#line 280 "parse.y" { - t_push(makenum_z(yyvsp[0].ival),&evalstack); - mpz_clear(yyvsp[0].ival); + t_push(makenum(yyvsp[0].val),&evalstack); + mpw_clear(yyvsp[0].val); ; break;} -case 76: -#line 194 "parse.y" +case 129: +#line 284 "parse.y" { - t_push(makenum_f(yyvsp[0].fval),&evalstack); - mpf_clear(yyvsp[0].fval); + t_push(makenum(yyvsp[0].val),&evalstack); + mpw_clear(yyvsp[0].val); ; break;} -case 77: -#line 200 "parse.y" +case 130: +#line 290 "parse.y" { - t_push(makenum_z(yyvsp[0].ival),&evalstack); - mpz_clear(yyvsp[0].ival); + t_push(makenum(yyvsp[0].val),&evalstack); + mpw_clear(yyvsp[0].val); ; break;} -case 78: -#line 204 "parse.y" +case 131: +#line 294 "parse.y" { - t_push(makenum_f(yyvsp[0].fval),&evalstack); - mpf_clear(yyvsp[0].fval); + t_push(makenum(yyvsp[0].val),&evalstack); + mpw_clear(yyvsp[0].val); ; break;} } @@ -1468,5 +1912,5 @@ yystate = yyn; goto yynewstate; } -#line 210 "parse.y" +#line 300 "parse.y" diff -uNr gnome-0.11/programs/genius/parse.h gnome-0.12/programs/genius/parse.h --- gnome-0.11/programs/genius/parse.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/genius/parse.h Wed Jan 14 21:04:50 1998 @@ -0,0 +1,45 @@ +typedef union { + mpw_t val; + func_t *func; + char *id; +} YYSTYPE; +#define NORMINT 258 +#define NEGNORMINT 259 +#define FLOAT 260 +#define NEGFLOAT 261 +#define FUNCID0 262 +#define FUNCID1 263 +#define FUNCID2 264 +#define FUNCID3 265 +#define FUNCID4 266 +#define FUNCID5 267 +#define FUNCID6 268 +#define FUNCID7 269 +#define FUNCID8 270 +#define FUNCDEF 271 +#define BEGINBLOCK 272 +#define ENDBLOCK 273 +#define WHILE_CONS 274 +#define IF_CONS 275 +#define IFELSE_CONS 276 +#define INFIX_EXPR 277 +#define POSTFIX_EXPR 278 +#define PREFIX_EXPR 279 +#define NEG 280 +#define SEPAR 281 +#define EQUALS 282 +#define EQ_CMP 283 +#define NE_CMP 284 +#define CMP_CMP 285 +#define LT_CMP 286 +#define GT_CMP 287 +#define LE_CMP 288 +#define GE_CMP 289 +#define LOGICAL_XOR 290 +#define LOGICAL_OR 291 +#define LOGICAL_AND 292 +#define LOGICAL_NOT 293 +#define UMINUS 294 + + +extern YYSTYPE yylval; diff -uNr gnome-0.11/programs/genius/parse.y gnome-0.12/programs/genius/parse.y --- gnome-0.11/programs/genius/parse.y Tue Jan 6 22:13:43 1998 +++ gnome-0.12/programs/genius/parse.y Wed Jan 14 12:26:21 1998 @@ -17,79 +17,117 @@ */ %{ -#include #include +#include "mpwrap.h" #include "eval.h" #include "dict.h" extern evalstack_t evalstack; -#define PUSH_FUNC(ACT) t_push(makefuncb(ACT,&evalstack),&evalstack); -#define PUSH_DFUNC(FUNC) t_push(makefuncd(FUNC,&evalstack),&evalstack); -#define ADD_USERFUNC(ID,ARGS) \ - { \ - tree_t *n; \ - n=t_pop(&evalstack); \ - d_addfunc(d_makeufunc(ID,n,ARGS)); \ - t_push(copynode(n),&evalstack); \ - g_free(ID); \ - } +#define PUSH_ACT(ACT) t_push(makefuncb(ACT,&evalstack),&evalstack); +#define PUSH_FUNC(FUNC) t_push(makefuncd(FUNC,&evalstack),&evalstack); +#define PUSH_FAKEFUNC(FUNC) t_push(makefuncd0(FUNC),&evalstack); %} %union { - mpz_t ival; - mpf_t fval; + mpw_t val; func_t *func; char *id; } -%token NORMINT NEGNORMINT -%token FLOAT NEGFLOAT +%token NORMINT NEGNORMINT +%token FLOAT NEGFLOAT /* functions have to have the number fo arguments figured out at parse time ... how would I put the type in here without bison barfing ... */ %token FUNCID0 FUNCID1 FUNCID2 FUNCID3 FUNCID4 %token FUNCID5 FUNCID6 FUNCID7 FUNCID8 -%token UNKNOWNID +%token FUNCDEF + +%token BEGINBLOCK ENDBLOCK + +%token WHILE_CONS IF_CONS IFELSE_CONS %token INFIX_EXPR POSTFIX_EXPR PREFIX_EXPR NEG -%left EQUALS +%token SEPAR EQUALS + +%token EQ_CMP NE_CMP CMP_CMP LT_CMP GT_CMP LE_CMP GE_CMP + +%token LOGICAL_XOR LOGICAL_OR LOGICAL_AND LOGICAL_NOT + + + +%left SEPAR + +%nonassoc WHILE_CONS IF_CONS IFELSE_CONS + +%left LOGICAL_XOR LOGICAL_OR +%left LOGICAL_AND +%right LOGICAL_NOT + +%nonassoc EQ_CMP NE_CMP CMP_CMP +%nonassoc LT_CMP GT_CMP LE_CMP GE_CMP + +%right EQUALS %left '+' '-' %left '*' '/' '%' -%right NEG UMINUS '!' +%right '!' %right '^' +%right NEG UMINUS + + %% expr: INFIX_EXPR inexpr - | POSTFIX_EXPR poexpr - | PREFIX_EXPR prexpr + | POSTFIX_EXPR poexprlist + | PREFIX_EXPR prexprlist | error { yyclearin; } ; -inexpr: UNKNOWNID EQUALS inexpr { ADD_USERFUNC($1,0); } - | inexpr EQUALS inexpr { PUSH_FUNC(E_EQUALS); } - | inexpr '+' inexpr { PUSH_FUNC(E_PLUS); } - | inexpr '-' inexpr { PUSH_FUNC(E_MINUS); } - | inexpr '*' inexpr { PUSH_FUNC(E_MUL); } - | inexpr '/' inexpr { PUSH_FUNC(E_DIV); } - | inexpr '%' inexpr { PUSH_FUNC(E_MOD); } - | inexpr '!' { PUSH_FUNC(E_FACT); } - | NEG inexpr { PUSH_FUNC(E_NEG); } - | '-' inexpr %prec UMINUS { PUSH_FUNC(E_NEG); } - | inexpr '^' inexpr { PUSH_FUNC(E_EXP); } - | infunc { PUSH_DFUNC($1); } - | '(' inexpr ')' +inexpr: inexpr SEPAR inexpr { PUSH_ACT(E_SEPAR); } + | inexpr EQUALS inexpr { PUSH_ACT(E_EQUALS); } + | inexpr '+' inexpr { PUSH_ACT(E_PLUS); } + | inexpr '-' inexpr { PUSH_ACT(E_MINUS); } + | inexpr '*' inexpr { PUSH_ACT(E_MUL); } + | inexpr '/' inexpr { PUSH_ACT(E_DIV); } + | inexpr '%' inexpr { PUSH_ACT(E_MOD); } + | inexpr EQ_CMP inexpr { PUSH_ACT(E_EQ_CMP); } + | inexpr NE_CMP inexpr { PUSH_ACT(E_NE_CMP); } + | inexpr CMP_CMP inexpr { PUSH_ACT(E_CMP_CMP); } + | inexpr LT_CMP inexpr { PUSH_ACT(E_LT_CMP); } + | inexpr GT_CMP inexpr { PUSH_ACT(E_GT_CMP); } + | inexpr LE_CMP inexpr { PUSH_ACT(E_LE_CMP); } + | inexpr GE_CMP inexpr { PUSH_ACT(E_GE_CMP); } + | inexpr LOGICAL_AND inexpr { PUSH_ACT(E_LOGICAL_AND); } + | inexpr LOGICAL_OR inexpr { PUSH_ACT(E_LOGICAL_OR); } + | inexpr LOGICAL_XOR inexpr { PUSH_ACT(E_LOGICAL_XOR); } + | LOGICAL_NOT inexpr { PUSH_ACT(E_LOGICAL_NOT); } + | inexpr '!' { PUSH_ACT(E_FACT); } + | NEG inexpr { PUSH_ACT(E_NEG); } + | '-' inexpr %prec UMINUS { PUSH_ACT(E_NEG); } + | inexpr '^' inexpr { PUSH_ACT(E_EXP); } + | infunc { PUSH_FUNC($1); } + | funcdef inblock { PUSH_ACT(E_FUNCDEF); } + | WHILE_CONS inexpr inparenth { PUSH_ACT(E_WHILE_CONS); } + | IF_CONS inexpr inparenth { PUSH_ACT(E_IF_CONS); } + | IFELSE_CONS inexpr inparenth inparenth + { PUSH_ACT(E_IFELSE_CONS); } + | inparenth | posnum ; +inparenth: '(' inexpr ')' + ; + +inblock: BEGINBLOCK inexpr ENDBLOCK + ; + infunc: FUNCID0 { $$ = $1 } - | FUNCID0 '(' ')' - { $$ = $1 } | FUNCID1 '(' inexpr ')' { $$ = $1 } | FUNCID2 '(' inexpr ',' inexpr ')' @@ -112,22 +150,46 @@ { $$ = $1 } ; +poexprlist: poexprlist SEPAR poexpr { PUSH_ACT(E_SEPAR); } + | poexpr + ; -poexpr: UNKNOWNID poexpr EQUALS { ADD_USERFUNC($1,0); } - | poexpr poexpr EQUALS { PUSH_FUNC(E_EQUALS); } - | poexpr poexpr '+' { PUSH_FUNC(E_PLUS); } - | poexpr poexpr '-' { PUSH_FUNC(E_MINUS); } - | poexpr poexpr '*' { PUSH_FUNC(E_MUL); } - | poexpr poexpr '/' { PUSH_FUNC(E_DIV); } - | poexpr poexpr '%' { PUSH_FUNC(E_MOD); } - | poexpr NEG { PUSH_FUNC(E_NEG); } - | poexpr '!' { PUSH_FUNC(E_FACT); } - | poexpr poexpr '^' { PUSH_FUNC(E_EXP); } - | '(' poexpr ')' - | pofunc { PUSH_DFUNC($1); } +poexpr: poexpr poexpr EQUALS { PUSH_ACT(E_EQUALS); } + | poexpr poexpr '+' { PUSH_ACT(E_PLUS); } + | poexpr poexpr '-' { PUSH_ACT(E_MINUS); } + | poexpr poexpr '*' { PUSH_ACT(E_MUL); } + | poexpr poexpr '/' { PUSH_ACT(E_DIV); } + | poexpr poexpr '%' { PUSH_ACT(E_MOD); } + | poexpr poexpr EQ_CMP { PUSH_ACT(E_EQ_CMP); } + | poexpr poexpr NE_CMP { PUSH_ACT(E_NE_CMP); } + | poexpr poexpr CMP_CMP { PUSH_ACT(E_CMP_CMP); } + | poexpr poexpr LT_CMP { PUSH_ACT(E_LT_CMP); } + | poexpr poexpr GT_CMP { PUSH_ACT(E_GT_CMP); } + | poexpr poexpr LE_CMP { PUSH_ACT(E_LE_CMP); } + | poexpr poexpr GE_CMP { PUSH_ACT(E_GE_CMP); } + | poexpr poexpr LOGICAL_AND { PUSH_ACT(E_LOGICAL_AND); } + | poexpr poexpr LOGICAL_OR { PUSH_ACT(E_LOGICAL_OR); } + | poexpr poexpr LOGICAL_XOR { PUSH_ACT(E_LOGICAL_XOR); } + | poexpr LOGICAL_NOT { PUSH_ACT(E_LOGICAL_NOT); } + | poexpr NEG { PUSH_ACT(E_NEG); } + | poexpr '!' { PUSH_ACT(E_FACT); } + | poexpr poexpr '^' { PUSH_ACT(E_EXP); } + | pofunc { PUSH_FUNC($1); } + | funcdef poblock { PUSH_ACT(E_FUNCDEF); } + | poexpr poexpr WHILE_CONS { PUSH_ACT(E_WHILE_CONS); } + | poexpr poexpr IF_CONS { PUSH_ACT(E_IF_CONS); } + | poexpr poexpr poexpr IFELSE_CONS { PUSH_ACT(E_IFELSE_CONS); } + | poparenth | num ; +poparenth: '(' poexprlist ')' + ; + + +poblock: BEGINBLOCK poexprlist ENDBLOCK + ; + pofunc: FUNCID0 { $$ = $1 } | poexpr FUNCID1 @@ -148,21 +210,46 @@ { $$ = $9 } ; -prexpr: EQUALS UNKNOWNID prexpr { ADD_USERFUNC($2,0); } - | EQUALS prexpr prexpr { PUSH_FUNC(E_EQUALS); } - | '+' prexpr prexpr { PUSH_FUNC(E_PLUS); } - | '-' prexpr prexpr { PUSH_FUNC(E_MINUS); } - | '*' prexpr prexpr { PUSH_FUNC(E_MUL); } - | '/' prexpr prexpr { PUSH_FUNC(E_DIV); } - | '%' prexpr prexpr { PUSH_FUNC(E_MOD); } - | NEG prexpr { PUSH_FUNC(E_NEG); } - | '!' prexpr { PUSH_FUNC(E_FACT); } - | '^' prexpr prexpr { PUSH_FUNC(E_EXP); } - | prfunc { PUSH_DFUNC($1); } - | '(' prexpr ')' +prexprlist: prexprlist SEPAR prexpr { PUSH_ACT(E_SEPAR); } + | prexpr + ; + +prexpr: EQUALS prexpr prexpr { PUSH_ACT(E_EQUALS); } + | '+' prexpr prexpr { PUSH_ACT(E_PLUS); } + | '-' prexpr prexpr { PUSH_ACT(E_MINUS); } + | '*' prexpr prexpr { PUSH_ACT(E_MUL); } + | '/' prexpr prexpr { PUSH_ACT(E_DIV); } + | '%' prexpr prexpr { PUSH_ACT(E_MOD); } + | EQ_CMP prexpr prexpr { PUSH_ACT(E_EQ_CMP); } + | NE_CMP prexpr prexpr { PUSH_ACT(E_NE_CMP); } + | CMP_CMP prexpr prexpr { PUSH_ACT(E_CMP_CMP); } + | LT_CMP prexpr prexpr { PUSH_ACT(E_LT_CMP); } + | GT_CMP prexpr prexpr { PUSH_ACT(E_GT_CMP); } + | LE_CMP prexpr prexpr { PUSH_ACT(E_LE_CMP); } + | GE_CMP prexpr prexpr { PUSH_ACT(E_GE_CMP); } + | LOGICAL_AND prexpr prexpr { PUSH_ACT(E_LOGICAL_AND); } + | LOGICAL_OR prexpr prexpr { PUSH_ACT(E_LOGICAL_OR); } + | LOGICAL_XOR prexpr prexpr { PUSH_ACT(E_LOGICAL_XOR); } + | LOGICAL_NOT prexpr prexpr { PUSH_ACT(E_LOGICAL_NOT); } + | NEG prexpr { PUSH_ACT(E_NEG); } + | '!' prexpr { PUSH_ACT(E_FACT); } + | '^' prexpr prexpr { PUSH_ACT(E_EXP); } + | prfunc { PUSH_FUNC($1); } + | funcdef prblock { PUSH_ACT(E_FUNCDEF); } + | WHILE_CONS prexpr prparenth { PUSH_ACT(E_WHILE_CONS); } + | IF_CONS prexpr prparenth { PUSH_ACT(E_IF_CONS); } + | IFELSE_CONS prexpr prparenth prparenth + { PUSH_ACT(E_IFELSE_CONS); } + | prparenth | num ; +prparenth: '(' prexprlist ')' + ; + +prblock: BEGINBLOCK prexprlist ENDBLOCK + ; + prfunc: FUNCID0 { $$ = $1 } | FUNCID1 prexpr @@ -183,27 +270,30 @@ { $$ = $1 } ; +funcdef: FUNCDEF { PUSH_FAKEFUNC($1); } + ; + num: posnum | negnum ; posnum: NORMINT { - t_push(makenum_z($1),&evalstack); - mpz_clear($1); + t_push(makenum($1),&evalstack); + mpw_clear($1); } | FLOAT { - t_push(makenum_f($1),&evalstack); - mpf_clear($1); + t_push(makenum($1),&evalstack); + mpw_clear($1); } ; negnum: NEGNORMINT { - t_push(makenum_z($1),&evalstack); - mpz_clear($1); + t_push(makenum($1),&evalstack); + mpw_clear($1); } | NEGFLOAT { - t_push(makenum_f($1),&evalstack); - mpf_clear($1); + t_push(makenum($1),&evalstack); + mpw_clear($1); } ; diff -uNr gnome-0.11/programs/genius/structs.h gnome-0.12/programs/genius/structs.h --- gnome-0.11/programs/genius/structs.h Tue Jan 6 20:03:09 1998 +++ gnome-0.12/programs/genius/structs.h Mon Jan 12 20:01:32 1998 @@ -19,50 +19,56 @@ #ifndef _STRUCTS_H_ #define _STRUCTS_H_ -#include +#include "mpwrap.h" -struct tree_struct; +struct _tree_t; +struct _dict_t; /*dictionary function structure*/ typedef enum {BUILTIN_FUNC,USER_FUNC} func_type_t; -typedef struct { +typedef struct _func_t { func_type_t type; char *id; - int args; + int nargs; /*number of args*/ + int context; + int dynamic; union { - struct tree_struct *value; - struct tree_struct *(*func)(struct tree_struct * *); + struct { + struct _tree_t *value; + struct _dict_t *dict; + } user; + struct _tree_t *(*func)(struct _tree_t * *); } data; } func_t; +/*dictionary structure*/ +typedef struct _dict_t { + func_t * * dict; + int top; + int size; +} dict_t; + /*evaluation tree structure*/ typedef enum {NUMBER_NODE,ACTION_NODE} node_type_t; -typedef enum {INTEGER_TYPE,FLOAT_TYPE,RATIONAL_TYPE} num_type_t; typedef enum {PRIMITIVE_TYPE,FUNCTION_TYPE} op_type_t; -typedef struct tree_struct { +typedef struct _tree_t { node_type_t type; union { - struct { - num_type_t type; - union { - mpz_t ival; - mpf_t fval; - mpq_t rval; - } data; - } number; + mpw_t val; struct { op_type_t type; union { int primitive; struct { func_t * func; - struct tree_struct * * args; + struct _tree_t * * args; } function; } data; } action; } data; - struct tree_struct *left; - struct tree_struct *right; + struct _tree_t *left; + struct _tree_t *right; + struct _tree_t *secondright; /*rarely used, for example IFELSE*/ } tree_t; #endif diff -uNr gnome-0.11/programs/genius/util.c gnome-0.12/programs/genius/util.c --- gnome-0.11/programs/genius/util.c Tue Jan 6 20:03:09 1998 +++ gnome-0.12/programs/genius/util.c Mon Jan 12 20:01:32 1998 @@ -62,10 +62,10 @@ return NULL; } - if(ptr) { + if(ptr && olds>0) { if(news0) + else memcpy(p,ptr,olds); g_free(ptr); } else /*in case it's a string and original was NULL*/ diff -uNr gnome-0.11/programs/gmix/Makefile.am gnome-0.12/programs/gmix/Makefile.am --- gnome-0.11/programs/gmix/Makefile.am Mon Dec 8 11:43:31 1997 +++ gnome-0.12/programs/gmix/Makefile.am Wed Jan 14 18:25:17 1998 @@ -14,7 +14,8 @@ gmix_LDADD = \ $(top_builddir)/libgnome/libgnome.la \ $(top_builddir)/libgnomeui/libgnomeui.la \ - $(X_LIBS) $(x_libs) + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) $(INTLLIBS) Audio_DATA = gmix.desktop diff -uNr gnome-0.11/programs/gmix/Makefile.in gnome-0.12/programs/gmix/Makefile.in --- gnome-0.11/programs/gmix/Makefile.in Wed Jan 7 20:31:36 1998 +++ gnome-0.12/programs/gmix/Makefile.in Wed Jan 21 21:13:56 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -121,7 +122,8 @@ gmix_LDADD = \ $(top_builddir)/libgnome/libgnome.la \ $(top_builddir)/libgnomeui/libgnomeui.la \ - $(X_LIBS) $(x_libs) + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) $(INTLLIBS) Audio_DATA = gmix.desktop @@ -161,7 +163,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/gmix/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -300,7 +302,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h info: dvi: diff -uNr gnome-0.11/programs/gnometalk/Makefile.am gnome-0.12/programs/gnometalk/Makefile.am --- gnome-0.11/programs/gnometalk/Makefile.am Mon Dec 8 11:43:31 1997 +++ gnome-0.12/programs/gnometalk/Makefile.am Wed Jan 14 18:25:18 1998 @@ -25,7 +25,8 @@ $(top_builddir)/libgnomeui/libgnomeui.la \ $(top_builddir)/libgnome/libgnome.la \ $(top_builddir)/programs/gemvt/libgemvt.la \ - $(X_LIBS) $(x_libs) + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) $(INTLLIBS) gtalk_LDADD = $(MYLIBS) diff -uNr gnome-0.11/programs/gnometalk/Makefile.in gnome-0.12/programs/gnometalk/Makefile.in --- gnome-0.11/programs/gnometalk/Makefile.in Wed Jan 7 20:31:40 1998 +++ gnome-0.12/programs/gnometalk/Makefile.in Wed Jan 21 21:14:00 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -132,7 +133,8 @@ $(top_builddir)/libgnomeui/libgnomeui.la \ $(top_builddir)/libgnome/libgnome.la \ $(top_builddir)/programs/gemvt/libgemvt.la \ - $(X_LIBS) $(x_libs) + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) $(INTLLIBS) gtalk_LDADD = $(MYLIBS) @@ -174,7 +176,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/gnometalk/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -312,7 +314,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ global.h main.o main.lo: main.c ../../gnome.h ../../libgnome/libgnome.h \ ../../libgnome/gnome-defs.h ../../libgnome/gnome-util.h \ @@ -326,7 +329,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ global.h names.h protocol.h names.o names.lo: names.c ../../gnome.h ../../libgnome/libgnome.h \ ../../libgnome/gnome-defs.h ../../libgnome/gnome-util.h \ @@ -340,7 +344,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ global.h names.h protocol.h protocol.o protocol.lo: protocol.c ../../config.h ../../gnome.h \ ../../libgnome/libgnome.h ../../libgnome/gnome-defs.h \ @@ -355,7 +360,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ global.h protocol.h talk.h talk.o talk.lo: talk.c ../gemvt/libgemvt.h ../gemvt/gtkled.h \ ../gemvt/gtkterm.h ../gemvt/gtktty.h ../gemvt/gtkvtemu.h \ @@ -371,7 +377,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ global.h talk.h info: diff -uNr gnome-0.11/programs/gnometalk/names.c gnome-0.12/programs/gnometalk/names.c --- gnome-0.11/programs/gnometalk/names.c Sat Dec 6 09:04:12 1997 +++ gnome-0.12/programs/gnometalk/names.c Mon Jan 12 20:01:33 1998 @@ -5,6 +5,7 @@ */ #include +#include #include #include #include diff -uNr gnome-0.11/programs/gnometalk/protocol.c gnome-0.12/programs/gnometalk/protocol.c --- gnome-0.11/programs/gnometalk/protocol.c Thu Dec 11 00:34:51 1997 +++ gnome-0.12/programs/gnometalk/protocol.c Wed Jan 21 17:45:33 1998 @@ -14,17 +14,21 @@ * as struct sockaddr */ +#include +#include + #ifndef HAVE_STRUCT_OSOCKADDR #define osockaddr sockaddr #endif + #include #include +#include #include #include #include #include -#include #include #include "gnome.h" #include "global.h" diff -uNr gnome-0.11/programs/gnomine/Makefile.am gnome-0.12/programs/gnomine/Makefile.am --- gnome-0.11/programs/gnomine/Makefile.am Thu Dec 18 17:05:21 1997 +++ gnome-0.12/programs/gnomine/Makefile.am Mon Jan 19 11:00:24 1998 @@ -17,7 +17,7 @@ $(top_builddir)/libgnomeui/libgnomeui.la \ $(top_builddir)/libgnome/libgnome.la \ $(GTK_LIBS) \ - $(X_LIBS) $(x_libs) + $(X_LIBS) $(x_libs) $(INTLLIBS) EXTRA_DIST = flag.xpm mine.xpm face-cool.xpm face-sad.xpm face-smile.xpm face-win.xpm face-worried.xpm \ gnomine.desktop README AUTHORS @@ -25,3 +25,4 @@ install-data-local: $(mkinstalldirs) $(Gamesdir) $(INSTALL_DATA) $(srcdir)/gnomine.desktop $(datadir)/apps/Games/"Gnome Mines.desktop" + diff -uNr gnome-0.11/programs/gnomine/Makefile.in gnome-0.12/programs/gnomine/Makefile.in --- gnome-0.11/programs/gnomine/Makefile.in Wed Jan 7 20:31:50 1998 +++ gnome-0.12/programs/gnomine/Makefile.in Wed Jan 21 21:14:09 1998 @@ -84,6 +84,7 @@ LIBTOOL = @LIBTOOL@ LISPDIR = @LISPDIR@ LN_S = @LN_S@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MSGFMT = @MSGFMT@ NM = @NM@ @@ -124,7 +125,7 @@ $(top_builddir)/libgnomeui/libgnomeui.la \ $(top_builddir)/libgnome/libgnome.la \ $(GTK_LIBS) \ - $(X_LIBS) $(x_libs) + $(X_LIBS) $(x_libs) $(INTLLIBS) EXTRA_DIST = flag.xpm mine.xpm face-cool.xpm face-sad.xpm face-smile.xpm face-win.xpm face-worried.xpm \ gnomine.desktop README AUTHORS @@ -161,7 +162,7 @@ .SUFFIXES: .SUFFIXES: .S .c .lo .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/gnomine/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -280,9 +281,10 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ - minefield.h face-worried.xpm face-smile.xpm face-cool.xpm \ - face-sad.xpm face-win.xpm + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-session.h minefield.h face-worried.xpm \ + face-smile.xpm face-cool.xpm face-sad.xpm face-win.xpm minefield.o minefield.lo: minefield.c ../../gnome.h \ ../../libgnome/libgnome.h ../../libgnome/gnome-defs.h \ ../../libgnome/gnome-util.h ../../libgnome/gnome-hook.h \ @@ -296,7 +298,8 @@ ../../libgnomeui/gnome-colors.h \ ../../libgnomeui/gnome-color-selector.h \ ../../libgnomeui/gnome-messagebox.h \ - ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gtk-clock.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ minefield.h flag.xpm mine.xpm info: diff -uNr gnome-0.11/programs/gnomine/gnomine.c gnome-0.12/programs/gnomine/gnomine.c --- gnome-0.11/programs/gnomine/gnomine.c Mon Jan 5 20:31:45 1998 +++ gnome-0.12/programs/gnomine/gnomine.c Wed Jan 21 19:50:44 1998 @@ -1,6 +1,15 @@ - +/* + * + * Author: Pista + * + * Score support: horape@compendium.com.ar + * + */ #include #include +#include +#include + #include "minefield.h" #include "face-worried.xpm" @@ -26,6 +35,13 @@ guint ysize, xsize; guint nmines; guint fsize, fsc; +char *session_id; + +char *fsize2names[] = { + N_("Tiny"), + N_("Medium"), + N_("Biiiig"), +}; void show_face(GtkWidget *pm) { @@ -58,6 +74,24 @@ gtk_label_set(GTK_LABEL(flabel), val); } +void +show_scores (gchar *level, guint pos) +{ + gnome_scores_display (_("Gnome mines"), "gnomine", level, pos); +} + +void top_ten(GtkWidget *widget, gpointer data) +{ + gchar buf[64]; + + if(fsize<3) + strncpy(buf, fsize2names[fsize], sizeof(buf)); + else + g_snprintf(buf, sizeof(buf), "%dx%dx%d",xsize,ysize,nmines); + + show_scores(buf, 0); +} + void new_game(GtkWidget *widget, gpointer data) { gtk_clock_stop(GTK_CLOCK(clk)); @@ -91,23 +125,21 @@ void win_game(GtkWidget *widget, gpointer data) { gfloat score; + int pos; + gchar buf[64]; + show_face(pm_win); gtk_clock_stop(GTK_CLOCK(clk)); - score = (1000 * (gfloat)nmines / - ((gfloat)xsize * (gfloat)ysize * (gfloat)GTK_CLOCK(clk)->stopped)); + score = (gfloat)GTK_CLOCK(clk)->stopped; - if(gnome_score_log(score)) - { - GtkWidget *mb; - gchar buf[512]; - snprintf(buf, sizeof(buf), "You got onto the high score list with a score of %.0f!", score); - mb = gnome_messagebox_new(buf, GNOME_MESSAGEBOX_INFO, "OK", - NULL, NULL); - gnome_messagebox_set_default(GNOME_MESSAGEBOX(mb), 0); - gnome_messagebox_set_modal(GNOME_MESSAGEBOX(mb)); - gtk_widget_show(mb); - } + if(fsize<3) + strncpy(buf, fsize2names[fsize], sizeof(buf)); + else + g_snprintf(buf, sizeof(buf), "%dx%dx%d",xsize,ysize,nmines); + + pos = gnome_score_log(score, buf, FALSE); + show_scores(buf, pos); } void look_cell(GtkWidget *widget, gpointer data) @@ -180,7 +212,7 @@ gtk_container_border_width(GTK_CONTAINER(setupdialog), 10); GTK_WINDOW(setupdialog)->position = GTK_WIN_POS_MOUSE; - gtk_window_set_title(GTK_WINDOW(setupdialog), "Gnome mines setup"); + gtk_window_set_title(GTK_WINDOW(setupdialog), _("Gnome mines setup")); gtk_signal_connect(GTK_OBJECT(setupdialog), "delete_event", GTK_SIGNAL_FUNC(setupdialog_destroy), @@ -189,15 +221,15 @@ all_boxes = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(setupdialog), all_boxes); - cframe = gtk_frame_new("Custom size"); + cframe = gtk_frame_new(_("Custom size")); - frame = gtk_frame_new("Field size"); + frame = gtk_frame_new(_("Field size")); gtk_box_pack_start(GTK_BOX(all_boxes), frame, TRUE, TRUE, 0); box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), box); - button = gtk_radio_button_new_with_label(NULL, "Tiny"); + button = gtk_radio_button_new_with_label(NULL, _("Tiny")); if (fsize == 0) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(size_radio_callback), (gpointer) 0); @@ -205,7 +237,7 @@ gtk_widget_show(button); button = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(button)), - "Medium"); + _("Medium")); if (fsize == 1) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(size_radio_callback), (gpointer) 1); @@ -213,7 +245,7 @@ gtk_widget_show(button); button = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(button)), - "Biiiig"); + _("Biiiig")); if (fsize == 2) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(size_radio_callback), (gpointer) 2); @@ -221,7 +253,7 @@ gtk_widget_show(button); button = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(button)), - "Custom"); + _("Custom")); if (fsize == 3) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(size_radio_callback), (gpointer) 3); @@ -239,7 +271,7 @@ box2 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(box), box2, TRUE, TRUE, 0); - label = gtk_label_new("Horizontal:"); + label = gtk_label_new(_("Horizontal:")); gtk_box_pack_start(GTK_BOX(box2), label, TRUE, TRUE, 0); gtk_widget_show(label); xentry = gtk_entry_new(); @@ -252,7 +284,7 @@ box2 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(box), box2, TRUE, TRUE, 0); - label = gtk_label_new("Vertical:"); + label = gtk_label_new(_("Vertical:")); gtk_box_pack_start(GTK_BOX(box2), label, TRUE, TRUE, 0); gtk_widget_show(label); yentry = gtk_entry_new(); @@ -265,7 +297,7 @@ box2 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(box), box2, TRUE, TRUE, 0); - label = gtk_label_new("Number of mines:"); + label = gtk_label_new(_("Number of mines:")); gtk_box_pack_start(GTK_BOX(box2), label, TRUE, TRUE, 0); gtk_widget_show(label); mentry = gtk_entry_new(); @@ -281,12 +313,12 @@ box = gtk_hbox_new(TRUE, 5); gtk_box_pack_start(GTK_BOX(all_boxes), box, TRUE, TRUE, 0); - button = gtk_button_new_with_label("Ok"); + button = gtk_button_new_with_label(_("Ok")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_setup), NULL); gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 5); gtk_widget_show(button); - button = gtk_button_new_with_label("Cancel"); + button = gtk_button_new_with_label(_("Cancel")); gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc)setupdialog_destroy, (gpointer)1); @@ -302,17 +334,131 @@ } GnomeMenuInfo gamemenu[] = { - {GNOME_APP_MENU_ITEM, "New", new_game, NULL}, - {GNOME_APP_MENU_ITEM, "Setup...", setup_game, NULL}, - {GNOME_APP_MENU_ITEM, "Exit", quit_game, NULL}, + {GNOME_APP_MENU_ITEM, N_("New"), new_game, NULL}, + {GNOME_APP_MENU_ITEM, N_("Setup..."), setup_game, NULL}, + {GNOME_APP_MENU_ITEM, N_("Top ten..."), top_ten, NULL}, + {GNOME_APP_MENU_ITEM, N_("Exit"), quit_game, NULL}, {GNOME_APP_MENU_ENDOFINFO, NULL, NULL, NULL} }; GnomeMenuInfo mainmenu[] = { - {GNOME_APP_MENU_SUBMENU, "Game", gamemenu, NULL}, + {GNOME_APP_MENU_SUBMENU, N_("Game"), gamemenu, NULL}, {GNOME_APP_MENU_ENDOFINFO, NULL, NULL, NULL} }; +/* A little helper function. */ +static char * +nstr (int n) +{ + char buf[20]; + sprintf (buf, "%d", n); + return strdup (buf); +} + +static int +save_state (gpointer client_data, GnomeSaveStyle save_style, + int is_shutdown, GnomeInteractStyle interact_style, + int is_fast) +{ + char *argv[20]; + int i = 0, j; + gint xpos, ypos; + + gdk_window_get_origin (window->window, &xpos, &ypos); + + argv[i++] = (char *) client_data; + argv[i++] = "-x"; + argv[i++] = nstr (xsize); + argv[i++] = "-y"; + argv[i++] = nstr (ysize); + argv[i++] = "-n"; + argv[i++] = nstr (nmines); + argv[i++] = "-f"; + argv[i++] = nstr (fsize); + argv[i++] = "-a"; + argv[i++] = nstr (xpos); + argv[i++] = "-b"; + argv[i++] = nstr (ypos); + argv[i++] = "-i"; + argv[i++] = strdup (session_id); + + gnome_session_set_restart_command (i, argv); + gnome_session_set_clone_command (i - 2, argv); + + for (j = 2; j < i; j += 2) + free (argv[j]); + + return 1; +} + +static int +parse_args (int argc, char *argv[]) +{ + int x_set = 0, y_set = 0, nmines_set = 0, fsize_set = 0; + int set_pos = 0; + int i; + char *id = NULL; + gint xpos, ypos; + + /* FIXME: use GNU getopt. Add --help, --version. Error if option + unrecognized. */ + for (i = 0; i < argc - 1; ++i) + { + if (! strcmp (argv[i], "-x")) + { + x_set = 1; + xsize = atoi (argv[++i]); + } + else if (! strcmp (argv[i], "-y")) + { + y_set = 1; + ysize = atoi (argv[++i]); + } + else if (! strcmp (argv[i], "-n")) + { + nmines_set = 1; + nmines = atoi (argv[++i]); + } + else if (! strcmp (argv[i], "-f")) + { + fsize_set = 1; + fsize = atoi (argv[++i]); + } + else if (! strcmp (argv[i], "-a")) + { + /* Stupid argument name; will change with long opts. */ + xpos = atoi (argv[++i]); + set_pos |= 1; + } + else if (! strcmp (argv[i], "-b")) + { + /* Stupid argument name; will change with long opts. */ + ypos = atoi (argv[++i]); + set_pos |= 2; + } + else if (! strcmp (argv[i], "-i")) + { + /* Stupid argument name; will change with long opts. */ + id = argv[++i]; + } + } + + if (set_pos == 3) + gtk_widget_set_uposition (window, xpos, ypos); + + if (! x_set) + xsize = gnome_config_get_int("/gnomine/geometry/xsize=20"); + if (! y_set) + ysize = gnome_config_get_int("/gnomine/geometry/ysize=20"); + if (! nmines_set) + nmines = gnome_config_get_int("/gnomine/geometry/nmines=50"); + if (! fsize_set) + fsize = gnome_config_get_int("/gnomine/geometry/mode=0"); + + session_id = gnome_session_init (save_state, argv[0], NULL, NULL, id); + gnome_session_set_program (argv[0]); +} + int main(int argc, char *argv[]) { GtkWidget *all_boxes; @@ -323,7 +469,7 @@ gtk_init(&argc, &argv); gnome_init(&argc, &argv); - window = gnome_app_new("gnomine", "Gnome mines"); + window = gnome_app_new("gnomine", _("Gnome mines")); gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, TRUE); gnome_app_create_menus(GNOME_APP(window), mainmenu); @@ -334,10 +480,7 @@ gnome_app_set_contents(GNOME_APP(window), all_boxes); - xsize = gnome_config_get_int("/gnomine/geometry/xsize=20"); - ysize = gnome_config_get_int("/gnomine/geometry/ysize=20"); - nmines = gnome_config_get_int("/gnomine/geometry/nmines=50"); - fsize = gnome_config_get_int("/gnomine/geometry/mode=0"); + parse_args (argc, argv); button_table = gtk_table_new(1, 3, TRUE); gtk_box_pack_start(GTK_BOX(all_boxes), button_table, TRUE, TRUE, 0); @@ -413,7 +556,7 @@ status_table = gtk_table_new(1, 4, TRUE); gtk_box_pack_start(GTK_BOX(all_boxes), status_table, TRUE, TRUE, 0); - label = gtk_label_new("Flags:"); + label = gtk_label_new(_("Flags:")); gtk_table_attach(GTK_TABLE(status_table), label, 0, 1, 0, 1, 0, 0, 3, 3); gtk_widget_show(label); @@ -424,7 +567,7 @@ 1, 2, 0, 1, 0, 0, 3, 3); gtk_widget_show(flabel); - label = gtk_label_new("Time:"); + label = gtk_label_new(_("Time:")); gtk_table_attach(GTK_TABLE(status_table), label, 2, 3, 0, 1, 0, 0, 3, 3); gtk_widget_show(label); diff -uNr gnome-0.11/programs/gnomine/minefield.c gnome-0.12/programs/gnomine/minefield.c --- gnome-0.11/programs/gnomine/minefield.c Thu Dec 18 17:04:59 1997 +++ gnome-0.12/programs/gnomine/minefield.c Fri Jan 16 13:08:48 1998 @@ -628,7 +628,8 @@ sizeof (GtkMineFieldClass), (GtkClassInitFunc) gtk_minefield_class_init, (GtkObjectInitFunc) gtk_minefield_init, - (GtkArgFunc) NULL, + (GtkArgSetFunc) NULL, + (GtkArgGetFunc) NULL, }; minefield_type = gtk_type_unique (gtk_widget_get_type (), &minefield_info); diff -uNr gnome-0.11/programs/gtop/AUTHORS gnome-0.12/programs/gtop/AUTHORS --- gnome-0.11/programs/gtop/AUTHORS Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/AUTHORS Sun Jan 18 17:10:38 1998 @@ -0,0 +1 @@ +Radek Doulik (doulik@karlin.mff.cuni.cz) diff -uNr gnome-0.11/programs/gtop/ChangeLog gnome-0.12/programs/gtop/ChangeLog --- gnome-0.11/programs/gtop/ChangeLog Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/ChangeLog Tue Jan 20 13:04:45 1998 @@ -0,0 +1,5 @@ +Tue Jan 20 13:04:14 1998 Miguel de Icaza + + * procview.cc (procview_clist_prepare): Use new gtk+ prototype for + gtk_clist_new. + diff -uNr gnome-0.11/programs/gtop/Makefile.am gnome-0.12/programs/gtop/Makefile.am --- gnome-0.11/programs/gtop/Makefile.am Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/Makefile.am Wed Jan 21 21:04:25 1998 @@ -0,0 +1,34 @@ +INCLUDES = \ + -I../.. \ + -I$(srcdir)/../.. \ + -I$(includedir) \ + $(X_CFLAGS) + +SUBDIRS = proc + +bin_PROGRAMS = gtop + +gtop_SOURCES = \ + main.cc \ + menus.cc \ + procview.cc \ + perfview.cc \ + fsview.cc \ + sysview.cc \ + fromtop.h \ + fsview.h \ + global.h \ + menus.h \ + perfview.h \ + procview.h \ + sysview.h \ + fromtop.c + +gtop_LDADD = \ + proc/libproc.a \ + $(top_builddir)/libgnomeui/libgnomeui.la \ + $(top_builddir)/libgnome/libgnome.la \ + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) $(INTLLIBS) + +EXTRA_DIST = AUTHORS TODO diff -uNr gnome-0.11/programs/gtop/Makefile.in gnome-0.12/programs/gtop/Makefile.in --- gnome-0.11/programs/gtop/Makefile.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/Makefile.in Wed Jan 21 21:14:16 1998 @@ -0,0 +1,469 @@ +# Makefile.in generated automatically by automake 1.2d from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997 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 = /bin/sh + +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 + +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@ +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@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DL_LIB = @DL_LIB@ +ELCFILES = @ELCFILES@ +EMACS = @EMACS@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GTK_LIBS = @GTK_LIBS@ +GUILE_LIBS = @GUILE_LIBS@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +INTLSUB = @INTLSUB@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBTOOL = @LIBTOOL@ +LISPDIR = @LISPDIR@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MSGFMT = @MSGFMT@ +NM = @NM@ +OBJC = @OBJC@ +OSOCKADDR_CFLAGS = @OSOCKADDR_CFLAGS@ +PACKAGE = @PACKAGE@ +PNG_LIBS = @PNG_LIBS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PTHREAD_LIB = @PTHREAD_LIB@ +QTTHREADS_LIB = @QTTHREADS_LIB@ +RANLIB = @RANLIB@ +READLINE_LIB = @READLINE_LIB@ +TERMCAP_LIB = @TERMCAP_LIB@ +VERSION = @VERSION@ +XF86MISC_LIBS = @XF86MISC_LIBS@ +XPM_LIBS = @XPM_LIBS@ +YACC = @YACC@ +Z_LIBS = @Z_LIBS@ +x_libs = @x_libs@ + +INCLUDES = \ + -I../.. \ + -I$(srcdir)/../.. \ + -I$(includedir) \ + $(X_CFLAGS) + +SUBDIRS = proc + +bin_PROGRAMS = gtop + +gtop_SOURCES = \ + main.cc \ + menus.cc \ + procview.cc \ + perfview.cc \ + fsview.cc \ + sysview.cc \ + fromtop.h \ + fsview.h \ + global.h \ + menus.h \ + perfview.h \ + procview.h \ + sysview.h \ + fromtop.c + +gtop_LDADD = \ + proc/libproc.a \ + $(top_builddir)/libgnomeui/libgnomeui.la \ + $(top_builddir)/libgnome/libgnome.la \ + $(GTK_LIBS) \ + $(X_LIBS) $(x_libs) $(INTLLIBS) + +EXTRA_DIST = AUTHORS TODO +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +LIBS = @LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_LIBS = @X_LIBS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +gtop_OBJECTS = main.o menus.o procview.o perfview.o fsview.o sysview.o \ +fromtop.o +gtop_DEPENDENCIES = proc/libproc.a \ +$(top_builddir)/libgnomeui/libgnomeui.la \ +$(top_builddir)/libgnome/libgnome.la +gtop_LDFLAGS = +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) +CXXLINK = $(LIBTOOL) --mode=link $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = AUTHORS ChangeLog Makefile.am Makefile.in TODO + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(gtop_SOURCES) +OBJECTS = $(gtop_OBJECTS) + +default: all + +.SUFFIXES: +.SUFFIXES: .S .c .cc .lo .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/gtop/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) $(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`"; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + $(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \ + done + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +.c.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.S.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + +maintainer-clean-libtool: + +gtop: $(gtop_OBJECTS) $(gtop_DEPENDENCIES) + @rm -f gtop + $(CXXLINK) $(gtop_LDFLAGS) $(gtop_OBJECTS) $(gtop_LDADD) $(LIBS) +.cc.o: + $(CXXCOMPILE) -c $< +.cc.lo: + $(LTCXXCOMPILE) -c $< + +# 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; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + target=`echo $@ | sed s/-recursive//`; \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + done; \ + for subdir in $$rev; do \ + target=`echo $@ | sed s/-recursive//`; \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$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 \ + (cd $$subdir && $(MAKE) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + done; \ + test -z "$(ETAGS_ARGS)$(SOURCES)$(HEADERS)$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $(SOURCES) $(HEADERS) $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = programs/gtop + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + for subdir in $(SUBDIRS); do \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + done +fromtop.o fromtop.lo: fromtop.c proc/ps.h fromtop.h proc/readproc.h \ + proc/sysinfo.h +fsview.o fsview.lo: fsview.cc fsview.h global.h +main.o main.lo: main.cc ../../gnome.h ../../libgnome/libgnome.h \ + ../../libgnome/gnome-defs.h ../../libgnome/gnome-util.h \ + ../../libgnome/gnome-hook.h ../../libgnome/gnome-config.h \ + ../../libgnome/gnome-dns.h ../../libgnome/gnome-dentry.h \ + ../../libgnome/gnome-i18n.h ../../libgnome/gnome-score.h \ + ../../libgnome/gnome-string.h ../../libgnome/gnome-triggers.h \ + ../../libgnomeui/libgnomeui.h ../../libgnomeui/gnome-app.h \ + ../../libgnomeui/gnome-app-helper.h \ + ../../libgnomeui/gnome-actionarea.h \ + ../../libgnomeui/gnome-colors.h \ + ../../libgnomeui/gnome-color-selector.h \ + ../../libgnomeui/gnome-messagebox.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h \ + menus.h procview.h global.h perfview.h fsview.h sysview.h +menus.o menus.lo: menus.cc global.h +perfview.o perfview.lo: perfview.cc proc/sysinfo.h perfview.h global.h +procview.o procview.lo: procview.cc procview.h global.h fromtop.h \ + proc/readproc.h proc/sysinfo.h ../../gnome.h \ + ../../libgnome/libgnome.h ../../libgnome/gnome-defs.h \ + ../../libgnome/gnome-util.h ../../libgnome/gnome-hook.h \ + ../../libgnome/gnome-config.h ../../libgnome/gnome-dns.h \ + ../../libgnome/gnome-dentry.h ../../libgnome/gnome-i18n.h \ + ../../libgnome/gnome-score.h ../../libgnome/gnome-string.h \ + ../../libgnome/gnome-triggers.h ../../libgnomeui/libgnomeui.h \ + ../../libgnomeui/gnome-app.h \ + ../../libgnomeui/gnome-app-helper.h \ + ../../libgnomeui/gnome-actionarea.h \ + ../../libgnomeui/gnome-colors.h \ + ../../libgnomeui/gnome-color-selector.h \ + ../../libgnomeui/gnome-messagebox.h \ + ../../libgnomeui/gnome-pixmap.h ../../libgnomeui/gnome-scores.h \ + ../../libgnomeui/gnome-stock.h ../../libgnomeui/gtk-clock.h +sysview.o sysview.lo: sysview.cc fsview.h global.h + +info: info-recursive +dvi: dvi-recursive +check: all-am + $(MAKE) check-recursive +installcheck: installcheck-recursive +all-am: Makefile $(PROGRAMS) + +install-exec-am: install-binPROGRAMS + +uninstall-am: uninstall-binPROGRAMS + +install-exec: install-exec-recursive install-exec-am + @$(NORMAL_INSTALL) + +install-data: install-data-recursive + @$(NORMAL_INSTALL) + +install: install-recursive install-exec-am + @: + +uninstall: uninstall-recursive uninstall-am + +all: all-recursive all-am + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: installdirs-recursive + $(mkinstalldirs) $(bindir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ + mostlyclean-libtool mostlyclean-tags \ + mostlyclean-generic + +clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ + clean-generic mostlyclean-am + +distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ + distclean-tags distclean-generic clean-am + +maintainer-clean-am: maintainer-clean-binPROGRAMS \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-tags maintainer-clean-generic \ + distclean-am + +mostlyclean: mostlyclean-recursive mostlyclean-am + +clean: clean-recursive clean-am + +distclean: distclean-recursive distclean-am + -rm -f config.status + -rm -f libtool + +maintainer-clean: maintainer-clean-recursive maintainer-clean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: default mostlyclean-binPROGRAMS distclean-binPROGRAMS \ +clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \ +install-binPROGRAMS mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile mostlyclean-libtool distclean-libtool \ +clean-libtool maintainer-clean-libtool 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 dvi \ +installcheck all-am install-exec-am uninstall-am install-exec \ +install-data install uninstall 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: diff -uNr gnome-0.11/programs/gtop/TODO gnome-0.12/programs/gtop/TODO --- gnome-0.11/programs/gtop/TODO Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/TODO Thu Jan 15 14:36:45 1998 @@ -0,0 +1,5 @@ +- selectable fields +- save state +- save clist geometry +- clead + append --> edit + append/remove (maybe slower ???) +- sorting (from top) diff -uNr gnome-0.11/programs/gtop/fromtop.c gnome-0.12/programs/gtop/fromtop.c --- gnome-0.11/programs/gtop/fromtop.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/fromtop.c Thu Jan 15 14:36:45 1998 @@ -0,0 +1,57 @@ +#include +#include +#include "fromtop.h" + +void get_etime (char *s, int t, int uptime) { + //int t; + + //if (stime > uptime*HZ) { + //t = 0; + //} else { + //t = stime); + //} + // sprint_time_ival (s, t/HZ, 6, (t%HZ) * 100 / HZ); +} + +int shift_main (int main) { + return main >> PAGE_SHIFT; +} + +int pcpu_sort (proc_t ** P, proc_t ** Q) +{ + if ((*P)->pcpu < (*Q)->pcpu) + return -1; + if ((*P)->pcpu > (*Q)->pcpu) + return 1; + return 0; +} + +int mem_sort (proc_t ** P, proc_t ** Q) +{ + if ((*P)->resident < (*Q)->resident) + return -1; + if ((*P)->resident > (*Q)->resident) + return 1; + return 0; +} + +/* + * Finds the current time (in microseconds) and calculates the time + * elapsed since the last update. This is essential for computing + * percent CPU usage. + */ +float get_elapsed_time(void) +{ + struct timeval time; + static struct timeval oldtime; + struct timezone timez; + float elapsed_time; + + gettimeofday(&time, &timez); + elapsed_time = (time.tv_sec - oldtime.tv_sec) + + (float) (time.tv_usec - oldtime.tv_usec) / 1000000.0; + oldtime.tv_sec = time.tv_sec; + oldtime.tv_usec = time.tv_usec; + return (elapsed_time); +} + diff -uNr gnome-0.11/programs/gtop/fromtop.h gnome-0.12/programs/gtop/fromtop.h --- gnome-0.11/programs/gtop/fromtop.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/fromtop.h Thu Jan 15 14:36:45 1998 @@ -0,0 +1,32 @@ +#ifndef __FROMTOP_H__ +#define __FROMTOP_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include "proc/readproc.h" +#include "proc/sysinfo.h" + +#define MAX_NR_TASKS 4096 + +/* from proc/compare.c */ +typedef int (*cmp_t)(void*,void*); /* for function pointer casts */ +void reset_sort_options (void); +void register_sort_function (int dir, cmp_t func); + +float get_elapsed_time (void); +void do_stats (proc_t ** p, float elapsed_time); +int pcpu_sort (proc_t ** P, proc_t ** Q); +int mem_sort (proc_t ** P, proc_t ** Q); + +int shift_main (int main); +void get_etime (char *s, int stime, int uptime); + +char *status (proc_t * task); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif diff -uNr gnome-0.11/programs/gtop/fsview.cc gnome-0.12/programs/gtop/fsview.cc --- gnome-0.11/programs/gtop/fsview.cc Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/fsview.cc Thu Jan 15 14:36:45 1998 @@ -0,0 +1,15 @@ +#include "fsview.h" + +static GtkWidget *table; +static GtkWidget *nLabel; + +void addFilesystemsView () { + + nLabel = gtk_label_new (" Filesystems "); + table = gtk_table_new (10, 10, FALSE); + + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), table, nLabel); + + gtk_widget_show (nLabel); + gtk_widget_show (table); +} diff -uNr gnome-0.11/programs/gtop/fsview.h gnome-0.12/programs/gtop/fsview.h --- gnome-0.11/programs/gtop/fsview.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/fsview.h Thu Jan 15 14:36:45 1998 @@ -0,0 +1,9 @@ + +#ifndef __FSVIEW_H__ +#define __FSVIEW_H__ + +#include "global.h" + +void addFilesystemsView (); + +#endif diff -uNr gnome-0.11/programs/gtop/global.h gnome-0.12/programs/gtop/global.h --- gnome-0.11/programs/gtop/global.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/global.h Thu Jan 15 14:36:45 1998 @@ -0,0 +1,16 @@ + +#ifndef __GLOBAL_H__ +#define __GLOBAL_H__ + +#include + +#define GNOME_PAD 6 + +/* GtkWidget is the storage type for widgets */ +extern GtkWidget *window; +extern GtkWidget *notebook; + +int +delete_event_handler (GtkWidget *widget, gpointer *data); + +#endif diff -uNr gnome-0.11/programs/gtop/main.cc gnome-0.12/programs/gtop/main.cc --- gnome-0.11/programs/gtop/main.cc Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/main.cc Thu Jan 15 14:36:45 1998 @@ -0,0 +1,67 @@ +#include +#include "menus.h" +#include "procview.h" +#include "perfview.h" +#include "fsview.h" +#include "sysview.h" + +GtkWidget *window; +GtkWidget *notebook; +GtkWidget *mbox; +GtkWidget *menubar; + +GtkAcceleratorTable *accel; + +int +delete_event_handler (GtkWidget *widget, gpointer *data) +{ + gtk_widget_destroy (window); + gtk_main_quit (); + + return TRUE; +} + +void +createMainWindow () +{ + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_usize(GTK_WIDGET(window), 780, 480); + gtk_window_set_title(GTK_WINDOW(window), "gtop"); + + gtk_signal_connect (GTK_OBJECT (window), "delete_event", + GTK_SIGNAL_FUNC (delete_event_handler), NULL); + + mbox = gtk_vbox_new (FALSE, 10); + notebook = gtk_notebook_new (); + + get_main_menu(&menubar, &accel); + gtk_window_add_accelerator_table(GTK_WINDOW(window), accel); + gtk_box_pack_start(GTK_BOX(mbox), menubar, FALSE, TRUE, 0); + gtk_widget_show(menubar); + + gtk_container_add (GTK_CONTAINER (window), mbox); + gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP); + gtk_box_pack_start (GTK_BOX (mbox), notebook, TRUE, TRUE, 0); + + gtk_widget_show (notebook); + gtk_widget_show (mbox); +} + +int main (int argc, char *argv[]) +{ + gtk_init (&argc, &argv); + //gnome_init (&argc, &argv); + + createMainWindow (); + + addProcessView (); + addPerformanceView (); + addFilesystemsView (); + addSystemView (); + + gtk_widget_show (window); + + gtk_main (); + + return 0; +} diff -uNr gnome-0.11/programs/gtop/menus.cc gnome-0.12/programs/gtop/menus.cc --- gnome-0.11/programs/gtop/menus.cc Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/menus.cc Thu Jan 15 14:36:46 1998 @@ -0,0 +1,148 @@ +#include +#include + +#include "global.h" + +static void menus_remove_accel(GtkWidget * widget, gchar * signal_name, gchar * + path); +static gint menus_install_accel(GtkWidget * widget, gchar * signal_name, gchar +key, gchar modifiers, gchar * path); +void menus_init(void); +void menus_create(GtkMenuEntry * entries, int nmenu_entries); + + +/* this is the GtkMenuEntry structure used to create new menus. The + * first member is the menu definition string. The second, the + * default accelerator key used to access this menu function with + * the keyboard. The third is the callback function to call when + * this menu item is selected (by the accelerator key, or with the + * mouse.) The member is the data to pass to your callback function. + */ + +static GtkMenuEntry menu_items[] = +{ + {"
/File/Quit", "q", + (GtkMenuCallback)delete_event_handler, "OK, I'll quit"}, + {"
/Rules/with TTY", NULL, + (GtkMenuCallback)delete_event_handler, "OK, I'll quit"}, + {"
/Rules/own procs", NULL, + (GtkMenuCallback)delete_event_handler, "OK, I'll quit"}, +}; + +static int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]); + +static int initialize = TRUE; +static GtkMenuFactory *factory = NULL; +static GtkMenuFactory *subfactory[1]; +static GHashTable *entry_ht = NULL; + +void get_main_menu(GtkWidget ** menubar, GtkAcceleratorTable ** table) +{ + if (initialize) + menus_init(); + + if (menubar) + *menubar = subfactory[0]->widget; + if (table) + *table = subfactory[0]->table; +} + +void menus_init(void) +{ + if (initialize) { + initialize = FALSE; + + factory = gtk_menu_factory_new(GTK_MENU_FACTORY_MENU_BAR); + subfactory[0] = gtk_menu_factory_new(GTK_MENU_FACTORY_MENU_BAR); + + gtk_menu_factory_add_subfactory(factory, subfactory[0], "
"); + menus_create(menu_items, nmenu_items); + } +} + +void menus_create(GtkMenuEntry * entries, int nmenu_entries) +{ + char *accelerator; + int i; + + if (initialize) + menus_init(); + + if (entry_ht) + for (i = 0; i < nmenu_entries; i++) { + accelerator = g_hash_table_lookup(entry_ht, entries[i].path); + if (accelerator) { + if (accelerator[0] == '\0') + entries[i].accelerator = NULL; + else + entries[i].accelerator = accelerator; + } + } + gtk_menu_factory_add_entries(factory, entries, nmenu_entries); + + for (i = 0; i < nmenu_entries; i++) + if (entries[i].widget) { + gtk_signal_connect(GTK_OBJECT(entries[i].widget), "install_accelerator", + (GtkSignalFunc) menus_install_accel, + entries[i].path); + gtk_signal_connect(GTK_OBJECT(entries[i].widget), "remove_accelerator", + (GtkSignalFunc) menus_remove_accel, + entries[i].path); + } +} + +static gint menus_install_accel(GtkWidget * widget, gchar * signal_name, gchar +key, gchar modifiers, gchar * path) +{ + char accel[64]; + char *t1, t2[2]; + + accel[0] = '\0'; + if (modifiers & GDK_CONTROL_MASK) + strcat(accel, ""); + if (modifiers & GDK_SHIFT_MASK) + strcat(accel, ""); + if (modifiers & GDK_MOD1_MASK) + strcat(accel, ""); + + t2[0] = key; + t2[1] = '\0'; + strcat(accel, t2); + + if (entry_ht) { + t1 = g_hash_table_lookup(entry_ht, path); + g_free(t1); + } else + entry_ht = g_hash_table_new(g_string_hash, g_string_equal); + + g_hash_table_insert(entry_ht, path, g_strdup(accel)); + + return TRUE; +} + +static void menus_remove_accel(GtkWidget * widget, gchar * signal_name, gchar * + path) +{ + char *t; + + if (entry_ht) { + t = g_hash_table_lookup(entry_ht, path); + g_free(t); + + g_hash_table_insert(entry_ht, path, g_strdup("")); + } +} + +void menus_set_sensitive(char *path, int sensitive) +{ + GtkMenuPath *menu_path; + + if (initialize) + menus_init(); + + menu_path = gtk_menu_factory_find(factory, path); + if (menu_path) + gtk_widget_set_sensitive(menu_path->widget, sensitive); + else + g_warning("Unable to set sensitivity for menu which doesn't exist: %s", path); +} diff -uNr gnome-0.11/programs/gtop/menus.h gnome-0.12/programs/gtop/menus.h --- gnome-0.11/programs/gtop/menus.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/menus.h Thu Jan 15 14:36:46 1998 @@ -0,0 +1,9 @@ +#ifndef __MENUS_H__ +#define __MENUS_H__ + +#include + +void get_main_menu (GtkWidget **menubar, GtkAcceleratorTable **table); +void menus_create(GtkMenuEntry *entries, int nmenu_entries); + +#endif /* __MENUS_H__ */ diff -uNr gnome-0.11/programs/gtop/perfview.cc gnome-0.12/programs/gtop/perfview.cc --- gnome-0.11/programs/gtop/perfview.cc Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/perfview.cc Thu Jan 15 14:36:52 1998 @@ -0,0 +1,355 @@ +extern "C" { +#include "proc/sysinfo.h" +} +#include "perfview.h" +#include + +static GtkWidget *table; +static GtkWidget *nLabel; + +static ProcMeter *m1; +static ProcMeter *m2; +static ProcMeter *m3; +static ProcMeter *m4; +static ProcMeter *m5; +static ProcMeter *m6; + +void addPerformanceView () { + + nLabel = gtk_label_new (" Performance "); + table = gtk_table_new (3, 4, FALSE); + gtk_container_border_width (GTK_CONTAINER (table), 6); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), table, nLabel); + + m1 = new ProcMeter (table, 0, 0, "CPU Load average"); + m2 = new ProcMeter (table, 2, 0, "Main memory"); + m3 = new ProcMeter (table, 0, 1); + m4 = new ProcMeter (table, 2, 1, "Swap memory"); + m5 = new ProcMeter (table, 0, 2); + m6 = new ProcMeter (table, 2, 2); + + m1->watch (procEvents+EVENT_LOAD_AVG_1); + m1->watch (procEvents+EVENT_LOAD_AVG_5); + m1->watch (procEvents+EVENT_LOAD_AVG_15); + + m2->watch (procEvents+EVENT_MEM_USED); + m2->watch (procEvents+EVENT_MEM_FREE); + m2->watch (procEvents+EVENT_MEM_SHARED); + m2->watch (procEvents+EVENT_MEM_BUFFERS); + m2->watch (procEvents+EVENT_MEM_CACHED); + + m4->watch (procEvents+EVENT_SWP_USED); + m4->watch (procEvents+EVENT_SWP_FREE); + + gtk_widget_show (nLabel); + gtk_widget_show (table); +} + +/////////////////////////////////////////////////////////// +// ProcMeter +// + +gint ProcMeter::proc_meter_expose (GtkWidget *widget, GdkEventExpose *e, ProcMeter *m) { + +#define AL e->area + gdk_draw_rectangle (widget->window, widget->style->black_gc, TRUE, + AL.x, AL.y, + AL.width, AL.height); + if (m->first) { + m->updateGraphs (); + m->first = 0; + } else + m->draw (AL.x, AL.width); +#undef AL +} + +gint ProcMeter::proc_meter_size_allocate (GtkWidget *widget, ProcMeter *m) { +} + +gint ProcMeter::update (ProcMeter *m) { + m->updateGraphs (); + + return TRUE; +} + +ProcMeter::ProcMeter (GtkWidget *t, gint x, gint y, gchar *s) { + table = t; + tx = x; + ty = y; + first = 1; + + gList = g_slist_alloc (); + + vbox = gtk_vbox_new (FALSE, 0); + + darea = gtk_drawing_area_new (); + gtk_drawing_area_size (GTK_DRAWING_AREA (darea), -1, 100); + gtk_widget_set_events (darea, GDK_EXPOSURE_MASK); + gtk_signal_connect (GTK_OBJECT (darea), "expose_event", + GTK_SIGNAL_FUNC (ProcMeter::proc_meter_expose), + (gpointer)this); + gtk_signal_connect (GTK_OBJECT (darea), "size_allocate", + GTK_SIGNAL_FUNC (ProcMeter::proc_meter_size_allocate), + (gpointer)this); + + envel = gtk_frame_new (s); + gtk_frame_set_shadow_type (GTK_FRAME (envel), GTK_SHADOW_NONE); + GtkWidget *frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); + + gtk_container_add (GTK_CONTAINER (frame), darea); + gtk_container_add (GTK_CONTAINER (envel), frame); + gtk_table_attach (GTK_TABLE (table), envel, + tx, tx+1, ty, ty+1, + GTK_EXPAND|GTK_FILL, GTK_FILL, + 5, 5); + gtk_table_attach (GTK_TABLE (table), vbox, + tx+1, tx+2, ty, ty+1, + GTK_FILL, GTK_FILL, + 5, 5); + + + gtk_widget_show (darea); + gtk_widget_show (vbox); + gtk_widget_show (frame); + gtk_widget_show (envel); + + gtk_timeout_add (3000, update, (gpointer)this); +} + +ProcMeter::~ProcMeter () { + g_slist_free (gList); +} + +gint ProcMeter::refresh () { + // draw (0, darea->allocation.width); +} + +void ProcMeter::watch (ProcEvent *e) { + GtkWidget *hb = gtk_hbox_new (FALSE, 5); + GtkWidget *label = gtk_label_new (e->label); + gtk_misc_set_alignment (GTK_MISC(label), 0, 0.5); + GtkWidget *button = gtk_button_new (); + gtk_widget_set_usize (button, 30, 3); + + gtk_box_pack_start (GTK_BOX (hb), label, FALSE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (hb), button, FALSE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (vbox), hb, FALSE, FALSE, 0); + + GtkTooltips *tips = gtk_tooltips_new (); + gtk_tooltips_set_tips (tips, button, e->tip); + + gtk_widget_show (button); + gtk_widget_show (label); + gtk_widget_show (hb); + + ProcGraph *g = new ProcGraph (darea, button, e); + + g_slist_append (gList, (gpointer)g); +} + +void ProcMeter::updateGraphs () { + + if (GTK_WIDGET_DRAWABLE (darea)) { + gdk_window_copy_area (darea->window, + darea->style->black_gc, + 0, 0, + darea->window, + 1, 0, + darea->allocation.width-1, + darea->allocation.height); + + gdk_draw_line (darea->window, + darea->style->black_gc, + darea->allocation.width-1, + 0, + darea->allocation.width-1, + darea->allocation.height-1); + } + + GSList *cur = gList; + do + if (cur->data) + ((ProcGraph *)cur->data)->tick (); + while ((cur = cur->next)); +} + +void ProcMeter::draw (gint x, gint width) { + + GSList *cur = gList; + do + if (cur->data) + ((ProcGraph *)cur->data)->draw (x, width); + while ((cur = cur->next)); +} + +/////////////////////////////////////////////////////////// +// ProcGraph +// + +static gint globalClock=0; + +ProcGraph::ProcGraph (GtkWidget *d, GtkWidget *b, ProcEvent *e) { + cur = 0; + scale = 1; + values = NULL; + + event = e; + darea = d; + button = b; + + style = gtk_style_new (); + style->bg [GTK_STATE_NORMAL] = event->color; + style->bg [GTK_STATE_PRELIGHT] = event->color; + + gtk_widget_set_style (button, style); +} + +void ProcGraph::tick () { + globalClock++; + + if (!values && GTK_WIDGET_MAPPED (darea)) { + size = darea->allocation.width; + values = new gint [size]; + int i, v = event->getValue (event->par); + for (i=0; i=size) + cur = 0; + values [cur] = event->getValue (event->par); + } + + draw (darea->allocation.width-1, 1); +} + +void ProcGraph::draw (gint x, gint width) { +#define YP(x) ((x)*(darea->allocation.height-1)/(scale*vSCALE)) + + gint i, p1, p2; + for (i=0; iwindow, + button->style->bg_gc [GTK_STATE_NORMAL], + x, + darea->allocation.height-1-YP (values[p1]), + x-1, + darea->allocation.height-1-YP (values[p2])); + } +#undef YP +} + +ProcGraph::~ProcGraph () { + if (values) + delete [] values; +} + +/////////////////////////////////////////////////////////// +// ProcEvent +// + +/////////////////// load ////////////// + +static gint loadClock=0; +static double loadAvg [3]; + +static void getLoadAvg () { + if (loadClock != globalClock) { + loadavg (&loadAvg [0], &loadAvg [1], &loadAvg [2]); + loadClock = globalClock; + } +} + +static gint procCPULoadAvg (gint par) { + + getLoadAvg (); + + return (gint)(loadAvg [par]*vSCALE); +} + +//////////// mem info ////////////////// + +static gint memClock = 0; +static gint memInfo [EVENT_SWP_FREE-EVENT_MEM_USED]; +static gint memTotal = -1; + +static void getMemInfo () { + if (memClock != globalClock) { + unsigned** mi = meminfo (); + + memInfo [EVENT_MEM_USED-EVENT_MEM_USED] = mi [meminfo_main][meminfo_used]; + memInfo [EVENT_MEM_FREE-EVENT_MEM_USED] = mi [meminfo_main][meminfo_free]; + memInfo [EVENT_MEM_SHARED-EVENT_MEM_USED] = mi [meminfo_main][meminfo_shared]; + memInfo [EVENT_MEM_BUFFERS-EVENT_MEM_USED] = mi [meminfo_main][meminfo_buffers]; + memInfo [EVENT_MEM_CACHED-EVENT_MEM_USED] = mi [meminfo_main][meminfo_cached]; + memInfo [EVENT_SWP_USED-EVENT_MEM_USED] = mi [meminfo_swap][meminfo_used]; + memInfo [EVENT_SWP_FREE-EVENT_MEM_USED] = mi [meminfo_swap][meminfo_free]; + + if (memTotal < 0) + memTotal = + (mi [meminfo_main][meminfo_total] > mi [meminfo_swap][meminfo_total]) + ? mi [meminfo_main][meminfo_total] + : mi [meminfo_swap][meminfo_total]; + memClock = globalClock; + } +} + +static gint procMemInfo (gint par) { + + getMemInfo (); + + return (gint)(vSCALE*((gdouble)memInfo [par-EVENT_MEM_USED]/memTotal)); +} + +struct ProcEvent procEvents[] = {{ + "load1", "CPU load avg 1 min", + EVENT_LOAD_AVG_1, procCPULoadAvg, + {0, 65535, 65535, 0}, + },{ + "load5", "CPU load avg 5 min", + EVENT_LOAD_AVG_5, procCPULoadAvg, + {0, 0, 65535, 0}, + },{ + "load15", "CPU load avg 15 min", + EVENT_LOAD_AVG_15, procCPULoadAvg, + {0, 65535, 32767, 0}, + },{ + "m used", "main memory used", + EVENT_MEM_USED, procMemInfo, + {0, 65535, 65535, 0}, + },{ + "m free", "main memory free", + EVENT_MEM_FREE, procMemInfo, + {0, 0, 65535, 0}, + },{ + "m shrd", "main memory shared", + EVENT_MEM_SHARED, procMemInfo, + {0, 0, 65535, 65535}, + },{ + "m buf", "main memory buffers", + EVENT_MEM_BUFFERS, procMemInfo, + {0, 65535, 32767, 0}, + },{ + "m cache", "main memory cached", + EVENT_MEM_CACHED, procMemInfo, + {0, 65535, 65535, 65535}, + },{ + "s used", "swap memory used", + EVENT_SWP_USED, procMemInfo, + {0, 65535, 65535, 0}, + },{ + "s free", "swap memory free", + EVENT_SWP_FREE, procMemInfo, + {0, 0, 65535, 0}, + }, +}; diff -uNr gnome-0.11/programs/gtop/perfview.h gnome-0.12/programs/gtop/perfview.h --- gnome-0.11/programs/gtop/perfview.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/perfview.h Thu Jan 15 14:36:52 1998 @@ -0,0 +1,85 @@ + +#ifndef __PERFVIEW_H__ +#define __PERFVIEW_H__ + +#include "global.h" +#include + +#define vSCALE 1000 + +enum { + EVENT_LOAD_AVG_1, + EVENT_LOAD_AVG_5, + EVENT_LOAD_AVG_15, + EVENT_MEM_USED, + EVENT_MEM_FREE, + EVENT_MEM_SHARED, + EVENT_MEM_BUFFERS, + EVENT_MEM_CACHED, + EVENT_SWP_USED, + EVENT_SWP_FREE, +}; + +void addPerformanceView (); + +struct ProcEvent { + gchar *label; + gchar *tip; + gint par; + gint (*getValue)(gint); + GdkColor color; +}; + +extern struct ProcEvent procEvents[]; + +struct ProcGraph { + gint *values; + gint cur; + gint size; + gint scale; + + GtkWidget *darea; + GtkWidget *button; + GtkStyle *style; + + ProcEvent *event; + + void tick (); + void draw (gint x, gint width); + + ProcGraph (GtkWidget *d, GtkWidget *b, ProcEvent *e); + ~ProcGraph (); + static void setWidgetColor (GtkWidget *w, ProcGraph *g); +}; + +class ProcMeter { + GSList *events; + GtkWidget *hbox; + GtkWidget *vbox; + GtkWidget *darea; + GtkWidget *envel; + GtkWidget *table; + + gint tx, ty; + gint first; + + GSList *gList; + + static gint proc_meter_expose (GtkWidget *widget, GdkEventExpose *e, + ProcMeter *m); + static gint proc_meter_size_allocate (GtkWidget *widget, ProcMeter *m); + static gint update (ProcMeter *m); + + void draw (gint x, gint width); + void updateGraphs (); + +public: + GtkWidget* widget () { return hbox; } + void watch (ProcEvent *); + gint refresh (); + + ProcMeter (GtkWidget *t, gint x, gint y, gchar *s=""); + ~ProcMeter (); +}; + +#endif diff -uNr gnome-0.11/programs/gtop/proc/Makefile.am gnome-0.12/programs/gtop/proc/Makefile.am --- gnome-0.11/programs/gtop/proc/Makefile.am Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/Makefile.am Mon Jan 19 11:31:21 1998 @@ -0,0 +1,38 @@ +BUILT_SOURCES = signames.h + +Makefile: $(BUILT_SOURCES) + +noinst_LIBRARIES = libproc.a + +INCLUDES = -I$(srcdir)/.. + +libproc_a_SOURCES = \ + devname.h \ + ps.h \ + psdata.h \ + readproc.h \ + signals.h \ + sysinfo.h \ + tree.h \ + version.h \ + whattime.h \ + signames.h \ + alloc.c \ + compare.c \ + devname.c \ + ksym.c \ + output.c \ + pwcache.c \ + readproc.c \ + signals.c \ + status.c \ + sysinfo.c \ + version.c \ + whattime.c + + +signames.h: /usr/include/signal.h + $(CPP) -dM signames.h diff -uNr gnome-0.11/programs/gtop/proc/Makefile.in gnome-0.12/programs/gtop/proc/Makefile.in --- gnome-0.11/programs/gtop/proc/Makefile.in Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/Makefile.in Wed Jan 21 21:14:17 1998 @@ -0,0 +1,355 @@ +# Makefile.in generated automatically by automake 1.2d from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997 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 = /bin/sh + +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 + +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@ +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@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DL_LIB = @DL_LIB@ +ELCFILES = @ELCFILES@ +EMACS = @EMACS@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GTK_LIBS = @GTK_LIBS@ +GUILE_LIBS = @GUILE_LIBS@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +INTLSUB = @INTLSUB@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBTOOL = @LIBTOOL@ +LISPDIR = @LISPDIR@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MSGFMT = @MSGFMT@ +NM = @NM@ +OBJC = @OBJC@ +OSOCKADDR_CFLAGS = @OSOCKADDR_CFLAGS@ +PACKAGE = @PACKAGE@ +PNG_LIBS = @PNG_LIBS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PTHREAD_LIB = @PTHREAD_LIB@ +QTTHREADS_LIB = @QTTHREADS_LIB@ +RANLIB = @RANLIB@ +READLINE_LIB = @READLINE_LIB@ +TERMCAP_LIB = @TERMCAP_LIB@ +VERSION = @VERSION@ +XF86MISC_LIBS = @XF86MISC_LIBS@ +XPM_LIBS = @XPM_LIBS@ +YACC = @YACC@ +Z_LIBS = @Z_LIBS@ +x_libs = @x_libs@ + +BUILT_SOURCES = signames.h + +noinst_LIBRARIES = libproc.a + +INCLUDES = -I$(srcdir)/.. + +libproc_a_SOURCES = \ + devname.h \ + ps.h \ + psdata.h \ + readproc.h \ + signals.h \ + sysinfo.h \ + tree.h \ + version.h \ + whattime.h \ + signames.h \ + alloc.c \ + compare.c \ + devname.c \ + ksym.c \ + output.c \ + pwcache.c \ + readproc.c \ + signals.c \ + status.c \ + sysinfo.c \ + version.c \ + whattime.c +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../../.. +LIBS = @LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_LIBS = @X_LIBS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +libproc_a_LIBADD = +libproc_a_OBJECTS = alloc.o compare.o devname.o ksym.o output.o \ +pwcache.o readproc.o signals.o status.o sysinfo.o version.o whattime.o +AR = ar +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(libproc_a_SOURCES) +OBJECTS = $(libproc_a_OBJECTS) + +default: all + +.SUFFIXES: +.SUFFIXES: .S .c .lo .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps programs/gtop/proc/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 + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +.c.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.S.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + +maintainer-clean-libtool: + +libproc.a: $(libproc_a_OBJECTS) $(libproc_a_DEPENDENCIES) + -rm -f libproc.a + $(AR) cru libproc.a $(libproc_a_OBJECTS) $(libproc_a_LIBADD) + $(RANLIB) libproc.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + test -z "$(ETAGS_ARGS)$(SOURCES)$(HEADERS)$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $(SOURCES) $(HEADERS) $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = programs/gtop/proc + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +alloc.o alloc.lo: alloc.c +compare.o compare.lo: compare.c ../proc/readproc.h ../proc/tree.h +devname.o devname.lo: devname.c +ksym.o ksym.lo: ksym.c ../proc/psdata.h ../proc/ps.h ../proc/version.h +output.o output.lo: output.c +pwcache.o pwcache.lo: pwcache.c ../proc/ps.h +readproc.o readproc.lo: readproc.c ../proc/version.h ../proc/readproc.h \ + ../proc/devname.h ../proc/ps.h +signals.o signals.lo: signals.c ../proc/signals.h +status.o status.lo: status.c ../proc/ps.h ../proc/readproc.h +sysinfo.o sysinfo.lo: sysinfo.c ../proc/sysinfo.h ../proc/version.h +version.o version.lo: version.c +whattime.o whattime.lo: whattime.c ../proc/whattime.h ../proc/sysinfo.h + +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +all: Makefile $(LIBRARIES) + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-libtool mostlyclean-tags \ + mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-libtool clean-tags \ + clean-generic mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile \ + distclean-libtool distclean-tags distclean-generic \ + clean + -rm -f config.status + -rm -f libtool + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-tags maintainer-clean-generic \ + distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: default mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile mostlyclean-libtool distclean-libtool \ +clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info dvi \ +installcheck install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +Makefile: $(BUILT_SOURCES) + +signames.h: /usr/include/signal.h + $(CPP) -dM signames.h + +# 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: diff -uNr gnome-0.11/programs/gtop/proc/alloc.c gnome-0.12/programs/gtop/proc/alloc.c --- gnome-0.11/programs/gtop/proc/alloc.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/alloc.c Thu Jan 15 14:36:56 1998 @@ -0,0 +1,49 @@ +/***********************************************************************\ +* Copyright (C) 1992 by Michael K. Johnson, johnsonm@sunsite.unc.edu * +* * +* This file is placed under the conditions of the GNU public * +* license, version 2, or any later version. See file COPYING * +* for information on distribution conditions. * +\***********************************************************************/ +#include +#include + +void *xcalloc(void *pointer, int size) { + void * ret; + if (pointer) + free(pointer); + if (!(ret = calloc(1, size))) { + fprintf(stderr, "xcalloc: allocation error, size = %d\n", size); + exit(1); + } else { + return ret; + } +} + +void *xmalloc(unsigned int size) { + void *p; + + if (size == 0) + ++size; + p = malloc(size); + if (!p) { + fprintf(stderr, "xmalloc: malloc(%d) failed", size); + perror(NULL); + exit(1); + } + return(p); +} + +void *xrealloc(void *oldp, unsigned int size) { + void *p; + + if (size == 0) + ++size; + p = realloc(oldp, size); + if (!p) { + fprintf(stderr, "xrealloc: realloc(%d) failed", size); + perror(NULL); + exit(1); + } + return(p); +} diff -uNr gnome-0.11/programs/gtop/proc/compare.c gnome-0.12/programs/gtop/proc/compare.c --- gnome-0.11/programs/gtop/proc/compare.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/compare.c Thu Jan 15 14:36:58 1998 @@ -0,0 +1,307 @@ +/* + * + * Copyright 1994 Charles Blake and Michael K. Johnson + * This file is a part of procps, which is distributable + * under the conditions of the GNU Public License. See the + * file COPYING for details. + * + */ + +#include /* for strcmp */ +#include /* for parse error output */ +#include "proc/readproc.h" /* for proc_t */ +#include "proc/tree.h" /* for struct tree_node */ + +/* + This module was written by Charles Blake for procps. + +mult_lvl_cmp: + slick general purpose multi-level compare function I invented. +sort_depth: + the number of levels of functions *to use*. This means many more levels + can be defined than mult_lvl_cmp tres out. If this is 1 then mult_lvl_cmp + is just a trivial wrapper around (*sort_function[0]). +sort_direction: + multiplicative factor for the output of cmp_whatever. + 1 ==> default order, -1 ==> reverse order, 0 ==> forced equality + The 0 bit is the neat part. Since a value of zero is the code for equality + multiplying the output of cmp_foo(a,b) forces a==b to be true. This is a + convenient way to turn sorting off in middle levels of a multi-level sort. + If time is a problem, reforming the whole sort_function array to not include + these unsorted middle levels will be faster since then cmp_foo won't even + be called. It might simplify some code depending upon how you organize it. +sort_function[]: + array of function pointers that points to our family of comparison functions + (I have named them cmp_* but mult_lvl_cmp doesn't care what they're named). + This may be declared and initialized like so: + int (*sort_function[])(void* a, void* b)={&cmp_foo, &cmp_bar, &cmp_hiho}; + You could also use my command line '-O' parser below. + +Note that we only descend levels until the order is determined. If we descend +all levels, that means that the items are equal at all levels, so we return 0. +Otherwise we return whatever the level's cmp_foo function would have returned. +This allows whatever default behavior you want for cmp_foo. sort_direction[] +reverses this default behavior, but mult_lvl_cmp doesn't decide that ascending +or descending is the default. That is the job of your cmp_foo's. +*/ + +/* the only reason these are global is because qsort(3) likes it that way. + It's also a little more efficient if mult_lvl_cmp() is called many times. +*/ + +typedef int (*cmp_t)(void*,void*); /* for function pointer casts */ + +int sort_depth = 0; +int sort_direction[10]; /* storage for 10 levels, but 4 would be plenty!*/ +int (*sort_function[10])(void* a, void* b); + +int mult_lvl_cmp(void* a, void* b) { + int i, cmp_val; + for(i = 0; i < sort_depth; i++) { + cmp_val = sort_direction[i] * (*sort_function[i])(a,b); + if (cmp_val != 0) + return cmp_val; + } + return 0; +} + +int node_mult_lvl_cmp(void* a, void* b) { + int i, cmp_val; + for(i = 0; i < sort_depth; i++) { + cmp_val = sort_direction[i] * (*sort_function[i])(&(((struct tree_node *)a)->proc),&(((struct tree_node *)b)->proc)); + if (cmp_val != 0) + return cmp_val; + } + return 0; +} + +/* qsort(3) compliant comparison functions for all members of the ps_proc + structure (in the same order in which they appear in the proc_t declaration) + return is {-1,0,1} as {ab} + default ordering is ascending for all members. (flip 1,-1 to reverse) +*/ +/* pre-processor macros to cut down on source size (and typing!) + Note the use of the string concatenation operator ## +*/ +#define CMP_STR(NAME) \ +int cmp_ ## NAME(proc_t** P, proc_t** Q) { \ + return strcmp((*P)-> ## NAME, (*Q)-> ## NAME); \ +} + +#define CMP_INT(NAME) \ +int cmp_ ## NAME (proc_t** P, proc_t** Q) { \ + if ((*P)-> ## NAME < (*Q)-> ## NAME) return -1; \ + if ((*P)-> ## NAME > (*Q)-> ## NAME) return 1; \ + return 0; \ +} + +/* Define the (46!) cmp_ functions with the above macros for every element + of proc_t. If the binary gets too big, we could nuke inessentials. +*/ + +/* CMP_STR(cmdline) */ +CMP_STR(user) +CMP_STR(cmd) +/* CMP_INT(state) */ +/* CMP_STR(ttyc) */ +CMP_INT(uid) +CMP_INT(pid) +CMP_INT(ppid) +CMP_INT(pgrp) +CMP_INT(session) +CMP_INT(tty) +CMP_INT(tpgid) +CMP_INT(utime) +CMP_INT(stime) +CMP_INT(cutime) +CMP_INT(cstime) +/* CMP_INT(priority) */ +CMP_INT(nice) +CMP_INT(start_time) +/* CMP_INT(signal) */ +/* CMP_INT(blocked) */ +/* CMP_INT(sigignore) */ +/* CMP_INT(sigcatch) */ +CMP_INT(flags) +CMP_INT(min_flt) +CMP_INT(cmin_flt) +CMP_INT(maj_flt) +CMP_INT(cmaj_flt) +/* CMP_INT(timeout) */ +CMP_INT(vsize) +CMP_INT(rss) +/* CMP_INT(rss_rlim) */ +/* CMP_INT(start_code) */ +/* CMP_INT(end_code) */ +/* CMP_INT(start_stack) */ +/* CMP_INT(kstk_esp) */ +/* CMP_INT(kstk_eip) */ +/* CMP_INT(wchan) */ +CMP_INT(pcpu) +CMP_INT(size) +CMP_INT(resident) +CMP_INT(share) +/* CMP_INT(trs) */ +/* CMP_INT(lrs) */ +/* CMP_INT(drs) */ +/* CMP_INT(dt) */ + +/* define user interface to sort keys. Fairly self-explanatory. */ + +struct cmp_fun_struct { + char letter; /* single option-letter for key */ + char name[15]; /* long option name for key */ + int (*fun)(proc_t**, proc_t**); /* pointer to cmp_key */ +} cmp[] = { +/* { '?', "cmdline", &cmp_cmdline }, */ + { 'u', "user", &cmp_user }, + { 'c', "cmd", &cmp_cmd }, +/* { '?', "state", &cmp_state }, */ +/* { '?', "ttyc", &cmp_ttyc }, */ + { 'U', "uid", &cmp_uid }, + { 'p', "pid", &cmp_pid }, + { 'P', "ppid", &cmp_ppid }, + { 'g', "pgrp", &cmp_pgrp }, + { 'o', "session", &cmp_session }, + { 't', "tty", &cmp_tty }, + { 'G', "tpgid", &cmp_tpgid }, + { 'k', "utime", &cmp_utime }, + { 'K', "stime", &cmp_stime }, + { 'j', "cutime", &cmp_cutime }, + { 'J', "cstime", &cmp_cstime }, +/* { '?', "counter", &cmp_counter }, */ + { 'y', "priority", &cmp_nice }, + { 'T', "start_time", &cmp_start_time }, +/* { '?', "signal", &cmp_signal }, */ +/* { '?', "blocked", &cmp_blocked }, */ +/* { '?', "sigignore", &cmp_sigignore }, */ +/* { '?', "sigcatch", &cmp_sigcatch }, */ + { 'f', "flags", &cmp_flags }, + { 'm', "min_flt", &cmp_min_flt }, + { 'n', "cmin_flt", &cmp_cmin_flt }, + { 'M', "maj_flt", &cmp_maj_flt }, + { 'N', "cmaj_flt", &cmp_cmaj_flt }, +/* { 'C', "timeout", &cmp_timeout }, */ + { 'v', "vsize", &cmp_vsize }, + { 'r', "rss", &cmp_rss }, +/* { '?', "rss_rlim", &cmp_rss_rlim }, */ +/* { '?', "start_code", &cmp_start_code }, */ +/* { '?', "end_code", &cmp_end_code }, */ +/* { '?', "start_stack", &cmp_start_stack }, */ +/* { '?', "kstk_esp", &cmp_kstk_esp }, */ +/* { '?', "kstk_eip", &cmp_kstk_eip }, */ +/* { '?', "wchan", &cmp_wchan }, */ + { 'C', "pcpu", &cmp_pcpu }, + { 's', "size", &cmp_size }, + { 'R', "resident", &cmp_resident }, + { 'S', "share", &cmp_share }, +/* { '?', "trs", &cmp_trs }, */ +/* { '?', "lrs", &cmp_lrs }, */ +/* { '?', "drs", &cmp_drs }, */ +/* { '?', "dt", &cmp_dt }, */ + { '\0',"terminator", NULL } +}; + +void dump_keys(void) { + int i; + for(i=0; cmp[i].letter; i++) + fprintf(stderr, "%s-O%c , --sort:%-15.15s%s", + i%2?"":" ", + cmp[i].letter, cmp[i].name, + i%2?"\n":""); + if (i%2) + fprintf(stderr, "\n"); +} + +/* command line option parsing. Assign sort_{depth,direction[],function[]} + based upon a string of the form: + [+-]a[+-]b[+-]c... + with a,b,c,... being letter flags corresponding to a particular sort + key and the optional '-' specifying a reverse sort on that key. + doesn't + mean anything, but it keeps things looking balanced... +*/ +int parse_sort_opt(char* opt) { + int i, next_dir=1; + for(; *opt ; ++opt) { + if (*opt == '-' || *opt == '+') { + if (*opt == '-') + next_dir = -1; + opt++; + continue; + } + for (i = 0; cmp[i].letter; i++) + if (*opt == cmp[i].letter) + break; + if (!cmp[i].letter) { + fprintf(stderr, + "ps: no such sort key -- %c. Possibilities are:\n", *opt); + dump_keys(); + return -1; + } else { +#ifdef DEBUG + fprintf(stderr, + "sort level %d: key %s, direction % d\n", + sort_depth, cmp[i].name, next_dir); +#endif + sort_function[sort_depth] = (cmp_t)cmp[i].fun; + sort_direction[sort_depth++] = next_dir; + next_dir = 1; + } + } + return 0; +} + +int parse_long_sort(char* opt) { + char* comma; + int i, more_keys, next_dir=1; + do { + if (*opt == '-' || *opt == '+') { + if (*opt == '-') + next_dir = -1; + more_keys = 1; + opt++; + continue; + } + more_keys = ((comma=index(opt,',')) != NULL); + /* keys are ',' delimited */ + if (more_keys) + *comma='\0'; /* terminate for strcmp() */ + for(i = 0; cmp[i].letter; ++i) + if (strcmp(opt, cmp[i].name) == 0) + break; + if (!cmp[i].letter) { + fprintf(stderr, + "ps: no such sort key -- %s. Possibilities are:\n", opt); + dump_keys(); + return -1; + } else { +#ifdef DEBUG + fprintf(stderr, + "sort level %d: key %s, direction % d\n", + sort_depth, cmp[i].name, next_dir); +#endif + sort_function[sort_depth] = (cmp_t)cmp[i].fun; + sort_direction[sort_depth++] = next_dir; + next_dir = 1; + } + opt = comma + 1; /* do next loop on next key, if more keys, else done*/ + } while (more_keys); + return 0; +} + +void reset_sort_options (void) +{ + int i; + + sort_depth=0; + for (i=0;i<10;i++){ + sort_direction[i]=0; + sort_function[i]=(cmp_t)NULL; + } +} + +void register_sort_function (int dir, cmp_t func) +{ + sort_function[sort_depth] = func; + sort_direction[sort_depth++] = dir; +} diff -uNr gnome-0.11/programs/gtop/proc/devname.c gnome-0.12/programs/gtop/proc/devname.c --- gnome-0.11/programs/gtop/proc/devname.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/devname.c Wed Jan 21 17:45:36 1998 @@ -0,0 +1,268 @@ +/* device name <-> number map system optimized for rapid, constant time lookup. + Copyright Charles Blake, 1996, see COPYING for details. +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define __KERNEL__ +#include +#undef __KERNEL__ + +#define DEVDIR "/dev" +#define DEVTAB "psdevtab" +static char *devtab_paths[] = { + "/etc/" DEVTAB, + "%s/." DEVTAB, + NULL +}; +#define DEVINITIALMODE 0664 +#define DEV_MAX_PATH (5+256) +#define DEV_NAME_MAX 8 + +static dev_t major[] = { 2, 3, 4, 5, 19, 20 }; +#define Nminor 256 +#define Nmajor (sizeof(major)/sizeof(dev_t)) +#define Ndev (Nmajor*Nminor) +#define Ndevtab (Ndev*DEV_NAME_MAX) + +static char* devtab; /* the memory buffer holding all the name strings */ + +/* This macro evaluates to the address into the table of the string of + DEV_NAME_MAX chars for the device with major m, minor n. */ +#define TAB(m,n) (devtab + (m)*(Nminor*DEV_NAME_MAX) + (n)*DEV_NAME_MAX) + +static int devtab_initialized = 0; + +static char* name_to_path(char* name); /* forward declarations */ +static int init_devtab (void); + +/* Device Name -> Number Map + many-to-one: -1 on failed match. +*/ +dev_t name_to_dev(char* name) { + static struct stat sbuf; + return (stat(name_to_path(name), &sbuf) < 0) ? -1 : sbuf.st_rdev; +} + +/* find m in a[] assuming a is sorted into ascending order */ +/* in-line linear search placeholder until more majors warrant binary search */ +static __inline__ int lookup(dev_t m, dev_t* a, int n) { + int k; + for(k=0; k < n && a[k] != m; k++) + ; + return (k < n) ? k : -1; +} + +/* Device Number -> Name Map + one-to-many: first directory order match in DEVDIR, "" on failed match. +*/ +char* dev_to_name(dev_t num) { + static char rval[DEV_NAME_MAX+1]; + dev_t m = MAJOR(num), n = MINOR(num), tmp; + if (!devtab_initialized && !init_devtab()) + return ""; + if ((tmp = lookup(m, major, Nmajor)) == (dev_t)-1) + return ""; + strncpy(rval, TAB(tmp,n), DEV_NAME_MAX); + rval[DEV_NAME_MAX] = '\0'; + return rval; +} + +static int dev_to_devtab(int); + +static int init_devtab(void) { + static struct stat sbuf, lbuf; + static int fd; + char **fmt, path[64], *HOME = getenv("HOME") ? getenv("HOME") : ""; + for (fmt = devtab_paths; *fmt; fmt++) { + g_snprintf(path, sizeof path, *fmt, HOME); + lbuf.st_ino = 0; /* initialize for test later */ + if (lstat(path, &lbuf) >= 0 && S_ISLNK(lbuf.st_mode)) + /* don't follow symlinks */ + continue; + if ( (fd = open(path, O_RDONLY)) < 0 /* open DEVTAB file */ + || fstat(fd, &sbuf) < 0 /* fstat it */ + || (lbuf.st_ino && (sbuf.st_ino != lbuf.st_ino)) /* race */ + || sbuf.st_nlink > 1 /* hardlink attack */ + || sbuf.st_size != Ndevtab /* make sure it's the right size */ + || (devtab = mmap(0, Ndevtab, PROT_READ, MAP_SHARED, fd, 0)) == (caddr_t) -1 + || close(fd) == -1) + { /* could not open for read, attempt to fix/create */ + int oumsk = umask(0); + if (devtab) + munmap(devtab, Ndevtab); + if (((fd = open(path, O_RDWR|O_TRUNC|O_CREAT, DEVINITIALMODE)) == -1 && + (unlink(path), fd = open(path, O_RDWR|O_TRUNC|O_CREAT, DEVINITIALMODE)) == -1) + || !dev_to_devtab(fd)) { + close(fd); /* either both opens failed or the constructor failed */ + unlink(path); /* in case we created but could not fill a file */ + umask(oumsk); + continue; + } else { + devtab_initialized = 1; + close(fd); + umask(oumsk); + return 1; + } + } + else + return devtab_initialized = 1; + } + return devtab_initialized; +} + +/* stat every file in DEVDIR saving its basename in devtab[] if it has + a MAJOR(st_rdev) in our list of majors. return 0 on error otherwise 1. */ +static int dev_to_devtab(int fd) { + static struct stat sbuf; + int i; + dev_t m; + struct dirent* ent; + DIR* dev; + + if (!(dev = opendir(DEVDIR))) { + fprintf(stderr, "%s: %s\nCannot generate device number -> name mapping.\n", + DEVDIR, sys_errlist[errno]); + return 0; + } + if (!(devtab = malloc(Ndevtab))) { + fprintf(stderr, "%s: could not allocate memory\n", sys_errlist[errno]); + return 0; + } + memset((void*)devtab, 0, Ndevtab); + while ((ent = readdir(dev))) { /* loop over all dirents in DEVDIR */ + if (lstat(name_to_path(ent->d_name), &sbuf) < 0 + || !S_ISCHR(sbuf.st_mode)) /* only look for char special devs */ + continue; /* due to overloading of majors */ + m = MAJOR(sbuf.st_rdev); /* copy name to appropriate spot */ + if ((i = lookup(m, major, Nmajor)) != -1) + strncpy(TAB(i,MINOR(sbuf.st_rdev)), ent->d_name, DEV_NAME_MAX); + } + closedir(dev); + if (write(fd, devtab, Ndevtab) != Ndevtab) /* probably no disk space */ + return 0; + return 1; +} + +static char path[DEV_MAX_PATH]; + +static char* name_to_path(char* name) { + static char* Path; + if (!Path) { + strcpy(path, DEVDIR); /* copy DEVDIR */ + path[sizeof(DEVDIR) - 1] = '/'; /* change NUL to '/' */ + Path = path + sizeof(DEVDIR); /* put Path at start of basename */ + } + strncpy(Path, name, DEV_MAX_PATH - sizeof(DEVDIR)); + return path; +} + +#ifdef TEST_DEVNAME +int main(int argc, char** argv) { /* usage: cmd [ |] */ + dev_t tmp; + if (argc < 2) { + printf("%s: [ maj min... | name ... ]\n", argv[0]); + return 0; + } + if (argv[1][0] >= '0' && argv[1][0] <= '9') + for(argv++ ; argv[0] && argv[1] ; argv+=2) + printf("%s\n", dev_to_name(MKDEV( atoi(argv[0]), atoi(argv[1]) ))); + else + for(argv++ ; *argv ; argv++) { + tmp = name_to_dev(*argv); + printf("%d, %d\n", MAJOR(tmp), MINOR(tmp)); + } + return 0; +} +#endif +/* +Using this program on over 700 files in /dev to perform number->name resolution +took well under 300 microsecs per device number pair on a Pentium 90. It is +somewhat tough to time because once the 3 pages have been mapped in, the time is +almost zero. For things like top, this method may even be faster in the long +run. Those interested can gprof it for me. This system has the virtue of being +nearly perfectly adaptable to individual systems, self updating when /dev +changes and pretty darn fast when it hasn't. It will be slow for users without +perms to change the psdevtab file, though. So this is what I decided was +reasonable. If the process does not have perms to create or update +/etc/psdevtab and it is out of date, we try /tmp/psdevtab. If /tmp/psdevtab is +either out of date or unreadable (malicious user creates it and chmods it), +$HOME/.psdevtab is used. This secondarily allows for per-user naming of ttys, +but is really so that at most one user sees only a single delay per /dev +modification. + +To do the timings I did something like this with zsh: + a=(`ls -l *(%^@/) | awk '{print $5 $6}' | sed 's/,/ /'`); + time ./test $a + +Finally, for lack of a better file for these to be in, I have collected the +old algorithmic device number <-> device name mappings. + Let m = major device number and n = minor device number satisfy: + devno = m<<8 + n , m = devno>>8 , n = devno && 0x00FF, and let + char L[32]="pqrstuvwxyzABCDEFGHIJKLMNOPQRSTU", H[16]="01234567890abcdef"; + DEVICE NUMBERS SPECIAL FILE NAMES + OLD SYSTEM (64 pseudoterminal devices): + m=4: + n=0..63: tty + itoa_dec(n+1) + n=128..191: pty + L[(n-128)/16] + H[(n-128)%16] + n=192..255: tty + L[(n-192)/16] + H[(n-192)%16] + NEW SYSTEM (256/512 pseudoterminal devices): + m=2, n: pty + L[n/16] + H[n%16] + m=3, n: tty + L[n/16] + H[n%16] + m=4, n: tty + itoa_dec(n+1) + m=49, n: pty + L[16+n/16] + H[n%16] + m=50, n: tty + L[16+n/16] + H[n%16] + (THE SAME IN EITHER SYSTEM) + CALL-UNIX AND CONTROLLING TERMINAL DEVICES + m=5: + n=0: tty + n=64..128: cua + {'0' + (n-64)} + CYCLADES MULTIPORT: + m=19, n: ttyC + itoa_hex(n) + m=20, n: cub + itoa_hex(n) */ + +/* Re-implementation of old interface with the new generic functions. */ + +/* This does exactly the same thing as name_to_dev only now a full "ttyXX" + specification will work as well. +*/ +int tty_to_dev(char *tty) { + static char pref_name_1[32] = "tty", *pnam1 = pref_name_1 + 3, + pref_name_2[32] = "cu", *pnam2 = pref_name_2 + 2; + dev_t num; + if ((num = name_to_dev(tty)) != (dev_t) -1) /* try tty straight up */ + return num; + strncpy(pnam1, tty, 32 - 3); /* try with "tty" prepended */ + if ((num = name_to_dev(pref_name_1)) != (dev_t) -1) + return num; + strncpy(pnam2, tty, 32 - 2); /* try with "cu" prepended */ + if ((num = name_to_dev(pref_name_2)) != (dev_t) -1) + return num; + return -1; /* no match */ +} + +/* new abstraction that can maybe be generalized a little better. */ +char* abbrev_of_tty(char *tty) { + static char temp[32]; /* return buf: good only until next call */ + char *pos = strpbrk(tty, "yu"); /* end of (presumed) prefices: tty*, cu* */ + temp[0] = 0; + if (tty && tty[0] && pos && pos[0] && pos[1]) + sprintf(temp, "%*.*s", 3, 3, pos + 1); + else + strncpy(temp, " ? ", 31); + return temp; +} + +/* Do in-place modification of the 4-buffer `tty' based upon `dev' */ +void dev_to_tty(char *tty, int dev) { + char* new = abbrev_of_tty(dev_to_name(dev)); + strncpy(tty, new, 4); +} diff -uNr gnome-0.11/programs/gtop/proc/devname.h gnome-0.12/programs/gtop/proc/devname.h --- gnome-0.11/programs/gtop/proc/devname.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/devname.h Thu Jan 15 14:37:01 1998 @@ -0,0 +1,10 @@ + +#include + +dev_t name_to_dev(char* name); +char* dev_to_name(dev_t num); + +dev_t tty_to_dev(char *tty); +void dev_to_tty(char *tty, int dev); + +char* abbrev_of_tty(char *tty); diff -uNr gnome-0.11/programs/gtop/proc/ksym.c gnome-0.12/programs/gtop/proc/ksym.c --- gnome-0.11/programs/gtop/proc/ksym.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/ksym.c Wed Jan 21 17:45:36 1998 @@ -0,0 +1,252 @@ +/* kernel address -> symbol with next lower address. Charles Blake, 1996. + * Written to obviate the need for psdatabase initialization based upon kernel + * binary formats, etc. + * + * The basic algorithm is an approximate (intervals split vaguely 50-50) binary + * search taking advantage of the fact the System.map is already sorted in + * ascending order by the kernel makefile. It needs to assume an average symbol + * record length to avoid scanning the entire symbol table, but in practice the + * search time does not seem to be especially sensitive to this choice. + * + * The search could be an exact binary search if the lines of System.map were + * padded with blanks to the right. awk '{printf "%8s%2s %-21.21s\n",$1,$2,$3}' + * would do the trick for this but either makes the file large or truncates + * symbols. The approximate method seems to be plenty fast enough, costing + * only about as much as one extra fstat() or so per process. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include "proc/psdata.h" +#include "proc/ps.h" +#include "proc/version.h" + +#define MAX_ADDR_SZ 32 +static char *sysmap, *sysmap_last, sysmap_fmt[10]; +static int sysmap_len, sysmap_mean = 32, sysmap_addrsz; + +/* scan backward in a string no further than address beg looking for c */ +static char *strchrrev(char *a, char *beg, char c) { + if (a) + while (--a > beg && *a != c) ; + return a; +} + +/* return ptr to the beg of approximately the i-th record */ +static char *addr_str(int i) { + char *guess = sysmap + sysmap_mean * i; + if (!i) return sysmap; + if (guess - sysmap > sysmap_len - 2) guess = sysmap + sysmap_len - 2; + for ( ; *guess != '\n' && guess > sysmap; guess--) + ; + return guess + 1; + +} + +/* return ptr to symbol string (\n terminated) given beg of record ptr */ +static char *sym_put(char *buf, int len, char *addrptr) { + char *s; + while (*addrptr++ != ' ') ; + while (*addrptr++ != ' ') ; + strncpy(buf, addrptr, len); + for (s = buf; s < buf + len; s++) + if (*s == '\n') + *s = '\0'; + buf[len - 1] = '\0'; + return buf; +} + +/* Try to open and mmap a single symbol table file and initialize globals */ +int sysmap_mmap(char *path) { + int fd; + struct stat sbuf; + char *p; + if (sysmap) /* do nothing if already mapped */ + return 1; + if ((fd = open(path, O_RDONLY)) < 0 + || fstat(fd, &sbuf) < 0 + || (sysmap = mmap(0, sbuf.st_size, + PROT_READ, MAP_SHARED, + fd, 0)) == (caddr_t) -1) + { + close(fd); + sysmap = NULL; + return 0; + } + sysmap_len = sbuf.st_size; + sysmap_last = strchrrev(sysmap + sysmap_len - 2, sysmap, '\n') + 1; + + /* Now check first line of sysmap for hex numbers in first column. Note: + 0x/0X prefixes are disallowed, but easily addable. Capitalization is + irrelevant because strncasecmp(3) is used below instead of strncmp. */ + for (p = sysmap; *p != ' ' + && ((*p >= '0' && *p <= '9') || + (*p >= 'A' && *p <= 'F') || + (*p >= 'a' && *p <= 'f')) + && p < sysmap + MAX_ADDR_SZ; + p++) /* no-op */ ; + if (*p != ' ') { /* uh-oh: cannot understand format */ + fprintf(stderr, "warning: %s not parseable as a System.map.\n", path); + munmap(sysmap, sysmap_len); + sysmap = NULL; + close(fd); + return 0; + } + sysmap_addrsz = p - sysmap; + g_snprintf(sysmap_fmt, sizeof sysmap_fmt, "%%0%dlx", sysmap_addrsz); + close(fd); + return 1; +} + +/* kernel address -> name resolver. + returned value is only good until the next call to the function. + */ +char *sysmap_symbol(unsigned long address) { + static char rval[128], *pc, addr[MAX_ADDR_SZ]; + int i, p, n = sysmap_len / (double)sysmap_mean; + + sprintf(addr, sysmap_fmt, address); + p = 0; pc = sysmap; + while (n) { + i = p + (n >> 1); + if (strncasecmp(addr, pc = addr_str(i), sysmap_addrsz) > 0) + p = i + 1; + n >>= 1; + } + if (pc == sysmap_last) /* scan forward but not past end */ + return sym_put(rval, sizeof rval, pc); + while (strncasecmp(addr, pc, sysmap_addrsz) > 0) + pc = strchr(pc, '\n') + 1; + if (pc == sysmap) /* scan backward but not past beg */ + return sym_put(rval, sizeof rval, pc); + while (strncasecmp(addr, pc, sysmap_addrsz) < 0) + pc = strchrrev(pc - 1, sysmap, '\n') + 1; + return sym_put(rval, sizeof rval, pc); +} + +/* extern struct nlist *namelist; */ +struct tbl_s vars, fncs; +struct psdb_hdr db_hdr; +int psdb = -1; + +int open_psdb(void) { + static char *sysmap_paths[] = { + "/boot/System.map-%s", + "/boot/System.map", + "/lib/modules/%s/System.map", + NULL + }; + static char *psdb_paths[] = { + "/etc/psdatabase", + "/boot/psdatabase-%s", + "/boot/psdatabase", + "/lib/modules/%s/psdatabase", + NULL + }; + char **fmt, *env, path[64]; + struct utsname uts; + uname(&uts); + if ((env = getenv("PS_SYSMAP")) && sysmap_mmap(env)) + return 0; + for (fmt = sysmap_paths; *fmt; fmt++) { + g_snprintf(path, sizeof path, *fmt, uts.release); + if (sysmap_mmap(path)) + return 0; + } + for (fmt = psdb_paths; *fmt; fmt++) { + g_snprintf(path, sizeof path, *fmt, uts.release); + if ((psdb = open(path, O_RDONLY)) != -1 && + read(psdb, (char*)&db_hdr, sizeof db_hdr) == sizeof db_hdr && + strncmp(db_hdr.magic, procps_version, sizeof(db_hdr.magic)) == 0) + /* && version_cmp(kernel,psdatabase) */ + return 0; + if (psdb != -1) + fprintf(stderr, + "psdatabase has magic no. %*s instead of %*s\n", + (int) sizeof db_hdr.magic, db_hdr.magic, + (int) sizeof db_hdr.magic, procps_version); + close(psdb); + } + return -1; +} + +void close_psdb(void) { + if (sysmap) + munmap(sysmap, sysmap_len); + else if (psdb != -1) + close(psdb); + psdb = -1; + sysmap = NULL; +} + +int read_tbl(struct dbtbl_s *dbtbl, struct tbl_s *tbl) { + lseek(psdb, dbtbl->off, SEEK_SET); + tbl->tbl = (struct sym_s *) xmalloc(dbtbl->size); + if (read(psdb, (char *) tbl->tbl, dbtbl->size) != dbtbl->size) { + perror(PSDATABASE); + exit(1); + } + tbl->nsym = dbtbl->nsym; + tbl->strings = (char *) (tbl->tbl + tbl->nsym); + return 0; +} + +char * find_func(unsigned long address) { + int n; + struct sym_s *p; + char *s; + + if (sysmap) + return sysmap_symbol(address); + if (psdb == -1) + return "(no psdb)"; + if (fncs.tbl == NULL) + read_tbl(&db_hdr.fncs, &fncs); + p = fncs.tbl; + n = fncs.nsym; + while (n) { + int i = n / 2; + if (p[i].addr < address) { + p = &p[i+1]; + if (p->addr > address) { + --p; + break; + } + --n; + } + n /= 2; + } + s = p->name + fncs.strings; + return *s=='_' ? s+1 : s; +} + +char * wchan(unsigned long address) { + static char zero = 0; + char *p; + + if (address) { + p = find_func(address); + if (strncmp(p, "sys_", 4) == 0) + p += 4; + while (*p == '_' && *p) + ++p; + } else /* 0 address means not in kernel space */ + p = &zero; + return p; +} + +#ifdef SYSMAP_TEST +int main(int ac, char** av) { + if (ac < 3) {printf("%s System.map lines hexaddr ...\n",av[0]); return 1;} + if (!sysmap_mmap(av[1])) return 1; + if ((sysmap_mean = atoi(av[2])) <= 0) return 1; + for (av += 3; *av; av++) + printf("%s %s\n", *av, sysmap_symbol(strtoul(*av, NULL, 16))); + return 0; +} +#endif diff -uNr gnome-0.11/programs/gtop/proc/output.c gnome-0.12/programs/gtop/proc/output.c --- gnome-0.11/programs/gtop/proc/output.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/output.c Thu Jan 15 14:37:05 1998 @@ -0,0 +1,52 @@ +/* + Some output conversion routines for libproc + Copyright (C) 1996, Charles Blake. See COPYING for details. +*/ +#include +#include +#include + +/* output a string, converting unprintables to octal as we go, and stopping after + processing max chars of output (accounting for expansion due to octal rep). +*/ +unsigned print_str(FILE* file, char *s, unsigned max) { + int i; + for (i=0; s[i] && i < max; i++) + if (isprint(s[i]) || s[i] == ' ') + fputc(s[i], file); + else { + if (max - i > 3) { + fprintf(file, "\\%03o", s[i]); + i += 3; /* 4 printed, but i counts one */ + } else + return max - i; + } + return max - i; +} + +/* output an argv style NULL-terminated string list, converting unprintables + to octal as we go, separating items of the list by 'sep' and stopping after + processing max chars of output (accounting for expansion due to octal rep). +*/ +unsigned print_strlist(FILE* file, char **strs, char* sep, unsigned max) { + int i, n, seplen = strlen(sep); + for (n=0; *strs && n < max; strs++) { + for (i=0; strs[0][i] && n+i < max; i++) + if (isprint(strs[0][i]) || strs[0][i] == ' ') + fputc(strs[0][i], file); + else { + if (max-(n+i) > 3) { + fprintf(file, "\\%03o", strs[0][i]); + n += 3; /* 4 printed, but i counts one */ + } else + return max - n; + } + n += i; + if (n + seplen < max) { + fputs(sep, file); + n += seplen; + } else + return max - n; + } + return max - n; +} diff -uNr gnome-0.11/programs/gtop/proc/ps.h gnome-0.12/programs/gtop/proc/ps.h --- gnome-0.11/programs/gtop/proc/ps.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/ps.h Thu Jan 15 14:37:05 1998 @@ -0,0 +1,30 @@ +/* The shadow of the original with only common prototypes now. */ +#include +#include + +/* get definition of HZ */ +#include + +/* get page info */ +#include + +char *wchan(unsigned long); +char *find_func(unsigned long address); +void *xcalloc(void *pointer, int size); +void *xmalloc(unsigned int size); +void *xrealloc(void *oldp, unsigned int size); + +int mult_lvl_cmp(void* a, void* b); +int node_mult_lvl_cmp(void* a, void* b); +void dump_keys(void); + +char *user_from_uid(int uid); + +int open_sysmap(void); +int open_psdb(void); +void close_psdb(void); +void make_fnctbl(void); + +unsigned print_str (FILE* file, char *s, unsigned max); +unsigned print_strlist(FILE* file, char **strs, char* sep, unsigned max); +unsigned snprint_strlist(char *buf, int max, char **strs, char *sep); diff -uNr gnome-0.11/programs/gtop/proc/psdata.h gnome-0.12/programs/gtop/proc/psdata.h --- gnome-0.11/programs/gtop/proc/psdata.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/psdata.h Thu Jan 15 14:37:05 1998 @@ -0,0 +1,103 @@ +/* + * psdata.h + * + * Jeffrey A. Uphoff , 1995, 1996. + * Michael K. Johnson. + * Bruno Lankester. + * (And others I'm sure...) + * + */ + +/* + * Capabilities are for reading system images and producing maps for + * WCHAN output. + * + * AOUT_CAPABLE and ELF_CAPABLE may have 32-bit word size limitations + * and have only been tested by the maintainer on Intel systems. They + * are retained in the source tree in case they are useful; they are + * intended to be generally deprecated. + * + * BFD_CAPABLE should work on any system with BFD. + * + * Set the capabilities in the top-level Makefile. + */ + +#if defined(ELF_CAPABLE) +# define ELF_OBJECT 1 +# define ELF_FUNC 2 +#endif + +#include +#include + +#define PSDATABASE "/etc/psdatabase" + +struct dbtbl_s { + off_t off; /* offset in psdatabase */ + int nsym; /* # symbols */ + int size; /* size of array + strings */ +}; + +/* + * header of psdatabase + */ +struct psdb_hdr { + /* Current procps package version goes here. kmemps doesn't like this. */ + char magic[32]; + /* + * These are not functional--they only reside in the database for + * informational purposes (i.e. if you want to look at the raw + * database and see what kernel it's for). + */ + char uts_release[__NEW_UTS_LEN]; + char uts_version[__NEW_UTS_LEN]; + /* + * Again, this is not functional, it's just there for information: it + * shows the path to the uncompressed kernel image that was used to + * generate this database. + */ + char sys_path[128]; + /* List of all functions. */ + struct dbtbl_s fncs; + /* + * This is currently only used to look up system_utsname while + * psupdate is building the database--it really should be phased out! + */ + /* List of all bss and data symbols. */ + struct dbtbl_s vars; + /* + * The list of tty names that kmemps likes/uses in no longer present + * in the procps psdatabase--it was never being built by procps' + * psupdate anyway, so I removed the entry from the database header. + */ +}; + +struct sym_s { + unsigned long addr; /* core address in kernel */ + int name; /* offset from strings ptr */ +}; + +struct tbl_s { + struct sym_s *tbl; + int nsym; + char *strings; /* ptr to start of strings */ +}; + +extern struct psdb_hdr db_hdr; +extern struct tbl_s fncs, vars; + +int read_tbl (struct dbtbl_s *, struct tbl_s *); +void *xmalloc (unsigned int); +void *xrealloc (void *, unsigned int); + +#define MLSEEK(FD, WHERE, WHENCE, ERROR)\ +if (lseek ((FD), (WHERE), (WHENCE)) == -1) {\ + perror ((ERROR));\ + exit (errno);\ +} + +#define MREAD(FD, WHAT, SIZE, ERROR)\ +if (read ((FD), (WHAT), (SIZE)) != (SIZE)) {\ + perror ((ERROR));\ + exit (errno);\ +} diff -uNr gnome-0.11/programs/gtop/proc/pwcache.c gnome-0.12/programs/gtop/proc/pwcache.c --- gnome-0.11/programs/gtop/proc/pwcache.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/pwcache.c Thu Jan 15 14:37:05 1998 @@ -0,0 +1,37 @@ +#include +#include +#include +#include "proc/ps.h" + +#define HASHSIZE 16 /* power of 2 */ +#define HASH(x) ((x) & (HASHSIZE - 1)) + + +static struct pwbuf { + int uid; + char name[12]; + struct pwbuf *next; +} *pwhash[HASHSIZE]; + +char *user_from_uid(int uid) +{ + struct pwbuf **p; + struct passwd *pw; + + p = &pwhash[HASH(uid)]; + while (*p) { + if ((*p)->uid == uid) + return((*p)->name); + p = &(*p)->next; + } + *p = (struct pwbuf *) xmalloc(sizeof(struct pwbuf)); + (*p)->uid = uid; + if ((pw = getpwuid(uid)) == NULL) + sprintf((*p)->name, "#%d", uid); + else + sprintf((*p)->name, "%-.8s", pw->pw_name); + (*p)->next = NULL; + return((*p)->name); +} + +void bad_user_access_length() { } diff -uNr gnome-0.11/programs/gtop/proc/readproc.c gnome-0.12/programs/gtop/proc/readproc.c --- gnome-0.11/programs/gtop/proc/readproc.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/readproc.c Thu Jan 15 14:37:25 1998 @@ -0,0 +1,393 @@ +/* + * New Interface to Process Table -- PROCTAB Stream (a la Directory streams) + * Copyright(C) 1996. Charles L. Blake. + */ +#include "proc/version.h" +#include "proc/readproc.h" +#include "proc/devname.h" +#include "proc/ps.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define Do(x) (flags & PROC_ ## x) /* convenient shorthand */ + +/* initiate a process table scan + */ +PROCTAB* openproc(int flags, ...) { + va_list ap; + PROCTAB* PT = xmalloc(sizeof(PROCTAB)); + + if (!Do(PID) && !(PT->procfs = opendir("/proc"))) + return NULL; + PT->flags = flags; + va_start(ap, flags); /* Init args list */ + if (Do(PID)) + PT->pids = va_arg(ap, pid_t*); + else if (Do(TTY)) + PT->ttys = va_arg(ap, dev_t*); + else if (Do(UID)) { + PT->uids = va_arg(ap, uid_t*); + PT->nuid = va_arg(ap, int); + } else if (Do(STAT)) + PT->stats = va_arg(ap, char*); + va_end(ap); /* Clean up args list */ + if (Do(ANYTTY) && Do(TTY)) + PT->flags = PT->flags & ~PROC_TTY; /* turn off TTY flag */ + return PT; +} + +/* terminate a process table scan + */ +void closeproc(PROCTAB* PT) { + if (PT->procfs) closedir(PT->procfs); + if (PT) free(PT); +} + +/* deallocate the space allocated by readproc if the passed rbuf was NULL + */ +void freeproc(proc_t* p) { + if (!p) /* in case p is NULL */ + return; + /* ptrs are after strings to avoid copying memory when building them. */ + /* so free is called on the address of the address of strvec[0]. */ + if (p->cmdline) + free((void*)*p->cmdline); + if (p->environ) + free((void*)*p->environ); + free(p); +} + +/* stat2proc() makes sure it can handle arbitrary executable file basenames + for `cmd', i.e. those with embedded whitespace or embedded ')'s. Such names + confuse %s (see scanf(3)), so the string is split and %39c is used instead. + (except for embedded ')' "(%[^)]c)" would work. +*/ +void stat2proc(char* S, proc_t* P) { + char* tmp = strrchr(S, ')'); /* split into "PID (cmd" and "" */ + *tmp = '\0'; /* replace trailing ')' with NUL */ + /* parse these two strings separately, skipping the leading "(". */ + memset(P->cmd, 0, sizeof P->cmd); /* clear even though *P xcalloc'd ?! */ + sscanf(S, "%d (%39c", &P->pid, P->cmd); + sscanf(tmp + 2, /* skip space after ')' too */ + "%c %d %d %d %d %d %lu %lu %lu %lu %lu %ld %ld %ld %ld %d " + "%d %lu %lu %ld %lu %lu %lu %lu %lu %lu %lu %lu %d %d %d %d %lu", + &P->state, &P->ppid, &P->pgrp, &P->session, &P->tty, &P->tpgid, + &P->flags, &P->min_flt, &P->cmin_flt, &P->maj_flt, &P->cmaj_flt, + &P->utime, &P->stime, &P->cutime, &P->cstime, &P->priority, &P->nice, + &P->timeout, &P->it_real_value, &P->start_time, &P->vsize, &P->rss, + &P->rss_rlim, &P->start_code, &P->end_code, &P->start_stack, + &P->kstk_esp, &P->kstk_eip, &P->signal, &P->blocked, &P->sigignore, + &P->sigcatch, &P->wchan); + if (P->tty == 0) + P->tty = -1; /* the old notty val, update elsewhere bef. moving to 0 */ + if (linux_version_code < LINUX_VERSION(1,3,39)) { + P->priority = 2*15 - P->priority; /* map old meanings to new */ + P->nice = 15 - P->nice; + } + if (linux_version_code < LINUX_VERSION(1,1,30) && P->tty != -1) + P->tty = 4*0x100 + P->tty; /* when tty wasn't full devno */ +} + +void statm2proc(char* s, proc_t* P) { + sscanf(s, "%ld %ld %ld %ld %ld %ld %ld", + &P->size, &P->resident, &P->share, + &P->trs, &P->lrs, &P->drs, &P->dt); +} + +void nulls2sep(char* str, int len, char sep) { + int i; + for (i = 0; i < len; i++) + if (str[i] == 0) + str[i] = sep; +} + +int file2str(char *directory, char *what, char *ret, int cap) { + static char filename[80]; + int fd, num_read; + + sprintf(filename, "%s/%s", directory, what); + if ( (fd = open(filename, O_RDONLY, 0)) == -1 ) return -1; + if ( (num_read = read(fd, ret, cap - 1)) <= 0 ) return -1; + ret[num_read] = 0; + close(fd); + return num_read; +} + +char** file2strvec(char* directory, char* what) { + char buf[2048]; /* read buf bytes at a time */ + char *p, *rbuf = 0, *endbuf, **q, **ret; + int fd, tot = 0, n, c, end_of_file = 0; + int align; + + sprintf(buf, "%s/%s", directory, what); + if ( (fd = open(buf, O_RDONLY, 0) ) == -1 ) return NULL; + + /* read whole file into a memory buffer, allocating as we go */ + while ((n = read(fd, buf, sizeof buf - 1)) > 0) { + if (n < sizeof buf - 1) + end_of_file = 1; + if (n == 0 && rbuf == 0) + return NULL; /* process died between our open and read */ + if (n < 0) { + if (rbuf) + free(rbuf); + return NULL; /* read error */ + } + if (end_of_file && buf[n-1]) /* last read char not null */ + buf[n++] = '\0'; /* so append null-terminator */ + rbuf = xrealloc(rbuf, tot + n); /* allocate more memory */ + memcpy(rbuf + tot, buf, n); /* copy buffer into it */ + tot += n; /* increment total byte ctr */ + if (end_of_file) + break; + } + close(fd); + if (n <= 0 && !end_of_file) { + if (rbuf) free(rbuf); + return NULL; /* read error */ + } + endbuf = rbuf + tot; /* count space for pointers */ + align = (sizeof(char*)-1) - ((tot + sizeof(char*)-1) & (sizeof(char*)-1)); + for (c = 0, p = rbuf; p < endbuf; p++) + if (!*p) + c += sizeof(char*); + c += sizeof(char*); /* one extra for NULL term */ + + rbuf = xrealloc(rbuf, tot + c + align); /* make room for ptrs AT END */ + endbuf = rbuf + tot; /* addr just past data buf */ + q = ret = (char**) (endbuf+align); /* ==> free(*ret) to dealloc */ + *q++ = p = rbuf; /* point ptrs to the strings */ + endbuf--; /* do not traverse final NUL */ + while (++p < endbuf) + if (!*p) /* NUL char implies that */ + *q++ = p+1; /* next string -> next char */ + + *q = 0; /* null ptr list terminator */ + return ret; +} + + +/* These are some nice GNU C expression subscope "inline" functions. + The can be used with arbitrary types and evaluate their arguments + exactly once. +*/ + +/* Test if item X of type T is present in the 0 terminated list L */ +# define XinL(T, X, L) ( { \ + T x = (X), *l = (L); \ + while (*l && *l != x) l++; \ + *l == x; \ + } ) + +/* Test if item X of type T is present in the list L of length N */ +# define XinLN(T, X, L, N) ( { \ + T x = (X), *l = (L); \ + int i = 0, n = (N); \ + while (i < n && l[i] != x) i++; \ + i < n && l[i] == x; \ + } ) + +/* readproc: return a pointer to a proc_t filled with requested info about the + * next process available matching the restriction set. If no more such + * processes are available, return a null pointer (boolean false). Use the + * passed buffer instead of allocating space if it is non-NULL. */ + +/* This is optimized so that if a PID list is given, only those files are + * searched for in /proc. If other lists are given in addition to the PID list, + * the same logic can follow through as for the no-PID list case. This is + * fairly complex, but it does try to not to do any unnecessary work. + * Unfortunately, the reverse filtering option in which any PID *except* the + * ones listed is pursued. + */ +#define flags (PT->flags) +proc_t* readproc(PROCTAB* PT, proc_t* rbuf) { + static struct direct *ent; /* dirent handle */ + static struct stat sb; /* stat buffer */ + static char path[32], sbuf[256]; /* bufs for stat,statm */ + int allocated = 0, matched = 0; /* flags */ + proc_t *p = NULL; + + /* loop until a proc matching restrictions is found or no more processes */ + /* I know this could be a while loop -- this way is easier to indent ;-) */ +next_proc: /* get next PID for consideration */ + if (Do(PID)) { + if (!*PT->pids) /* set to next item in pids */ + return NULL; + sprintf(path, "/proc/%d", *(PT->pids)++); + matched = 1; + } else { /* get next numeric /proc ent */ + while ((ent = readdir(PT->procfs)) && + (*ent->d_name < '0' || *ent->d_name > '9')) + ; + if (!ent || !ent->d_name) + return NULL; + sprintf(path, "/proc/%s", ent->d_name); + } + if (stat(path, &sb) == -1) /* no such dirent (anymore) */ + goto next_proc; + if (Do(UID) && !XinLN(uid_t, sb.st_uid, PT->uids, PT->nuid)) + goto next_proc; /* not one of the requested uids */ + + if (!allocated) { /* assign mem for return buf */ + p = rbuf ? rbuf : xcalloc(p, sizeof *p); /* passed buf or alloced mem */ + allocated = 1; /* remember space is set up */ + } + p->uid = sb.st_uid; /* need a way to get real uid */ + + if ((file2str(path, "stat", sbuf, sizeof sbuf)) == -1) + goto next_proc; /* error reading /proc/#/stat */ + stat2proc(sbuf, p); /* parse /proc/#/stat */ + + if (!matched && Do(TTY) && !XinL(dev_t, p->tty, PT->ttys)) + goto next_proc; /* not one of the requested ttys */ + + if (!matched && Do(ANYTTY) && p->tty == -1) + goto next_proc; /* no controlling terminal */ + + if (!matched && Do(STAT) && !strchr(PT->stats,p->state)) + goto next_proc; /* not one of the requested states */ + + if (Do(FILLMEM)) { /* read, parse /proc/#/statm */ + if ((file2str(path, "statm", sbuf, sizeof sbuf)) != -1 ) + statm2proc(sbuf, p); /* ignore statm errors here */ + } /* statm fields just zero */ + + /* some number->text resolving which is time consuming */ + if (Do(FILLTTY)) + dev_to_tty(p->ttyc, p->tty); + if (Do(FILLUSR)) + strncpy(p->user, user_from_uid(p->uid), sizeof p->user); + + if (Do(FILLCMD)) /* read+parse /proc/#/cmdline */ + p->cmdline = file2strvec(path, "cmdline"); + if (Do(FILLENV)) /* read+parse /proc/#/environ */ + p->environ = file2strvec(path, "environ"); + + if (p->state == 'Z') /* fixup cmd for zombies */ + strncat(p->cmd," ", sizeof p->cmd); + + return p; +} +#undef flags + +/* Convenient wrapper around openproc and readproc to slurp in the whole process + * tree subset satisfying the constraints of flags and the optional PID list. + * Free allocated memory with freeproctree(). The tree structure is a classic + * left-list children + right-list siblings. The algorithm is a two-pass of the + * process table. Since most process trees will have children with strictly + * increasing PIDs, most of the structure will be picked up in the first pass. + * The second loop then cleans up any nodes which turn out to have preceeded + * their parent in /proc order. + */ + +/* Traverse tree 't' breadth-first looking for a process with pid p */ +proc_t* LookupPID(proc_t* t, pid_t p) { + proc_t* tmp = NULL; + if (!t) + return NULL; + if (t->pid == p) /* look here/terminate recursion */ + return t; + if ((tmp = LookupPID(t->l, p))) /* recurse over children */ + return tmp; + for (; t; t=t->r) /* recurse over siblings */ + if ((tmp = LookupPID(tmp, p))) + return tmp; + return NULL; +} + +proc_t* readproctree(int flags, ...) { + static proc_t tree; + PROCTAB* PT = NULL; + proc_t *node, *tmp=NULL, *tmp2=NULL; + va_list ap; + + /* pass through apropriate arguments to openproc */ + va_start(ap, flags); + if (Do(UID)) { + /* temporary variables to ensure that va_arg() instances + * are called in the right order + */ + uid_t* u; + int i; + + u = va_arg(ap, uid_t*); + i = va_arg(ap, int); + PT = openproc(flags, u, i); + } + else if (Do(PID) || Do(TTY) || Do(STAT)) + PT = openproc(flags, va_arg(ap, void*)); + else + PT = openproc(flags); + va_end(ap); + + /* first pass: build tree, putting orphans on the first level */ + tree.l = tree.r = NULL; + while ((node = readproc(PT,0))) + if ((tmp = LookupPID(&tree, node->ppid))) { + node->r = tmp->l->r; /* node --> left list of parent */ + tmp->l->r = node; + } else { + node->r = tree.r; /* node --> right list of 'tree' */ + tree.r = node; + } + /* second pass: scan tree for PPIDs of level-1 nodes moving links as necessary */ + for (node = &tree; node; node = node->r) + if ((tmp = LookupPID(&tree, node->r->ppid))) { + tmp2 = node->r; /* unlink from right list of 'tree' */ + node->r = node->r->r; + tmp2->r = tmp->l->r; /* insert as child of found node */ + tmp->l->r = node; + } + return &tree; +} + +/* Convenient wrapper around openproc and readproc to slurp in the whole process + * table subset satisfying the constraints of flags and the optional PID list. + * Free allocated memory with freeproctab(). Access via tab[N]->member. The + * pointer list is NULL terminated. + */ +proc_t** readproctab(int flags, ...) { + PROCTAB* PT = NULL; + proc_t** tab = NULL; + int n = 0; + va_list ap; + + va_start(ap, flags); /* pass through args to openproc */ + if (Do(UID)) { + /* temporary variables to ensure that va_arg() instances + * are called in the right order + */ + uid_t* u; + int i; + + u = va_arg(ap, uid_t*); + i = va_arg(ap, int); + PT = openproc(flags, u, i); + } + else if (Do(PID) || Do(TTY) || Do(STAT)) + PT = openproc(flags, va_arg(ap, void*)); /* assume ptr sizes same */ + else + PT = openproc(flags); + va_end(ap); + do { /* read table: */ + tab = xrealloc(tab, (n+1)*sizeof(proc_t*));/* realloc as we go, using */ + tab[n] = readproc(PT, NULL); /* final null to terminate */ + } while (tab[n++]); /* stop when NULL reached */ + return tab; +} + +/* deallocate a table of pointers to proc structures + */ +void freeproctab(proc_t** tab) { + proc_t** p; + for(p = tab; *p; p++) + freeproc(*p); + free(tab); +} diff -uNr gnome-0.11/programs/gtop/proc/readproc.h gnome-0.12/programs/gtop/proc/readproc.h --- gnome-0.11/programs/gtop/proc/readproc.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/readproc.h Thu Jan 15 14:37:27 1998 @@ -0,0 +1,167 @@ +/* + * New Interface to Process Table -- PROCTAB Stream (a la Directory streams) + * Copyright(C) 1996. Charles L. Blake. + */ + +/* Basic data structure which holds all information we can get about a process. + * (unless otherwise specified, fields are read from /proc/#/stat) + */ +typedef struct proc_s { + char + user[10], /* user name corresponding to owner of process */ + cmd[40], /* basename of executable file in call to exec(2) */ + state, /* single-char code for process state (S=sleeping) */ + ttyc[5], /* string representation of controlling tty device */ + **environ, /* environment string vector (/proc/#/environ) */ + **cmdline; /* command line string vector (/proc/#/cmdline) */ + int + uid, /* user id */ + pid, /* process id */ + ppid, /* pid of parent process */ + pgrp, /* process group id */ + session, /* session id */ + tty, /* full device number of controlling terminal */ + tpgid, /* terminal process group id */ + priority, /* kernel scheduling priority */ + nice, /* standard unix nice level of process */ + signal, /* mask of pending signals */ + blocked, /* mask of blocked signals */ + sigignore, /* mask of ignored signals */ + sigcatch; /* mask of caught signals */ + long + start_time, /* start time of process -- seconds since 1-1-70 */ + utime, /* user-mode CPU time accumulated by process */ + stime, /* kernel-mode CPU time accumulated by process */ + cutime, /* cumulative utime of process and reaped children */ + cstime, /* cumulative stime of process and reaped children */ + /* the next 7 members come from /proc/#/statm */ + size, /* total # of pages of memory */ + resident, /* number of resident set (non-swapped) pages (4k) */ + share, /* number of pages of shared (mmap'd) memory */ + trs, /* text resident set size */ + lrs, /* shared-lib resident set size */ + drs, /* data resident set size */ + dt; /* dirty pages */ + unsigned + pcpu; /* %CPU usage (is not filled in by readproc!!!) */ + unsigned long + vsize, /* number of pages of virtual memory ... */ + rss, /* resident set size from /proc/#/stat */ + rss_rlim, /* resident set size ... ? */ + timeout, /* ? */ + it_real_value, /* ? */ + flags, /* kernel flags for the process */ + min_flt, /* number of minor page faults since process start */ + maj_flt, /* number of major page faults since process start */ + cmin_flt, /* cumulative min_flt of process and child processes */ + cmaj_flt, /* cumulative maj_flt of process and child processes */ + start_code, /* address of beginning of code segment */ + end_code, /* address of end of code segment */ + start_stack, /* address of the bottom of stack for the process */ + kstk_esp, /* kernel stack pointer */ + kstk_eip, /* kernel stack pointer */ + wchan; /* address of kernel wait channel proc is sleeping in */ + struct proc_s *l, /* ptrs for building arbitrary linked structs */ + *r; /* (i.e. singly/doubly-linked lists and trees */ +} proc_t; + +/* PROCTAB: data structure holding the persistent information readproc needs + * from openproc(). The setup is intentionally similar to the dirent interface + * and other system table interfaces (utmp+wtmp come to mind). + */ +#include +#include +#include +typedef struct { + DIR* procfs; + int flags; + pid_t* pids; /* pids of the procs */ + dev_t* ttys; /* devnos of the cttys */ + uid_t* uids; /* uids of procs */ + int nuid; /* cannot really sentinel-terminate unsigned short[] */ + char* stats; /* status chars (actually output into /proc//stat) */ +} PROCTAB; + +/* initialize a PROCTAB structure holding needed call-to-call persistent data + */ +PROCTAB* openproc(int flags, ... /* pid_t*|uid_t*|dev_t*|char* [, int n] */ ); + +/* Convenient wrapper around openproc and readproc to slurp in the whole process + * table subset satisfying the constraints of flags and the optional PID list. + * Free allocated memory with freeproctab(). Access via tab[N]->member. The + * pointer list is NULL terminated. + */ +proc_t** readproctab(int flags, ... /* same as openproc */ ); + +/* Convenient wrapper around openproc and readproc to slurp in the whole process + * tree subset satisfying the constraints of flags and the optional PID list. + */ +proc_t* readproctree(int flags, ... /* same as openproc */ ); + +/* clean-up open files, etc from the openproc() + */ +void closeproc(PROCTAB* PT); + +/* retrieve the next process matching the criteria set by the openproc() + */ +proc_t* readproc(PROCTAB* PT, proc_t* return_buf); + +/* deallocate space allocated by readproc + */ +void freeproc(proc_t* p); + +/* deallocate space allocated by readproctab + */ +void freeproctab(proc_t** p); + +/* openproc/readproctab: + * + * Return PROCTAB* / *proc_t[] or NULL on error ((probably) "/proc" cannot be + * opened.) By default readproc will consider all processes as valid to parse + * and return, but not actually fill in the cmdline, environ, and /proc/#/statm + * derived memory fields. + * + * `flags' (a bitwise-or of PROC_* below) modifies the default behavior. The + * "fill" options will cause more of the proc_t to be filled in. The "filter" + * options all use the second argument as the pointer to a list of objects: + * process status', process id's, user id's, and tty device numbers. The third + * argument is the length of the list (currently only used for lists of user + * id's since unsigned short[] supports no convenient termination sentinel.) + */ +#define PROC_FILLMEM 0x1 /* read statm into the appropriate proc_t entries */ +#define PROC_FILLCMD 0x2 /* alloc and fill in `cmdline' part of proc_t */ +#define PROC_FILLENV 0x4 /* alloc and fill in `environ' part of proc_t */ +#define PROC_FILLTTY 0x8 /* resolve device number -> tty name via psdevtab */ +#define PROC_FILLUSR 0x10 /* resolve user id number -> user name via passwd */ + /* consider only processes with one of the passed: */ +#define PROC_PID 0x100 /* process id numbers ( 0 terminated) */ +#define PROC_TTY 0x200 /* ctty device nos. ( 0 terminated) */ +#define PROC_UID 0x400 /* user id numbers ( length needed ) */ +#define PROC_STAT 0x800 /* status fields ('\0' terminated) */ +#define PROC_ANYTTY 0x1000 /* proc must have a controlling terminal */ + +/* utility functions which may be of general interest: */ + +/* slurp /proc/DIR/FILE into a single large string into the passed + buffer. return the number of bytes actually used. used for stat,statm + */ +int file2str(char *dir, char *file, char *buf, int buf_size); + +/* convert a file of null terminated strings into an argv-style string vector + * which may be de-allocated with a single free() on a dereference of the return + * value, e.g. free(*ret). used for cmdline, environ. + */ +char** file2strvec(char* directory, char* what); + +/* parse /proc/#/stat entries in string s into a proc_t + */ +void stat2proc(char* S, proc_t*); + +/* parse /proc/#/statm entries in string s into a proc_t + */ +void statm2proc(char* s, proc_t*); + +/* convert a memory buffer with nulls into a single string, + replacing the nulls with sep. No longer used. + */ +void nulls2sep(char* str, int len, char sep); diff -uNr gnome-0.11/programs/gtop/proc/signals.c gnome-0.12/programs/gtop/proc/signals.c --- gnome-0.11/programs/gtop/proc/signals.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/signals.c Thu Jan 15 14:37:27 1998 @@ -0,0 +1,65 @@ +/* signals.c - signal name handling */ + +#include +#include +#include +#include +#include "proc/signals.h" + + +typedef struct { + int number; + char *name; +} SIGNAME; + + +static SIGNAME signals[] = { +#include "signames.h" /* should be in same dir as this file */ + { 0,NULL }}; + + +void list_signals(void) +{ + SIGNAME *walk; + int col; + + col = 0; + for (walk = signals; walk->name; walk++) { + if (col+strlen(walk->name)+1 > 80) { + putchar('\n'); + col = 0; + } + printf("%s%s",col ? " " : "",walk->name); + col += strlen(walk->name)+1; + } + putchar('\n'); +} + + +int get_signal(char *name,char *cmd) +{ + SIGNAME *walk; + + if (isdigit(*name)) + return atoi(name); + for (walk = signals; walk->name; walk++) + if (!strcmp(walk->name,name)) break; + if (walk->name) return walk->number; + fprintf(stderr,"%s: unknown signal; %s -l lists signals.\n",name,cmd); + exit(1); +} + +/* get_signal2 is by Michael Shields. 1994/04/25. */ +int get_signal2(char *name) +{ + SIGNAME *walk; + + if (!name) + return(-1); + if (isdigit(*name)) + return atoi(name); + for (walk = signals; walk->name; walk++) + if (!strcmp(walk->name,name)) + return(walk->number); + return(-1); +} diff -uNr gnome-0.11/programs/gtop/proc/signals.h gnome-0.12/programs/gtop/proc/signals.h --- gnome-0.11/programs/gtop/proc/signals.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/signals.h Thu Jan 15 14:37:27 1998 @@ -0,0 +1,12 @@ +/* signals.h - signal name handling */ + +void list_signals(void); + +/* Lists all known signal names on standard output. */ + +int get_signal(char *name,char *cmd); +int get_signal2(char *name); + +/* Returns the signal number of NAME. If no such signal exists, an error + message is displayed and the program is terminated. CMD is the name of the + application. */ diff -uNr gnome-0.11/programs/gtop/proc/signames.h gnome-0.12/programs/gtop/proc/signames.h --- gnome-0.11/programs/gtop/proc/signames.h Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/signames.h Tue Jan 20 21:52:48 1998 @@ -0,0 +1,32 @@ +{ 1,"HUP" }, +{ 2,"INT" }, +{ 3,"QUIT" }, +{ 4,"ILL" }, +{ 5,"TRAP" }, +{ 6,"ABRT" }, +{ 6,"IOT" }, +{ 7,"BUS" }, +{ 8,"FPE" }, +{ 9,"KILL" }, +{ 10,"USR1" }, +{ 11,"SEGV" }, +{ 12,"USR2" }, +{ 13,"PIPE" }, +{ 14,"ALRM" }, +{ 15,"TERM" }, +{ 16,"STKFLT" }, +{ 17,"CHLD" }, +{ 18,"CONT" }, +{ 19,"STOP" }, +{ 20,"TSTP" }, +{ 21,"TTIN" }, +{ 22,"TTOU" }, +{ 23,"URG" }, +{ 24,"XCPU" }, +{ 25,"XFSZ" }, +{ 26,"VTALRM" }, +{ 27,"PROF" }, +{ 28,"WINCH" }, +{ 29,"IO" }, +{ 30,"PWR" }, +{ 31,"UNUSED" }, diff -uNr gnome-0.11/programs/gtop/proc/status.c gnome-0.12/programs/gtop/proc/status.c --- gnome-0.11/programs/gtop/proc/status.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/status.c Thu Jan 15 14:37:31 1998 @@ -0,0 +1,20 @@ +#include "proc/ps.h" +#include "proc/readproc.h" + +char * status(proc_t* task) { + static char buf[4] = " "; + + buf[0] = task->state; + if (task->rss == 0 && task->state != 'Z') + buf[1] = 'W'; + else + buf[1] = ' '; + if (task->nice < 0) + buf[2] = '<'; + else if (task->nice > 0) + buf[2] = 'N'; + else + buf[2] = ' '; + + return(buf); +} diff -uNr gnome-0.11/programs/gtop/proc/sysinfo.c gnome-0.12/programs/gtop/proc/sysinfo.c --- gnome-0.11/programs/gtop/proc/sysinfo.c Wed Dec 31 18:00:00 1969 +++ gnome-0.12/programs/gtop/proc/sysinfo.c Thu Jan 15 14:37:32 1998 @@ -0,0 +1,176 @@ +/* File for parsing top-level /proc entities. */ +#include "proc/sysinfo.h" + +#include +#include +#include +#include + +#include +#include +#include "proc/version.h" + +#define BAD_OPEN_MESSAGE \ +"Error: /proc must be mounted\n" \ +" To mount /proc at boot you need an /etc/fstab line like:\n" \ +" /proc /proc proc defaults\n" \ +" In the meantime, mount /proc /proc -t proc\n" + +#define UPTIME_FILE "/proc/uptime" +#define LOADAVG_FILE "/proc/loadavg" +#define MEMINFO_FILE "/proc/meminfo" + +static char buf[1024]; + +/* This macro opens FILE only if necessary and seeks to 0 so that successive + calls to the functions are more efficient. It also reads the current + contents of the file into the global buf. +*/ +#define FILE_TO_BUF(FILE) { \ + static int n, fd = -1; \ + if (fd == -1 && (fd = open(FILE, O_RDONLY)) == -1) { \ + fprintf(stderr, BAD_OPEN_MESSAGE); \ + close(fd); \ + return 0; \ + } \ + lseek(fd, 0L, SEEK_SET); \ + if ((n = read(fd, buf, sizeof buf - 1)) < 0) { \ + perror(FILE); \ + close(fd); \ + fd = -1; \ + return 0; \ + } \ + buf[n] = '\0'; \ +} + +#define SET_IF_DESIRED(x,y) if (x) *(x) = (y) /* evals 'x' twice */ + +int uptime(double *uptime_secs, double *idle_secs) { + double up=0, idle=0; + + FILE_TO_BUF(UPTIME_FILE) + if (sscanf(buf, "%lf %lf", &up, &idle) < 2) { + fprintf(stderr, "bad data in " UPTIME_FILE "\n"); + return 0; + } + SET_IF_DESIRED(uptime_secs, up); + SET_IF_DESIRED(idle_secs, idle); + return up; /* assume never be zero seconds in practice */ +} + +int loadavg(double *av1, double *av5, double *av15) { + double avg_1=0, avg_5=0, avg_15=0; + + FILE_TO_BUF(LOADAVG_FILE) + if (sscanf(buf, "%lf %lf %lf", &avg_1, &avg_5, &avg_15) < 3) { + fprintf(stderr, "bad data in " LOADAVG_FILE "\n"); + exit(1); + } + SET_IF_DESIRED(av1, avg_1); + SET_IF_DESIRED(av5, avg_5); + SET_IF_DESIRED(av15, avg_15); + return 1; +} + +/* The following /proc/meminfo parsing routine assumes the following format: + [