gmult-8.0/data/gmult.desktop 0000644 0001750 0001750 00000005456 11551324110 015526 0 ustar udienz udienz [Desktop Entry]
Version=1.0
Name=Multiplication Puzzle
Name[af]=Maal Raaisel
Name[ar]=لغز متعدد
Name[cs]=Multiplication Puzzle
Name[da]=Multiplication Puzzle
Name[de]=Multiplizierrätsel
Name[en_GB]=Multiplication Puzzle
Name[es]=Rompecabezas de multiplicaciones
Name[eu]=Biderketa puzzlea
Name[fi]=Kertolaskupulma
Name[fr]=Jeu-devinette de multiplication
Name[hu]=Szorzás Rejtvény
Name[id]=Puzzle Multiplikasi
Name[io]=Multiplikada Enigmato
Name[it]=Moltiplicazione Cifrata
Name[ja]=掛けるパズル
Name[ms]=Teka-teki Darab
Name[nl]=Vermenigvuldigingspuzzel
Name[pl]=Multiplication Puzzle
Name[pt_BR]=Enigma da Multiplicação
Name[rm]=Puzzle da multiplicaziun
Name[ro]=Joc de aritmetică
Name[ru]=Игра "Умножение"
Name[sr]=Слагалица са множењем
Name[sv]=Multipliceringspussel
Name[tr]=Çarpma Bulmacası
Name[vi]=Câu đố nhân
Name[zh_CN]=乘法猜数游戏
Name[zh_TW]=乘法字謎
Comment=Figure out which letters are which numbers
Comment[af]=Bepaal watter letters is watter getalle
Comment[ar]=لديك عدد التخمين الذي يقابل كل خطاب
Comment[cs]=Zjistěte jaké číslice odpovídají písmenům
Comment[da]=Regn ud hvilke bogstaver der repræsenterer hvilke tal
Comment[de]=Finde heraus, welche Buchstaben welche Ziffern sind.
Comment[en_GB]=Figure out which letters are which numbers
Comment[es]=Averiguar cuáles letras son qué números
Comment[eu]=Kalkulatu zein letra den zein zenbaki
Comment[fi]=Yritä ratkaista, mikä kirjain vastaa mitä numeroa
Comment[fr]=Vous devez deviner à quel nombre correspond chaque lettre
Comment[hu]=Találja ki, hogy melyik betű melyik számnak felel meg
Comment[id]=Tebak nomor mana berada pada huruf yang mana
Comment[io]=Dechifrez nombri de literi
Comment[it]=Indovina quale numero corrisponde a ogni lettera
Comment[ja]=どの文字がどの数字かをあててください
Comment[ms]=Tentukan aksara yang mana adalah nombor
Comment[nl]=Probeer uit te vissen welke cijfers er schuilgaan achter de letters
Comment[pl]=Stwierdź które są numery, które litery
Comment[pt_BR]=Descubra quais números estão representados pelas letras.
Comment[rm]=Chatta oura che custabs chi sun che nomers
Comment[ro]=Deduceţi care litere corespund căror numere
Comment[ru]=Определите каким буквам соответствуют цифры
Comment[sr]=Пронађи која слова су који бројеви
Comment[sv]=Lista ut vilka bokstäver som är vilka nummer
Comment[tr]=Hangi harflerin hangi rakamlara karşılık geldiğini bulun
Comment[vi]=Tính ra chữ cái nào là chữ số nào
Comment[zh_CN]=猜出各个字母代表哪些数字
Comment[zh_TW]=推測出哪個文字代表哪個數字
Icon=gmult
TryExec=gmult
Exec=gmult
Terminal=false
StartupNotify=true
Type=Application
Categories=Game;LogicGame;GTK;
gmult-8.0/data/gmult.desktop.in 0000644 0001750 0001750 00000000346 11551155441 016135 0 ustar udienz udienz [Desktop Entry]
Version=1.0
_Name=Multiplication Puzzle
_Comment=Figure out which letters are which numbers
Icon=gmult
TryExec=gmult
Exec=gmult
Terminal=false
StartupNotify=true
Type=Application
Categories=Game;LogicGame;GTK;
gmult-8.0/data/Makefile.am 0000644 0001750 0001750 00000001272 11551155441 015040 0 ustar udienz udienz icondir = $(datadir)/icons/hicolor/scalable/apps
icon_DATA = gmult.svg
@INTLTOOL_DESKTOP_RULE@
desktopdir = $(datadir)/applications
desktop_in_files = gmult.desktop.in
dist_desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
EXTRA_DIST = gmult.desktop.in gmult.svg
DISTCLEANFILES = gmult.desktop
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-data-hook: update-icon-cache
uninstall-hook: update-icon-cache
update-icon-cache:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After (un)install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi
gmult-8.0/data/gmult.svg 0000644 0001750 0001750 00000021463 11551155441 014661 0 ustar udienz udienz
gmult-8.0/data/Makefile.in 0000644 0001750 0001750 00000033142 11551160265 015052 0 ustar udienz udienz # Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = data
DIST_COMMON = $(dist_desktop_DATA) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)"
DATA = $(dist_desktop_DATA) $(icon_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALAC = @VALAC@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
icondir = $(datadir)/icons/hicolor/scalable/apps
icon_DATA = gmult.svg
desktopdir = $(datadir)/applications
desktop_in_files = gmult.desktop.in
dist_desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
EXTRA_DIST = gmult.desktop.in gmult.svg
DISTCLEANFILES = gmult.desktop
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu data/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-dist_desktopDATA: $(dist_desktop_DATA)
@$(NORMAL_INSTALL)
test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)"
@list='$(dist_desktop_DATA)'; test -n "$(desktopdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
done
uninstall-dist_desktopDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_desktop_DATA)'; test -n "$(desktopdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(desktopdir)" && rm -f $$files
install-iconDATA: $(icon_DATA)
@$(NORMAL_INSTALL)
test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)"
@list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
done
uninstall-iconDATA:
@$(NORMAL_UNINSTALL)
@list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(icondir)" && rm -f $$files
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-dist_desktopDATA install-iconDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-dist_desktopDATA uninstall-iconDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
.MAKE: install-am install-data-am install-strip uninstall-am
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am \
install-data-hook install-dist_desktopDATA install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-iconDATA install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
uninstall-am uninstall-dist_desktopDATA uninstall-hook \
uninstall-iconDATA
@INTLTOOL_DESKTOP_RULE@
install-data-hook: update-icon-cache
uninstall-hook: update-icon-cache
update-icon-cache:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After (un)install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi
# 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:
gmult-8.0/gmult/GtkMult.vala 0000644 0001750 0001750 00000040101 11551310352 015443 0 ustar udienz udienz /* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
using GLib;
public class GtkMult : Gtk.Window
{
public static int dpi;
public MultPuzzle puzzle { get; private set; }
public bool cheated { get; private set; }
public Gtk.Statusbar status { get; private set; }
public static const double ASPECT = 8.0/6.0;
public void clear_guess_feedback ()
{
if (status_timeout_id != 0)
Source.remove (status_timeout_id);
pop_guess_feedback ();
}
construct
{
vbox = new Gtk.VBox (false, 0);
status = null;
score = new Gtk.Label ("");
canvas = null;
status_timeout_id = 0;
solve_action = null;
hint_action = null;
timer = new Timer();
timer_label = new Gtk.Label("");
timer_timeout_id = 0;
// Convert pixel space to desired point size
Value dpiValue = Value (typeof (int));
get_screen ().get_setting ("gtk-xft-dpi", dpiValue);
this.dpi = dpiValue.get_int () / Pango.SCALE;
var height = 4*dpi;
set_default_size((int)(height*ASPECT), height);
Gtk.VBox vb = new Gtk.VBox (false, 0);
status_box = new Gtk.HBox (false, 0);
vb.pack_start (setup_menu (), false, false, 0);
vb.pack_start (vbox, true, true, 0);
vb.pack_start (status_box, false, false, 0);
var eb = new Gtk.EventBox();
eb.add(score);
eb.set_border_width(5);
status_box.pack_start(eb, false, false, 0);
eb = new Gtk.EventBox();
eb.add(timer_label);
eb.set_border_width(5);
status_box.pack_start(eb, false, false, 0);
add (vb);
add_events (Gdk.EventMask.KEY_PRESS_MASK);
key_press_event.connect(handle_key_press);
set_title (_("Multiplication Puzzle"));
new_puzzle ();
destroy.connect(Gtk.main_quit);
}
static unichar a_char = _("A").get_char().toupper();
static unichar b_char = _("B").get_char().toupper();
static unichar c_char = _("C").get_char().toupper();
static unichar d_char = _("D").get_char().toupper();
static unichar e_char = _("E").get_char().toupper();
static unichar f_char = _("F").get_char().toupper();
static unichar g_char = _("G").get_char().toupper();
static unichar h_char = _("H").get_char().toupper();
static unichar i_char = _("I").get_char().toupper();
static unichar j_char = _("J").get_char().toupper();
static unichar 0_char = _("0").get_char().toupper();
static unichar 1_char = _("1").get_char().toupper();
static unichar 2_char = _("2").get_char().toupper();
static unichar 3_char = _("3").get_char().toupper();
static unichar 4_char = _("4").get_char().toupper();
static unichar 5_char = _("5").get_char().toupper();
static unichar 6_char = _("6").get_char().toupper();
static unichar 7_char = _("7").get_char().toupper();
static unichar 8_char = _("8").get_char().toupper();
static unichar 9_char = _("9").get_char().toupper();
private bool handle_key_press (Gdk.EventKey event)
{
// Don't recognize any keys if ctrl or alt are pressed.
var state = (event.state & Gtk.accelerator_get_default_mod_mask());
state = state & (~0x03); // ignores shift and caps lock
if (state != 0)
return false;
char ch;
unichar ev_char = Gdk.keyval_to_unicode(Gdk.keyval_to_upper(event.keyval));
if (ev_char == a_char) ch = 'A';
else if (ev_char == b_char) ch = 'B';
else if (ev_char == c_char) ch = 'C';
else if (ev_char == d_char) ch = 'D';
else if (ev_char == e_char) ch = 'E';
else if (ev_char == f_char) ch = 'F';
else if (ev_char == g_char) ch = 'G';
else if (ev_char == h_char) ch = 'H';
else if (ev_char == i_char) ch = 'I';
else if (ev_char == j_char) ch = 'J';
else if (ev_char == 0_char) ch = '0';
else if (ev_char == 1_char) ch = '1';
else if (ev_char == 2_char) ch = '2';
else if (ev_char == 3_char) ch = '3';
else if (ev_char == 4_char) ch = '4';
else if (ev_char == 5_char) ch = '5';
else if (ev_char == 6_char) ch = '6';
else if (ev_char == 7_char) ch = '7';
else if (ev_char == 8_char) ch = '8';
else if (ev_char == 9_char) ch = '9';
else if (event.keyval == 65307) { // escape; vala needs keysyms
this.canvas.clear_mode();
return true;
}
else
return false;
this.canvas.start_choice(ch);
return true;
}
Gtk.Action solve_action;
Gtk.Action hint_action;
private Gtk.Widget setup_menu ()
{
var action_group = new Gtk.ActionGroup ("gmult-actions");
var action = new Gtk.Action ("GameMenuAction", _("_Game"), null, null);
action_group.add_action (action);
action = new Gtk.Action ("NewAction", null, null, Gtk.Stock.NEW);
action.activate.connect(on_menu_game_new);
action_group.add_action_with_accel (action, "N");
action = new Gtk.Action ("HintAction", _("_Hint"), null, null);
action.activate.connect(on_menu_game_hint);
action_group.add_action_with_accel (action, "H");
this.hint_action = action;
action = new Gtk.Action ("SolveAction", _("_Solve"), null, null);
action.activate.connect(on_menu_game_solve);
action_group.add_action (action);
this.solve_action = action;
action = new Gtk.Action ("CloseAction", null, null, Gtk.Stock.CLOSE);
action.activate.connect(on_menu_game_close);
action_group.add_action_with_accel (action, "W");
action = new Gtk.Action ("HelpMenuAction", _("_Help"), null, null);
action_group.add_action (action);
action = new Gtk.Action ("AboutAction", null, null, Gtk.Stock.ABOUT);
action.activate.connect(on_menu_help_about);
action_group.add_action (action);
var ui = """
""";
var manager = new Gtk.UIManager ();
try {
manager.add_ui_from_string (ui, -1);
} catch (Error e) {
error ("Internal error: bad ui string.\n");
}
manager.insert_action_group (action_group, 0);
add_accel_group (manager.get_accel_group ());
var menu_item = manager.get_widget ("/ui/menubar/GameMenu/New") as Gtk.MenuItem;
menu_item.select.connect(on_menu_select_new);
menu_item.deselect.connect(on_menu_deselect);
menu_item = manager.get_widget ("/ui/menubar/GameMenu/Hint") as Gtk.MenuItem;
menu_item.select.connect(on_menu_select_hint);
menu_item.deselect.connect(on_menu_deselect);
menu_item = manager.get_widget ("/ui/menubar/GameMenu/Solve") as Gtk.MenuItem;
menu_item.select.connect(on_menu_select_solve);
menu_item.deselect.connect(on_menu_deselect);
menu_item = manager.get_widget ("/ui/menubar/GameMenu/Close") as Gtk.MenuItem;
menu_item.select.connect(on_menu_select_close);
menu_item.deselect.connect(on_menu_deselect);
menu_item = manager.get_widget ("/ui/menubar/HelpMenu/About") as Gtk.MenuItem;
menu_item.select.connect(on_menu_select_about);
menu_item.deselect.connect(on_menu_deselect);
return manager.get_widget ("/ui/menubar");
}
private Canvas canvas;
private Gtk.VBox vbox;
private Timer timer;
private Gtk.Label timer_label;
private Gtk.Label score;
private Gtk.HBox status_box;
private uint status_timeout_id;
private uint timer_timeout_id;
private void new_puzzle ()
{
if (canvas != null)
vbox.remove (canvas);
if (status != null)
status_box.remove (status);
// easiest way to reset the statusbar
status = new Gtk.Statusbar ();
status_box.pack_start (status, true, true, 0);
status_box.reorder_child (status, 0);
puzzle = new MultPuzzle (3, 2);
canvas = new Canvas (this);
vbox.pack_start (canvas, true, true, 0);
Gdk.Geometry geom = Gdk.Geometry();
geom.min_aspect = ASPECT;
geom.max_aspect = ASPECT;
set_geometry_hints(canvas, geom, Gdk.WindowHints.ASPECT);
timer.reset();
update_timer();
if (timer_timeout_id != 0)
Source.remove(timer_timeout_id);
timer_timeout_id = Timeout.add_seconds (1, update_timer);
cheated = false;
show_all ();
update_score ();
on_puzzle_change(puzzle);
if (status_timeout_id != 0)
Source.remove (status_timeout_id);
status_timeout_id = 0;
puzzle.guessed.connect(on_puzzle_guess);
puzzle.changed.connect(on_puzzle_change);
}
private void on_puzzle_guess (MultPuzzle p, int digit, MultPuzzleChar letter, MultPuzzleGuessStatus response)
{
update_score ();
var context_id = status.get_context_id ("guess-feedback");
clear_guess_feedback ();
if (puzzle.is_done)
{
status.push (context_id, _("Congratulations!"));
}
else
{
string message_pattern = null;
switch (response)
{
case MultPuzzleGuessStatus.WRONG:
// Translators: First argument is letter, second is digit
message_pattern = _("Incorrect — %1$s is not %2$s");
break;
case MultPuzzleGuessStatus.CORRECT:
// Translators: First argument is letter, second is digit
message_pattern = _("Correct — %1$s is %2$s");
break;
default:
case MultPuzzleGuessStatus.KNOWN:
case MultPuzzleGuessStatus.INVALID:
// shouldn't happen
break;
}
if (message_pattern != null) {
var letter_str = "%c".printf ((char)letter);
var digit_str = "%i".printf (digit);
status.push (context_id, message_pattern.printf (_(letter_str), _(digit_str)));
status_timeout_id = Timeout.add_seconds (5, pop_guess_feedback);
}
}
}
private void on_puzzle_change (MultPuzzle p)
{
solve_action.set_sensitive (!p.is_done);
hint_action.set_sensitive (!p.is_done);
}
private bool pop_guess_feedback ()
{
var context_id = status.get_context_id ("guess-feedback");
status.pop (context_id);
status_timeout_id = 0;
return false;
}
private void update_score ()
{
var wrong = puzzle.wrong_guesses;
var text = "%s: %i%s".printf (_("Incorrect Guesses"), wrong, cheated ? "*" : "");
score.set_text (text);
}
private bool update_timer()
{
if (puzzle.is_done)
return false;
var secs = (uint)timer.elapsed(null);
var text = "%s: %02u:%02u:%02u".printf(_("Time"), secs/60/60, secs/60%60, secs%60);
timer_label.set_text(text);
return true;
}
private void on_menu_deselect ()
{
var context_id = status.get_context_id ("menu-hover");
status.pop (context_id);
}
private void on_menu_game_close ()
{
destroy ();
}
private void on_menu_select_close ()
{
var context_id = status.get_context_id ("menu-hover");
clear_guess_feedback ();
status.push (context_id, _("Close Multiplication Puzzle"));
}
private void on_menu_game_new ()
{
new_puzzle ();
}
private void on_menu_select_new ()
{
var context_id = status.get_context_id ("menu-hover");
clear_guess_feedback ();
status.push (context_id, _("Start a new game"));
}
private void on_menu_game_solve ()
{
cheated = true;
puzzle.solve ();
var context_id = status.get_context_id ("guess-feedback");
clear_guess_feedback ();
status.push (context_id, _("Puzzle solved"));
update_score ();
}
private void on_menu_select_solve ()
{
var context_id = status.get_context_id ("menu-hover");
clear_guess_feedback ();
status.push (context_id, _("Solve this game"));
}
private void on_menu_game_hint()
{
cheated = true;
// Pick a random unknown digit. Keep trying until we actually solve one
// (because the digit may not have been in the puzzle -- we want to be
// more useful than that.
var character = MultPuzzleChar.INVALID;
var digit = 0;
var needed = this.puzzle.get_needed_digits();
var num_needed = 0;
foreach (bool n in needed)
num_needed += n ? 1 : 0;
if (num_needed == 0) // shouldn't happen
return;
var choice = Random.int_range(0, num_needed);
for (int i = 0; i < 10; ++i) {
if (needed[i] && choice == 0) {
character = this.puzzle.solve_digit(i);
digit = i;
break;
}
else if (needed[i])
--choice;
}
var context_id = status.get_context_id ("guess-feedback");
clear_guess_feedback ();
// Translators: First argument is letter, second is digit
var message_pattern = _("%1$s is %2$s");
var letter_str = "%c".printf ((char)character);
var digit_str = "%i".printf (digit);
status.push (context_id, message_pattern.printf (_(letter_str), _(digit_str)));
status_timeout_id = Timeout.add_seconds (5, pop_guess_feedback);
update_score ();
}
private void on_menu_select_hint ()
{
var context_id = status.get_context_id ("menu-hover");
clear_guess_feedback ();
status.push (context_id, _("Reveal a digit at random"));
}
// These need to be class-wide to prevent an odd compiler syntax error.
private const string[] authors = {"Michael Terry ",
null};
private const string[] artists = {"Eugenia Loli-Queru ",
"Michael Terry ",
null};
private Gtk.AboutDialog about { get; set; default = null; }
private void on_menu_help_about ()
{
if (about != null)
{
about.present ();
return;
}
about = new Gtk.AboutDialog ();
about.title = _("About Multiplication Puzzle");
about.authors = authors;
about.artists = artists;
about.translator_credits = _("translator-credits");
about.logo_icon_name = Config.PACKAGE;
about.version = Config.VERSION;
about.copyright = "© 2003—2011 Michael Terry";
about.website = "https://launchpad.net/gmult";
about.license_type = Gtk.License.GPL_3_0;
about.set_transient_for (this);
about.response.connect((dlg, resp) => {dlg.destroy (); about = null;});
about.show ();
}
private void on_menu_select_about ()
{
var context_id = status.get_context_id ("menu-hover");
clear_guess_feedback ();
status.push (context_id, _("About Multiplication Puzzle"));
}
public static int main(string[] args)
{
GLib.Intl.textdomain (Config.GETTEXT_PACKAGE);
GLib.Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.LOCALE_DIR);
GLib.Intl.bind_textdomain_codeset (Config.GETTEXT_PACKAGE, "UTF-8");
OptionContext context = new OptionContext ("");
context.add_group (Gtk.get_option_group (false)); // allow console use
try {
context.parse (ref args);
} catch (Error e) {
printerr ("%s\n\n%s", e.message, context.get_help (true, null));
return 1;
}
Gtk.init (ref args); // to open display ('cause we passed false above)
GLib.Environment.set_application_name (_("Multiplication Puzzle"));
Gtk.IconTheme.get_default ().append_search_path (Config.THEME_DIR);
Gtk.Window.set_default_icon_name (Config.PACKAGE);
var window = new GtkMult ();
window.show_all();
Gtk.main ();
return 0;
}
}
gmult-8.0/gmult/GtkMult.c 0000644 0001750 0001750 00000152563 11551310360 014761 0 ustar udienz udienz /* GtkMult.c generated by valac 0.12.0, the Vala compiler
* generated from GtkMult.vala, do not modify */
/* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define TYPE_GTK_MULT (gtk_mult_get_type ())
#define GTK_MULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_MULT, GtkMult))
#define GTK_MULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_MULT, GtkMultClass))
#define IS_GTK_MULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_MULT))
#define IS_GTK_MULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_MULT))
#define GTK_MULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_MULT, GtkMultClass))
typedef struct _GtkMult GtkMult;
typedef struct _GtkMultClass GtkMultClass;
typedef struct _GtkMultPrivate GtkMultPrivate;
#define TYPE_MULT_PUZZLE (mult_puzzle_get_type ())
#define MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULT_PUZZLE, MultPuzzle))
#define MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULT_PUZZLE, MultPuzzleClass))
#define IS_MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULT_PUZZLE))
#define IS_MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULT_PUZZLE))
#define MULT_PUZZLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULT_PUZZLE, MultPuzzleClass))
typedef struct _MultPuzzle MultPuzzle;
typedef struct _MultPuzzleClass MultPuzzleClass;
#define TYPE_CANVAS (canvas_get_type ())
#define CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANVAS, Canvas))
#define CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANVAS, CanvasClass))
#define IS_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANVAS))
#define IS_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANVAS))
#define CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANVAS, CanvasClass))
typedef struct _Canvas Canvas;
typedef struct _CanvasClass CanvasClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define TYPE_MULT_PUZZLE_CHAR (mult_puzzle_char_get_type ())
#define TYPE_MULT_PUZZLE_GUESS_STATUS (mult_puzzle_guess_status_get_type ())
#define _g_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL)))
struct _GtkMult {
GtkWindow parent_instance;
GtkMultPrivate * priv;
};
struct _GtkMultClass {
GtkWindowClass parent_class;
};
struct _GtkMultPrivate {
MultPuzzle* _puzzle;
gboolean _cheated;
GtkStatusbar* _status;
GtkAction* solve_action;
GtkAction* hint_action;
Canvas* canvas;
GtkVBox* vbox;
GTimer* timer;
GtkLabel* timer_label;
GtkLabel* score;
GtkHBox* status_box;
guint status_timeout_id;
guint timer_timeout_id;
GtkAboutDialog* _about;
};
typedef enum {
MULT_PUZZLE_CHAR_A = 65,
MULT_PUZZLE_CHAR_B,
MULT_PUZZLE_CHAR_C,
MULT_PUZZLE_CHAR_D,
MULT_PUZZLE_CHAR_E,
MULT_PUZZLE_CHAR_F,
MULT_PUZZLE_CHAR_G,
MULT_PUZZLE_CHAR_H,
MULT_PUZZLE_CHAR_I,
MULT_PUZZLE_CHAR_J,
MULT_PUZZLE_CHAR_INVALID
} MultPuzzleChar;
typedef enum {
MULT_PUZZLE_GUESS_STATUS_WRONG,
MULT_PUZZLE_GUESS_STATUS_CORRECT,
MULT_PUZZLE_GUESS_STATUS_KNOWN,
MULT_PUZZLE_GUESS_STATUS_INVALID
} MultPuzzleGuessStatus;
static gpointer gtk_mult_parent_class = NULL;
extern gint gtk_mult_dpi;
gint gtk_mult_dpi = 0;
static gunichar gtk_mult_a_char;
static gunichar gtk_mult_a_char = 0U;
static gunichar gtk_mult_b_char;
static gunichar gtk_mult_b_char = 0U;
static gunichar gtk_mult_c_char;
static gunichar gtk_mult_c_char = 0U;
static gunichar gtk_mult_d_char;
static gunichar gtk_mult_d_char = 0U;
static gunichar gtk_mult_e_char;
static gunichar gtk_mult_e_char = 0U;
static gunichar gtk_mult_f_char;
static gunichar gtk_mult_f_char = 0U;
static gunichar gtk_mult_g_char;
static gunichar gtk_mult_g_char = 0U;
static gunichar gtk_mult_h_char;
static gunichar gtk_mult_h_char = 0U;
static gunichar gtk_mult_i_char;
static gunichar gtk_mult_i_char = 0U;
static gunichar gtk_mult_j_char;
static gunichar gtk_mult_j_char = 0U;
static gunichar gtk_mult_0_char;
static gunichar gtk_mult_0_char = 0U;
static gunichar gtk_mult_1_char;
static gunichar gtk_mult_1_char = 0U;
static gunichar gtk_mult_2_char;
static gunichar gtk_mult_2_char = 0U;
static gunichar gtk_mult_3_char;
static gunichar gtk_mult_3_char = 0U;
static gunichar gtk_mult_4_char;
static gunichar gtk_mult_4_char = 0U;
static gunichar gtk_mult_5_char;
static gunichar gtk_mult_5_char = 0U;
static gunichar gtk_mult_6_char;
static gunichar gtk_mult_6_char = 0U;
static gunichar gtk_mult_7_char;
static gunichar gtk_mult_7_char = 0U;
static gunichar gtk_mult_8_char;
static gunichar gtk_mult_8_char = 0U;
static gunichar gtk_mult_9_char;
static gunichar gtk_mult_9_char = 0U;
GType gtk_mult_get_type (void) G_GNUC_CONST;
GType mult_puzzle_get_type (void) G_GNUC_CONST;
GType canvas_get_type (void) G_GNUC_CONST;
#define GTK_MULT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_GTK_MULT, GtkMultPrivate))
enum {
GTK_MULT_DUMMY_PROPERTY,
GTK_MULT_PUZZLE,
GTK_MULT_CHEATED,
GTK_MULT_STATUS
};
#define GTK_MULT_ASPECT (8.0 / 6.0)
void gtk_mult_clear_guess_feedback (GtkMult* self);
static gboolean gtk_mult_pop_guess_feedback (GtkMult* self);
static gboolean gtk_mult_handle_key_press (GtkMult* self, GdkEventKey* event);
void canvas_clear_mode (Canvas* self);
void canvas_start_choice (Canvas* self, gchar ch);
static GtkWidget* gtk_mult_setup_menu (GtkMult* self);
static void gtk_mult_on_menu_game_new (GtkMult* self);
static void _gtk_mult_on_menu_game_new_gtk_action_activate (GtkAction* _sender, gpointer self);
static void gtk_mult_on_menu_game_hint (GtkMult* self);
static void _gtk_mult_on_menu_game_hint_gtk_action_activate (GtkAction* _sender, gpointer self);
static void gtk_mult_on_menu_game_solve (GtkMult* self);
static void _gtk_mult_on_menu_game_solve_gtk_action_activate (GtkAction* _sender, gpointer self);
static void gtk_mult_on_menu_game_close (GtkMult* self);
static void _gtk_mult_on_menu_game_close_gtk_action_activate (GtkAction* _sender, gpointer self);
static void gtk_mult_on_menu_help_about (GtkMult* self);
static void _gtk_mult_on_menu_help_about_gtk_action_activate (GtkAction* _sender, gpointer self);
static void gtk_mult_on_menu_select_new (GtkMult* self);
static void _gtk_mult_on_menu_select_new_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self);
static void gtk_mult_on_menu_deselect (GtkMult* self);
static void _gtk_mult_on_menu_deselect_gtk_menu_item_deselect (GtkMenuItem* _sender, gpointer self);
static void gtk_mult_on_menu_select_hint (GtkMult* self);
static void _gtk_mult_on_menu_select_hint_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self);
static void gtk_mult_on_menu_select_solve (GtkMult* self);
static void _gtk_mult_on_menu_select_solve_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self);
static void gtk_mult_on_menu_select_close (GtkMult* self);
static void _gtk_mult_on_menu_select_close_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self);
static void gtk_mult_on_menu_select_about (GtkMult* self);
static void _gtk_mult_on_menu_select_about_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self);
static void gtk_mult_new_puzzle (GtkMult* self);
GtkStatusbar* gtk_mult_get_status (GtkMult* self);
static void gtk_mult_set_status (GtkMult* self, GtkStatusbar* value);
MultPuzzle* mult_puzzle_new (gint num_x, gint num_y);
MultPuzzle* mult_puzzle_construct (GType object_type, gint num_x, gint num_y);
static void gtk_mult_set_puzzle (GtkMult* self, MultPuzzle* value);
Canvas* canvas_new (GtkMult* mult);
Canvas* canvas_construct (GType object_type, GtkMult* mult);
static gboolean gtk_mult_update_timer (GtkMult* self);
static gboolean _gtk_mult_update_timer_gsource_func (gpointer self);
static void gtk_mult_set_cheated (GtkMult* self, gboolean value);
static void gtk_mult_update_score (GtkMult* self);
static void gtk_mult_on_puzzle_change (GtkMult* self, MultPuzzle* p);
MultPuzzle* gtk_mult_get_puzzle (GtkMult* self);
GType mult_puzzle_char_get_type (void) G_GNUC_CONST;
GType mult_puzzle_guess_status_get_type (void) G_GNUC_CONST;
static void gtk_mult_on_puzzle_guess (GtkMult* self, MultPuzzle* p, gint digit, MultPuzzleChar letter, MultPuzzleGuessStatus response);
static void _gtk_mult_on_puzzle_guess_mult_puzzle_guessed (MultPuzzle* _sender, gint digit, MultPuzzleChar letter, MultPuzzleGuessStatus status, gpointer self);
static void _gtk_mult_on_puzzle_change_mult_puzzle_changed (MultPuzzle* _sender, gpointer self);
gboolean mult_puzzle_get_is_done (MultPuzzle* self);
static gboolean _gtk_mult_pop_guess_feedback_gsource_func (gpointer self);
gint mult_puzzle_get_wrong_guesses (MultPuzzle* self);
gboolean gtk_mult_get_cheated (GtkMult* self);
void mult_puzzle_solve (MultPuzzle* self);
gboolean* mult_puzzle_get_needed_digits (MultPuzzle* self, int* result_length1);
MultPuzzleChar mult_puzzle_solve_digit (MultPuzzle* self, gint digit);
static GtkAboutDialog* gtk_mult_get_about (GtkMult* self);
static void gtk_mult_set_about (GtkMult* self, GtkAboutDialog* value);
static void _lambda0_ (GtkDialog* dlg, gint resp, GtkMult* self);
static void __lambda0__gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
gint gtk_mult_main (gchar** args, int args_length1);
GtkMult* gtk_mult_new (void);
GtkMult* gtk_mult_construct (GType object_type);
static GObject * gtk_mult_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static gboolean _gtk_mult_handle_key_press_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
static void _gtk_main_quit_gtk_widget_destroy (GtkWidget* _sender, gpointer self);
static void gtk_mult_finalize (GObject* obj);
static void _vala_gtk_mult_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_gtk_mult_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static const gchar* GTK_MULT_authors[2] = {"Michael Terry ", NULL};
static const gchar* GTK_MULT_artists[3] = {"Eugenia Loli-Queru ", "Michael Terry ", NULL};
static gunichar string_get_char (const gchar* self, glong index) {
gunichar result = 0U;
gunichar _tmp0_;
g_return_val_if_fail (self != NULL, 0U);
_tmp0_ = g_utf8_get_char (((gchar*) self) + index);
result = _tmp0_;
return result;
}
void gtk_mult_clear_guess_feedback (GtkMult* self) {
g_return_if_fail (self != NULL);
if (self->priv->status_timeout_id != 0) {
g_source_remove (self->priv->status_timeout_id);
}
gtk_mult_pop_guess_feedback (self);
}
static gboolean gtk_mult_handle_key_press (GtkMult* self, GdkEventKey* event) {
gboolean result = FALSE;
GdkModifierType _tmp0_;
GdkModifierType state;
gchar ch = '\0';
guint _tmp1_;
guint32 _tmp2_;
gunichar ev_char;
g_return_val_if_fail (self != NULL, FALSE);
_tmp0_ = gtk_accelerator_get_default_mod_mask ();
state = (*event).state & _tmp0_;
state = state & (~0x03);
if (state != 0) {
result = FALSE;
return result;
}
_tmp1_ = gdk_keyval_to_upper ((*event).keyval);
_tmp2_ = gdk_keyval_to_unicode (_tmp1_);
ev_char = (gunichar) _tmp2_;
if (ev_char == gtk_mult_a_char) {
ch = 'A';
} else {
if (ev_char == gtk_mult_b_char) {
ch = 'B';
} else {
if (ev_char == gtk_mult_c_char) {
ch = 'C';
} else {
if (ev_char == gtk_mult_d_char) {
ch = 'D';
} else {
if (ev_char == gtk_mult_e_char) {
ch = 'E';
} else {
if (ev_char == gtk_mult_f_char) {
ch = 'F';
} else {
if (ev_char == gtk_mult_g_char) {
ch = 'G';
} else {
if (ev_char == gtk_mult_h_char) {
ch = 'H';
} else {
if (ev_char == gtk_mult_i_char) {
ch = 'I';
} else {
if (ev_char == gtk_mult_j_char) {
ch = 'J';
} else {
if (ev_char == gtk_mult_0_char) {
ch = '0';
} else {
if (ev_char == gtk_mult_1_char) {
ch = '1';
} else {
if (ev_char == gtk_mult_2_char) {
ch = '2';
} else {
if (ev_char == gtk_mult_3_char) {
ch = '3';
} else {
if (ev_char == gtk_mult_4_char) {
ch = '4';
} else {
if (ev_char == gtk_mult_5_char) {
ch = '5';
} else {
if (ev_char == gtk_mult_6_char) {
ch = '6';
} else {
if (ev_char == gtk_mult_7_char) {
ch = '7';
} else {
if (ev_char == gtk_mult_8_char) {
ch = '8';
} else {
if (ev_char == gtk_mult_9_char) {
ch = '9';
} else {
if ((*event).keyval == 65307) {
canvas_clear_mode (self->priv->canvas);
result = TRUE;
return result;
} else {
result = FALSE;
return result;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
canvas_start_choice (self->priv->canvas, ch);
result = TRUE;
return result;
}
static void _gtk_mult_on_menu_game_new_gtk_action_activate (GtkAction* _sender, gpointer self) {
gtk_mult_on_menu_game_new (self);
}
static void _gtk_mult_on_menu_game_hint_gtk_action_activate (GtkAction* _sender, gpointer self) {
gtk_mult_on_menu_game_hint (self);
}
static gpointer _g_object_ref0 (gpointer self) {
return self ? g_object_ref (self) : NULL;
}
static void _gtk_mult_on_menu_game_solve_gtk_action_activate (GtkAction* _sender, gpointer self) {
gtk_mult_on_menu_game_solve (self);
}
static void _gtk_mult_on_menu_game_close_gtk_action_activate (GtkAction* _sender, gpointer self) {
gtk_mult_on_menu_game_close (self);
}
static void _gtk_mult_on_menu_help_about_gtk_action_activate (GtkAction* _sender, gpointer self) {
gtk_mult_on_menu_help_about (self);
}
static void _gtk_mult_on_menu_select_new_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self) {
gtk_mult_on_menu_select_new (self);
}
static void _gtk_mult_on_menu_deselect_gtk_menu_item_deselect (GtkMenuItem* _sender, gpointer self) {
gtk_mult_on_menu_deselect (self);
}
static void _gtk_mult_on_menu_select_hint_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self) {
gtk_mult_on_menu_select_hint (self);
}
static void _gtk_mult_on_menu_select_solve_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self) {
gtk_mult_on_menu_select_solve (self);
}
static void _gtk_mult_on_menu_select_close_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self) {
gtk_mult_on_menu_select_close (self);
}
static void _gtk_mult_on_menu_select_about_gtk_menu_item_select (GtkMenuItem* _sender, gpointer self) {
gtk_mult_on_menu_select_about (self);
}
static GtkWidget* gtk_mult_setup_menu (GtkMult* self) {
GtkWidget* result = NULL;
GtkActionGroup* _tmp0_ = NULL;
GtkActionGroup* action_group;
const gchar* _tmp1_ = NULL;
GtkAction* _tmp2_ = NULL;
GtkAction* action;
GtkAction* _tmp3_ = NULL;
const gchar* _tmp4_ = NULL;
GtkAction* _tmp5_ = NULL;
GtkAction* _tmp6_;
const gchar* _tmp7_ = NULL;
GtkAction* _tmp8_ = NULL;
GtkAction* _tmp9_;
GtkAction* _tmp10_ = NULL;
const gchar* _tmp11_ = NULL;
GtkAction* _tmp12_ = NULL;
GtkAction* _tmp13_ = NULL;
gchar* _tmp14_;
gchar* ui;
GtkUIManager* _tmp15_ = NULL;
GtkUIManager* manager;
GtkAccelGroup* _tmp16_ = NULL;
GtkWidget* _tmp17_ = NULL;
GtkWidget* _tmp18_;
GtkMenuItem* _tmp19_;
GtkMenuItem* menu_item;
GtkWidget* _tmp20_ = NULL;
GtkWidget* _tmp21_;
GtkMenuItem* _tmp22_;
GtkWidget* _tmp23_ = NULL;
GtkWidget* _tmp24_;
GtkMenuItem* _tmp25_;
GtkWidget* _tmp26_ = NULL;
GtkWidget* _tmp27_;
GtkMenuItem* _tmp28_;
GtkWidget* _tmp29_ = NULL;
GtkWidget* _tmp30_;
GtkMenuItem* _tmp31_;
GtkWidget* _tmp32_ = NULL;
GtkWidget* _tmp33_;
GError * _inner_error_ = NULL;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = gtk_action_group_new ("gmult-actions");
action_group = _tmp0_;
_tmp1_ = _ ("_Game");
_tmp2_ = gtk_action_new ("GameMenuAction", _tmp1_, NULL, NULL);
action = _tmp2_;
gtk_action_group_add_action (action_group, action);
_tmp3_ = gtk_action_new ("NewAction", NULL, NULL, GTK_STOCK_NEW);
_g_object_unref0 (action);
action = _tmp3_;
g_signal_connect_object (action, "activate", (GCallback) _gtk_mult_on_menu_game_new_gtk_action_activate, self, 0);
gtk_action_group_add_action_with_accel (action_group, action, "N");
_tmp4_ = _ ("_Hint");
_tmp5_ = gtk_action_new ("HintAction", _tmp4_, NULL, NULL);
_g_object_unref0 (action);
action = _tmp5_;
g_signal_connect_object (action, "activate", (GCallback) _gtk_mult_on_menu_game_hint_gtk_action_activate, self, 0);
gtk_action_group_add_action_with_accel (action_group, action, "H");
_tmp6_ = _g_object_ref0 (action);
_g_object_unref0 (self->priv->hint_action);
self->priv->hint_action = _tmp6_;
_tmp7_ = _ ("_Solve");
_tmp8_ = gtk_action_new ("SolveAction", _tmp7_, NULL, NULL);
_g_object_unref0 (action);
action = _tmp8_;
g_signal_connect_object (action, "activate", (GCallback) _gtk_mult_on_menu_game_solve_gtk_action_activate, self, 0);
gtk_action_group_add_action (action_group, action);
_tmp9_ = _g_object_ref0 (action);
_g_object_unref0 (self->priv->solve_action);
self->priv->solve_action = _tmp9_;
_tmp10_ = gtk_action_new ("CloseAction", NULL, NULL, GTK_STOCK_CLOSE);
_g_object_unref0 (action);
action = _tmp10_;
g_signal_connect_object (action, "activate", (GCallback) _gtk_mult_on_menu_game_close_gtk_action_activate, self, 0);
gtk_action_group_add_action_with_accel (action_group, action, "W");
_tmp11_ = _ ("_Help");
_tmp12_ = gtk_action_new ("HelpMenuAction", _tmp11_, NULL, NULL);
_g_object_unref0 (action);
action = _tmp12_;
gtk_action_group_add_action (action_group, action);
_tmp13_ = gtk_action_new ("AboutAction", NULL, NULL, GTK_STOCK_ABOUT);
_g_object_unref0 (action);
action = _tmp13_;
g_signal_connect_object (action, "activate", (GCallback) _gtk_mult_on_menu_help_about_gtk_action_activate, self, 0);
gtk_action_group_add_action (action_group, action);
_tmp14_ = g_strdup ("\n" \
"\n" \
" \n" \
" \n" \
" \n" \
" \n" \
"");
ui = _tmp14_;
_tmp15_ = gtk_ui_manager_new ();
manager = _tmp15_;
gtk_ui_manager_add_ui_from_string (manager, ui, (gssize) (-1), &_inner_error_);
if (_inner_error_ != NULL) {
goto __catch0_g_error;
}
goto __finally0;
__catch0_g_error:
{
GError * e;
e = _inner_error_;
_inner_error_ = NULL;
g_error ("GtkMult.vala:206: Internal error: bad ui string.\n");
_g_error_free0 (e);
}
__finally0:
if (_inner_error_ != NULL) {
_g_object_unref0 (manager);
_g_free0 (ui);
_g_object_unref0 (action);
_g_object_unref0 (action_group);
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return NULL;
}
gtk_ui_manager_insert_action_group (manager, action_group, 0);
_tmp16_ = gtk_ui_manager_get_accel_group (manager);
gtk_window_add_accel_group ((GtkWindow*) self, _tmp16_);
_tmp17_ = gtk_ui_manager_get_widget (manager, "/ui/menubar/GameMenu/New");
_tmp18_ = _tmp17_;
_tmp19_ = _g_object_ref0 (GTK_IS_MENU_ITEM (_tmp18_) ? ((GtkMenuItem*) _tmp18_) : NULL);
menu_item = _tmp19_;
g_signal_connect_object (menu_item, "select", (GCallback) _gtk_mult_on_menu_select_new_gtk_menu_item_select, self, 0);
g_signal_connect_object (menu_item, "deselect", (GCallback) _gtk_mult_on_menu_deselect_gtk_menu_item_deselect, self, 0);
_tmp20_ = gtk_ui_manager_get_widget (manager, "/ui/menubar/GameMenu/Hint");
_tmp21_ = _tmp20_;
_tmp22_ = _g_object_ref0 (GTK_IS_MENU_ITEM (_tmp21_) ? ((GtkMenuItem*) _tmp21_) : NULL);
_g_object_unref0 (menu_item);
menu_item = _tmp22_;
g_signal_connect_object (menu_item, "select", (GCallback) _gtk_mult_on_menu_select_hint_gtk_menu_item_select, self, 0);
g_signal_connect_object (menu_item, "deselect", (GCallback) _gtk_mult_on_menu_deselect_gtk_menu_item_deselect, self, 0);
_tmp23_ = gtk_ui_manager_get_widget (manager, "/ui/menubar/GameMenu/Solve");
_tmp24_ = _tmp23_;
_tmp25_ = _g_object_ref0 (GTK_IS_MENU_ITEM (_tmp24_) ? ((GtkMenuItem*) _tmp24_) : NULL);
_g_object_unref0 (menu_item);
menu_item = _tmp25_;
g_signal_connect_object (menu_item, "select", (GCallback) _gtk_mult_on_menu_select_solve_gtk_menu_item_select, self, 0);
g_signal_connect_object (menu_item, "deselect", (GCallback) _gtk_mult_on_menu_deselect_gtk_menu_item_deselect, self, 0);
_tmp26_ = gtk_ui_manager_get_widget (manager, "/ui/menubar/GameMenu/Close");
_tmp27_ = _tmp26_;
_tmp28_ = _g_object_ref0 (GTK_IS_MENU_ITEM (_tmp27_) ? ((GtkMenuItem*) _tmp27_) : NULL);
_g_object_unref0 (menu_item);
menu_item = _tmp28_;
g_signal_connect_object (menu_item, "select", (GCallback) _gtk_mult_on_menu_select_close_gtk_menu_item_select, self, 0);
g_signal_connect_object (menu_item, "deselect", (GCallback) _gtk_mult_on_menu_deselect_gtk_menu_item_deselect, self, 0);
_tmp29_ = gtk_ui_manager_get_widget (manager, "/ui/menubar/HelpMenu/About");
_tmp30_ = _tmp29_;
_tmp31_ = _g_object_ref0 (GTK_IS_MENU_ITEM (_tmp30_) ? ((GtkMenuItem*) _tmp30_) : NULL);
_g_object_unref0 (menu_item);
menu_item = _tmp31_;
g_signal_connect_object (menu_item, "select", (GCallback) _gtk_mult_on_menu_select_about_gtk_menu_item_select, self, 0);
g_signal_connect_object (menu_item, "deselect", (GCallback) _gtk_mult_on_menu_deselect_gtk_menu_item_deselect, self, 0);
_tmp32_ = gtk_ui_manager_get_widget (manager, "/ui/menubar");
_tmp33_ = _g_object_ref0 (_tmp32_);
result = _tmp33_;
_g_object_unref0 (menu_item);
_g_object_unref0 (manager);
_g_free0 (ui);
_g_object_unref0 (action);
_g_object_unref0 (action_group);
return result;
}
static gboolean _gtk_mult_update_timer_gsource_func (gpointer self) {
gboolean result;
result = gtk_mult_update_timer (self);
return result;
}
static void _gtk_mult_on_puzzle_guess_mult_puzzle_guessed (MultPuzzle* _sender, gint digit, MultPuzzleChar letter, MultPuzzleGuessStatus status, gpointer self) {
gtk_mult_on_puzzle_guess (self, _sender, digit, letter, status);
}
static void _gtk_mult_on_puzzle_change_mult_puzzle_changed (MultPuzzle* _sender, gpointer self) {
gtk_mult_on_puzzle_change (self, _sender);
}
static void gtk_mult_new_puzzle (GtkMult* self) {
GtkStatusbar* _tmp0_ = NULL;
GtkStatusbar* _tmp1_;
MultPuzzle* _tmp2_ = NULL;
MultPuzzle* _tmp3_;
Canvas* _tmp4_ = NULL;
GdkGeometry geom = {0};
guint _tmp5_;
g_return_if_fail (self != NULL);
if (self->priv->canvas != NULL) {
gtk_container_remove ((GtkContainer*) self->priv->vbox, (GtkWidget*) self->priv->canvas);
}
if (self->priv->_status != NULL) {
gtk_container_remove ((GtkContainer*) self->priv->status_box, (GtkWidget*) self->priv->_status);
}
_tmp0_ = (GtkStatusbar*) gtk_statusbar_new ();
_tmp1_ = g_object_ref_sink (_tmp0_);
gtk_mult_set_status (self, _tmp1_);
_g_object_unref0 (_tmp1_);
gtk_box_pack_start ((GtkBox*) self->priv->status_box, (GtkWidget*) self->priv->_status, TRUE, TRUE, (guint) 0);
gtk_box_reorder_child ((GtkBox*) self->priv->status_box, (GtkWidget*) self->priv->_status, 0);
_tmp2_ = mult_puzzle_new (3, 2);
_tmp3_ = _tmp2_;
gtk_mult_set_puzzle (self, _tmp3_);
_g_object_unref0 (_tmp3_);
_tmp4_ = canvas_new (self);
_g_object_unref0 (self->priv->canvas);
self->priv->canvas = g_object_ref_sink (_tmp4_);
gtk_box_pack_start ((GtkBox*) self->priv->vbox, (GtkWidget*) self->priv->canvas, TRUE, TRUE, (guint) 0);
memset (&geom, 0, sizeof (GdkGeometry));
geom.min_aspect = GTK_MULT_ASPECT;
geom.max_aspect = GTK_MULT_ASPECT;
gtk_window_set_geometry_hints ((GtkWindow*) self, (GtkWidget*) self->priv->canvas, &geom, GDK_HINT_ASPECT);
g_timer_reset (self->priv->timer);
gtk_mult_update_timer (self);
if (self->priv->timer_timeout_id != 0) {
g_source_remove (self->priv->timer_timeout_id);
}
_tmp5_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 1, _gtk_mult_update_timer_gsource_func, g_object_ref (self), g_object_unref);
self->priv->timer_timeout_id = _tmp5_;
gtk_mult_set_cheated (self, FALSE);
gtk_widget_show_all ((GtkWidget*) self);
gtk_mult_update_score (self);
gtk_mult_on_puzzle_change (self, self->priv->_puzzle);
if (self->priv->status_timeout_id != 0) {
g_source_remove (self->priv->status_timeout_id);
}
self->priv->status_timeout_id = (guint) 0;
g_signal_connect_object (self->priv->_puzzle, "guessed", (GCallback) _gtk_mult_on_puzzle_guess_mult_puzzle_guessed, self, 0);
g_signal_connect_object (self->priv->_puzzle, "changed", (GCallback) _gtk_mult_on_puzzle_change_mult_puzzle_changed, self, 0);
}
static gboolean _gtk_mult_pop_guess_feedback_gsource_func (gpointer self) {
gboolean result;
result = gtk_mult_pop_guess_feedback (self);
return result;
}
static void gtk_mult_on_puzzle_guess (GtkMult* self, MultPuzzle* p, gint digit, MultPuzzleChar letter, MultPuzzleGuessStatus response) {
guint _tmp0_;
guint context_id;
gboolean _tmp1_;
g_return_if_fail (self != NULL);
g_return_if_fail (p != NULL);
gtk_mult_update_score (self);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "guess-feedback");
context_id = _tmp0_;
gtk_mult_clear_guess_feedback (self);
_tmp1_ = mult_puzzle_get_is_done (self->priv->_puzzle);
if (_tmp1_) {
const gchar* _tmp2_ = NULL;
_tmp2_ = _ ("Congratulations!");
gtk_statusbar_push (self->priv->_status, context_id, _tmp2_);
} else {
gchar* message_pattern;
message_pattern = NULL;
switch (response) {
case MULT_PUZZLE_GUESS_STATUS_WRONG:
{
const gchar* _tmp3_ = NULL;
gchar* _tmp4_;
_tmp3_ = _ ("Incorrect — %1$s is not %2$s");
_tmp4_ = g_strdup (_tmp3_);
_g_free0 (message_pattern);
message_pattern = _tmp4_;
break;
}
case MULT_PUZZLE_GUESS_STATUS_CORRECT:
{
const gchar* _tmp5_ = NULL;
gchar* _tmp6_;
_tmp5_ = _ ("Correct — %1$s is %2$s");
_tmp6_ = g_strdup (_tmp5_);
_g_free0 (message_pattern);
message_pattern = _tmp6_;
break;
}
default:
case MULT_PUZZLE_GUESS_STATUS_KNOWN:
case MULT_PUZZLE_GUESS_STATUS_INVALID:
{
break;
}
}
if (message_pattern != NULL) {
gchar* _tmp7_ = NULL;
gchar* letter_str;
gchar* _tmp8_ = NULL;
gchar* digit_str;
const gchar* _tmp9_ = NULL;
const gchar* _tmp10_ = NULL;
gchar* _tmp11_ = NULL;
gchar* _tmp12_;
guint _tmp13_;
_tmp7_ = g_strdup_printf ("%c", (gint) ((gchar) letter));
letter_str = _tmp7_;
_tmp8_ = g_strdup_printf ("%i", digit);
digit_str = _tmp8_;
_tmp9_ = _ (letter_str);
_tmp10_ = _ (digit_str);
_tmp11_ = g_strdup_printf (message_pattern, _tmp9_, _tmp10_);
_tmp12_ = _tmp11_;
gtk_statusbar_push (self->priv->_status, context_id, _tmp12_);
_g_free0 (_tmp12_);
_tmp13_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 5, _gtk_mult_pop_guess_feedback_gsource_func, g_object_ref (self), g_object_unref);
self->priv->status_timeout_id = _tmp13_;
_g_free0 (digit_str);
_g_free0 (letter_str);
}
_g_free0 (message_pattern);
}
}
static void gtk_mult_on_puzzle_change (GtkMult* self, MultPuzzle* p) {
gboolean _tmp0_;
gboolean _tmp1_;
g_return_if_fail (self != NULL);
g_return_if_fail (p != NULL);
_tmp0_ = mult_puzzle_get_is_done (p);
gtk_action_set_sensitive (self->priv->solve_action, !_tmp0_);
_tmp1_ = mult_puzzle_get_is_done (p);
gtk_action_set_sensitive (self->priv->hint_action, !_tmp1_);
}
static gboolean gtk_mult_pop_guess_feedback (GtkMult* self) {
gboolean result = FALSE;
guint _tmp0_;
guint context_id;
g_return_val_if_fail (self != NULL, FALSE);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "guess-feedback");
context_id = _tmp0_;
gtk_statusbar_pop (self->priv->_status, context_id);
self->priv->status_timeout_id = (guint) 0;
result = FALSE;
return result;
}
static void gtk_mult_update_score (GtkMult* self) {
gint _tmp0_;
gint wrong;
const gchar* _tmp1_ = NULL;
const gchar* _tmp2_ = NULL;
gchar* _tmp3_ = NULL;
gchar* text;
g_return_if_fail (self != NULL);
_tmp0_ = mult_puzzle_get_wrong_guesses (self->priv->_puzzle);
wrong = _tmp0_;
if (self->priv->_cheated) {
_tmp1_ = "*";
} else {
_tmp1_ = "";
}
_tmp2_ = _ ("Incorrect Guesses");
_tmp3_ = g_strdup_printf ("%s: %i%s", _tmp2_, wrong, _tmp1_);
text = _tmp3_;
gtk_label_set_text (self->priv->score, text);
_g_free0 (text);
}
static gboolean gtk_mult_update_timer (GtkMult* self) {
gboolean result = FALSE;
gboolean _tmp0_;
gdouble _tmp1_;
guint secs;
const gchar* _tmp2_ = NULL;
gchar* _tmp3_ = NULL;
gchar* text;
g_return_val_if_fail (self != NULL, FALSE);
_tmp0_ = mult_puzzle_get_is_done (self->priv->_puzzle);
if (_tmp0_) {
result = FALSE;
return result;
}
_tmp1_ = g_timer_elapsed (self->priv->timer, NULL);
secs = (guint) _tmp1_;
_tmp2_ = _ ("Time");
_tmp3_ = g_strdup_printf ("%s: %02u:%02u:%02u", _tmp2_, (secs / 60) / 60, (secs / 60) % 60, secs % 60);
text = _tmp3_;
gtk_label_set_text (self->priv->timer_label, text);
result = TRUE;
_g_free0 (text);
return result;
}
static void gtk_mult_on_menu_deselect (GtkMult* self) {
guint _tmp0_;
guint context_id;
g_return_if_fail (self != NULL);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "menu-hover");
context_id = _tmp0_;
gtk_statusbar_pop (self->priv->_status, context_id);
}
static void gtk_mult_on_menu_game_close (GtkMult* self) {
g_return_if_fail (self != NULL);
gtk_widget_destroy ((GtkWidget*) self);
}
static void gtk_mult_on_menu_select_close (GtkMult* self) {
guint _tmp0_;
guint context_id;
const gchar* _tmp1_ = NULL;
g_return_if_fail (self != NULL);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "menu-hover");
context_id = _tmp0_;
gtk_mult_clear_guess_feedback (self);
_tmp1_ = _ ("Close Multiplication Puzzle");
gtk_statusbar_push (self->priv->_status, context_id, _tmp1_);
}
static void gtk_mult_on_menu_game_new (GtkMult* self) {
g_return_if_fail (self != NULL);
gtk_mult_new_puzzle (self);
}
static void gtk_mult_on_menu_select_new (GtkMult* self) {
guint _tmp0_;
guint context_id;
const gchar* _tmp1_ = NULL;
g_return_if_fail (self != NULL);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "menu-hover");
context_id = _tmp0_;
gtk_mult_clear_guess_feedback (self);
_tmp1_ = _ ("Start a new game");
gtk_statusbar_push (self->priv->_status, context_id, _tmp1_);
}
static void gtk_mult_on_menu_game_solve (GtkMult* self) {
guint _tmp0_;
guint context_id;
const gchar* _tmp1_ = NULL;
g_return_if_fail (self != NULL);
gtk_mult_set_cheated (self, TRUE);
mult_puzzle_solve (self->priv->_puzzle);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "guess-feedback");
context_id = _tmp0_;
gtk_mult_clear_guess_feedback (self);
_tmp1_ = _ ("Puzzle solved");
gtk_statusbar_push (self->priv->_status, context_id, _tmp1_);
gtk_mult_update_score (self);
}
static void gtk_mult_on_menu_select_solve (GtkMult* self) {
guint _tmp0_;
guint context_id;
const gchar* _tmp1_ = NULL;
g_return_if_fail (self != NULL);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "menu-hover");
context_id = _tmp0_;
gtk_mult_clear_guess_feedback (self);
_tmp1_ = _ ("Solve this game");
gtk_statusbar_push (self->priv->_status, context_id, _tmp1_);
}
static void gtk_mult_on_menu_game_hint (GtkMult* self) {
MultPuzzleChar character;
gint digit;
gint _tmp0_;
gboolean* _tmp1_ = NULL;
gboolean* needed;
gint needed_length1;
gint _needed_size_;
gint num_needed;
gint32 _tmp3_;
gint32 choice;
guint _tmp7_;
guint context_id;
const gchar* _tmp8_ = NULL;
gchar* _tmp9_;
gchar* message_pattern;
gchar* _tmp10_ = NULL;
gchar* letter_str;
gchar* _tmp11_ = NULL;
gchar* digit_str;
const gchar* _tmp12_ = NULL;
const gchar* _tmp13_ = NULL;
gchar* _tmp14_ = NULL;
gchar* _tmp15_;
guint _tmp16_;
g_return_if_fail (self != NULL);
gtk_mult_set_cheated (self, TRUE);
character = MULT_PUZZLE_CHAR_INVALID;
digit = 0;
_tmp1_ = mult_puzzle_get_needed_digits (self->priv->_puzzle, &_tmp0_);
needed = _tmp1_;
needed_length1 = _tmp0_;
_needed_size_ = _tmp0_;
num_needed = 0;
{
gboolean* n_collection;
int n_collection_length1;
int n_it;
n_collection = needed;
n_collection_length1 = needed_length1;
for (n_it = 0; n_it < needed_length1; n_it = n_it + 1) {
gboolean n;
n = n_collection[n_it];
{
gint _tmp2_ = 0;
if (n) {
_tmp2_ = 1;
} else {
_tmp2_ = 0;
}
num_needed = num_needed + _tmp2_;
}
}
}
if (num_needed == 0) {
needed = (g_free (needed), NULL);
return;
}
_tmp3_ = g_random_int_range ((gint32) 0, (gint32) num_needed);
choice = _tmp3_;
{
gint i;
i = 0;
{
gboolean _tmp4_;
_tmp4_ = TRUE;
while (TRUE) {
gboolean _tmp5_ = FALSE;
if (!_tmp4_) {
i = i + 1;
}
_tmp4_ = FALSE;
if (!(i < 10)) {
break;
}
if (needed[i]) {
_tmp5_ = choice == 0;
} else {
_tmp5_ = FALSE;
}
if (_tmp5_) {
MultPuzzleChar _tmp6_;
_tmp6_ = mult_puzzle_solve_digit (self->priv->_puzzle, i);
character = _tmp6_;
digit = i;
break;
} else {
if (needed[i]) {
choice = choice - 1;
}
}
}
}
}
_tmp7_ = gtk_statusbar_get_context_id (self->priv->_status, "guess-feedback");
context_id = _tmp7_;
gtk_mult_clear_guess_feedback (self);
_tmp8_ = _ ("%1$s is %2$s");
_tmp9_ = g_strdup (_tmp8_);
message_pattern = _tmp9_;
_tmp10_ = g_strdup_printf ("%c", (gint) ((gchar) character));
letter_str = _tmp10_;
_tmp11_ = g_strdup_printf ("%i", digit);
digit_str = _tmp11_;
_tmp12_ = _ (letter_str);
_tmp13_ = _ (digit_str);
_tmp14_ = g_strdup_printf (message_pattern, _tmp12_, _tmp13_);
_tmp15_ = _tmp14_;
gtk_statusbar_push (self->priv->_status, context_id, _tmp15_);
_g_free0 (_tmp15_);
_tmp16_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 5, _gtk_mult_pop_guess_feedback_gsource_func, g_object_ref (self), g_object_unref);
self->priv->status_timeout_id = _tmp16_;
gtk_mult_update_score (self);
_g_free0 (digit_str);
_g_free0 (letter_str);
_g_free0 (message_pattern);
needed = (g_free (needed), NULL);
}
static void gtk_mult_on_menu_select_hint (GtkMult* self) {
guint _tmp0_;
guint context_id;
const gchar* _tmp1_ = NULL;
g_return_if_fail (self != NULL);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "menu-hover");
context_id = _tmp0_;
gtk_mult_clear_guess_feedback (self);
_tmp1_ = _ ("Reveal a digit at random");
gtk_statusbar_push (self->priv->_status, context_id, _tmp1_);
}
static void _lambda0_ (GtkDialog* dlg, gint resp, GtkMult* self) {
g_return_if_fail (dlg != NULL);
gtk_widget_destroy ((GtkWidget*) dlg);
gtk_mult_set_about (self, NULL);
}
static void __lambda0__gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
_lambda0_ (_sender, response_id, self);
}
static void gtk_mult_on_menu_help_about (GtkMult* self) {
GtkAboutDialog* _tmp0_ = NULL;
GtkAboutDialog* _tmp1_;
const gchar* _tmp2_ = NULL;
const gchar* _tmp3_ = NULL;
g_return_if_fail (self != NULL);
if (self->priv->_about != NULL) {
gtk_window_present ((GtkWindow*) self->priv->_about);
return;
}
_tmp0_ = (GtkAboutDialog*) gtk_about_dialog_new ();
_tmp1_ = g_object_ref_sink (_tmp0_);
gtk_mult_set_about (self, _tmp1_);
_g_object_unref0 (_tmp1_);
_tmp2_ = _ ("About Multiplication Puzzle");
gtk_window_set_title ((GtkWindow*) self->priv->_about, _tmp2_);
gtk_about_dialog_set_authors (self->priv->_about, GTK_MULT_authors);
gtk_about_dialog_set_artists (self->priv->_about, GTK_MULT_artists);
_tmp3_ = _ ("translator-credits");
gtk_about_dialog_set_translator_credits (self->priv->_about, _tmp3_);
gtk_about_dialog_set_logo_icon_name (self->priv->_about, PACKAGE);
gtk_about_dialog_set_version (self->priv->_about, VERSION);
gtk_about_dialog_set_copyright (self->priv->_about, "© 2003—2011 Michael Terry");
gtk_about_dialog_set_website (self->priv->_about, "https://launchpad.net/gmult");
gtk_about_dialog_set_license_type (self->priv->_about, GTK_LICENSE_GPL_3_0);
gtk_window_set_transient_for ((GtkWindow*) self->priv->_about, (GtkWindow*) self);
g_signal_connect_object ((GtkDialog*) self->priv->_about, "response", (GCallback) __lambda0__gtk_dialog_response, self, 0);
gtk_widget_show ((GtkWidget*) self->priv->_about);
}
static void gtk_mult_on_menu_select_about (GtkMult* self) {
guint _tmp0_;
guint context_id;
const gchar* _tmp1_ = NULL;
g_return_if_fail (self != NULL);
_tmp0_ = gtk_statusbar_get_context_id (self->priv->_status, "menu-hover");
context_id = _tmp0_;
gtk_mult_clear_guess_feedback (self);
_tmp1_ = _ ("About Multiplication Puzzle");
gtk_statusbar_push (self->priv->_status, context_id, _tmp1_);
}
gint gtk_mult_main (gchar** args, int args_length1) {
gint result = 0;
GOptionContext* _tmp0_ = NULL;
GOptionContext* context;
GOptionGroup* _tmp1_ = NULL;
const gchar* _tmp4_ = NULL;
GtkIconTheme* _tmp5_ = NULL;
GtkMult* _tmp6_ = NULL;
GtkMult* window;
GError * _inner_error_ = NULL;
textdomain (GETTEXT_PACKAGE);
bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
_tmp0_ = g_option_context_new ("");
context = _tmp0_;
_tmp1_ = gtk_get_option_group (FALSE);
g_option_context_add_group (context, _tmp1_);
g_option_context_parse (context, &args_length1, &args, &_inner_error_);
if (_inner_error_ != NULL) {
goto __catch1_g_error;
}
goto __finally1;
__catch1_g_error:
{
GError * e;
gchar* _tmp2_ = NULL;
gchar* _tmp3_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp2_ = g_option_context_get_help (context, TRUE, NULL);
_tmp3_ = _tmp2_;
g_printerr ("%s\n\n%s", e->message, _tmp3_);
_g_free0 (_tmp3_);
result = 1;
_g_error_free0 (e);
_g_option_context_free0 (context);
return result;
}
__finally1:
if (_inner_error_ != NULL) {
_g_option_context_free0 (context);
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return 0;
}
gtk_init (&args_length1, &args);
_tmp4_ = _ ("Multiplication Puzzle");
g_set_application_name (_tmp4_);
_tmp5_ = gtk_icon_theme_get_default ();
gtk_icon_theme_append_search_path (_tmp5_, THEME_DIR);
gtk_window_set_default_icon_name (PACKAGE);
_tmp6_ = gtk_mult_new ();
window = g_object_ref_sink (_tmp6_);
gtk_widget_show_all ((GtkWidget*) window);
gtk_main ();
result = 0;
_g_object_unref0 (window);
_g_option_context_free0 (context);
return result;
}
int main (int argc, char ** argv) {
g_type_init ();
return gtk_mult_main (argv, argc);
}
GtkMult* gtk_mult_construct (GType object_type) {
GtkMult * self = NULL;
self = (GtkMult*) g_object_new (object_type, NULL);
return self;
}
GtkMult* gtk_mult_new (void) {
return gtk_mult_construct (TYPE_GTK_MULT);
}
MultPuzzle* gtk_mult_get_puzzle (GtkMult* self) {
MultPuzzle* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_puzzle;
return result;
}
static void gtk_mult_set_puzzle (GtkMult* self, MultPuzzle* value) {
MultPuzzle* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = _g_object_ref0 (value);
_g_object_unref0 (self->priv->_puzzle);
self->priv->_puzzle = _tmp0_;
g_object_notify ((GObject *) self, "puzzle");
}
gboolean gtk_mult_get_cheated (GtkMult* self) {
gboolean result;
g_return_val_if_fail (self != NULL, FALSE);
result = self->priv->_cheated;
return result;
}
static void gtk_mult_set_cheated (GtkMult* self, gboolean value) {
g_return_if_fail (self != NULL);
self->priv->_cheated = value;
g_object_notify ((GObject *) self, "cheated");
}
GtkStatusbar* gtk_mult_get_status (GtkMult* self) {
GtkStatusbar* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_status;
return result;
}
static void gtk_mult_set_status (GtkMult* self, GtkStatusbar* value) {
GtkStatusbar* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = _g_object_ref0 (value);
_g_object_unref0 (self->priv->_status);
self->priv->_status = _tmp0_;
g_object_notify ((GObject *) self, "status");
}
static GtkAboutDialog* gtk_mult_get_about (GtkMult* self) {
GtkAboutDialog* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_about;
return result;
}
static void gtk_mult_set_about (GtkMult* self, GtkAboutDialog* value) {
GtkAboutDialog* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = _g_object_ref0 (value);
_g_object_unref0 (self->priv->_about);
self->priv->_about = _tmp0_;
}
static gboolean _gtk_mult_handle_key_press_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
gboolean result;
result = gtk_mult_handle_key_press (self, event);
return result;
}
static void _gtk_main_quit_gtk_widget_destroy (GtkWidget* _sender, gpointer self) {
gtk_main_quit ();
}
static GObject * gtk_mult_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
GObjectClass * parent_class;
GtkMult * self;
GtkVBox* _tmp0_ = NULL;
GtkLabel* _tmp1_ = NULL;
GTimer* _tmp2_ = NULL;
GtkLabel* _tmp3_ = NULL;
GValue dpiValue = {0};
GdkScreen* _tmp4_ = NULL;
gint _tmp5_;
gint height;
GtkVBox* _tmp6_ = NULL;
GtkVBox* vb;
GtkHBox* _tmp7_ = NULL;
GtkWidget* _tmp8_ = NULL;
GtkWidget* _tmp9_;
GtkEventBox* _tmp10_ = NULL;
GtkEventBox* eb;
GtkEventBox* _tmp11_ = NULL;
const gchar* _tmp12_ = NULL;
parent_class = G_OBJECT_CLASS (gtk_mult_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = GTK_MULT (obj);
_tmp0_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
_g_object_unref0 (self->priv->vbox);
self->priv->vbox = g_object_ref_sink (_tmp0_);
gtk_mult_set_status (self, NULL);
_tmp1_ = (GtkLabel*) gtk_label_new ("");
_g_object_unref0 (self->priv->score);
self->priv->score = g_object_ref_sink (_tmp1_);
_g_object_unref0 (self->priv->canvas);
self->priv->canvas = NULL;
self->priv->status_timeout_id = (guint) 0;
_g_object_unref0 (self->priv->solve_action);
self->priv->solve_action = NULL;
_g_object_unref0 (self->priv->hint_action);
self->priv->hint_action = NULL;
_tmp2_ = g_timer_new ();
_g_timer_destroy0 (self->priv->timer);
self->priv->timer = _tmp2_;
_tmp3_ = (GtkLabel*) gtk_label_new ("");
_g_object_unref0 (self->priv->timer_label);
self->priv->timer_label = g_object_ref_sink (_tmp3_);
self->priv->timer_timeout_id = (guint) 0;
g_value_init (&dpiValue, G_TYPE_INT);
_tmp4_ = gtk_window_get_screen ((GtkWindow*) self);
gdk_screen_get_setting (_tmp4_, "gtk-xft-dpi", &dpiValue);
_tmp5_ = g_value_get_int (&dpiValue);
gtk_mult_dpi = _tmp5_ / PANGO_SCALE;
height = 4 * gtk_mult_dpi;
gtk_window_set_default_size ((GtkWindow*) self, (gint) (height * GTK_MULT_ASPECT), height);
_tmp6_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
vb = g_object_ref_sink (_tmp6_);
_tmp7_ = (GtkHBox*) gtk_hbox_new (FALSE, 0);
_g_object_unref0 (self->priv->status_box);
self->priv->status_box = g_object_ref_sink (_tmp7_);
_tmp8_ = gtk_mult_setup_menu (self);
_tmp9_ = _tmp8_;
gtk_box_pack_start ((GtkBox*) vb, _tmp9_, FALSE, FALSE, (guint) 0);
_g_object_unref0 (_tmp9_);
gtk_box_pack_start ((GtkBox*) vb, (GtkWidget*) self->priv->vbox, TRUE, TRUE, (guint) 0);
gtk_box_pack_start ((GtkBox*) vb, (GtkWidget*) self->priv->status_box, FALSE, FALSE, (guint) 0);
_tmp10_ = (GtkEventBox*) gtk_event_box_new ();
eb = g_object_ref_sink (_tmp10_);
gtk_container_add ((GtkContainer*) eb, (GtkWidget*) self->priv->score);
gtk_container_set_border_width ((GtkContainer*) eb, (guint) 5);
gtk_box_pack_start ((GtkBox*) self->priv->status_box, (GtkWidget*) eb, FALSE, FALSE, (guint) 0);
_tmp11_ = (GtkEventBox*) gtk_event_box_new ();
_g_object_unref0 (eb);
eb = g_object_ref_sink (_tmp11_);
gtk_container_add ((GtkContainer*) eb, (GtkWidget*) self->priv->timer_label);
gtk_container_set_border_width ((GtkContainer*) eb, (guint) 5);
gtk_box_pack_start ((GtkBox*) self->priv->status_box, (GtkWidget*) eb, FALSE, FALSE, (guint) 0);
gtk_container_add ((GtkContainer*) self, (GtkWidget*) vb);
gtk_widget_add_events ((GtkWidget*) self, (gint) GDK_KEY_PRESS_MASK);
g_signal_connect_object ((GtkWidget*) self, "key-press-event", (GCallback) _gtk_mult_handle_key_press_gtk_widget_key_press_event, self, 0);
_tmp12_ = _ ("Multiplication Puzzle");
gtk_window_set_title ((GtkWindow*) self, _tmp12_);
gtk_mult_new_puzzle (self);
g_signal_connect ((GtkWidget*) self, "destroy", (GCallback) _gtk_main_quit_gtk_widget_destroy, NULL);
_g_object_unref0 (eb);
_g_object_unref0 (vb);
G_IS_VALUE (&dpiValue) ? (g_value_unset (&dpiValue), NULL) : NULL;
return obj;
}
static void gtk_mult_class_init (GtkMultClass * klass) {
const gchar* _tmp0_ = NULL;
gunichar _tmp1_;
gunichar _tmp2_;
const gchar* _tmp3_ = NULL;
gunichar _tmp4_;
gunichar _tmp5_;
const gchar* _tmp6_ = NULL;
gunichar _tmp7_;
gunichar _tmp8_;
const gchar* _tmp9_ = NULL;
gunichar _tmp10_;
gunichar _tmp11_;
const gchar* _tmp12_ = NULL;
gunichar _tmp13_;
gunichar _tmp14_;
const gchar* _tmp15_ = NULL;
gunichar _tmp16_;
gunichar _tmp17_;
const gchar* _tmp18_ = NULL;
gunichar _tmp19_;
gunichar _tmp20_;
const gchar* _tmp21_ = NULL;
gunichar _tmp22_;
gunichar _tmp23_;
const gchar* _tmp24_ = NULL;
gunichar _tmp25_;
gunichar _tmp26_;
const gchar* _tmp27_ = NULL;
gunichar _tmp28_;
gunichar _tmp29_;
const gchar* _tmp30_ = NULL;
gunichar _tmp31_;
gunichar _tmp32_;
const gchar* _tmp33_ = NULL;
gunichar _tmp34_;
gunichar _tmp35_;
const gchar* _tmp36_ = NULL;
gunichar _tmp37_;
gunichar _tmp38_;
const gchar* _tmp39_ = NULL;
gunichar _tmp40_;
gunichar _tmp41_;
const gchar* _tmp42_ = NULL;
gunichar _tmp43_;
gunichar _tmp44_;
const gchar* _tmp45_ = NULL;
gunichar _tmp46_;
gunichar _tmp47_;
const gchar* _tmp48_ = NULL;
gunichar _tmp49_;
gunichar _tmp50_;
const gchar* _tmp51_ = NULL;
gunichar _tmp52_;
gunichar _tmp53_;
const gchar* _tmp54_ = NULL;
gunichar _tmp55_;
gunichar _tmp56_;
const gchar* _tmp57_ = NULL;
gunichar _tmp58_;
gunichar _tmp59_;
gtk_mult_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (GtkMultPrivate));
G_OBJECT_CLASS (klass)->get_property = _vala_gtk_mult_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_gtk_mult_set_property;
G_OBJECT_CLASS (klass)->constructor = gtk_mult_constructor;
G_OBJECT_CLASS (klass)->finalize = gtk_mult_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), GTK_MULT_PUZZLE, g_param_spec_object ("puzzle", "puzzle", "puzzle", TYPE_MULT_PUZZLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), GTK_MULT_CHEATED, g_param_spec_boolean ("cheated", "cheated", "cheated", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), GTK_MULT_STATUS, g_param_spec_object ("status", "status", "status", GTK_TYPE_STATUSBAR, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
_tmp0_ = _ ("A");
_tmp1_ = string_get_char (_tmp0_, (glong) 0);
_tmp2_ = g_unichar_toupper (_tmp1_);
gtk_mult_a_char = _tmp2_;
_tmp3_ = _ ("B");
_tmp4_ = string_get_char (_tmp3_, (glong) 0);
_tmp5_ = g_unichar_toupper (_tmp4_);
gtk_mult_b_char = _tmp5_;
_tmp6_ = _ ("C");
_tmp7_ = string_get_char (_tmp6_, (glong) 0);
_tmp8_ = g_unichar_toupper (_tmp7_);
gtk_mult_c_char = _tmp8_;
_tmp9_ = _ ("D");
_tmp10_ = string_get_char (_tmp9_, (glong) 0);
_tmp11_ = g_unichar_toupper (_tmp10_);
gtk_mult_d_char = _tmp11_;
_tmp12_ = _ ("E");
_tmp13_ = string_get_char (_tmp12_, (glong) 0);
_tmp14_ = g_unichar_toupper (_tmp13_);
gtk_mult_e_char = _tmp14_;
_tmp15_ = _ ("F");
_tmp16_ = string_get_char (_tmp15_, (glong) 0);
_tmp17_ = g_unichar_toupper (_tmp16_);
gtk_mult_f_char = _tmp17_;
_tmp18_ = _ ("G");
_tmp19_ = string_get_char (_tmp18_, (glong) 0);
_tmp20_ = g_unichar_toupper (_tmp19_);
gtk_mult_g_char = _tmp20_;
_tmp21_ = _ ("H");
_tmp22_ = string_get_char (_tmp21_, (glong) 0);
_tmp23_ = g_unichar_toupper (_tmp22_);
gtk_mult_h_char = _tmp23_;
_tmp24_ = _ ("I");
_tmp25_ = string_get_char (_tmp24_, (glong) 0);
_tmp26_ = g_unichar_toupper (_tmp25_);
gtk_mult_i_char = _tmp26_;
_tmp27_ = _ ("J");
_tmp28_ = string_get_char (_tmp27_, (glong) 0);
_tmp29_ = g_unichar_toupper (_tmp28_);
gtk_mult_j_char = _tmp29_;
_tmp30_ = _ ("0");
_tmp31_ = string_get_char (_tmp30_, (glong) 0);
_tmp32_ = g_unichar_toupper (_tmp31_);
gtk_mult_0_char = _tmp32_;
_tmp33_ = _ ("1");
_tmp34_ = string_get_char (_tmp33_, (glong) 0);
_tmp35_ = g_unichar_toupper (_tmp34_);
gtk_mult_1_char = _tmp35_;
_tmp36_ = _ ("2");
_tmp37_ = string_get_char (_tmp36_, (glong) 0);
_tmp38_ = g_unichar_toupper (_tmp37_);
gtk_mult_2_char = _tmp38_;
_tmp39_ = _ ("3");
_tmp40_ = string_get_char (_tmp39_, (glong) 0);
_tmp41_ = g_unichar_toupper (_tmp40_);
gtk_mult_3_char = _tmp41_;
_tmp42_ = _ ("4");
_tmp43_ = string_get_char (_tmp42_, (glong) 0);
_tmp44_ = g_unichar_toupper (_tmp43_);
gtk_mult_4_char = _tmp44_;
_tmp45_ = _ ("5");
_tmp46_ = string_get_char (_tmp45_, (glong) 0);
_tmp47_ = g_unichar_toupper (_tmp46_);
gtk_mult_5_char = _tmp47_;
_tmp48_ = _ ("6");
_tmp49_ = string_get_char (_tmp48_, (glong) 0);
_tmp50_ = g_unichar_toupper (_tmp49_);
gtk_mult_6_char = _tmp50_;
_tmp51_ = _ ("7");
_tmp52_ = string_get_char (_tmp51_, (glong) 0);
_tmp53_ = g_unichar_toupper (_tmp52_);
gtk_mult_7_char = _tmp53_;
_tmp54_ = _ ("8");
_tmp55_ = string_get_char (_tmp54_, (glong) 0);
_tmp56_ = g_unichar_toupper (_tmp55_);
gtk_mult_8_char = _tmp56_;
_tmp57_ = _ ("9");
_tmp58_ = string_get_char (_tmp57_, (glong) 0);
_tmp59_ = g_unichar_toupper (_tmp58_);
gtk_mult_9_char = _tmp59_;
}
static void gtk_mult_instance_init (GtkMult * self) {
self->priv = GTK_MULT_GET_PRIVATE (self);
self->priv->_about = NULL;
}
static void gtk_mult_finalize (GObject* obj) {
GtkMult * self;
self = GTK_MULT (obj);
_g_object_unref0 (self->priv->_puzzle);
_g_object_unref0 (self->priv->_status);
_g_object_unref0 (self->priv->solve_action);
_g_object_unref0 (self->priv->hint_action);
_g_object_unref0 (self->priv->canvas);
_g_object_unref0 (self->priv->vbox);
_g_timer_destroy0 (self->priv->timer);
_g_object_unref0 (self->priv->timer_label);
_g_object_unref0 (self->priv->score);
_g_object_unref0 (self->priv->status_box);
_g_object_unref0 (self->priv->_about);
G_OBJECT_CLASS (gtk_mult_parent_class)->finalize (obj);
}
GType gtk_mult_get_type (void) {
static volatile gsize gtk_mult_type_id__volatile = 0;
if (g_once_init_enter (>k_mult_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (GtkMultClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gtk_mult_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GtkMult), 0, (GInstanceInitFunc) gtk_mult_instance_init, NULL };
GType gtk_mult_type_id;
gtk_mult_type_id = g_type_register_static (GTK_TYPE_WINDOW, "GtkMult", &g_define_type_info, 0);
g_once_init_leave (>k_mult_type_id__volatile, gtk_mult_type_id);
}
return gtk_mult_type_id__volatile;
}
static void _vala_gtk_mult_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
GtkMult * self;
self = GTK_MULT (object);
switch (property_id) {
case GTK_MULT_PUZZLE:
g_value_set_object (value, gtk_mult_get_puzzle (self));
break;
case GTK_MULT_CHEATED:
g_value_set_boolean (value, gtk_mult_get_cheated (self));
break;
case GTK_MULT_STATUS:
g_value_set_object (value, gtk_mult_get_status (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_gtk_mult_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
GtkMult * self;
self = GTK_MULT (object);
switch (property_id) {
case GTK_MULT_PUZZLE:
gtk_mult_set_puzzle (self, g_value_get_object (value));
break;
case GTK_MULT_CHEATED:
gtk_mult_set_cheated (self, g_value_get_boolean (value));
break;
case GTK_MULT_STATUS:
gtk_mult_set_status (self, g_value_get_object (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
gmult-8.0/gmult/Makefile.am 0000644 0001750 0001750 00000001314 11551160257 015255 0 ustar udienz udienz bin_PROGRAMS = gmult
gmult_CFLAGS = \
$(GTK_CFLAGS) \
-DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\"
gmult_LDADD = $(GTK_LIBS) @INTLLIBS@
gmult_VALASOURCES = \
Canvas.vala \
CharBox.vala \
DigitBox.vala \
GtkMult.vala \
MultPuzzle.vala \
TableBox.vala
gmult_VALABUILTSOURCES = \
$(gmult_VALASOURCES:.vala=.c)
gmult_SOURCES = \
$(gmult_VALABUILTSOURCES)
if MAINTAINER_MODE
VALA_CFLAGS = \
--vapidir $(top_srcdir)/vapi \
--pkg gtk+-3.0 \
--pkg gio-2.0 \
--pkg config
BUILT_SOURCES = vala.stamp
vala.stamp: $(gmult_VALASOURCES)
$(AM_V_GEN)$(VALAC) -C $(VALA_CFLAGS) $^
@touch $@
endif
EXTRA_DIST = $(gmult_VALASOURCES)
if MAINTAINER_MODE
CLEANFILES = $(BUILT_SOURCES) $(gmult_VALABUILTSOURCES)
endif
gmult-8.0/gmult/TableBox.c 0000644 0001750 0001750 00000041576 11551170315 015077 0 ustar udienz udienz /* TableBox.c generated by valac 0.12.0, the Vala compiler
* generated from TableBox.vala, do not modify */
/* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
#include
#include
#include
#include
#include
#include
#define TYPE_CHAR_BOX (char_box_get_type ())
#define CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHAR_BOX, CharBox))
#define CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHAR_BOX, CharBoxClass))
#define IS_CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHAR_BOX))
#define IS_CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHAR_BOX))
#define CHAR_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHAR_BOX, CharBoxClass))
typedef struct _CharBox CharBox;
typedef struct _CharBoxClass CharBoxClass;
typedef struct _CharBoxPrivate CharBoxPrivate;
#define TYPE_TABLE_BOX (table_box_get_type ())
#define TABLE_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TABLE_BOX, TableBox))
#define TABLE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TABLE_BOX, TableBoxClass))
#define IS_TABLE_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TABLE_BOX))
#define IS_TABLE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TABLE_BOX))
#define TABLE_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TABLE_BOX, TableBoxClass))
typedef struct _TableBox TableBox;
typedef struct _TableBoxClass TableBoxClass;
typedef struct _TableBoxPrivate TableBoxPrivate;
#define TYPE_CANVAS (canvas_get_type ())
#define CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANVAS, Canvas))
#define CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANVAS, CanvasClass))
#define IS_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANVAS))
#define IS_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANVAS))
#define CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANVAS, CanvasClass))
typedef struct _Canvas Canvas;
typedef struct _CanvasClass CanvasClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define TYPE_MULT_PUZZLE (mult_puzzle_get_type ())
#define MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULT_PUZZLE, MultPuzzle))
#define MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULT_PUZZLE, MultPuzzleClass))
#define IS_MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULT_PUZZLE))
#define IS_MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULT_PUZZLE))
#define MULT_PUZZLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULT_PUZZLE, MultPuzzleClass))
typedef struct _MultPuzzle MultPuzzle;
typedef struct _MultPuzzleClass MultPuzzleClass;
#define TYPE_MULT_PUZZLE_CHAR (mult_puzzle_char_get_type ())
#define TYPE_MULT_PUZZLE_GUESS_STATUS (mult_puzzle_guess_status_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
struct _CharBox {
GtkEventBox parent_instance;
CharBoxPrivate * priv;
};
struct _CharBoxClass {
GtkEventBoxClass parent_class;
};
struct _TableBox {
CharBox parent_instance;
TableBoxPrivate * priv;
};
struct _TableBoxClass {
CharBoxClass parent_class;
};
struct _TableBoxPrivate {
Canvas* _canvas;
gchar _character;
gboolean did_enter;
gboolean drag_status;
};
typedef enum {
MULT_PUZZLE_CHAR_A = 65,
MULT_PUZZLE_CHAR_B,
MULT_PUZZLE_CHAR_C,
MULT_PUZZLE_CHAR_D,
MULT_PUZZLE_CHAR_E,
MULT_PUZZLE_CHAR_F,
MULT_PUZZLE_CHAR_G,
MULT_PUZZLE_CHAR_H,
MULT_PUZZLE_CHAR_I,
MULT_PUZZLE_CHAR_J,
MULT_PUZZLE_CHAR_INVALID
} MultPuzzleChar;
typedef enum {
MULT_PUZZLE_GUESS_STATUS_WRONG,
MULT_PUZZLE_GUESS_STATUS_CORRECT,
MULT_PUZZLE_GUESS_STATUS_KNOWN,
MULT_PUZZLE_GUESS_STATUS_INVALID
} MultPuzzleGuessStatus;
static gpointer table_box_parent_class = NULL;
GType char_box_get_type (void) G_GNUC_CONST;
GType table_box_get_type (void) G_GNUC_CONST;
GType canvas_get_type (void) G_GNUC_CONST;
#define TABLE_BOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TABLE_BOX, TableBoxPrivate))
enum {
TABLE_BOX_DUMMY_PROPERTY,
TABLE_BOX_CANVAS,
TABLE_BOX_CHARACTER
};
TableBox* table_box_new (gchar c, Canvas* can);
TableBox* table_box_construct (GType object_type, gchar c, Canvas* can);
static gboolean table_box_handle_drag_motion (TableBox* self, GdkDragContext* context, gint x, gint y, guint time_);
Canvas* table_box_get_canvas (TableBox* self);
void canvas_highlight_box (Canvas* self, CharBox* box, gboolean digit_box, gboolean hover, gboolean all);
static void table_box_handle_drag_leave (TableBox* self, GdkDragContext* context, guint time_);
static gboolean table_box_handle_drag_drop (TableBox* self, GdkDragContext* context, gint x, gint y, guint time_);
static void table_box_handle_data_received (TableBox* self, GdkDragContext* context, gint x, gint y, GtkSelectionData* data, guint info, guint time_);
GType mult_puzzle_get_type (void) G_GNUC_CONST;
MultPuzzle* canvas_get_puzzle (Canvas* self);
GType mult_puzzle_char_get_type (void) G_GNUC_CONST;
gboolean* mult_puzzle_get_letter_guesses (MultPuzzle* self, MultPuzzleChar letter, int* result_length1);
gchar table_box_get_character (TableBox* self);
GType mult_puzzle_guess_status_get_type (void) G_GNUC_CONST;
MultPuzzleGuessStatus mult_puzzle_guess (MultPuzzle* self, gint digit, MultPuzzleChar letter);
static void table_box_set_canvas (TableBox* self, Canvas* value);
static void table_box_set_character (TableBox* self, gchar value);
static GObject * table_box_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
void char_box_set_letter (CharBox* self, const gchar* value);
void char_box_set_border (CharBox* self, GtkShadowType value);
static void _table_box_handle_data_received_gtk_widget_drag_data_received (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, GtkSelectionData* selection_data, guint info, guint time_, gpointer self);
static gboolean _table_box_handle_drag_motion_gtk_widget_drag_motion (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, guint time_, gpointer self);
static void _table_box_handle_drag_leave_gtk_widget_drag_leave (GtkWidget* _sender, GdkDragContext* context, guint time_, gpointer self);
static gboolean _table_box_handle_drag_drop_gtk_widget_drag_drop (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, guint time_, gpointer self);
static void table_box_finalize (GObject* obj);
static void _vala_table_box_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_table_box_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
TableBox* table_box_construct (GType object_type, gchar c, Canvas* can) {
TableBox * self = NULL;
g_return_val_if_fail (can != NULL, NULL);
self = (TableBox*) g_object_new (object_type, "character", c, "canvas", can, NULL);
return self;
}
TableBox* table_box_new (gchar c, Canvas* can) {
return table_box_construct (TYPE_TABLE_BOX, c, can);
}
static gboolean table_box_handle_drag_motion (TableBox* self, GdkDragContext* context, gint x, gint y, guint time_) {
gboolean result = FALSE;
GdkAtom _tmp0_;
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (context != NULL, FALSE);
if (!self->priv->did_enter) {
canvas_highlight_box (self->priv->_canvas, (CharBox*) self, FALSE, TRUE, TRUE);
self->priv->did_enter = TRUE;
}
self->priv->drag_status = FALSE;
_tmp0_ = gdk_atom_intern_static_string ("STRING");
gtk_drag_get_data ((GtkWidget*) self, context, _tmp0_, (guint32) time_);
if (!self->priv->drag_status) {
canvas_highlight_box (self->priv->_canvas, (CharBox*) self, FALSE, TRUE, TRUE);
}
result = self->priv->drag_status;
return result;
}
static void table_box_handle_drag_leave (TableBox* self, GdkDragContext* context, guint time_) {
g_return_if_fail (self != NULL);
g_return_if_fail (context != NULL);
canvas_highlight_box (self->priv->_canvas, (CharBox*) self, FALSE, FALSE, TRUE);
self->priv->did_enter = FALSE;
}
static gboolean table_box_handle_drag_drop (TableBox* self, GdkDragContext* context, gint x, gint y, guint time_) {
gboolean result = FALSE;
GdkAtom _tmp0_;
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (context != NULL, FALSE);
self->priv->drag_status = TRUE;
_tmp0_ = gdk_atom_intern_static_string ("STRING");
gtk_drag_get_data ((GtkWidget*) self, context, _tmp0_, (guint32) time_);
if (!self->priv->drag_status) {
canvas_highlight_box (self->priv->_canvas, (CharBox*) self, FALSE, TRUE, TRUE);
}
result = TRUE;
return result;
}
static void table_box_handle_data_received (TableBox* self, GdkDragContext* context, gint x, gint y, GtkSelectionData* data, guint info, guint time_) {
gint _tmp0_;
guchar* _tmp1_ = NULL;
gint digit;
g_return_if_fail (self != NULL);
g_return_if_fail (context != NULL);
g_return_if_fail (data != NULL);
_tmp0_ = gtk_selection_data_get_length (data);
if (_tmp0_ <= 0) {
return;
}
_tmp1_ = gtk_selection_data_get_data (data);
digit = _tmp1_[0] - 48;
if (!self->priv->drag_status) {
MultPuzzle* _tmp2_ = NULL;
gint _tmp3_;
gboolean* _tmp4_ = NULL;
gboolean* guesses;
gint guesses_length1;
gint _guesses_size_;
_tmp2_ = canvas_get_puzzle (self->priv->_canvas);
_tmp4_ = mult_puzzle_get_letter_guesses (_tmp2_, (MultPuzzleChar) self->priv->_character, &_tmp3_);
guesses = _tmp4_;
guesses_length1 = _tmp3_;
_guesses_size_ = _tmp3_;
if (!guesses[digit]) {
self->priv->drag_status = TRUE;
gdk_drag_status (context, GDK_ACTION_COPY, (guint32) time_);
}
guesses = (g_free (guesses), NULL);
} else {
MultPuzzle* _tmp5_ = NULL;
MultPuzzleGuessStatus _tmp6_;
MultPuzzleGuessStatus rv;
_tmp5_ = canvas_get_puzzle (self->priv->_canvas);
_tmp6_ = mult_puzzle_guess (_tmp5_, digit, (MultPuzzleChar) self->priv->_character);
rv = _tmp6_;
gtk_drag_finish (context, rv == MULT_PUZZLE_GUESS_STATUS_CORRECT, FALSE, (guint32) time_);
}
}
Canvas* table_box_get_canvas (TableBox* self) {
Canvas* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_canvas;
return result;
}
static gpointer _g_object_ref0 (gpointer self) {
return self ? g_object_ref (self) : NULL;
}
static void table_box_set_canvas (TableBox* self, Canvas* value) {
Canvas* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = _g_object_ref0 (value);
_g_object_unref0 (self->priv->_canvas);
self->priv->_canvas = _tmp0_;
g_object_notify ((GObject *) self, "canvas");
}
gchar table_box_get_character (TableBox* self) {
gchar result;
g_return_val_if_fail (self != NULL, '\0');
result = self->priv->_character;
return result;
}
static void table_box_set_character (TableBox* self, gchar value) {
g_return_if_fail (self != NULL);
self->priv->_character = value;
g_object_notify ((GObject *) self, "character");
}
static void _table_box_handle_data_received_gtk_widget_drag_data_received (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, GtkSelectionData* selection_data, guint info, guint time_, gpointer self) {
table_box_handle_data_received (self, context, x, y, selection_data, info, time_);
}
static gboolean _table_box_handle_drag_motion_gtk_widget_drag_motion (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, guint time_, gpointer self) {
gboolean result;
result = table_box_handle_drag_motion (self, context, x, y, time_);
return result;
}
static void _table_box_handle_drag_leave_gtk_widget_drag_leave (GtkWidget* _sender, GdkDragContext* context, guint time_, gpointer self) {
table_box_handle_drag_leave (self, context, time_);
}
static gboolean _table_box_handle_drag_drop_gtk_widget_drag_drop (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, guint time_, gpointer self) {
gboolean result;
result = table_box_handle_drag_drop (self, context, x, y, time_);
return result;
}
static GObject * table_box_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
GObjectClass * parent_class;
TableBox * self;
gchar* _tmp0_ = NULL;
gchar* _tmp1_;
GtkTargetEntry* _tmp2_ = NULL;
GtkTargetEntry* entries;
gint entries_length1;
gint _entries_size_;
parent_class = G_OBJECT_CLASS (table_box_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = TABLE_BOX (obj);
self->priv->did_enter = FALSE;
self->priv->drag_status = TRUE;
_tmp0_ = g_strdup_printf ("%c", (gint) self->priv->_character);
_tmp1_ = _tmp0_;
char_box_set_letter ((CharBox*) self, _tmp1_);
_g_free0 (_tmp1_);
char_box_set_border ((CharBox*) self, GTK_SHADOW_IN);
_tmp2_ = g_new0 (GtkTargetEntry, 1);
entries = _tmp2_;
entries_length1 = 1;
_entries_size_ = 1;
entries[0].target = "STRING";
entries[0].flags = (guint) GTK_TARGET_SAME_APP;
entries[0].info = (guint) 0;
gtk_drag_dest_set ((GtkWidget*) self, 0, entries, entries_length1, GDK_ACTION_MOVE);
g_signal_connect_object ((GtkWidget*) self, "drag-data-received", (GCallback) _table_box_handle_data_received_gtk_widget_drag_data_received, self, 0);
g_signal_connect_object ((GtkWidget*) self, "drag-motion", (GCallback) _table_box_handle_drag_motion_gtk_widget_drag_motion, self, 0);
g_signal_connect_object ((GtkWidget*) self, "drag-leave", (GCallback) _table_box_handle_drag_leave_gtk_widget_drag_leave, self, 0);
g_signal_connect_object ((GtkWidget*) self, "drag-drop", (GCallback) _table_box_handle_drag_drop_gtk_widget_drag_drop, self, 0);
entries = (g_free (entries), NULL);
return obj;
}
static void table_box_class_init (TableBoxClass * klass) {
table_box_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (TableBoxPrivate));
G_OBJECT_CLASS (klass)->get_property = _vala_table_box_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_table_box_set_property;
G_OBJECT_CLASS (klass)->constructor = table_box_constructor;
G_OBJECT_CLASS (klass)->finalize = table_box_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), TABLE_BOX_CANVAS, g_param_spec_object ("canvas", "canvas", "canvas", TYPE_CANVAS, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (G_OBJECT_CLASS (klass), TABLE_BOX_CHARACTER, g_param_spec_char ("character", "character", "character", G_MININT8, G_MAXINT8, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}
static void table_box_instance_init (TableBox * self) {
self->priv = TABLE_BOX_GET_PRIVATE (self);
}
static void table_box_finalize (GObject* obj) {
TableBox * self;
self = TABLE_BOX (obj);
_g_object_unref0 (self->priv->_canvas);
G_OBJECT_CLASS (table_box_parent_class)->finalize (obj);
}
GType table_box_get_type (void) {
static volatile gsize table_box_type_id__volatile = 0;
if (g_once_init_enter (&table_box_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (TableBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) table_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TableBox), 0, (GInstanceInitFunc) table_box_instance_init, NULL };
GType table_box_type_id;
table_box_type_id = g_type_register_static (TYPE_CHAR_BOX, "TableBox", &g_define_type_info, 0);
g_once_init_leave (&table_box_type_id__volatile, table_box_type_id);
}
return table_box_type_id__volatile;
}
static void _vala_table_box_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
TableBox * self;
self = TABLE_BOX (object);
switch (property_id) {
case TABLE_BOX_CANVAS:
g_value_set_object (value, table_box_get_canvas (self));
break;
case TABLE_BOX_CHARACTER:
g_value_set_char (value, table_box_get_character (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_table_box_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
TableBox * self;
self = TABLE_BOX (object);
switch (property_id) {
case TABLE_BOX_CANVAS:
table_box_set_canvas (self, g_value_get_object (value));
break;
case TABLE_BOX_CHARACTER:
table_box_set_character (self, g_value_get_char (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
gmult-8.0/gmult/Canvas.vala 0000644 0001750 0001750 00000036676 11551174776 015337 0 ustar udienz udienz /* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2008,2011 Michael Terry
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 3 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, see .
*/
using GLib;
public enum CanvasMode {NONE, DIGIT, CHAR}
// This is a stupid little construction that vala needs to get lengths right
struct ArrayBox {
public CharBox[] array;
}
public class Canvas : Gtk.EventBox
{
public MultPuzzle puzzle { get; construct; }
public GtkMult mult { get; construct; }
public Canvas (GtkMult mult)
{
Object(mult: mult);
}
public void clear_mode ()
{
set_mode (CanvasMode.NONE, null);
}
private string mode_letter;
private CanvasMode mode;
public void set_mode (CanvasMode m, CharBox? box)
{
mode = m;
mode_letter = box == null ? null : box.letter ;
foreach (CharBox b in mult_boxes)
highlight_box (b, false, false, false);
foreach (CharBox b in digit_boxes)
highlight_box (b, true, false, false);
var context_id = mult.status.get_context_id ("guess-prompt");
mult.status.pop(context_id); // There might be an existing prompt
if (mode != CanvasMode.NONE) {
mult.clear_guess_feedback();
mult.status.push (context_id, "%s = ?".printf (_(mode_letter)));
}
}
public void start_choice (char ch)
{
// First, see if digit or letter, then find box
weak List boxes = ch.isdigit() ? digit_boxes : mult_boxes;
string str = "%c".printf(ch);
foreach (CharBox b in boxes)
if (str == b.letter) {
if (ch.isdigit())
start_digit_choice (b);
else
start_char_choice (b);
break;
}
}
public void start_digit_choice (CharBox b)
{
if (mode == CanvasMode.CHAR) // this is really an end-char-choice, not a start-digit-choice
{
if (b.get_state_flags() != Gtk.StateFlags.INSENSITIVE)
puzzle.guess (b.letter[0].digit_value (), (MultPuzzleChar)mode_letter[0]);
clear_mode ();
}
else
set_mode (CanvasMode.DIGIT, b);
}
public void start_char_choice (CharBox b)
{
if (mode == CanvasMode.DIGIT) // this is really an end-digit-choice, not a start-char-choice
{
if (b.get_state_flags() != Gtk.StateFlags.INSENSITIVE)
puzzle.guess (mode_letter[0].digit_value (), (MultPuzzleChar)b.letter[0]);
clear_mode ();
}
else
set_mode (CanvasMode.CHAR, b);
}
private int min_box_request;
private int num_box_rows;
private int num_box_cols; // Not counting two digit cols
private int min_width;
private int min_height;
private Gtk.Fixed fixed;
private Gtk.Widget vsep;
private Gtk.Widget hsep1;
private Gtk.Widget hsep2;
private List mult_boxes;
private List digit_boxes;
private CharBox[] xboxes;
private CharBox[] yboxes;
private CharBox[] zboxes;
private ArrayBox[] addboxes;
private CharBox[] digitboxes;
private CharBox plusbox;
private CharBox timesbox;
// Standard buffer between widgets
private static const int SPACING = 6;
construct
{
this.puzzle = mult.puzzle;
this.mode = CanvasMode.NONE;
this.mode_letter = null;
this.min_box_request = -1;
this.mult_boxes = null;
this.digit_boxes = null;
this.fixed = new Gtk.Fixed();
add(this.fixed);
this.vsep = new Gtk.VSeparator();
this.hsep1 = new Gtk.HSeparator();
this.hsep2 = new Gtk.HSeparator();
this.fixed.add(this.vsep);
this.fixed.add(this.hsep1);
this.fixed.add(this.hsep2);
this.plusbox = new CharBox("+", Gtk.ShadowType.NONE);
this.fixed.add(this.plusbox);
this.timesbox = new CharBox("×", Gtk.ShadowType.NONE);
this.fixed.add(this.timesbox);
string x = this.puzzle.get_multiplicand();
string y = this.puzzle.get_multiplier();
string z = this.puzzle.get_answer();
this.num_box_rows = 3 + (int)y.length;
this.num_box_cols = 1 + (int)z.length;
this.xboxes = new CharBox[x.length];
this.yboxes = new CharBox[y.length];
this.zboxes = new CharBox[z.length];
this.digitboxes = new CharBox[10];
this.addboxes = new ArrayBox[this.puzzle.get_num_addends()];
for (int i = 0; i < this.addboxes.length; ++i)
this.addboxes[i].array = new CharBox[this.puzzle.get_addend(i).length];
// Calculate minimum amount of space needed.
int vsep_width, hsep1_height;
// FIXME: vala bindings are broken, we'll just fake preferred width
//vsep.get_preferred_width(null, out vsep_width);
hsep1.get_preferred_height(null, out hsep1_height);
vsep_width = hsep1_height;
this.min_width = 12 + (this.num_box_cols-1)*SPACING + SPACING + vsep_width + SPACING*4 + 12;
this.min_height = 12 + (this.num_box_rows+1)*SPACING + hsep1_height*2 + 12;
set_size_request(min_width, min_height);
/*
Gtk.TargetEntry[] entries = new Gtk.TargetEntry[1];
entries[0].target = "STRING";
entries[0].flags = Gtk.TargetFlags.SAME_APP;
entries[0].info = 0;
Gtk.drag_dest_set (this, 0, entries, Gdk.DragAction.MOVE);
*/
add_events (Gdk.EventMask.BUTTON_RELEASE_MASK);
button_release_event.connect(handle_none_release);
this.fixed.size_allocate.connect(handle_size_allocate);
handle_puzzle_change(this.puzzle);
this.puzzle.changed.connect(handle_puzzle_change);
}
private void layout_mult_string(CharBox[] boxes, int row, int indent, int w, int mult_x_offset, int mult_y_offset)
{
indent = this.num_box_cols - indent;
int x = mult_x_offset + indent*(w+SPACING);
int y = mult_y_offset + row*(w+SPACING);
if (row >= 2) // addend
y += this.hsep1.get_allocated_height() + SPACING;
if (row == this.num_box_rows - 1) // answer
y += this.hsep2.get_allocated_height() + SPACING;
foreach (CharBox b in boxes)
{
Gdk.Rectangle alloc = {x, y, w, w};
allocate_box(b, alloc);
x += w+SPACING;
}
}
private void allocate_box(CharBox b, Gdk.Rectangle rect)
{
b.size_allocate(rect);
b.points = (int) ((rect.height) * (72.0/GtkMult.dpi));
}
private void handle_size_allocate(Gdk.Rectangle rect)
{
int w = (int) ((rect.width - this.min_width) / (this.num_box_cols + 2));
int h = (int) ((rect.height - this.min_height) / this.num_box_rows);
// From here on, we only use 'w' because we want a square box
w = (w > h) ? h : w;
int mult_x_offset = rect.x + 12 + (rect.width - this.min_width - w*(this.num_box_cols+2))/2;
int mult_y_offset = rect.y + 12 + (rect.height - this.min_height - w*this.num_box_rows)/2;
mult_x_offset = mult_x_offset > (rect.width/2) ? (rect.width/2) : mult_x_offset;
mult_y_offset = mult_y_offset > (rect.height/2) ? (rect.height/2) : mult_y_offset;
layout_mult_string(this.xboxes, 0, this.xboxes.length, w, mult_x_offset, mult_y_offset);
layout_mult_string(this.yboxes, 1, this.yboxes.length, w, mult_x_offset, mult_y_offset);
for (int i = 0; i < this.addboxes.length; ++i)
layout_mult_string(this.addboxes[i].array, 2 + i, this.addboxes[i].array.length + i, w, mult_x_offset, mult_y_offset);
layout_mult_string(this.zboxes, this.num_box_rows - 1, this.zboxes.length, w, mult_x_offset, mult_y_offset);
// *** Horizontal separators ***
int hsep1_height, hsep2_height;
hsep1.get_preferred_height(null, out hsep1_height);
hsep2.get_preferred_height(null, out hsep2_height);
Gdk.Rectangle rec = Gdk.Rectangle();
rec.x = mult_x_offset;
rec.y = mult_y_offset + 2*(w+SPACING);
rec.width = this.num_box_cols*w + (this.num_box_cols-1)*SPACING;
rec.height = hsep1_height;
this.hsep1.size_allocate(rec);
rec.x = mult_x_offset;
rec.y = mult_y_offset + (int)(2+this.puzzle.get_num_addends())*(w+SPACING) + hsep1_height + SPACING;
rec.width = this.num_box_cols*w + (this.num_box_cols-1)*SPACING;
rec.height = hsep2_height;
this.hsep2.size_allocate(rec);
// *** Symbols ****
rec.x = mult_x_offset;
rec.y = mult_y_offset + w + SPACING;
rec.width = w;
rec.height = w;
allocate_box(this.timesbox, rec);
rec.x = mult_x_offset;
rec.y = mult_y_offset + (int)(1+this.puzzle.get_num_addends())*(w+SPACING) + hsep1_height + SPACING;
rec.width = w;
rec.height = w;
allocate_box(this.plusbox, rec);
// *** Vertical separator ***
int vsep_width;
// FIXME: vala bindings are broken, we'll just fake preferred width
//vsep.get_preferred_width(null, out vsep_width);
vsep_width = hsep1_height;
rec.x = mult_x_offset + this.num_box_cols*(w+SPACING) + SPACING;
rec.y = mult_y_offset;
rec.width = vsep_width;
rec.height = rect.height - (mult_y_offset-rect.y)*2;
this.vsep.size_allocate(rec);
// *** Digits ***
int digit_y_offset = rect.y + 12 + (rect.height - 12 - 12 - 5*w - 4*SPACING)/2;
rec.width = w;
rec.height = w;
rec.x = rec.x + SPACING*2;
for (int i = 0; i < 5; ++i) {
rec.y = digit_y_offset + i*(w+SPACING);
allocate_box(this.digitboxes[i*2], rec);
}
rec.x = rec.x + w + SPACING;
for (int i = 0; i < 5; ++i) {
rec.y = digit_y_offset + i*(w+SPACING);
allocate_box(this.digitboxes[i*2 + 1], rec);
}
}
private CharBox create_mult_box(unichar ch)
{
CharBox b;
if (ch.isdigit ())
b = new CharBox("%c".printf((char)ch), Gtk.ShadowType.NONE);
else {
b = new TableBox((char)ch, this);
b.add_events (Gdk.EventMask.BUTTON_RELEASE_MASK |
Gdk.EventMask.ENTER_NOTIFY_MASK |
Gdk.EventMask.LEAVE_NOTIFY_MASK);
b.button_release_event.connect((e) => {
return handle_release (b, e, false);});
b.enter_notify_event.connect((e) => {
highlight_box (b, false, true, true);
return false;});
b.leave_notify_event.connect((e) => {
highlight_box (b, false, false, true);
return false;});
mult_boxes.append(b);
}
return b;
}
private CharBox create_digit_box(bool[] unknown, int i)
{
CharBox b;
if (unknown[i] == true) {
var digit_str = "%i".printf(i);
b = new DigitBox(this, digit_str);
b.add_events (Gdk.EventMask.BUTTON_RELEASE_MASK |
Gdk.EventMask.ENTER_NOTIFY_MASK |
Gdk.EventMask.LEAVE_NOTIFY_MASK);
b.button_release_event.connect((e) => {
return handle_release (b, e, true);});
b.enter_notify_event.connect((e) => {
highlight_box (b, true, true, true);
return false;});
b.leave_notify_event.connect((e) => {
highlight_box (b, true, false, true);
return false;});
digit_boxes.append(b);
}
else
b = new CharBox (" ", Gtk.ShadowType.NONE);
return b;
}
private void handle_puzzle_change(MultPuzzle p)
{
// Create CharBoxes for all the pieces of the puzzle.
this.mult_boxes = new List();
this.digit_boxes = new List();
var multiplicand = this.puzzle.get_multiplicand();
for (int i = 0; i < multiplicand.length; ++i) {
this.xboxes[i] = create_mult_box(multiplicand[i]);
this.xboxes[i].show_all();
this.fixed.add(this.xboxes[i]);
}
var multiplier = this.puzzle.get_multiplier();
for (int i = 0; i < multiplier.length; ++i) {
this.yboxes[i] = create_mult_box(multiplier[i]);
this.yboxes[i].show_all();
this.fixed.add(this.yboxes[i]);
}
for (int i = 0; i < this.puzzle.get_num_addends(); ++i) {
var addend = this.puzzle.get_addend(i);
for (int j = 0; j < addend.length; ++j) {
this.addboxes[i].array[j] = create_mult_box(addend[j]);
this.addboxes[i].array[j].show_all();
this.fixed.add(this.addboxes[i].array[j]);
}
}
var answer = this.puzzle.get_answer();
for (int i = 0; i < answer.length; ++i) {
this.zboxes[i] = create_mult_box(answer[i]);
this.zboxes[i].show_all();
this.fixed.add(this.zboxes[i]);
}
var unknown = this.puzzle.get_unknown_digits();
for (int i = 0; i < 10; i++) {
this.digitboxes[i] = create_digit_box(unknown, i);
this.digitboxes[i].show_all();
this.fixed.add(this.digitboxes[i]);
}
if (p.is_done) {
this.sensitive = false;
for (int i = 0; i < 10; i++)
this.digitboxes[i].highlight = Gtk.StateFlags.INSENSITIVE;
}
}
public void highlight_box (CharBox box, bool digit_box, bool hover, bool all)
{
if (all)
{
weak List boxes = digit_box ? digit_boxes : mult_boxes;
foreach (CharBox b in boxes)
if (b != box && b.letter == box.letter)
highlight_box (b, digit_box, hover, false);
}
CanvasMode native_mode = digit_box ? CanvasMode.DIGIT : CanvasMode.CHAR;
if (mode == native_mode)
{
if (mode_letter == box.letter)
{
box.highlight = Gtk.StateFlags.ACTIVE;
return;
}
}
else if (mode != CanvasMode.NONE)
{
if (digit_box) {
var unknowns = puzzle.get_unknown_digits ();
var guesses = puzzle.get_letter_guesses ((MultPuzzleChar)mode_letter[0]);
int digit = box.letter[0].digit_value ();
if (!unknowns[digit] || guesses[digit]) {
box.highlight = Gtk.StateFlags.INSENSITIVE;
return;
}
}
else
{
int digit = mode_letter[0].digit_value ();
if (puzzle.get_letter_guesses ((MultPuzzleChar)box.letter[0])[digit]) {
box.highlight = Gtk.StateFlags.INSENSITIVE;
return;
}
}
if (hover)
{
box.highlight = Gtk.StateFlags.PRELIGHT;
return;
}
}
else
{
if (hover)
{
box.highlight = Gtk.StateFlags.PRELIGHT;
return;
}
}
box.highlight = Gtk.StateFlags.NORMAL;
}
private bool handle_release (CharBox box, Gdk.EventButton event, bool digit_box)
{
if (!box.visible) // in drag
return false;
// Make sure pointer is still in our box. This ignores trying to grab
// when the widget doesn't support it.
int x, y, w, h;
box.get_pointer (out x, out y);
w = get_window().get_width();
h = get_window().get_height();
if (x.clamp(0, w) != x || y.clamp(0, h) != y)
return false;
if (event.button == 1)
{
if (digit_box)
start_digit_choice (box);
else
start_char_choice (box);
return true;
}
return false;
}
private bool handle_none_release (Gdk.EventButton event)
{
// Make sure pointer is still in our box. This ignores trying to grab
// when the widget doesn't support it.
int x, y, w, h;
get_pointer (out x, out y);
w = get_window().get_width();
h = get_window().get_height();
if (x.clamp(0, w) != x || y.clamp(0, h) != y)
return false;
if (event.button == 1)
clear_mode ();
return true;
}
}
gmult-8.0/gmult/CharBox.c 0000644 0001750 0001750 00000030754 11551310030 014707 0 ustar udienz udienz /* CharBox.c generated by valac 0.12.0, the Vala compiler
* generated from CharBox.vala, do not modify */
/* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define TYPE_CHAR_BOX (char_box_get_type ())
#define CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHAR_BOX, CharBox))
#define CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHAR_BOX, CharBoxClass))
#define IS_CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHAR_BOX))
#define IS_CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHAR_BOX))
#define CHAR_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHAR_BOX, CharBoxClass))
typedef struct _CharBox CharBox;
typedef struct _CharBoxClass CharBoxClass;
typedef struct _CharBoxPrivate CharBoxPrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
struct _CharBox {
GtkEventBox parent_instance;
CharBoxPrivate * priv;
};
struct _CharBoxClass {
GtkEventBoxClass parent_class;
};
struct _CharBoxPrivate {
gchar* _letter;
GtkShadowType _border;
gint _points;
GtkStateFlags _highlight;
GtkDrawingArea* area;
};
static gpointer char_box_parent_class = NULL;
void gtk_style_context_get_color (GtkStyleContext* context, GtkStateFlags state, GdkRGBA* color);
GType char_box_get_type (void) G_GNUC_CONST;
#define CHAR_BOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CHAR_BOX, CharBoxPrivate))
enum {
CHAR_BOX_DUMMY_PROPERTY,
CHAR_BOX_LETTER,
CHAR_BOX_BORDER,
CHAR_BOX_POINTS,
CHAR_BOX_HIGHLIGHT
};
static gboolean char_box_draw_request (CharBox* self, cairo_t* ctx);
GtkStateFlags char_box_get_highlight (CharBox* self);
GtkShadowType char_box_get_border (CharBox* self);
gint char_box_get_points (CharBox* self);
const gchar* char_box_get_letter (CharBox* self);
CharBox* char_box_new (const gchar* letter, GtkShadowType border);
CharBox* char_box_construct (GType object_type, const gchar* letter, GtkShadowType border);
void char_box_set_letter (CharBox* self, const gchar* value);
void char_box_set_border (CharBox* self, GtkShadowType value);
void char_box_set_points (CharBox* self, gint value);
void char_box_set_highlight (CharBox* self, GtkStateFlags value);
static GObject * char_box_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static gboolean _char_box_draw_request_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self);
static void char_box_finalize (GObject* obj);
static void _vala_char_box_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_char_box_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static gpointer _g_object_ref0 (gpointer self) {
return self ? g_object_ref (self) : NULL;
}
static gboolean char_box_draw_request (CharBox* self, cairo_t* ctx) {
gboolean result = FALSE;
gint _tmp0_;
gint w;
gint _tmp1_;
gint h;
GtkStyleContext* _tmp2_ = NULL;
GtkStyleContext* _tmp3_;
GtkStyleContext* style;
GtkStateFlags _tmp4_;
GtkStateFlags _tmp5_;
GdkRGBA color = {0};
GtkStateFlags _tmp6_;
GdkRGBA _tmp7_ = {0};
cairo_text_extents_t te = {0};
const gchar* _tmp8_ = NULL;
cairo_text_extents_t _tmp9_ = {0};
cairo_font_extents_t fe = {0};
cairo_font_extents_t _tmp10_ = {0};
const gchar* _tmp11_ = NULL;
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (ctx != NULL, FALSE);
_tmp0_ = gtk_widget_get_allocated_width ((GtkWidget*) self->priv->area);
w = _tmp0_;
_tmp1_ = gtk_widget_get_allocated_height ((GtkWidget*) self->priv->area);
h = _tmp1_;
_tmp2_ = gtk_widget_get_style_context ((GtkWidget*) self);
_tmp3_ = _g_object_ref0 (_tmp2_);
style = _tmp3_;
gtk_style_context_save (style);
gtk_style_context_add_class (style, GTK_STYLE_CLASS_RUBBERBAND);
_tmp4_ = char_box_get_highlight (self);
gtk_style_context_set_state (style, _tmp4_);
_tmp5_ = char_box_get_highlight (self);
if (_tmp5_ != GTK_STATE_FLAG_NORMAL) {
gtk_render_background (style, ctx, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h);
}
if (self->priv->_border != GTK_SHADOW_NONE) {
gtk_render_frame (style, ctx, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h);
}
_tmp6_ = char_box_get_highlight (self);
gtk_style_context_get_color (style, _tmp6_, &_tmp7_);
color = _tmp7_;
cairo_set_source_rgba (ctx, color.red, color.green, color.blue, color.alpha);
cairo_set_font_size (ctx, (gdouble) self->priv->_points);
memset (&te, 0, sizeof (cairo_text_extents_t));
_tmp8_ = _ (self->priv->_letter);
cairo_text_extents (ctx, _tmp8_, &_tmp9_);
te = _tmp9_;
memset (&fe, 0, sizeof (cairo_font_extents_t));
cairo_font_extents (ctx, &_tmp10_);
fe = _tmp10_;
cairo_move_to (ctx, ((w / 2) - te.x_bearing) - (te.width / 2), ((h / 2) - fe.descent) + (fe.height / 2));
_tmp11_ = _ (self->priv->_letter);
cairo_show_text (ctx, _tmp11_);
gtk_style_context_restore (style);
result = TRUE;
_g_object_unref0 (style);
return result;
}
CharBox* char_box_construct (GType object_type, const gchar* letter, GtkShadowType border) {
CharBox * self = NULL;
g_return_val_if_fail (letter != NULL, NULL);
self = (CharBox*) g_object_new (object_type, NULL);
char_box_set_letter (self, letter);
char_box_set_border (self, border);
return self;
}
CharBox* char_box_new (const gchar* letter, GtkShadowType border) {
return char_box_construct (TYPE_CHAR_BOX, letter, border);
}
const gchar* char_box_get_letter (CharBox* self) {
const gchar* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_letter;
return result;
}
void char_box_set_letter (CharBox* self, const gchar* value) {
gchar* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_letter);
self->priv->_letter = _tmp0_;
g_object_notify ((GObject *) self, "letter");
}
GtkShadowType char_box_get_border (CharBox* self) {
GtkShadowType result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_border;
return result;
}
void char_box_set_border (CharBox* self, GtkShadowType value) {
g_return_if_fail (self != NULL);
self->priv->_border = value;
g_object_notify ((GObject *) self, "border");
}
gint char_box_get_points (CharBox* self) {
gint result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_points;
return result;
}
void char_box_set_points (CharBox* self, gint value) {
g_return_if_fail (self != NULL);
self->priv->_points = value;
g_object_notify ((GObject *) self, "points");
}
GtkStateFlags char_box_get_highlight (CharBox* self) {
GtkStateFlags result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_highlight;
return result;
}
void char_box_set_highlight (CharBox* self, GtkStateFlags value) {
g_return_if_fail (self != NULL);
self->priv->_highlight = value;
gtk_widget_queue_draw ((GtkWidget*) self);
g_object_notify ((GObject *) self, "highlight");
}
static gboolean _char_box_draw_request_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self) {
gboolean result;
result = char_box_draw_request (self, cr);
return result;
}
static GObject * char_box_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
GObjectClass * parent_class;
CharBox * self;
GtkDrawingArea* _tmp0_ = NULL;
parent_class = G_OBJECT_CLASS (char_box_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = CHAR_BOX (obj);
_tmp0_ = (GtkDrawingArea*) gtk_drawing_area_new ();
_g_object_unref0 (self->priv->area);
self->priv->area = g_object_ref_sink (_tmp0_);
g_signal_connect_object ((GtkWidget*) self->priv->area, "draw", (GCallback) _char_box_draw_request_gtk_widget_draw, self, 0);
gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->area);
return obj;
}
static void char_box_class_init (CharBoxClass * klass) {
char_box_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (CharBoxPrivate));
G_OBJECT_CLASS (klass)->get_property = _vala_char_box_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_char_box_set_property;
G_OBJECT_CLASS (klass)->constructor = char_box_constructor;
G_OBJECT_CLASS (klass)->finalize = char_box_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), CHAR_BOX_LETTER, g_param_spec_string ("letter", "letter", "letter", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), CHAR_BOX_BORDER, g_param_spec_enum ("border", "border", "border", GTK_TYPE_SHADOW_TYPE, GTK_SHADOW_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), CHAR_BOX_POINTS, g_param_spec_int ("points", "points", "points", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), CHAR_BOX_HIGHLIGHT, g_param_spec_flags ("highlight", "highlight", "highlight", GTK_TYPE_STATE_FLAGS, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}
static void char_box_instance_init (CharBox * self) {
gchar* _tmp0_;
self->priv = CHAR_BOX_GET_PRIVATE (self);
_tmp0_ = g_strdup ("?");
self->priv->_letter = _tmp0_;
self->priv->_border = GTK_SHADOW_NONE;
self->priv->_highlight = GTK_STATE_FLAG_NORMAL;
}
static void char_box_finalize (GObject* obj) {
CharBox * self;
self = CHAR_BOX (obj);
_g_free0 (self->priv->_letter);
_g_object_unref0 (self->priv->area);
G_OBJECT_CLASS (char_box_parent_class)->finalize (obj);
}
GType char_box_get_type (void) {
static volatile gsize char_box_type_id__volatile = 0;
if (g_once_init_enter (&char_box_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (CharBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) char_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CharBox), 0, (GInstanceInitFunc) char_box_instance_init, NULL };
GType char_box_type_id;
char_box_type_id = g_type_register_static (GTK_TYPE_EVENT_BOX, "CharBox", &g_define_type_info, 0);
g_once_init_leave (&char_box_type_id__volatile, char_box_type_id);
}
return char_box_type_id__volatile;
}
static void _vala_char_box_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
CharBox * self;
self = CHAR_BOX (object);
switch (property_id) {
case CHAR_BOX_LETTER:
g_value_set_string (value, char_box_get_letter (self));
break;
case CHAR_BOX_BORDER:
g_value_set_enum (value, char_box_get_border (self));
break;
case CHAR_BOX_POINTS:
g_value_set_int (value, char_box_get_points (self));
break;
case CHAR_BOX_HIGHLIGHT:
g_value_set_flags (value, char_box_get_highlight (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_char_box_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
CharBox * self;
self = CHAR_BOX (object);
switch (property_id) {
case CHAR_BOX_LETTER:
char_box_set_letter (self, g_value_get_string (value));
break;
case CHAR_BOX_BORDER:
char_box_set_border (self, g_value_get_enum (value));
break;
case CHAR_BOX_POINTS:
char_box_set_points (self, g_value_get_int (value));
break;
case CHAR_BOX_HIGHLIGHT:
char_box_set_highlight (self, g_value_get_flags (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
gmult-8.0/gmult/DigitBox.vala 0000644 0001750 0001750 00000006202 11551171665 015605 0 ustar udienz udienz /* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2008,2011 Michael Terry
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 3 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, see .
*/
using GLib;
public class DigitBox : CharBox
{
public Canvas canvas { get; construct; }
public DigitBox (Canvas canvas, string letter)
{
Object(canvas: canvas, letter: letter);
}
construct
{
this.border = Gtk.ShadowType.OUT;
Gtk.TargetEntry[] entries = new Gtk.TargetEntry[1];
entries[0].target = "STRING";
entries[0].flags = Gtk.TargetFlags.SAME_APP;
entries[0].info = 0;
Gtk.drag_source_set (this, Gdk.ModifierType.BUTTON1_MASK, entries, Gdk.DragAction.MOVE);
drag_data_get.connect(handle_drag_get);
drag_begin.connect(handle_drag_begin);
drag_end.connect(handle_drag_end);
// Translators: If there's a better alternative to Arabic numerals for
// your language, please use it instead of these digits. Note
// that it still has to make sense when used as part of the math puzzle.
N_("0");
N_("1");
N_("2");
N_("3");
N_("4");
N_("5");
N_("6");
N_("7");
N_("8");
N_("9");
}
private void handle_drag_begin (Gdk.DragContext context)
{
// Set mode, immediately invalidate/redraw ourselves to get new highlight
canvas.set_mode (CanvasMode.DIGIT, this);
get_window().invalidate_region (get_window().get_visible_region (), true);
get_window().process_updates (true);
// Make drag icon be identical to this widget
int width, height;
width = get_window().get_width();
height = get_window().get_height();
var surface = get_window().create_similar_surface(Cairo.Content.COLOR, width, height);
Cairo.Context ctx = new Cairo.Context(surface);
Gdk.cairo_set_source_window(ctx, get_window(), 0, 0);
ctx.paint();
int x, y;
get_pointer (out x, out y);
// Sometimes, if pointer has moved a lot since it started moving with drag,
// x or y can be out of range. This causes the drag icon to look odd.
// So we clamp values to be safe.
x = x.clamp(0, width);
y = y.clamp(0, height);
surface.set_device_offset(-x, -y);
Gtk.drag_set_icon_surface (context, surface);
hide ();
}
private void handle_drag_end (Gdk.DragContext context)
{
show ();
}
private void handle_drag_get (Gdk.DragContext context,
Gtk.SelectionData data, uint info, uint time_)
{
data.set_text (letter, (int)letter.length);
}
}
gmult-8.0/gmult/DigitBox.c 0000644 0001750 0001750 00000032713 11551173071 015103 0 ustar udienz udienz /* DigitBox.c generated by valac 0.12.0, the Vala compiler
* generated from DigitBox.vala, do not modify */
/* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2008,2011 Michael Terry
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 3 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, see .
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define TYPE_CHAR_BOX (char_box_get_type ())
#define CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHAR_BOX, CharBox))
#define CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHAR_BOX, CharBoxClass))
#define IS_CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHAR_BOX))
#define IS_CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHAR_BOX))
#define CHAR_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHAR_BOX, CharBoxClass))
typedef struct _CharBox CharBox;
typedef struct _CharBoxClass CharBoxClass;
typedef struct _CharBoxPrivate CharBoxPrivate;
#define TYPE_DIGIT_BOX (digit_box_get_type ())
#define DIGIT_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIGIT_BOX, DigitBox))
#define DIGIT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIGIT_BOX, DigitBoxClass))
#define IS_DIGIT_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIGIT_BOX))
#define IS_DIGIT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIGIT_BOX))
#define DIGIT_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIGIT_BOX, DigitBoxClass))
typedef struct _DigitBox DigitBox;
typedef struct _DigitBoxClass DigitBoxClass;
typedef struct _DigitBoxPrivate DigitBoxPrivate;
#define TYPE_CANVAS (canvas_get_type ())
#define CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANVAS, Canvas))
#define CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANVAS, CanvasClass))
#define IS_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANVAS))
#define IS_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANVAS))
#define CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANVAS, CanvasClass))
typedef struct _Canvas Canvas;
typedef struct _CanvasClass CanvasClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define TYPE_CANVAS_MODE (canvas_mode_get_type ())
#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
struct _CharBox {
GtkEventBox parent_instance;
CharBoxPrivate * priv;
};
struct _CharBoxClass {
GtkEventBoxClass parent_class;
};
struct _DigitBox {
CharBox parent_instance;
DigitBoxPrivate * priv;
};
struct _DigitBoxClass {
CharBoxClass parent_class;
};
struct _DigitBoxPrivate {
Canvas* _canvas;
};
typedef enum {
CANVAS_MODE_NONE,
CANVAS_MODE_DIGIT,
CANVAS_MODE_CHAR
} CanvasMode;
static gpointer digit_box_parent_class = NULL;
GType char_box_get_type (void) G_GNUC_CONST;
GType digit_box_get_type (void) G_GNUC_CONST;
GType canvas_get_type (void) G_GNUC_CONST;
#define DIGIT_BOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIGIT_BOX, DigitBoxPrivate))
enum {
DIGIT_BOX_DUMMY_PROPERTY,
DIGIT_BOX_CANVAS
};
DigitBox* digit_box_new (Canvas* canvas, const gchar* letter);
DigitBox* digit_box_construct (GType object_type, Canvas* canvas, const gchar* letter);
static void digit_box_handle_drag_begin (DigitBox* self, GdkDragContext* context);
Canvas* digit_box_get_canvas (DigitBox* self);
GType canvas_mode_get_type (void) G_GNUC_CONST;
void canvas_set_mode (Canvas* self, CanvasMode m, CharBox* box);
static void digit_box_handle_drag_end (DigitBox* self, GdkDragContext* context);
static void digit_box_handle_drag_get (DigitBox* self, GdkDragContext* context, GtkSelectionData* data, guint info, guint time_);
const gchar* char_box_get_letter (CharBox* self);
static void digit_box_set_canvas (DigitBox* self, Canvas* value);
static GObject * digit_box_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
void char_box_set_border (CharBox* self, GtkShadowType value);
static void _digit_box_handle_drag_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self);
static void _digit_box_handle_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self);
static void _digit_box_handle_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self);
static void digit_box_finalize (GObject* obj);
static void _vala_digit_box_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_digit_box_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
DigitBox* digit_box_construct (GType object_type, Canvas* canvas, const gchar* letter) {
DigitBox * self = NULL;
g_return_val_if_fail (canvas != NULL, NULL);
g_return_val_if_fail (letter != NULL, NULL);
self = (DigitBox*) g_object_new (object_type, "canvas", canvas, "letter", letter, NULL);
return self;
}
DigitBox* digit_box_new (Canvas* canvas, const gchar* letter) {
return digit_box_construct (TYPE_DIGIT_BOX, canvas, letter);
}
static gpointer _cairo_surface_reference0 (gpointer self) {
return self ? cairo_surface_reference (self) : NULL;
}
static void digit_box_handle_drag_begin (DigitBox* self, GdkDragContext* context) {
GdkWindow* _tmp0_ = NULL;
GdkWindow* _tmp1_ = NULL;
cairo_region_t* _tmp2_ = NULL;
GdkWindow* _tmp3_ = NULL;
gint width = 0;
gint height = 0;
GdkWindow* _tmp4_ = NULL;
gint _tmp5_;
GdkWindow* _tmp6_ = NULL;
gint _tmp7_;
GdkWindow* _tmp8_ = NULL;
cairo_surface_t* _tmp9_ = NULL;
cairo_surface_t* _tmp10_;
cairo_surface_t* surface;
cairo_t* _tmp11_ = NULL;
cairo_t* ctx;
GdkWindow* _tmp12_ = NULL;
gint x = 0;
gint y = 0;
gint _tmp13_;
gint _tmp14_;
gint _tmp15_;
gint _tmp16_;
g_return_if_fail (self != NULL);
g_return_if_fail (context != NULL);
canvas_set_mode (self->priv->_canvas, CANVAS_MODE_DIGIT, (CharBox*) self);
_tmp0_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp1_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp2_ = gdk_window_get_visible_region (_tmp1_);
gdk_window_invalidate_region (_tmp0_, _tmp2_, TRUE);
_tmp3_ = gtk_widget_get_window ((GtkWidget*) self);
gdk_window_process_updates (_tmp3_, TRUE);
_tmp4_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp5_ = gdk_window_get_width (_tmp4_);
width = _tmp5_;
_tmp6_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp7_ = gdk_window_get_height (_tmp6_);
height = _tmp7_;
_tmp8_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp9_ = gdk_window_create_similar_surface (_tmp8_, CAIRO_CONTENT_COLOR, width, height);
_tmp10_ = _cairo_surface_reference0 (_tmp9_);
surface = _tmp10_;
_tmp11_ = cairo_create (surface);
ctx = _tmp11_;
_tmp12_ = gtk_widget_get_window ((GtkWidget*) self);
gdk_cairo_set_source_window (ctx, _tmp12_, (gdouble) 0, (gdouble) 0);
cairo_paint (ctx);
gtk_widget_get_pointer ((GtkWidget*) self, &_tmp13_, &_tmp14_);
x = _tmp13_;
y = _tmp14_;
_tmp15_ = CLAMP (x, 0, width);
x = _tmp15_;
_tmp16_ = CLAMP (y, 0, height);
y = _tmp16_;
cairo_surface_set_device_offset (surface, (gdouble) (-x), (gdouble) (-y));
gtk_drag_set_icon_surface (context, surface);
gtk_widget_hide ((GtkWidget*) self);
_cairo_destroy0 (ctx);
_cairo_surface_destroy0 (surface);
}
static void digit_box_handle_drag_end (DigitBox* self, GdkDragContext* context) {
g_return_if_fail (self != NULL);
g_return_if_fail (context != NULL);
gtk_widget_show ((GtkWidget*) self);
}
static void digit_box_handle_drag_get (DigitBox* self, GdkDragContext* context, GtkSelectionData* data, guint info, guint time_) {
const gchar* _tmp0_ = NULL;
const gchar* _tmp1_ = NULL;
gint _tmp2_;
g_return_if_fail (self != NULL);
g_return_if_fail (context != NULL);
g_return_if_fail (data != NULL);
_tmp0_ = char_box_get_letter ((CharBox*) self);
_tmp1_ = char_box_get_letter ((CharBox*) self);
_tmp2_ = strlen (_tmp1_);
gtk_selection_data_set_text (data, _tmp0_, (gint) _tmp2_);
}
Canvas* digit_box_get_canvas (DigitBox* self) {
Canvas* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_canvas;
return result;
}
static gpointer _g_object_ref0 (gpointer self) {
return self ? g_object_ref (self) : NULL;
}
static void digit_box_set_canvas (DigitBox* self, Canvas* value) {
Canvas* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = _g_object_ref0 (value);
_g_object_unref0 (self->priv->_canvas);
self->priv->_canvas = _tmp0_;
g_object_notify ((GObject *) self, "canvas");
}
static void _digit_box_handle_drag_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self) {
digit_box_handle_drag_get (self, context, selection_data, info, time_);
}
static void _digit_box_handle_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
digit_box_handle_drag_begin (self, context);
}
static void _digit_box_handle_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
digit_box_handle_drag_end (self, context);
}
static GObject * digit_box_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
GObjectClass * parent_class;
DigitBox * self;
GtkTargetEntry* _tmp0_ = NULL;
GtkTargetEntry* entries;
gint entries_length1;
gint _entries_size_;
parent_class = G_OBJECT_CLASS (digit_box_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = DIGIT_BOX (obj);
char_box_set_border ((CharBox*) self, GTK_SHADOW_OUT);
_tmp0_ = g_new0 (GtkTargetEntry, 1);
entries = _tmp0_;
entries_length1 = 1;
_entries_size_ = 1;
entries[0].target = "STRING";
entries[0].flags = (guint) GTK_TARGET_SAME_APP;
entries[0].info = (guint) 0;
gtk_drag_source_set ((GtkWidget*) self, GDK_BUTTON1_MASK, entries, entries_length1, GDK_ACTION_MOVE);
g_signal_connect_object ((GtkWidget*) self, "drag-data-get", (GCallback) _digit_box_handle_drag_get_gtk_widget_drag_data_get, self, 0);
g_signal_connect_object ((GtkWidget*) self, "drag-begin", (GCallback) _digit_box_handle_drag_begin_gtk_widget_drag_begin, self, 0);
g_signal_connect_object ((GtkWidget*) self, "drag-end", (GCallback) _digit_box_handle_drag_end_gtk_widget_drag_end, self, 0);
entries = (g_free (entries), NULL);
return obj;
}
static void digit_box_class_init (DigitBoxClass * klass) {
digit_box_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (DigitBoxPrivate));
G_OBJECT_CLASS (klass)->get_property = _vala_digit_box_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_digit_box_set_property;
G_OBJECT_CLASS (klass)->constructor = digit_box_constructor;
G_OBJECT_CLASS (klass)->finalize = digit_box_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), DIGIT_BOX_CANVAS, g_param_spec_object ("canvas", "canvas", "canvas", TYPE_CANVAS, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}
static void digit_box_instance_init (DigitBox * self) {
self->priv = DIGIT_BOX_GET_PRIVATE (self);
}
static void digit_box_finalize (GObject* obj) {
DigitBox * self;
self = DIGIT_BOX (obj);
_g_object_unref0 (self->priv->_canvas);
G_OBJECT_CLASS (digit_box_parent_class)->finalize (obj);
}
GType digit_box_get_type (void) {
static volatile gsize digit_box_type_id__volatile = 0;
if (g_once_init_enter (&digit_box_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (DigitBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) digit_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DigitBox), 0, (GInstanceInitFunc) digit_box_instance_init, NULL };
GType digit_box_type_id;
digit_box_type_id = g_type_register_static (TYPE_CHAR_BOX, "DigitBox", &g_define_type_info, 0);
g_once_init_leave (&digit_box_type_id__volatile, digit_box_type_id);
}
return digit_box_type_id__volatile;
}
static void _vala_digit_box_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
DigitBox * self;
self = DIGIT_BOX (object);
switch (property_id) {
case DIGIT_BOX_CANVAS:
g_value_set_object (value, digit_box_get_canvas (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_digit_box_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
DigitBox * self;
self = DIGIT_BOX (object);
switch (property_id) {
case DIGIT_BOX_CANVAS:
digit_box_set_canvas (self, g_value_get_object (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
gmult-8.0/gmult/MultPuzzle.vala 0000644 0001750 0001750 00000021467 11551157472 016241 0 ustar udienz udienz /* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
using GLib;
public enum MultPuzzleGuessStatus {
WRONG, CORRECT, KNOWN, INVALID
}
public enum MultPuzzleChar {
A = 65, B, C, D, E, F, G, H, I, J, INVALID
}
public class MultPuzzle : Object
{
/* Properties */
public int num_x_digits { get; construct; default = 3; }
public int num_y_digits { get; construct; default = 2; }
public int total_guesses { get; private set; default = 0; }
public int wrong_guesses { get; private set; default = 0; }
public int correct_guesses { get; private set; default = 0; }
public bool is_done { get; private set; default = false; }
/* Signals */
public signal void guessed(int digit, MultPuzzleChar letter, MultPuzzleGuessStatus status);
public signal void changed();
/* Constructors */
public MultPuzzle(int num_x, int num_y) {
Object(num_x_digits: num_x, num_y_digits: num_y);
}
/* Methods */
public string get_multiplicand()
{
return x;
}
public string get_multiplier()
{
return y;
}
public string get_answer()
{
return z;
}
public uint get_num_addends() {return addends.length;}
public string? get_addend(int n)
{
if (n < 0 || n >= addends.length)
return null;
return addends[n];
}
public MultPuzzleGuessStatus guess(int digit, MultPuzzleChar letter) {
if (digit < 0 || digit > 9 || letter == MultPuzzleChar.INVALID)
return MultPuzzleGuessStatus.INVALID;
MultPuzzleGuessStatus rv;
if (symbols[digit] == letter)
{
solve_digit (digit);
total_guesses ++;
correct_guesses ++;
have_guessed[((int)letter - (int)MultPuzzleChar.A) * 10 + digit] = true;
rv = MultPuzzleGuessStatus.CORRECT;
}
else if (symbols[digit] == MultPuzzleChar.INVALID)
{
rv = MultPuzzleGuessStatus.KNOWN;
}
else
{
total_guesses ++;
wrong_guesses ++;
have_guessed[((int)letter - (int)MultPuzzleChar.A) * 10 + digit] = true;
rv = MultPuzzleGuessStatus.WRONG;
}
guessed (digit, letter, rv);
return rv;
}
public void solve() {
for (int i = 0; i < 10; i++)
solve_digit(i);
}
public MultPuzzleChar solve_digit(int digit) {
if (digit < 0 || digit > 9)
return MultPuzzleChar.INVALID;
if (!this.needed[digit])
return MultPuzzleChar.INVALID;
replace (ref x, digit);
replace (ref y, digit);
replace (ref z, digit);
for (int i = 0; i < addends.length; ++i)
{
string addend = addends[i];
replace (ref addend, digit);
addends[i] = addend;
}
var symbol = symbols[digit];
symbols[digit] = MultPuzzleChar.INVALID;
needed[digit] = false;
unknown[digit] = false;
bool any_left = false;
foreach (bool g in needed)
if (g)
{
any_left = true;
break;
}
if (!any_left)
is_done = true;
changed ();
return symbol;
}
public bool[] get_unknown_digits()
{
bool[] rv = new bool[unknown.length];
for (int i = 0; i < unknown.length; i++)
rv[i] = unknown[i];
return rv;
}
public bool[] get_needed_digits()
{
bool[] rv = new bool[needed.length];
for (int i = 0; i < needed.length; i++)
rv[i] = needed[i];
return rv;
}
public bool[] get_letter_guesses(MultPuzzleChar letter)
{
bool[] rv = new bool[10];
if (letter == MultPuzzleChar.INVALID)
for (int i = 0; i < 10; i++)
rv[i] = false;
else
for (int i = 0; i < 10; i++)
rv[i] = have_guessed[((int)letter - (int)MultPuzzleChar.A) * 10 + i];
return rv;
}
/* Private methods */
// pads a string with 0's in the front if it is less than the minimum
private void expand_num_string (ref string n, size_t minimum) {
if (n.length >= minimum)
return;
size_t difference = minimum - n.length;
StringBuilder rv = new StringBuilder ();
for (size_t i = 0; i < difference; ++i)
rv.append_c ('0');
rv.append (n);
n = rv.str;
}
private static void shuffle(MultPuzzleChar[] symbolList) {
/**
* Here, we need to pick a spot from 0...9, and place the first digit there.
* Then, we pick a spot k from 0...8, and place the next digit in the kth free spot.
* Repeat.
*/
for (int i = 0; i < 10; i++) {
int spot = Random.int_range(0, 10 - i);
int j;
for (j = 0; j < 10; j++) {
if (symbolList[j] == MultPuzzleChar.INVALID) {
if (spot-- == 0)
break;
}
}
symbolList[j] = (MultPuzzleChar)(i + 65);
}
}
private void replace(ref string n, int digit)
{
StringBuilder rv = new StringBuilder ();
weak string np = n;
while (np.length > 0)
{
unichar ch = np.get_char ();
if ((int)ch == (int)symbols[digit])
rv.append_c ((char)(digit + 48));
else
rv.append_unichar (ch);
np = np.next_char ();
}
n = rv.str;
}
/* Modifies a list of characters, replacing each that represents an unguessed
incoming integer with the appropriate letter. */
private void interpret(ref string n)
{
StringBuilder rv = new StringBuilder ();
weak string np = n;
while (np.length > 0)
{
unichar ch = np.get_char ();
if (ch.isdigit ())
rv.append_c ((char)symbols[ch.digit_value ()]);
else
rv.append_unichar (ch);
np = np.next_char ();
}
n = rv.str;
}
/* n is a string full of digit characters */
private void note_needed(string n)
{
weak string np = n;
while (np.length > 0)
{
unichar ch = np.get_char ();
if (ch.isdigit ())
needed[ch.digit_value ()] = true;
np = np.next_char ();
}
}
private static int num_with_n_digits(int n)
{
int32 low, high;
if (n <= 1)
low = 0;
else
low = (int32) Math.pow (10, n - 1);
high = (int32) Math.pow (10, n);
return Random.int_range(low, high);
}
/* Private members */
private MultPuzzleChar[] symbols; // the character for each digit 0-9
/* if a digit has yet to be guessed, its value is true
else, if a digit has been guessed, or does not appear on the board,
its value is false */
private bool[] needed;
// if a digit has yet to be guessed, its value is true, else false
private bool[] unknown;
// if a guess has been made for a digit, the value for the digit will be true
// rows are letters, columns are digits
private bool[] have_guessed;
// X is the multiplicand, Y the multiplier, and Z the answer.
private string x;
private string y;
private string z;
// This is a list of the addends resulting from the list of X and Y.
private string[] addends;
construct
{
needed = new bool[10];
unknown = new bool[10];
symbols = new MultPuzzleChar[10];
have_guessed = new bool[100];
for (int i = 0; i < 10; ++i)
{
this.needed[i] = false;
this.unknown[i] = true;
this.symbols[i] = MultPuzzleChar.INVALID;
for (int j = 0; j < 10; j++)
have_guessed[i * 10 + j] = false;
}
shuffle (symbols);
// Get value for x and y.
int valX = num_with_n_digits (num_x_digits);
int valY;
do {
valY = num_with_n_digits (num_y_digits);
} while (valY % 10 == 0);
int valZ = valX * valY;
x = valX.to_string ();
y = valY.to_string ();
z = valZ.to_string ();
expand_num_string (ref z, x.length + y.length);
// Calculate addends.
addends = new string[y.length];
for (int i = 0; i < y.length; i++)
{
int addend = valX * (y[y.length - i - 1].digit_value());
string addend_str = addend.to_string ();
expand_num_string (ref addend_str, x.length + 1);
note_needed (addend_str);
interpret (ref addend_str);
addends[i] = addend_str;
}
note_needed (x);
note_needed (y);
note_needed (z);
interpret (ref x);
interpret (ref y);
interpret (ref z);
}
}
gmult-8.0/gmult/MultPuzzle.c 0000644 0001750 0001750 00000104375 11551170315 015527 0 ustar udienz udienz /* MultPuzzle.c generated by valac 0.12.0, the Vala compiler
* generated from MultPuzzle.vala, do not modify */
/* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
#include
#include
#include
#include
#include
#include
#define TYPE_MULT_PUZZLE_GUESS_STATUS (mult_puzzle_guess_status_get_type ())
#define TYPE_MULT_PUZZLE_CHAR (mult_puzzle_char_get_type ())
#define TYPE_MULT_PUZZLE (mult_puzzle_get_type ())
#define MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULT_PUZZLE, MultPuzzle))
#define MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULT_PUZZLE, MultPuzzleClass))
#define IS_MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULT_PUZZLE))
#define IS_MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULT_PUZZLE))
#define MULT_PUZZLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULT_PUZZLE, MultPuzzleClass))
typedef struct _MultPuzzle MultPuzzle;
typedef struct _MultPuzzleClass MultPuzzleClass;
typedef struct _MultPuzzlePrivate MultPuzzlePrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
typedef enum {
MULT_PUZZLE_GUESS_STATUS_WRONG,
MULT_PUZZLE_GUESS_STATUS_CORRECT,
MULT_PUZZLE_GUESS_STATUS_KNOWN,
MULT_PUZZLE_GUESS_STATUS_INVALID
} MultPuzzleGuessStatus;
typedef enum {
MULT_PUZZLE_CHAR_A = 65,
MULT_PUZZLE_CHAR_B,
MULT_PUZZLE_CHAR_C,
MULT_PUZZLE_CHAR_D,
MULT_PUZZLE_CHAR_E,
MULT_PUZZLE_CHAR_F,
MULT_PUZZLE_CHAR_G,
MULT_PUZZLE_CHAR_H,
MULT_PUZZLE_CHAR_I,
MULT_PUZZLE_CHAR_J,
MULT_PUZZLE_CHAR_INVALID
} MultPuzzleChar;
struct _MultPuzzle {
GObject parent_instance;
MultPuzzlePrivate * priv;
};
struct _MultPuzzleClass {
GObjectClass parent_class;
};
struct _MultPuzzlePrivate {
gint _num_x_digits;
gint _num_y_digits;
gint _total_guesses;
gint _wrong_guesses;
gint _correct_guesses;
gboolean _is_done;
MultPuzzleChar* symbols;
gint symbols_length1;
gint _symbols_size_;
gboolean* needed;
gint needed_length1;
gint _needed_size_;
gboolean* unknown;
gint unknown_length1;
gint _unknown_size_;
gboolean* have_guessed;
gint have_guessed_length1;
gint _have_guessed_size_;
gchar* x;
gchar* y;
gchar* z;
gchar** addends;
gint addends_length1;
gint _addends_size_;
};
static gpointer mult_puzzle_parent_class = NULL;
GType mult_puzzle_guess_status_get_type (void) G_GNUC_CONST;
GType mult_puzzle_char_get_type (void) G_GNUC_CONST;
GType mult_puzzle_get_type (void) G_GNUC_CONST;
#define MULT_PUZZLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MULT_PUZZLE, MultPuzzlePrivate))
enum {
MULT_PUZZLE_DUMMY_PROPERTY,
MULT_PUZZLE_NUM_X_DIGITS,
MULT_PUZZLE_NUM_Y_DIGITS,
MULT_PUZZLE_TOTAL_GUESSES,
MULT_PUZZLE_WRONG_GUESSES,
MULT_PUZZLE_CORRECT_GUESSES,
MULT_PUZZLE_IS_DONE
};
MultPuzzle* mult_puzzle_new (gint num_x, gint num_y);
MultPuzzle* mult_puzzle_construct (GType object_type, gint num_x, gint num_y);
gchar* mult_puzzle_get_multiplicand (MultPuzzle* self);
gchar* mult_puzzle_get_multiplier (MultPuzzle* self);
gchar* mult_puzzle_get_answer (MultPuzzle* self);
guint mult_puzzle_get_num_addends (MultPuzzle* self);
gchar* mult_puzzle_get_addend (MultPuzzle* self, gint n);
MultPuzzleGuessStatus mult_puzzle_guess (MultPuzzle* self, gint digit, MultPuzzleChar letter);
MultPuzzleChar mult_puzzle_solve_digit (MultPuzzle* self, gint digit);
gint mult_puzzle_get_total_guesses (MultPuzzle* self);
static void mult_puzzle_set_total_guesses (MultPuzzle* self, gint value);
gint mult_puzzle_get_correct_guesses (MultPuzzle* self);
static void mult_puzzle_set_correct_guesses (MultPuzzle* self, gint value);
gint mult_puzzle_get_wrong_guesses (MultPuzzle* self);
static void mult_puzzle_set_wrong_guesses (MultPuzzle* self, gint value);
void mult_puzzle_solve (MultPuzzle* self);
static void mult_puzzle_replace (MultPuzzle* self, gchar** n, gint digit);
static void mult_puzzle_set_is_done (MultPuzzle* self, gboolean value);
gboolean* mult_puzzle_get_unknown_digits (MultPuzzle* self, int* result_length1);
gboolean* mult_puzzle_get_needed_digits (MultPuzzle* self, int* result_length1);
gboolean* mult_puzzle_get_letter_guesses (MultPuzzle* self, MultPuzzleChar letter, int* result_length1);
static void mult_puzzle_expand_num_string (MultPuzzle* self, gchar** n, gsize minimum);
static void mult_puzzle_shuffle (MultPuzzleChar* symbolList, int symbolList_length1);
static void mult_puzzle_interpret (MultPuzzle* self, gchar** n);
static void mult_puzzle_note_needed (MultPuzzle* self, const gchar* n);
static gint mult_puzzle_num_with_n_digits (gint n);
gint mult_puzzle_get_num_x_digits (MultPuzzle* self);
static void mult_puzzle_set_num_x_digits (MultPuzzle* self, gint value);
gint mult_puzzle_get_num_y_digits (MultPuzzle* self);
static void mult_puzzle_set_num_y_digits (MultPuzzle* self, gint value);
gboolean mult_puzzle_get_is_done (MultPuzzle* self);
static void g_cclosure_user_marshal_VOID__INT_ENUM_ENUM (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static GObject * mult_puzzle_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static void mult_puzzle_finalize (GObject* obj);
static void _vala_mult_puzzle_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_mult_puzzle_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
GType mult_puzzle_guess_status_get_type (void) {
static volatile gsize mult_puzzle_guess_status_type_id__volatile = 0;
if (g_once_init_enter (&mult_puzzle_guess_status_type_id__volatile)) {
static const GEnumValue values[] = {{MULT_PUZZLE_GUESS_STATUS_WRONG, "MULT_PUZZLE_GUESS_STATUS_WRONG", "wrong"}, {MULT_PUZZLE_GUESS_STATUS_CORRECT, "MULT_PUZZLE_GUESS_STATUS_CORRECT", "correct"}, {MULT_PUZZLE_GUESS_STATUS_KNOWN, "MULT_PUZZLE_GUESS_STATUS_KNOWN", "known"}, {MULT_PUZZLE_GUESS_STATUS_INVALID, "MULT_PUZZLE_GUESS_STATUS_INVALID", "invalid"}, {0, NULL, NULL}};
GType mult_puzzle_guess_status_type_id;
mult_puzzle_guess_status_type_id = g_enum_register_static ("MultPuzzleGuessStatus", values);
g_once_init_leave (&mult_puzzle_guess_status_type_id__volatile, mult_puzzle_guess_status_type_id);
}
return mult_puzzle_guess_status_type_id__volatile;
}
GType mult_puzzle_char_get_type (void) {
static volatile gsize mult_puzzle_char_type_id__volatile = 0;
if (g_once_init_enter (&mult_puzzle_char_type_id__volatile)) {
static const GEnumValue values[] = {{MULT_PUZZLE_CHAR_A, "MULT_PUZZLE_CHAR_A", "a"}, {MULT_PUZZLE_CHAR_B, "MULT_PUZZLE_CHAR_B", "b"}, {MULT_PUZZLE_CHAR_C, "MULT_PUZZLE_CHAR_C", "c"}, {MULT_PUZZLE_CHAR_D, "MULT_PUZZLE_CHAR_D", "d"}, {MULT_PUZZLE_CHAR_E, "MULT_PUZZLE_CHAR_E", "e"}, {MULT_PUZZLE_CHAR_F, "MULT_PUZZLE_CHAR_F", "f"}, {MULT_PUZZLE_CHAR_G, "MULT_PUZZLE_CHAR_G", "g"}, {MULT_PUZZLE_CHAR_H, "MULT_PUZZLE_CHAR_H", "h"}, {MULT_PUZZLE_CHAR_I, "MULT_PUZZLE_CHAR_I", "i"}, {MULT_PUZZLE_CHAR_J, "MULT_PUZZLE_CHAR_J", "j"}, {MULT_PUZZLE_CHAR_INVALID, "MULT_PUZZLE_CHAR_INVALID", "invalid"}, {0, NULL, NULL}};
GType mult_puzzle_char_type_id;
mult_puzzle_char_type_id = g_enum_register_static ("MultPuzzleChar", values);
g_once_init_leave (&mult_puzzle_char_type_id__volatile, mult_puzzle_char_type_id);
}
return mult_puzzle_char_type_id__volatile;
}
MultPuzzle* mult_puzzle_construct (GType object_type, gint num_x, gint num_y) {
MultPuzzle * self = NULL;
self = (MultPuzzle*) g_object_new (object_type, "num-x-digits", num_x, "num-y-digits", num_y, NULL);
return self;
}
MultPuzzle* mult_puzzle_new (gint num_x, gint num_y) {
return mult_puzzle_construct (TYPE_MULT_PUZZLE, num_x, num_y);
}
gchar* mult_puzzle_get_multiplicand (MultPuzzle* self) {
gchar* result = NULL;
gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = g_strdup (self->priv->x);
result = _tmp0_;
return result;
}
gchar* mult_puzzle_get_multiplier (MultPuzzle* self) {
gchar* result = NULL;
gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = g_strdup (self->priv->y);
result = _tmp0_;
return result;
}
gchar* mult_puzzle_get_answer (MultPuzzle* self) {
gchar* result = NULL;
gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = g_strdup (self->priv->z);
result = _tmp0_;
return result;
}
guint mult_puzzle_get_num_addends (MultPuzzle* self) {
guint result = 0U;
g_return_val_if_fail (self != NULL, 0U);
result = (guint) self->priv->addends_length1;
return result;
}
gchar* mult_puzzle_get_addend (MultPuzzle* self, gint n) {
gchar* result = NULL;
gboolean _tmp0_ = FALSE;
gchar* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
if (n < 0) {
_tmp0_ = TRUE;
} else {
_tmp0_ = n >= self->priv->addends_length1;
}
if (_tmp0_) {
result = NULL;
return result;
}
_tmp1_ = g_strdup (self->priv->addends[n]);
result = _tmp1_;
return result;
}
MultPuzzleGuessStatus mult_puzzle_guess (MultPuzzle* self, gint digit, MultPuzzleChar letter) {
MultPuzzleGuessStatus result = 0;
gboolean _tmp0_ = FALSE;
gboolean _tmp1_ = FALSE;
MultPuzzleGuessStatus rv = 0;
g_return_val_if_fail (self != NULL, 0);
if (digit < 0) {
_tmp1_ = TRUE;
} else {
_tmp1_ = digit > 9;
}
if (_tmp1_) {
_tmp0_ = TRUE;
} else {
_tmp0_ = letter == MULT_PUZZLE_CHAR_INVALID;
}
if (_tmp0_) {
result = MULT_PUZZLE_GUESS_STATUS_INVALID;
return result;
}
if (self->priv->symbols[digit] == letter) {
gint _tmp2_;
gint _tmp3_;
mult_puzzle_solve_digit (self, digit);
_tmp2_ = self->priv->_total_guesses;
mult_puzzle_set_total_guesses (self, _tmp2_ + 1);
_tmp3_ = self->priv->_correct_guesses;
mult_puzzle_set_correct_guesses (self, _tmp3_ + 1);
self->priv->have_guessed[((((gint) letter) - ((gint) MULT_PUZZLE_CHAR_A)) * 10) + digit] = TRUE;
rv = MULT_PUZZLE_GUESS_STATUS_CORRECT;
} else {
if (self->priv->symbols[digit] == MULT_PUZZLE_CHAR_INVALID) {
rv = MULT_PUZZLE_GUESS_STATUS_KNOWN;
} else {
gint _tmp4_;
gint _tmp5_;
_tmp4_ = self->priv->_total_guesses;
mult_puzzle_set_total_guesses (self, _tmp4_ + 1);
_tmp5_ = self->priv->_wrong_guesses;
mult_puzzle_set_wrong_guesses (self, _tmp5_ + 1);
self->priv->have_guessed[((((gint) letter) - ((gint) MULT_PUZZLE_CHAR_A)) * 10) + digit] = TRUE;
rv = MULT_PUZZLE_GUESS_STATUS_WRONG;
}
}
g_signal_emit_by_name (self, "guessed", digit, letter, rv);
result = rv;
return result;
}
void mult_puzzle_solve (MultPuzzle* self) {
g_return_if_fail (self != NULL);
{
gint i;
i = 0;
{
gboolean _tmp0_;
_tmp0_ = TRUE;
while (TRUE) {
if (!_tmp0_) {
i++;
}
_tmp0_ = FALSE;
if (!(i < 10)) {
break;
}
mult_puzzle_solve_digit (self, i);
}
}
}
}
MultPuzzleChar mult_puzzle_solve_digit (MultPuzzle* self, gint digit) {
MultPuzzleChar result = 0;
gboolean _tmp0_ = FALSE;
MultPuzzleChar symbol;
gboolean any_left;
g_return_val_if_fail (self != NULL, 0);
if (digit < 0) {
_tmp0_ = TRUE;
} else {
_tmp0_ = digit > 9;
}
if (_tmp0_) {
result = MULT_PUZZLE_CHAR_INVALID;
return result;
}
if (!self->priv->needed[digit]) {
result = MULT_PUZZLE_CHAR_INVALID;
return result;
}
mult_puzzle_replace (self, &self->priv->x, digit);
mult_puzzle_replace (self, &self->priv->y, digit);
mult_puzzle_replace (self, &self->priv->z, digit);
{
gint i;
i = 0;
{
gboolean _tmp1_;
_tmp1_ = TRUE;
while (TRUE) {
gchar* _tmp2_;
gchar* addend;
gchar* _tmp3_;
gchar* _tmp4_;
if (!_tmp1_) {
i = i + 1;
}
_tmp1_ = FALSE;
if (!(i < self->priv->addends_length1)) {
break;
}
_tmp2_ = g_strdup (self->priv->addends[i]);
addend = _tmp2_;
mult_puzzle_replace (self, &addend, digit);
_tmp3_ = g_strdup (addend);
_tmp4_ = _tmp3_;
_g_free0 (self->priv->addends[i]);
self->priv->addends[i] = _tmp4_;
_g_free0 (addend);
}
}
}
symbol = self->priv->symbols[digit];
self->priv->symbols[digit] = MULT_PUZZLE_CHAR_INVALID;
self->priv->needed[digit] = FALSE;
self->priv->unknown[digit] = FALSE;
any_left = FALSE;
{
gboolean* g_collection;
int g_collection_length1;
int g_it;
g_collection = self->priv->needed;
g_collection_length1 = self->priv->needed_length1;
for (g_it = 0; g_it < self->priv->needed_length1; g_it = g_it + 1) {
gboolean g;
g = g_collection[g_it];
{
if (g) {
any_left = TRUE;
break;
}
}
}
}
if (!any_left) {
mult_puzzle_set_is_done (self, TRUE);
}
g_signal_emit_by_name (self, "changed");
result = symbol;
return result;
}
gboolean* mult_puzzle_get_unknown_digits (MultPuzzle* self, int* result_length1) {
gboolean* result = NULL;
gboolean* _tmp0_ = NULL;
gboolean* rv;
gint rv_length1;
gint _rv_size_;
gboolean* _tmp2_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = g_new0 (gboolean, self->priv->unknown_length1);
rv = _tmp0_;
rv_length1 = self->priv->unknown_length1;
_rv_size_ = self->priv->unknown_length1;
{
gint i;
i = 0;
{
gboolean _tmp1_;
_tmp1_ = TRUE;
while (TRUE) {
if (!_tmp1_) {
i++;
}
_tmp1_ = FALSE;
if (!(i < self->priv->unknown_length1)) {
break;
}
rv[i] = self->priv->unknown[i];
}
}
}
_tmp2_ = rv;
*result_length1 = rv_length1;
result = _tmp2_;
return result;
}
gboolean* mult_puzzle_get_needed_digits (MultPuzzle* self, int* result_length1) {
gboolean* result = NULL;
gboolean* _tmp0_ = NULL;
gboolean* rv;
gint rv_length1;
gint _rv_size_;
gboolean* _tmp2_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = g_new0 (gboolean, self->priv->needed_length1);
rv = _tmp0_;
rv_length1 = self->priv->needed_length1;
_rv_size_ = self->priv->needed_length1;
{
gint i;
i = 0;
{
gboolean _tmp1_;
_tmp1_ = TRUE;
while (TRUE) {
if (!_tmp1_) {
i++;
}
_tmp1_ = FALSE;
if (!(i < self->priv->needed_length1)) {
break;
}
rv[i] = self->priv->needed[i];
}
}
}
_tmp2_ = rv;
*result_length1 = rv_length1;
result = _tmp2_;
return result;
}
gboolean* mult_puzzle_get_letter_guesses (MultPuzzle* self, MultPuzzleChar letter, int* result_length1) {
gboolean* result = NULL;
gboolean* _tmp0_ = NULL;
gboolean* rv;
gint rv_length1;
gint _rv_size_;
gboolean* _tmp3_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = g_new0 (gboolean, 10);
rv = _tmp0_;
rv_length1 = 10;
_rv_size_ = 10;
if (letter == MULT_PUZZLE_CHAR_INVALID) {
{
gint i;
i = 0;
{
gboolean _tmp1_;
_tmp1_ = TRUE;
while (TRUE) {
if (!_tmp1_) {
i++;
}
_tmp1_ = FALSE;
if (!(i < 10)) {
break;
}
rv[i] = FALSE;
}
}
}
} else {
{
gint i;
i = 0;
{
gboolean _tmp2_;
_tmp2_ = TRUE;
while (TRUE) {
if (!_tmp2_) {
i++;
}
_tmp2_ = FALSE;
if (!(i < 10)) {
break;
}
rv[i] = self->priv->have_guessed[((((gint) letter) - ((gint) MULT_PUZZLE_CHAR_A)) * 10) + i];
}
}
}
}
_tmp3_ = rv;
*result_length1 = rv_length1;
result = _tmp3_;
return result;
}
static void mult_puzzle_expand_num_string (MultPuzzle* self, gchar** n, gsize minimum) {
gint _tmp0_;
gint _tmp1_;
gsize difference;
GString* _tmp2_ = NULL;
GString* rv;
gchar* _tmp4_;
g_return_if_fail (self != NULL);
g_return_if_fail (n != NULL);
_tmp0_ = strlen (*n);
if (_tmp0_ >= minimum) {
return;
}
_tmp1_ = strlen (*n);
difference = minimum - _tmp1_;
_tmp2_ = g_string_new ("");
rv = _tmp2_;
{
gsize i;
i = (gsize) 0;
{
gboolean _tmp3_;
_tmp3_ = TRUE;
while (TRUE) {
if (!_tmp3_) {
i = i + 1;
}
_tmp3_ = FALSE;
if (!(i < difference)) {
break;
}
g_string_append_c (rv, '0');
}
}
}
g_string_append (rv, *n);
_tmp4_ = g_strdup (rv->str);
_g_free0 (*n);
*n = _tmp4_;
_g_string_free0 (rv);
}
static void mult_puzzle_shuffle (MultPuzzleChar* symbolList, int symbolList_length1) {
{
gint i;
i = 0;
{
gboolean _tmp0_;
_tmp0_ = TRUE;
while (TRUE) {
gint32 _tmp1_;
gint spot;
gint j = 0;
if (!_tmp0_) {
i++;
}
_tmp0_ = FALSE;
if (!(i < 10)) {
break;
}
_tmp1_ = g_random_int_range ((gint32) 0, (gint32) (10 - i));
spot = (gint) _tmp1_;
{
gboolean _tmp2_;
j = 0;
_tmp2_ = TRUE;
while (TRUE) {
if (!_tmp2_) {
j++;
}
_tmp2_ = FALSE;
if (!(j < 10)) {
break;
}
if (symbolList[j] == MULT_PUZZLE_CHAR_INVALID) {
gint _tmp3_;
_tmp3_ = spot;
spot = _tmp3_ - 1;
if (_tmp3_ == 0) {
break;
}
}
}
}
symbolList[j] = (MultPuzzleChar) (i + 65);
}
}
}
}
static gunichar string_get_char (const gchar* self, glong index) {
gunichar result = 0U;
gunichar _tmp0_;
g_return_val_if_fail (self != NULL, 0U);
_tmp0_ = g_utf8_get_char (((gchar*) self) + index);
result = _tmp0_;
return result;
}
static void mult_puzzle_replace (MultPuzzle* self, gchar** n, gint digit) {
GString* _tmp0_ = NULL;
GString* rv;
const gchar* np;
gchar* _tmp4_;
g_return_if_fail (self != NULL);
g_return_if_fail (n != NULL);
_tmp0_ = g_string_new ("");
rv = _tmp0_;
np = *n;
while (TRUE) {
gint _tmp1_;
gunichar _tmp2_;
gunichar ch;
const gchar* _tmp3_ = NULL;
_tmp1_ = strlen (np);
if (!(_tmp1_ > 0)) {
break;
}
_tmp2_ = string_get_char (np, (glong) 0);
ch = _tmp2_;
if (((gint) ch) == ((gint) self->priv->symbols[digit])) {
g_string_append_c (rv, (gchar) (digit + 48));
} else {
g_string_append_unichar (rv, ch);
}
_tmp3_ = g_utf8_next_char (np);
np = _tmp3_;
}
_tmp4_ = g_strdup (rv->str);
_g_free0 (*n);
*n = _tmp4_;
_g_string_free0 (rv);
}
static void mult_puzzle_interpret (MultPuzzle* self, gchar** n) {
GString* _tmp0_ = NULL;
GString* rv;
const gchar* np;
gchar* _tmp6_;
g_return_if_fail (self != NULL);
g_return_if_fail (n != NULL);
_tmp0_ = g_string_new ("");
rv = _tmp0_;
np = *n;
while (TRUE) {
gint _tmp1_;
gunichar _tmp2_;
gunichar ch;
gboolean _tmp3_;
const gchar* _tmp5_ = NULL;
_tmp1_ = strlen (np);
if (!(_tmp1_ > 0)) {
break;
}
_tmp2_ = string_get_char (np, (glong) 0);
ch = _tmp2_;
_tmp3_ = g_unichar_isdigit (ch);
if (_tmp3_) {
gint _tmp4_;
_tmp4_ = g_unichar_digit_value (ch);
g_string_append_c (rv, (gchar) self->priv->symbols[_tmp4_]);
} else {
g_string_append_unichar (rv, ch);
}
_tmp5_ = g_utf8_next_char (np);
np = _tmp5_;
}
_tmp6_ = g_strdup (rv->str);
_g_free0 (*n);
*n = _tmp6_;
_g_string_free0 (rv);
}
static void mult_puzzle_note_needed (MultPuzzle* self, const gchar* n) {
const gchar* np;
g_return_if_fail (self != NULL);
g_return_if_fail (n != NULL);
np = n;
while (TRUE) {
gint _tmp0_;
gunichar _tmp1_;
gunichar ch;
gboolean _tmp2_;
const gchar* _tmp4_ = NULL;
_tmp0_ = strlen (np);
if (!(_tmp0_ > 0)) {
break;
}
_tmp1_ = string_get_char (np, (glong) 0);
ch = _tmp1_;
_tmp2_ = g_unichar_isdigit (ch);
if (_tmp2_) {
gint _tmp3_;
_tmp3_ = g_unichar_digit_value (ch);
self->priv->needed[_tmp3_] = TRUE;
}
_tmp4_ = g_utf8_next_char (np);
np = _tmp4_;
}
}
static gint mult_puzzle_num_with_n_digits (gint n) {
gint result = 0;
gint32 low = 0;
gint32 high = 0;
gdouble _tmp1_;
gint32 _tmp2_;
if (n <= 1) {
low = (gint32) 0;
} else {
gdouble _tmp0_;
_tmp0_ = pow ((gdouble) 10, (gdouble) (n - 1));
low = (gint32) _tmp0_;
}
_tmp1_ = pow ((gdouble) 10, (gdouble) n);
high = (gint32) _tmp1_;
_tmp2_ = g_random_int_range (low, high);
result = (gint) _tmp2_;
return result;
}
gint mult_puzzle_get_num_x_digits (MultPuzzle* self) {
gint result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_num_x_digits;
return result;
}
static void mult_puzzle_set_num_x_digits (MultPuzzle* self, gint value) {
g_return_if_fail (self != NULL);
self->priv->_num_x_digits = value;
g_object_notify ((GObject *) self, "num-x-digits");
}
gint mult_puzzle_get_num_y_digits (MultPuzzle* self) {
gint result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_num_y_digits;
return result;
}
static void mult_puzzle_set_num_y_digits (MultPuzzle* self, gint value) {
g_return_if_fail (self != NULL);
self->priv->_num_y_digits = value;
g_object_notify ((GObject *) self, "num-y-digits");
}
gint mult_puzzle_get_total_guesses (MultPuzzle* self) {
gint result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_total_guesses;
return result;
}
static void mult_puzzle_set_total_guesses (MultPuzzle* self, gint value) {
g_return_if_fail (self != NULL);
self->priv->_total_guesses = value;
g_object_notify ((GObject *) self, "total-guesses");
}
gint mult_puzzle_get_wrong_guesses (MultPuzzle* self) {
gint result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_wrong_guesses;
return result;
}
static void mult_puzzle_set_wrong_guesses (MultPuzzle* self, gint value) {
g_return_if_fail (self != NULL);
self->priv->_wrong_guesses = value;
g_object_notify ((GObject *) self, "wrong-guesses");
}
gint mult_puzzle_get_correct_guesses (MultPuzzle* self) {
gint result;
g_return_val_if_fail (self != NULL, 0);
result = self->priv->_correct_guesses;
return result;
}
static void mult_puzzle_set_correct_guesses (MultPuzzle* self, gint value) {
g_return_if_fail (self != NULL);
self->priv->_correct_guesses = value;
g_object_notify ((GObject *) self, "correct-guesses");
}
gboolean mult_puzzle_get_is_done (MultPuzzle* self) {
gboolean result;
g_return_val_if_fail (self != NULL, FALSE);
result = self->priv->_is_done;
return result;
}
static void mult_puzzle_set_is_done (MultPuzzle* self, gboolean value) {
g_return_if_fail (self != NULL);
self->priv->_is_done = value;
g_object_notify ((GObject *) self, "is-done");
}
static void g_cclosure_user_marshal_VOID__INT_ENUM_ENUM (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
typedef void (*GMarshalFunc_VOID__INT_ENUM_ENUM) (gpointer data1, gint arg_1, gint arg_2, gint arg_3, gpointer data2);
register GMarshalFunc_VOID__INT_ENUM_ENUM callback;
register GCClosure * cc;
register gpointer data1, data2;
cc = (GCClosure *) closure;
g_return_if_fail (n_param_values == 4);
if (G_CCLOSURE_SWAP_DATA (closure)) {
data1 = closure->data;
data2 = param_values->data[0].v_pointer;
} else {
data1 = param_values->data[0].v_pointer;
data2 = closure->data;
}
callback = (GMarshalFunc_VOID__INT_ENUM_ENUM) (marshal_data ? marshal_data : cc->callback);
callback (data1, g_value_get_int (param_values + 1), g_value_get_enum (param_values + 2), g_value_get_enum (param_values + 3), data2);
}
static gchar string_get (const gchar* self, glong index) {
gchar result = '\0';
g_return_val_if_fail (self != NULL, '\0');
result = ((gchar*) self)[index];
return result;
}
static GObject * mult_puzzle_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
GObjectClass * parent_class;
MultPuzzle * self;
gboolean* _tmp0_ = NULL;
gboolean* _tmp1_ = NULL;
MultPuzzleChar* _tmp2_ = NULL;
gboolean* _tmp3_ = NULL;
gint _tmp6_;
gint valX;
gint valY = 0;
gint valZ;
gchar* _tmp9_ = NULL;
gchar* _tmp10_ = NULL;
gchar* _tmp11_ = NULL;
gint _tmp12_;
gint _tmp13_;
gint _tmp14_;
gchar** _tmp15_ = NULL;
parent_class = G_OBJECT_CLASS (mult_puzzle_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = MULT_PUZZLE (obj);
_tmp0_ = g_new0 (gboolean, 10);
self->priv->needed = (g_free (self->priv->needed), NULL);
self->priv->needed = _tmp0_;
self->priv->needed_length1 = 10;
self->priv->_needed_size_ = 10;
_tmp1_ = g_new0 (gboolean, 10);
self->priv->unknown = (g_free (self->priv->unknown), NULL);
self->priv->unknown = _tmp1_;
self->priv->unknown_length1 = 10;
self->priv->_unknown_size_ = 10;
_tmp2_ = g_new0 (MultPuzzleChar, 10);
self->priv->symbols = (g_free (self->priv->symbols), NULL);
self->priv->symbols = _tmp2_;
self->priv->symbols_length1 = 10;
self->priv->_symbols_size_ = 10;
_tmp3_ = g_new0 (gboolean, 100);
self->priv->have_guessed = (g_free (self->priv->have_guessed), NULL);
self->priv->have_guessed = _tmp3_;
self->priv->have_guessed_length1 = 100;
self->priv->_have_guessed_size_ = 100;
{
gint i;
i = 0;
{
gboolean _tmp4_;
_tmp4_ = TRUE;
while (TRUE) {
if (!_tmp4_) {
i = i + 1;
}
_tmp4_ = FALSE;
if (!(i < 10)) {
break;
}
self->priv->needed[i] = FALSE;
self->priv->unknown[i] = TRUE;
self->priv->symbols[i] = MULT_PUZZLE_CHAR_INVALID;
{
gint j;
j = 0;
{
gboolean _tmp5_;
_tmp5_ = TRUE;
while (TRUE) {
if (!_tmp5_) {
j++;
}
_tmp5_ = FALSE;
if (!(j < 10)) {
break;
}
self->priv->have_guessed[(i * 10) + j] = FALSE;
}
}
}
}
}
}
mult_puzzle_shuffle (self->priv->symbols, self->priv->symbols_length1);
_tmp6_ = mult_puzzle_num_with_n_digits (self->priv->_num_x_digits);
valX = _tmp6_;
{
gboolean _tmp7_;
_tmp7_ = TRUE;
while (TRUE) {
gint _tmp8_;
if (!_tmp7_) {
if (!((valY % 10) == 0)) {
break;
}
}
_tmp7_ = FALSE;
_tmp8_ = mult_puzzle_num_with_n_digits (self->priv->_num_y_digits);
valY = _tmp8_;
}
}
valZ = valX * valY;
_tmp9_ = g_strdup_printf ("%i", valX);
_g_free0 (self->priv->x);
self->priv->x = _tmp9_;
_tmp10_ = g_strdup_printf ("%i", valY);
_g_free0 (self->priv->y);
self->priv->y = _tmp10_;
_tmp11_ = g_strdup_printf ("%i", valZ);
_g_free0 (self->priv->z);
self->priv->z = _tmp11_;
_tmp12_ = strlen (self->priv->x);
_tmp13_ = strlen (self->priv->y);
mult_puzzle_expand_num_string (self, &self->priv->z, (gsize) (_tmp12_ + _tmp13_));
_tmp14_ = strlen (self->priv->y);
_tmp15_ = g_new0 (gchar*, _tmp14_ + 1);
self->priv->addends = (_vala_array_free (self->priv->addends, self->priv->addends_length1, (GDestroyNotify) g_free), NULL);
self->priv->addends = _tmp15_;
self->priv->addends_length1 = _tmp14_;
self->priv->_addends_size_ = _tmp14_;
{
gint i;
i = 0;
{
gboolean _tmp16_;
_tmp16_ = TRUE;
while (TRUE) {
gint _tmp17_;
gint _tmp18_;
gchar _tmp19_;
gint _tmp20_;
gint addend;
gchar* _tmp21_ = NULL;
gchar* addend_str;
gint _tmp22_;
gchar* _tmp23_;
gchar* _tmp24_;
if (!_tmp16_) {
i++;
}
_tmp16_ = FALSE;
_tmp17_ = strlen (self->priv->y);
if (!(i < _tmp17_)) {
break;
}
_tmp18_ = strlen (self->priv->y);
_tmp19_ = string_get (self->priv->y, (glong) ((_tmp18_ - i) - 1));
_tmp20_ = g_ascii_digit_value (_tmp19_);
addend = valX * _tmp20_;
_tmp21_ = g_strdup_printf ("%i", addend);
addend_str = _tmp21_;
_tmp22_ = strlen (self->priv->x);
mult_puzzle_expand_num_string (self, &addend_str, (gsize) (_tmp22_ + 1));
mult_puzzle_note_needed (self, addend_str);
mult_puzzle_interpret (self, &addend_str);
_tmp23_ = g_strdup (addend_str);
_tmp24_ = _tmp23_;
_g_free0 (self->priv->addends[i]);
self->priv->addends[i] = _tmp24_;
_g_free0 (addend_str);
}
}
}
mult_puzzle_note_needed (self, self->priv->x);
mult_puzzle_note_needed (self, self->priv->y);
mult_puzzle_note_needed (self, self->priv->z);
mult_puzzle_interpret (self, &self->priv->x);
mult_puzzle_interpret (self, &self->priv->y);
mult_puzzle_interpret (self, &self->priv->z);
return obj;
}
static void mult_puzzle_class_init (MultPuzzleClass * klass) {
mult_puzzle_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (MultPuzzlePrivate));
G_OBJECT_CLASS (klass)->get_property = _vala_mult_puzzle_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_mult_puzzle_set_property;
G_OBJECT_CLASS (klass)->constructor = mult_puzzle_constructor;
G_OBJECT_CLASS (klass)->finalize = mult_puzzle_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), MULT_PUZZLE_NUM_X_DIGITS, g_param_spec_int ("num-x-digits", "num-x-digits", "num-x-digits", G_MININT, G_MAXINT, 3, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (G_OBJECT_CLASS (klass), MULT_PUZZLE_NUM_Y_DIGITS, g_param_spec_int ("num-y-digits", "num-y-digits", "num-y-digits", G_MININT, G_MAXINT, 2, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (G_OBJECT_CLASS (klass), MULT_PUZZLE_TOTAL_GUESSES, g_param_spec_int ("total-guesses", "total-guesses", "total-guesses", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), MULT_PUZZLE_WRONG_GUESSES, g_param_spec_int ("wrong-guesses", "wrong-guesses", "wrong-guesses", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), MULT_PUZZLE_CORRECT_GUESSES, g_param_spec_int ("correct-guesses", "correct-guesses", "correct-guesses", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), MULT_PUZZLE_IS_DONE, g_param_spec_boolean ("is-done", "is-done", "is-done", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
g_signal_new ("guessed", TYPE_MULT_PUZZLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__INT_ENUM_ENUM, G_TYPE_NONE, 3, G_TYPE_INT, TYPE_MULT_PUZZLE_CHAR, TYPE_MULT_PUZZLE_GUESS_STATUS);
g_signal_new ("changed", TYPE_MULT_PUZZLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}
static void mult_puzzle_instance_init (MultPuzzle * self) {
self->priv = MULT_PUZZLE_GET_PRIVATE (self);
self->priv->_num_x_digits = 3;
self->priv->_num_y_digits = 2;
self->priv->_total_guesses = 0;
self->priv->_wrong_guesses = 0;
self->priv->_correct_guesses = 0;
self->priv->_is_done = FALSE;
}
static void mult_puzzle_finalize (GObject* obj) {
MultPuzzle * self;
self = MULT_PUZZLE (obj);
self->priv->symbols = (g_free (self->priv->symbols), NULL);
self->priv->needed = (g_free (self->priv->needed), NULL);
self->priv->unknown = (g_free (self->priv->unknown), NULL);
self->priv->have_guessed = (g_free (self->priv->have_guessed), NULL);
_g_free0 (self->priv->x);
_g_free0 (self->priv->y);
_g_free0 (self->priv->z);
self->priv->addends = (_vala_array_free (self->priv->addends, self->priv->addends_length1, (GDestroyNotify) g_free), NULL);
G_OBJECT_CLASS (mult_puzzle_parent_class)->finalize (obj);
}
GType mult_puzzle_get_type (void) {
static volatile gsize mult_puzzle_type_id__volatile = 0;
if (g_once_init_enter (&mult_puzzle_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (MultPuzzleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) mult_puzzle_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultPuzzle), 0, (GInstanceInitFunc) mult_puzzle_instance_init, NULL };
GType mult_puzzle_type_id;
mult_puzzle_type_id = g_type_register_static (G_TYPE_OBJECT, "MultPuzzle", &g_define_type_info, 0);
g_once_init_leave (&mult_puzzle_type_id__volatile, mult_puzzle_type_id);
}
return mult_puzzle_type_id__volatile;
}
static void _vala_mult_puzzle_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
MultPuzzle * self;
self = MULT_PUZZLE (object);
switch (property_id) {
case MULT_PUZZLE_NUM_X_DIGITS:
g_value_set_int (value, mult_puzzle_get_num_x_digits (self));
break;
case MULT_PUZZLE_NUM_Y_DIGITS:
g_value_set_int (value, mult_puzzle_get_num_y_digits (self));
break;
case MULT_PUZZLE_TOTAL_GUESSES:
g_value_set_int (value, mult_puzzle_get_total_guesses (self));
break;
case MULT_PUZZLE_WRONG_GUESSES:
g_value_set_int (value, mult_puzzle_get_wrong_guesses (self));
break;
case MULT_PUZZLE_CORRECT_GUESSES:
g_value_set_int (value, mult_puzzle_get_correct_guesses (self));
break;
case MULT_PUZZLE_IS_DONE:
g_value_set_boolean (value, mult_puzzle_get_is_done (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_mult_puzzle_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
MultPuzzle * self;
self = MULT_PUZZLE (object);
switch (property_id) {
case MULT_PUZZLE_NUM_X_DIGITS:
mult_puzzle_set_num_x_digits (self, g_value_get_int (value));
break;
case MULT_PUZZLE_NUM_Y_DIGITS:
mult_puzzle_set_num_y_digits (self, g_value_get_int (value));
break;
case MULT_PUZZLE_TOTAL_GUESSES:
mult_puzzle_set_total_guesses (self, g_value_get_int (value));
break;
case MULT_PUZZLE_WRONG_GUESSES:
mult_puzzle_set_wrong_guesses (self, g_value_get_int (value));
break;
case MULT_PUZZLE_CORRECT_GUESSES:
mult_puzzle_set_correct_guesses (self, g_value_get_int (value));
break;
case MULT_PUZZLE_IS_DONE:
mult_puzzle_set_is_done (self, g_value_get_boolean (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
if ((array != NULL) && (destroy_func != NULL)) {
int i;
for (i = 0; i < array_length; i = i + 1) {
if (((gpointer*) array)[i] != NULL) {
destroy_func (((gpointer*) array)[i]);
}
}
}
}
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
_vala_array_destroy (array, array_length, destroy_func);
g_free (array);
}
gmult-8.0/gmult/Makefile.in 0000644 0001750 0001750 00000067252 11551160265 015302 0 ustar udienz udienz # Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = gmult$(EXEEXT)
subdir = gmult
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am__objects_1 = gmult-Canvas.$(OBJEXT) gmult-CharBox.$(OBJEXT) \
gmult-DigitBox.$(OBJEXT) gmult-GtkMult.$(OBJEXT) \
gmult-MultPuzzle.$(OBJEXT) gmult-TableBox.$(OBJEXT)
am__objects_2 = $(am__objects_1)
am_gmult_OBJECTS = $(am__objects_2)
gmult_OBJECTS = $(am_gmult_OBJECTS)
am__DEPENDENCIES_1 =
gmult_DEPENDENCIES = $(am__DEPENDENCIES_1)
gmult_LINK = $(CCLD) $(gmult_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo " CC " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo " CCLD " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(gmult_SOURCES)
DIST_SOURCES = $(gmult_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALAC = @VALAC@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
gmult_CFLAGS = \
$(GTK_CFLAGS) \
-DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\"
gmult_LDADD = $(GTK_LIBS) @INTLLIBS@
gmult_VALASOURCES = \
Canvas.vala \
CharBox.vala \
DigitBox.vala \
GtkMult.vala \
MultPuzzle.vala \
TableBox.vala
gmult_VALABUILTSOURCES = \
$(gmult_VALASOURCES:.vala=.c)
gmult_SOURCES = \
$(gmult_VALABUILTSOURCES)
@MAINTAINER_MODE_TRUE@VALA_CFLAGS = \
@MAINTAINER_MODE_TRUE@ --vapidir $(top_srcdir)/vapi \
@MAINTAINER_MODE_TRUE@ --pkg gtk+-3.0 \
@MAINTAINER_MODE_TRUE@ --pkg gio-2.0 \
@MAINTAINER_MODE_TRUE@ --pkg config
@MAINTAINER_MODE_TRUE@BUILT_SOURCES = vala.stamp
EXTRA_DIST = $(gmult_VALASOURCES)
@MAINTAINER_MODE_TRUE@CLEANFILES = $(BUILT_SOURCES) $(gmult_VALABUILTSOURCES)
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gmult/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu gmult/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \
then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
} \
; done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
gmult$(EXEEXT): $(gmult_OBJECTS) $(gmult_DEPENDENCIES)
@rm -f gmult$(EXEEXT)
$(AM_V_CCLD)$(gmult_LINK) $(gmult_OBJECTS) $(gmult_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmult-Canvas.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmult-CharBox.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmult-DigitBox.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmult-GtkMult.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmult-MultPuzzle.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmult-TableBox.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
gmult-Canvas.o: Canvas.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-Canvas.o -MD -MP -MF $(DEPDIR)/gmult-Canvas.Tpo -c -o gmult-Canvas.o `test -f 'Canvas.c' || echo '$(srcdir)/'`Canvas.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-Canvas.Tpo $(DEPDIR)/gmult-Canvas.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Canvas.c' object='gmult-Canvas.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-Canvas.o `test -f 'Canvas.c' || echo '$(srcdir)/'`Canvas.c
gmult-Canvas.obj: Canvas.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-Canvas.obj -MD -MP -MF $(DEPDIR)/gmult-Canvas.Tpo -c -o gmult-Canvas.obj `if test -f 'Canvas.c'; then $(CYGPATH_W) 'Canvas.c'; else $(CYGPATH_W) '$(srcdir)/Canvas.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-Canvas.Tpo $(DEPDIR)/gmult-Canvas.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Canvas.c' object='gmult-Canvas.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-Canvas.obj `if test -f 'Canvas.c'; then $(CYGPATH_W) 'Canvas.c'; else $(CYGPATH_W) '$(srcdir)/Canvas.c'; fi`
gmult-CharBox.o: CharBox.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-CharBox.o -MD -MP -MF $(DEPDIR)/gmult-CharBox.Tpo -c -o gmult-CharBox.o `test -f 'CharBox.c' || echo '$(srcdir)/'`CharBox.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-CharBox.Tpo $(DEPDIR)/gmult-CharBox.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='CharBox.c' object='gmult-CharBox.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-CharBox.o `test -f 'CharBox.c' || echo '$(srcdir)/'`CharBox.c
gmult-CharBox.obj: CharBox.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-CharBox.obj -MD -MP -MF $(DEPDIR)/gmult-CharBox.Tpo -c -o gmult-CharBox.obj `if test -f 'CharBox.c'; then $(CYGPATH_W) 'CharBox.c'; else $(CYGPATH_W) '$(srcdir)/CharBox.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-CharBox.Tpo $(DEPDIR)/gmult-CharBox.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='CharBox.c' object='gmult-CharBox.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-CharBox.obj `if test -f 'CharBox.c'; then $(CYGPATH_W) 'CharBox.c'; else $(CYGPATH_W) '$(srcdir)/CharBox.c'; fi`
gmult-DigitBox.o: DigitBox.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-DigitBox.o -MD -MP -MF $(DEPDIR)/gmult-DigitBox.Tpo -c -o gmult-DigitBox.o `test -f 'DigitBox.c' || echo '$(srcdir)/'`DigitBox.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-DigitBox.Tpo $(DEPDIR)/gmult-DigitBox.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='DigitBox.c' object='gmult-DigitBox.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-DigitBox.o `test -f 'DigitBox.c' || echo '$(srcdir)/'`DigitBox.c
gmult-DigitBox.obj: DigitBox.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-DigitBox.obj -MD -MP -MF $(DEPDIR)/gmult-DigitBox.Tpo -c -o gmult-DigitBox.obj `if test -f 'DigitBox.c'; then $(CYGPATH_W) 'DigitBox.c'; else $(CYGPATH_W) '$(srcdir)/DigitBox.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-DigitBox.Tpo $(DEPDIR)/gmult-DigitBox.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='DigitBox.c' object='gmult-DigitBox.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-DigitBox.obj `if test -f 'DigitBox.c'; then $(CYGPATH_W) 'DigitBox.c'; else $(CYGPATH_W) '$(srcdir)/DigitBox.c'; fi`
gmult-GtkMult.o: GtkMult.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-GtkMult.o -MD -MP -MF $(DEPDIR)/gmult-GtkMult.Tpo -c -o gmult-GtkMult.o `test -f 'GtkMult.c' || echo '$(srcdir)/'`GtkMult.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-GtkMult.Tpo $(DEPDIR)/gmult-GtkMult.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GtkMult.c' object='gmult-GtkMult.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-GtkMult.o `test -f 'GtkMult.c' || echo '$(srcdir)/'`GtkMult.c
gmult-GtkMult.obj: GtkMult.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-GtkMult.obj -MD -MP -MF $(DEPDIR)/gmult-GtkMult.Tpo -c -o gmult-GtkMult.obj `if test -f 'GtkMult.c'; then $(CYGPATH_W) 'GtkMult.c'; else $(CYGPATH_W) '$(srcdir)/GtkMult.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-GtkMult.Tpo $(DEPDIR)/gmult-GtkMult.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GtkMult.c' object='gmult-GtkMult.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-GtkMult.obj `if test -f 'GtkMult.c'; then $(CYGPATH_W) 'GtkMult.c'; else $(CYGPATH_W) '$(srcdir)/GtkMult.c'; fi`
gmult-MultPuzzle.o: MultPuzzle.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-MultPuzzle.o -MD -MP -MF $(DEPDIR)/gmult-MultPuzzle.Tpo -c -o gmult-MultPuzzle.o `test -f 'MultPuzzle.c' || echo '$(srcdir)/'`MultPuzzle.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-MultPuzzle.Tpo $(DEPDIR)/gmult-MultPuzzle.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='MultPuzzle.c' object='gmult-MultPuzzle.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-MultPuzzle.o `test -f 'MultPuzzle.c' || echo '$(srcdir)/'`MultPuzzle.c
gmult-MultPuzzle.obj: MultPuzzle.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-MultPuzzle.obj -MD -MP -MF $(DEPDIR)/gmult-MultPuzzle.Tpo -c -o gmult-MultPuzzle.obj `if test -f 'MultPuzzle.c'; then $(CYGPATH_W) 'MultPuzzle.c'; else $(CYGPATH_W) '$(srcdir)/MultPuzzle.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-MultPuzzle.Tpo $(DEPDIR)/gmult-MultPuzzle.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='MultPuzzle.c' object='gmult-MultPuzzle.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-MultPuzzle.obj `if test -f 'MultPuzzle.c'; then $(CYGPATH_W) 'MultPuzzle.c'; else $(CYGPATH_W) '$(srcdir)/MultPuzzle.c'; fi`
gmult-TableBox.o: TableBox.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-TableBox.o -MD -MP -MF $(DEPDIR)/gmult-TableBox.Tpo -c -o gmult-TableBox.o `test -f 'TableBox.c' || echo '$(srcdir)/'`TableBox.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-TableBox.Tpo $(DEPDIR)/gmult-TableBox.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='TableBox.c' object='gmult-TableBox.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-TableBox.o `test -f 'TableBox.c' || echo '$(srcdir)/'`TableBox.c
gmult-TableBox.obj: TableBox.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -MT gmult-TableBox.obj -MD -MP -MF $(DEPDIR)/gmult-TableBox.Tpo -c -o gmult-TableBox.obj `if test -f 'TableBox.c'; then $(CYGPATH_W) 'TableBox.c'; else $(CYGPATH_W) '$(srcdir)/TableBox.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmult-TableBox.Tpo $(DEPDIR)/gmult-TableBox.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='TableBox.c' object='gmult-TableBox.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gmult_CFLAGS) $(CFLAGS) -c -o gmult-TableBox.obj `if test -f 'TableBox.c'; then $(CYGPATH_W) 'TableBox.c'; else $(CYGPATH_W) '$(srcdir)/TableBox.c'; fi`
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(PROGRAMS)
installdirs:
for dir in "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-binPROGRAMS
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-binPROGRAMS
.MAKE: all check install install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
clean-generic ctags distclean distclean-compile \
distclean-generic distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-binPROGRAMS
@MAINTAINER_MODE_TRUE@vala.stamp: $(gmult_VALASOURCES)
@MAINTAINER_MODE_TRUE@ $(AM_V_GEN)$(VALAC) -C $(VALA_CFLAGS) $^
@MAINTAINER_MODE_TRUE@ @touch $@
# 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:
gmult-8.0/gmult/TableBox.vala 0000644 0001750 0001750 00000007237 11551166200 015572 0 ustar udienz udienz /* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
using GLib;
public class TableBox : CharBox
{
public Canvas canvas { get; construct; }
public char character { get; construct; }
public TableBox (char c, Canvas can)
{
Object(character: c, canvas: can);
}
construct
{
did_enter = false;
drag_status = true;
this.letter = "%c".printf (character);
this.border = Gtk.ShadowType.IN;
Gtk.TargetEntry[] entries = new Gtk.TargetEntry[1];
entries[0].target = "STRING";
entries[0].flags = Gtk.TargetFlags.SAME_APP;
entries[0].info = 0;
Gtk.drag_dest_set (this, 0, entries, Gdk.DragAction.MOVE);
drag_data_received.connect(handle_data_received);
drag_motion.connect(handle_drag_motion);
drag_leave.connect(handle_drag_leave);
drag_drop.connect(handle_drag_drop);
// Translators: The next several characters are used to show the 'unknown'
// digits in the puzzle. Translate to something that makes sense for
// your alphabet.
N_("A");
N_("B");
N_("C");
N_("D");
N_("E");
N_("F");
N_("G");
N_("H");
N_("I");
N_("J");
}
private bool did_enter;
private bool drag_status;
private bool handle_drag_motion (Gdk.DragContext context,
int x, int y, uint time_)
{
if (!did_enter) {
canvas.highlight_box (this, false, true, true);
did_enter = true;
}
drag_status = false;
Gtk.drag_get_data (this, context, Gdk.Atom.intern_static_string ("STRING"), time_);
if (!drag_status)
canvas.highlight_box (this, false, true, true);
return drag_status;
}
private void handle_drag_leave (Gdk.DragContext context,
uint time_)
{
canvas.highlight_box (this, false, false, true);
did_enter = false;
}
private bool handle_drag_drop (Gdk.DragContext context,
int x, int y, uint time_)
{
drag_status = true;
Gtk.drag_get_data (this, context, Gdk.Atom.intern_static_string ("STRING"), time_);
if (!drag_status)
canvas.highlight_box (this, false, true, true);
return true;
}
private void handle_data_received (Gdk.DragContext context,
int x, int y, Gtk.SelectionData data,
uint info, uint time_)
{
if (data.get_length() <= 0)
return;
int digit = data.get_data()[0] - 48;
if (!drag_status)
{
bool[] guesses = canvas.puzzle.get_letter_guesses ((MultPuzzleChar)character);
if (!guesses[digit])
{
drag_status = true;
Gdk.drag_status (context, Gdk.DragAction.COPY, time_);
}
}
else
{
var rv = canvas.puzzle.guess (digit, (MultPuzzleChar)character);
Gtk.drag_finish (context, (rv == MultPuzzleGuessStatus.CORRECT), false, time_);
}
}
}
gmult-8.0/gmult/Canvas.c 0000644 0001750 0001750 00000157331 11551175036 014614 0 ustar udienz udienz /* Canvas.c generated by valac 0.12.0, the Vala compiler
* generated from Canvas.vala, do not modify */
/* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2008,2011 Michael Terry
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 3 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, see .
*/
#include
#include
#include
#include
#include
#include
#include
#define TYPE_CANVAS_MODE (canvas_mode_get_type ())
#define TYPE_ARRAY_BOX (array_box_get_type ())
#define TYPE_CHAR_BOX (char_box_get_type ())
#define CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHAR_BOX, CharBox))
#define CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHAR_BOX, CharBoxClass))
#define IS_CHAR_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHAR_BOX))
#define IS_CHAR_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHAR_BOX))
#define CHAR_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHAR_BOX, CharBoxClass))
typedef struct _CharBox CharBox;
typedef struct _CharBoxClass CharBoxClass;
typedef struct _ArrayBox ArrayBox;
#define TYPE_CANVAS (canvas_get_type ())
#define CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANVAS, Canvas))
#define CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANVAS, CanvasClass))
#define IS_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANVAS))
#define IS_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANVAS))
#define CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANVAS, CanvasClass))
typedef struct _Canvas Canvas;
typedef struct _CanvasClass CanvasClass;
typedef struct _CanvasPrivate CanvasPrivate;
#define TYPE_MULT_PUZZLE (mult_puzzle_get_type ())
#define MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULT_PUZZLE, MultPuzzle))
#define MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULT_PUZZLE, MultPuzzleClass))
#define IS_MULT_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULT_PUZZLE))
#define IS_MULT_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULT_PUZZLE))
#define MULT_PUZZLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULT_PUZZLE, MultPuzzleClass))
typedef struct _MultPuzzle MultPuzzle;
typedef struct _MultPuzzleClass MultPuzzleClass;
#define TYPE_GTK_MULT (gtk_mult_get_type ())
#define GTK_MULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_MULT, GtkMult))
#define GTK_MULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_MULT, GtkMultClass))
#define IS_GTK_MULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_MULT))
#define IS_GTK_MULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_MULT))
#define GTK_MULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_MULT, GtkMultClass))
typedef struct _GtkMult GtkMult;
typedef struct _GtkMultClass GtkMultClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
#define TYPE_MULT_PUZZLE_CHAR (mult_puzzle_char_get_type ())
#define TYPE_MULT_PUZZLE_GUESS_STATUS (mult_puzzle_guess_status_get_type ())
typedef struct _Block1Data Block1Data;
#define TYPE_TABLE_BOX (table_box_get_type ())
#define TABLE_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TABLE_BOX, TableBox))
#define TABLE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TABLE_BOX, TableBoxClass))
#define IS_TABLE_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TABLE_BOX))
#define IS_TABLE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TABLE_BOX))
#define TABLE_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TABLE_BOX, TableBoxClass))
typedef struct _TableBox TableBox;
typedef struct _TableBoxClass TableBoxClass;
typedef struct _Block2Data Block2Data;
#define TYPE_DIGIT_BOX (digit_box_get_type ())
#define DIGIT_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIGIT_BOX, DigitBox))
#define DIGIT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIGIT_BOX, DigitBoxClass))
#define IS_DIGIT_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIGIT_BOX))
#define IS_DIGIT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIGIT_BOX))
#define DIGIT_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIGIT_BOX, DigitBoxClass))
typedef struct _DigitBox DigitBox;
typedef struct _DigitBoxClass DigitBoxClass;
typedef enum {
CANVAS_MODE_NONE,
CANVAS_MODE_DIGIT,
CANVAS_MODE_CHAR
} CanvasMode;
struct _ArrayBox {
CharBox** array;
gint array_length1;
gint _array_size_;
};
struct _Canvas {
GtkEventBox parent_instance;
CanvasPrivate * priv;
};
struct _CanvasClass {
GtkEventBoxClass parent_class;
};
struct _CanvasPrivate {
MultPuzzle* _puzzle;
GtkMult* _mult;
gchar* mode_letter;
CanvasMode mode;
gint min_box_request;
gint num_box_rows;
gint num_box_cols;
gint min_width;
gint min_height;
GtkFixed* fixed;
GtkWidget* vsep;
GtkWidget* hsep1;
GtkWidget* hsep2;
GList* mult_boxes;
GList* digit_boxes;
CharBox** xboxes;
gint xboxes_length1;
gint _xboxes_size_;
CharBox** yboxes;
gint yboxes_length1;
gint _yboxes_size_;
CharBox** zboxes;
gint zboxes_length1;
gint _zboxes_size_;
ArrayBox* addboxes;
gint addboxes_length1;
gint _addboxes_size_;
CharBox** digitboxes;
gint digitboxes_length1;
gint _digitboxes_size_;
CharBox* plusbox;
CharBox* timesbox;
};
typedef enum {
MULT_PUZZLE_CHAR_A = 65,
MULT_PUZZLE_CHAR_B,
MULT_PUZZLE_CHAR_C,
MULT_PUZZLE_CHAR_D,
MULT_PUZZLE_CHAR_E,
MULT_PUZZLE_CHAR_F,
MULT_PUZZLE_CHAR_G,
MULT_PUZZLE_CHAR_H,
MULT_PUZZLE_CHAR_I,
MULT_PUZZLE_CHAR_J,
MULT_PUZZLE_CHAR_INVALID
} MultPuzzleChar;
typedef enum {
MULT_PUZZLE_GUESS_STATUS_WRONG,
MULT_PUZZLE_GUESS_STATUS_CORRECT,
MULT_PUZZLE_GUESS_STATUS_KNOWN,
MULT_PUZZLE_GUESS_STATUS_INVALID
} MultPuzzleGuessStatus;
struct _Block1Data {
int _ref_count_;
Canvas * self;
CharBox* b;
};
struct _Block2Data {
int _ref_count_;
Canvas * self;
CharBox* b;
};
static gpointer canvas_parent_class = NULL;
extern gint gtk_mult_dpi;
GType canvas_mode_get_type (void) G_GNUC_CONST;
GType array_box_get_type (void) G_GNUC_CONST;
GType char_box_get_type (void) G_GNUC_CONST;
ArrayBox* array_box_dup (const ArrayBox* self);
void array_box_free (ArrayBox* self);
void array_box_copy (const ArrayBox* self, ArrayBox* dest);
void array_box_destroy (ArrayBox* self);
static CharBox** _vala_array_dup1 (CharBox** self, int length);
GType canvas_get_type (void) G_GNUC_CONST;
GType mult_puzzle_get_type (void) G_GNUC_CONST;
GType gtk_mult_get_type (void) G_GNUC_CONST;
#define CANVAS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CANVAS, CanvasPrivate))
enum {
CANVAS_DUMMY_PROPERTY,
CANVAS_PUZZLE,
CANVAS_MULT
};
static void _g_object_unref0_ (gpointer var);
static void _g_list_free__g_object_unref0_ (GList* self);
static void _vala_ArrayBox_array_free (ArrayBox* array, gint array_length);
#define CANVAS_SPACING 6
Canvas* canvas_new (GtkMult* mult);
Canvas* canvas_construct (GType object_type, GtkMult* mult);
void canvas_clear_mode (Canvas* self);
void canvas_set_mode (Canvas* self, CanvasMode m, CharBox* box);
const gchar* char_box_get_letter (CharBox* self);
void canvas_highlight_box (Canvas* self, CharBox* box, gboolean digit_box, gboolean hover, gboolean all);
GtkMult* canvas_get_mult (Canvas* self);
GtkStatusbar* gtk_mult_get_status (GtkMult* self);
void gtk_mult_clear_guess_feedback (GtkMult* self);
void canvas_start_choice (Canvas* self, gchar ch);
void canvas_start_digit_choice (Canvas* self, CharBox* b);
void canvas_start_char_choice (Canvas* self, CharBox* b);
MultPuzzle* canvas_get_puzzle (Canvas* self);
GType mult_puzzle_char_get_type (void) G_GNUC_CONST;
GType mult_puzzle_guess_status_get_type (void) G_GNUC_CONST;
MultPuzzleGuessStatus mult_puzzle_guess (MultPuzzle* self, gint digit, MultPuzzleChar letter);
static void canvas_layout_mult_string (Canvas* self, CharBox** boxes, int boxes_length1, gint row, gint indent, gint w, gint mult_x_offset, gint mult_y_offset);
static void canvas_allocate_box (Canvas* self, CharBox* b, GdkRectangle* rect);
void char_box_set_points (CharBox* self, gint value);
static void canvas_handle_size_allocate (Canvas* self, GdkRectangle* rect);
guint mult_puzzle_get_num_addends (MultPuzzle* self);
static CharBox* canvas_create_mult_box (Canvas* self, gunichar ch);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (Block1Data* _data1_);
CharBox* char_box_new (const gchar* letter, GtkShadowType border);
CharBox* char_box_construct (GType object_type, const gchar* letter, GtkShadowType border);
TableBox* table_box_new (gchar c, Canvas* can);
TableBox* table_box_construct (GType object_type, gchar c, Canvas* can);
GType table_box_get_type (void) G_GNUC_CONST;
static gboolean _lambda1_ (GdkEventButton* e, Block1Data* _data1_);
static gboolean canvas_handle_release (Canvas* self, CharBox* box, GdkEventButton* event, gboolean digit_box);
static gboolean __lambda1__gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean _lambda2_ (GdkEventCrossing* e, Block1Data* _data1_);
static gboolean __lambda2__gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
static gboolean _lambda3_ (GdkEventCrossing* e, Block1Data* _data1_);
static gboolean __lambda3__gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
static CharBox* canvas_create_digit_box (Canvas* self, gboolean* unknown, int unknown_length1, gint i);
static Block2Data* block2_data_ref (Block2Data* _data2_);
static void block2_data_unref (Block2Data* _data2_);
DigitBox* digit_box_new (Canvas* canvas, const gchar* letter);
DigitBox* digit_box_construct (GType object_type, Canvas* canvas, const gchar* letter);
GType digit_box_get_type (void) G_GNUC_CONST;
static gboolean _lambda4_ (GdkEventButton* e, Block2Data* _data2_);
static gboolean __lambda4__gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean _lambda5_ (GdkEventCrossing* e, Block2Data* _data2_);
static gboolean __lambda5__gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
static gboolean _lambda6_ (GdkEventCrossing* e, Block2Data* _data2_);
static gboolean __lambda6__gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
static void canvas_handle_puzzle_change (Canvas* self, MultPuzzle* p);
gchar* mult_puzzle_get_multiplicand (MultPuzzle* self);
gchar* mult_puzzle_get_multiplier (MultPuzzle* self);
gchar* mult_puzzle_get_addend (MultPuzzle* self, gint n);
gchar* mult_puzzle_get_answer (MultPuzzle* self);
gboolean* mult_puzzle_get_unknown_digits (MultPuzzle* self, int* result_length1);
gboolean mult_puzzle_get_is_done (MultPuzzle* self);
void char_box_set_highlight (CharBox* self, GtkStateFlags value);
gboolean* mult_puzzle_get_letter_guesses (MultPuzzle* self, MultPuzzleChar letter, int* result_length1);
static gboolean canvas_handle_none_release (Canvas* self, GdkEventButton* event);
static void canvas_set_puzzle (Canvas* self, MultPuzzle* value);
static void canvas_set_mult (Canvas* self, GtkMult* value);
static GObject * canvas_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
MultPuzzle* gtk_mult_get_puzzle (GtkMult* self);
static gboolean _canvas_handle_none_release_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static void _canvas_handle_size_allocate_gtk_widget_size_allocate (GtkWidget* _sender, GdkRectangle* allocation, gpointer self);
static void _canvas_handle_puzzle_change_mult_puzzle_changed (MultPuzzle* _sender, gpointer self);
static void canvas_finalize (GObject* obj);
static void _vala_canvas_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_canvas_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
GType canvas_mode_get_type (void) {
static volatile gsize canvas_mode_type_id__volatile = 0;
if (g_once_init_enter (&canvas_mode_type_id__volatile)) {
static const GEnumValue values[] = {{CANVAS_MODE_NONE, "CANVAS_MODE_NONE", "none"}, {CANVAS_MODE_DIGIT, "CANVAS_MODE_DIGIT", "digit"}, {CANVAS_MODE_CHAR, "CANVAS_MODE_CHAR", "char"}, {0, NULL, NULL}};
GType canvas_mode_type_id;
canvas_mode_type_id = g_enum_register_static ("CanvasMode", values);
g_once_init_leave (&canvas_mode_type_id__volatile, canvas_mode_type_id);
}
return canvas_mode_type_id__volatile;
}
static gpointer _g_object_ref0 (gpointer self) {
return self ? g_object_ref (self) : NULL;
}
static CharBox** _vala_array_dup1 (CharBox** self, int length) {
CharBox** result;
int i;
result = g_new0 (CharBox*, length + 1);
for (i = 0; i < length; i++) {
result[i] = _g_object_ref0 (self[i]);
}
return result;
}
void array_box_copy (const ArrayBox* self, ArrayBox* dest) {
CharBox** _tmp0_;
dest->array = (_tmp0_ = self->array, (_tmp0_ == NULL) ? ((gpointer) _tmp0_) : _vala_array_dup1 (_tmp0_, (*self).array_length1));
dest->array_length1 = self->array_length1;
}
void array_box_destroy (ArrayBox* self) {
(*self).array = (_vala_array_free ((*self).array, (*self).array_length1, (GDestroyNotify) g_object_unref), NULL);
}
ArrayBox* array_box_dup (const ArrayBox* self) {
ArrayBox* dup;
dup = g_new0 (ArrayBox, 1);
array_box_copy (self, dup);
return dup;
}
void array_box_free (ArrayBox* self) {
array_box_destroy (self);
g_free (self);
}
GType array_box_get_type (void) {
static volatile gsize array_box_type_id__volatile = 0;
if (g_once_init_enter (&array_box_type_id__volatile)) {
GType array_box_type_id;
array_box_type_id = g_boxed_type_register_static ("ArrayBox", (GBoxedCopyFunc) array_box_dup, (GBoxedFreeFunc) array_box_free);
g_once_init_leave (&array_box_type_id__volatile, array_box_type_id);
}
return array_box_type_id__volatile;
}
static void _g_object_unref0_ (gpointer var) {
(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
}
static void _g_list_free__g_object_unref0_ (GList* self) {
g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
g_list_free (self);
}
static void _vala_ArrayBox_array_free (ArrayBox* array, gint array_length) {
if (array != NULL) {
int i;
for (i = 0; i < array_length; i = i + 1) {
array_box_destroy (&array[i]);
}
}
g_free (array);
}
Canvas* canvas_construct (GType object_type, GtkMult* mult) {
Canvas * self = NULL;
g_return_val_if_fail (mult != NULL, NULL);
self = (Canvas*) g_object_new (object_type, "mult", mult, NULL);
return self;
}
Canvas* canvas_new (GtkMult* mult) {
return canvas_construct (TYPE_CANVAS, mult);
}
void canvas_clear_mode (Canvas* self) {
g_return_if_fail (self != NULL);
canvas_set_mode (self, CANVAS_MODE_NONE, NULL);
}
void canvas_set_mode (Canvas* self, CanvasMode m, CharBox* box) {
const gchar* _tmp0_ = NULL;
gchar* _tmp2_;
GtkStatusbar* _tmp5_ = NULL;
guint _tmp6_;
guint context_id;
GtkStatusbar* _tmp7_ = NULL;
g_return_if_fail (self != NULL);
self->priv->mode = m;
if (box == NULL) {
_tmp0_ = NULL;
} else {
const gchar* _tmp1_ = NULL;
_tmp1_ = char_box_get_letter (box);
_tmp0_ = _tmp1_;
}
_tmp2_ = g_strdup (_tmp0_);
_g_free0 (self->priv->mode_letter);
self->priv->mode_letter = _tmp2_;
{
GList* b_collection;
GList* b_it;
b_collection = self->priv->mult_boxes;
for (b_it = b_collection; b_it != NULL; b_it = b_it->next) {
CharBox* _tmp3_;
CharBox* b;
_tmp3_ = _g_object_ref0 ((CharBox*) b_it->data);
b = _tmp3_;
{
canvas_highlight_box (self, b, FALSE, FALSE, FALSE);
_g_object_unref0 (b);
}
}
}
{
GList* b_collection;
GList* b_it;
b_collection = self->priv->digit_boxes;
for (b_it = b_collection; b_it != NULL; b_it = b_it->next) {
CharBox* _tmp4_;
CharBox* b;
_tmp4_ = _g_object_ref0 ((CharBox*) b_it->data);
b = _tmp4_;
{
canvas_highlight_box (self, b, TRUE, FALSE, FALSE);
_g_object_unref0 (b);
}
}
}
_tmp5_ = gtk_mult_get_status (self->priv->_mult);
_tmp6_ = gtk_statusbar_get_context_id (_tmp5_, "guess-prompt");
context_id = _tmp6_;
_tmp7_ = gtk_mult_get_status (self->priv->_mult);
gtk_statusbar_pop (_tmp7_, context_id);
if (self->priv->mode != CANVAS_MODE_NONE) {
GtkStatusbar* _tmp8_ = NULL;
const gchar* _tmp9_ = NULL;
gchar* _tmp10_ = NULL;
gchar* _tmp11_;
gtk_mult_clear_guess_feedback (self->priv->_mult);
_tmp8_ = gtk_mult_get_status (self->priv->_mult);
_tmp9_ = _ (self->priv->mode_letter);
_tmp10_ = g_strdup_printf ("%s = ?", _tmp9_);
_tmp11_ = _tmp10_;
gtk_statusbar_push (_tmp8_, context_id, _tmp11_);
_g_free0 (_tmp11_);
}
}
void canvas_start_choice (Canvas* self, gchar ch) {
GList* _tmp0_ = NULL;
gboolean _tmp1_;
GList* boxes;
gchar* _tmp2_ = NULL;
gchar* str;
g_return_if_fail (self != NULL);
_tmp1_ = g_ascii_isdigit (ch);
if (_tmp1_) {
_tmp0_ = self->priv->digit_boxes;
} else {
_tmp0_ = self->priv->mult_boxes;
}
boxes = _tmp0_;
_tmp2_ = g_strdup_printf ("%c", (gint) ch);
str = _tmp2_;
{
GList* b_collection;
GList* b_it;
b_collection = boxes;
for (b_it = b_collection; b_it != NULL; b_it = b_it->next) {
CharBox* _tmp3_;
CharBox* b;
_tmp3_ = _g_object_ref0 ((CharBox*) b_it->data);
b = _tmp3_;
{
const gchar* _tmp4_ = NULL;
_tmp4_ = char_box_get_letter (b);
if (g_strcmp0 (str, _tmp4_) == 0) {
gboolean _tmp5_;
_tmp5_ = g_ascii_isdigit (ch);
if (_tmp5_) {
canvas_start_digit_choice (self, b);
} else {
canvas_start_char_choice (self, b);
}
_g_object_unref0 (b);
break;
}
_g_object_unref0 (b);
}
}
}
_g_free0 (str);
}
static gchar string_get (const gchar* self, glong index) {
gchar result = '\0';
g_return_val_if_fail (self != NULL, '\0');
result = ((gchar*) self)[index];
return result;
}
void canvas_start_digit_choice (Canvas* self, CharBox* b) {
g_return_if_fail (self != NULL);
g_return_if_fail (b != NULL);
if (self->priv->mode == CANVAS_MODE_CHAR) {
GtkStateFlags _tmp0_;
_tmp0_ = gtk_widget_get_state_flags ((GtkWidget*) b);
if (_tmp0_ != GTK_STATE_FLAG_INSENSITIVE) {
const gchar* _tmp1_ = NULL;
gchar _tmp2_;
gint _tmp3_;
gchar _tmp4_;
_tmp1_ = char_box_get_letter (b);
_tmp2_ = string_get (_tmp1_, (glong) 0);
_tmp3_ = g_ascii_digit_value (_tmp2_);
_tmp4_ = string_get (self->priv->mode_letter, (glong) 0);
mult_puzzle_guess (self->priv->_puzzle, _tmp3_, (MultPuzzleChar) _tmp4_);
}
canvas_clear_mode (self);
} else {
canvas_set_mode (self, CANVAS_MODE_DIGIT, b);
}
}
void canvas_start_char_choice (Canvas* self, CharBox* b) {
g_return_if_fail (self != NULL);
g_return_if_fail (b != NULL);
if (self->priv->mode == CANVAS_MODE_DIGIT) {
GtkStateFlags _tmp0_;
_tmp0_ = gtk_widget_get_state_flags ((GtkWidget*) b);
if (_tmp0_ != GTK_STATE_FLAG_INSENSITIVE) {
gchar _tmp1_;
gint _tmp2_;
const gchar* _tmp3_ = NULL;
gchar _tmp4_;
_tmp1_ = string_get (self->priv->mode_letter, (glong) 0);
_tmp2_ = g_ascii_digit_value (_tmp1_);
_tmp3_ = char_box_get_letter (b);
_tmp4_ = string_get (_tmp3_, (glong) 0);
mult_puzzle_guess (self->priv->_puzzle, _tmp2_, (MultPuzzleChar) _tmp4_);
}
canvas_clear_mode (self);
} else {
canvas_set_mode (self, CANVAS_MODE_CHAR, b);
}
}
static void canvas_layout_mult_string (Canvas* self, CharBox** boxes, int boxes_length1, gint row, gint indent, gint w, gint mult_x_offset, gint mult_y_offset) {
gint x;
gint y;
g_return_if_fail (self != NULL);
indent = self->priv->num_box_cols - indent;
x = mult_x_offset + (indent * (w + CANVAS_SPACING));
y = mult_y_offset + (row * (w + CANVAS_SPACING));
if (row >= 2) {
gint _tmp0_;
_tmp0_ = gtk_widget_get_allocated_height (self->priv->hsep1);
y = y + (_tmp0_ + CANVAS_SPACING);
}
if (row == (self->priv->num_box_rows - 1)) {
gint _tmp1_;
_tmp1_ = gtk_widget_get_allocated_height (self->priv->hsep2);
y = y + (_tmp1_ + CANVAS_SPACING);
}
{
CharBox** b_collection;
int b_collection_length1;
int b_it;
b_collection = boxes;
b_collection_length1 = boxes_length1;
for (b_it = 0; b_it < boxes_length1; b_it = b_it + 1) {
CharBox* _tmp2_;
CharBox* b;
_tmp2_ = _g_object_ref0 (b_collection[b_it]);
b = _tmp2_;
{
GdkRectangle _tmp3_ = {0};
GdkRectangle alloc;
_tmp3_.x = x;
_tmp3_.y = y;
_tmp3_.width = w;
_tmp3_.height = w;
alloc = _tmp3_;
canvas_allocate_box (self, b, &alloc);
x = x + (w + CANVAS_SPACING);
_g_object_unref0 (b);
}
}
}
}
static void canvas_allocate_box (Canvas* self, CharBox* b, GdkRectangle* rect) {
g_return_if_fail (self != NULL);
g_return_if_fail (b != NULL);
gtk_widget_size_allocate ((GtkWidget*) b, rect);
char_box_set_points (b, (gint) ((*rect).height * (72.0 / gtk_mult_dpi)));
}
static void canvas_handle_size_allocate (Canvas* self, GdkRectangle* rect) {
gint w;
gint h;
gint _tmp0_ = 0;
gint mult_x_offset;
gint mult_y_offset;
gint _tmp1_ = 0;
gint _tmp2_ = 0;
gint hsep1_height = 0;
gint hsep2_height = 0;
gint _tmp4_;
gint _tmp5_;
GdkRectangle rec = {0};
guint _tmp6_;
guint _tmp7_;
gint vsep_width = 0;
gint digit_y_offset;
g_return_if_fail (self != NULL);
w = (gint) (((*rect).width - self->priv->min_width) / (self->priv->num_box_cols + 2));
h = (gint) (((*rect).height - self->priv->min_height) / self->priv->num_box_rows);
if (w > h) {
_tmp0_ = h;
} else {
_tmp0_ = w;
}
w = _tmp0_;
mult_x_offset = ((*rect).x + 12) + ((((*rect).width - self->priv->min_width) - (w * (self->priv->num_box_cols + 2))) / 2);
mult_y_offset = ((*rect).y + 12) + ((((*rect).height - self->priv->min_height) - (w * self->priv->num_box_rows)) / 2);
if (mult_x_offset > ((*rect).width / 2)) {
_tmp1_ = (*rect).width / 2;
} else {
_tmp1_ = mult_x_offset;
}
mult_x_offset = _tmp1_;
if (mult_y_offset > ((*rect).height / 2)) {
_tmp2_ = (*rect).height / 2;
} else {
_tmp2_ = mult_y_offset;
}
mult_y_offset = _tmp2_;
canvas_layout_mult_string (self, self->priv->xboxes, self->priv->xboxes_length1, 0, self->priv->xboxes_length1, w, mult_x_offset, mult_y_offset);
canvas_layout_mult_string (self, self->priv->yboxes, self->priv->yboxes_length1, 1, self->priv->yboxes_length1, w, mult_x_offset, mult_y_offset);
{
gint i;
i = 0;
{
gboolean _tmp3_;
_tmp3_ = TRUE;
while (TRUE) {
if (!_tmp3_) {
i = i + 1;
}
_tmp3_ = FALSE;
if (!(i < self->priv->addboxes_length1)) {
break;
}
canvas_layout_mult_string (self, self->priv->addboxes[i].array, self->priv->addboxes[i].array_length1, 2 + i, self->priv->addboxes[i].array_length1 + i, w, mult_x_offset, mult_y_offset);
}
}
}
canvas_layout_mult_string (self, self->priv->zboxes, self->priv->zboxes_length1, self->priv->num_box_rows - 1, self->priv->zboxes_length1, w, mult_x_offset, mult_y_offset);
gtk_widget_get_preferred_height (self->priv->hsep1, NULL, &_tmp4_);
hsep1_height = _tmp4_;
gtk_widget_get_preferred_height (self->priv->hsep2, NULL, &_tmp5_);
hsep2_height = _tmp5_;
memset (&rec, 0, sizeof (GdkRectangle));
rec.x = mult_x_offset;
rec.y = mult_y_offset + (2 * (w + CANVAS_SPACING));
rec.width = (self->priv->num_box_cols * w) + ((self->priv->num_box_cols - 1) * CANVAS_SPACING);
rec.height = hsep1_height;
gtk_widget_size_allocate (self->priv->hsep1, &rec);
rec.x = mult_x_offset;
_tmp6_ = mult_puzzle_get_num_addends (self->priv->_puzzle);
rec.y = ((mult_y_offset + (((gint) (2 + _tmp6_)) * (w + CANVAS_SPACING))) + hsep1_height) + CANVAS_SPACING;
rec.width = (self->priv->num_box_cols * w) + ((self->priv->num_box_cols - 1) * CANVAS_SPACING);
rec.height = hsep2_height;
gtk_widget_size_allocate (self->priv->hsep2, &rec);
rec.x = mult_x_offset;
rec.y = (mult_y_offset + w) + CANVAS_SPACING;
rec.width = w;
rec.height = w;
canvas_allocate_box (self, self->priv->timesbox, &rec);
rec.x = mult_x_offset;
_tmp7_ = mult_puzzle_get_num_addends (self->priv->_puzzle);
rec.y = ((mult_y_offset + (((gint) (1 + _tmp7_)) * (w + CANVAS_SPACING))) + hsep1_height) + CANVAS_SPACING;
rec.width = w;
rec.height = w;
canvas_allocate_box (self, self->priv->plusbox, &rec);
vsep_width = hsep1_height;
rec.x = (mult_x_offset + (self->priv->num_box_cols * (w + CANVAS_SPACING))) + CANVAS_SPACING;
rec.y = mult_y_offset;
rec.width = vsep_width;
rec.height = (*rect).height - ((mult_y_offset - (*rect).y) * 2);
gtk_widget_size_allocate (self->priv->vsep, &rec);
digit_y_offset = ((*rect).y + 12) + ((((((*rect).height - 12) - 12) - (5 * w)) - (4 * CANVAS_SPACING)) / 2);
rec.width = w;
rec.height = w;
rec.x = rec.x + (CANVAS_SPACING * 2);
{
gint i;
i = 0;
{
gboolean _tmp8_;
_tmp8_ = TRUE;
while (TRUE) {
if (!_tmp8_) {
i = i + 1;
}
_tmp8_ = FALSE;
if (!(i < 5)) {
break;
}
rec.y = digit_y_offset + (i * (w + CANVAS_SPACING));
canvas_allocate_box (self, self->priv->digitboxes[i * 2], &rec);
}
}
}
rec.x = (rec.x + w) + CANVAS_SPACING;
{
gint i;
i = 0;
{
gboolean _tmp9_;
_tmp9_ = TRUE;
while (TRUE) {
if (!_tmp9_) {
i = i + 1;
}
_tmp9_ = FALSE;
if (!(i < 5)) {
break;
}
rec.y = digit_y_offset + (i * (w + CANVAS_SPACING));
canvas_allocate_box (self, self->priv->digitboxes[(i * 2) + 1], &rec);
}
}
}
}
static Block1Data* block1_data_ref (Block1Data* _data1_) {
g_atomic_int_inc (&_data1_->_ref_count_);
return _data1_;
}
static void block1_data_unref (Block1Data* _data1_) {
if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
_g_object_unref0 (_data1_->self);
_g_object_unref0 (_data1_->b);
g_slice_free (Block1Data, _data1_);
}
}
static gboolean _lambda1_ (GdkEventButton* e, Block1Data* _data1_) {
Canvas * self;
gboolean result = FALSE;
gboolean _tmp0_;
self = _data1_->self;
_tmp0_ = canvas_handle_release (self, _data1_->b, e, FALSE);
result = _tmp0_;
return result;
}
static gboolean __lambda1__gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
gboolean result;
result = _lambda1_ (event, self);
return result;
}
static gboolean _lambda2_ (GdkEventCrossing* e, Block1Data* _data1_) {
Canvas * self;
gboolean result = FALSE;
self = _data1_->self;
canvas_highlight_box (self, _data1_->b, FALSE, TRUE, TRUE);
result = FALSE;
return result;
}
static gboolean __lambda2__gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
gboolean result;
result = _lambda2_ (event, self);
return result;
}
static gboolean _lambda3_ (GdkEventCrossing* e, Block1Data* _data1_) {
Canvas * self;
gboolean result = FALSE;
self = _data1_->self;
canvas_highlight_box (self, _data1_->b, FALSE, FALSE, TRUE);
result = FALSE;
return result;
}
static gboolean __lambda3__gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
gboolean result;
result = _lambda3_ (event, self);
return result;
}
static CharBox* canvas_create_mult_box (Canvas* self, gunichar ch) {
CharBox* result = NULL;
Block1Data* _data1_;
gboolean _tmp0_;
CharBox* _tmp6_;
g_return_val_if_fail (self != NULL, NULL);
_data1_ = g_slice_new0 (Block1Data);
_data1_->_ref_count_ = 1;
_data1_->self = g_object_ref (self);
_tmp0_ = g_unichar_isdigit (ch);
if (_tmp0_) {
gchar* _tmp1_ = NULL;
gchar* _tmp2_;
CharBox* _tmp3_ = NULL;
_tmp1_ = g_strdup_printf ("%c", (gint) ((gchar) ch));
_tmp2_ = _tmp1_;
_tmp3_ = char_box_new (_tmp2_, GTK_SHADOW_NONE);
_g_object_unref0 (_data1_->b);
_data1_->b = g_object_ref_sink (_tmp3_);
_g_free0 (_tmp2_);
} else {
TableBox* _tmp4_ = NULL;
CharBox* _tmp5_;
_tmp4_ = table_box_new ((gchar) ch, self);
_g_object_unref0 (_data1_->b);
_data1_->b = (CharBox*) g_object_ref_sink (_tmp4_);
gtk_widget_add_events ((GtkWidget*) _data1_->b, (gint) ((GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK) | GDK_LEAVE_NOTIFY_MASK));
g_signal_connect_data ((GtkWidget*) _data1_->b, "button-release-event", (GCallback) __lambda1__gtk_widget_button_release_event, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
g_signal_connect_data ((GtkWidget*) _data1_->b, "enter-notify-event", (GCallback) __lambda2__gtk_widget_enter_notify_event, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
g_signal_connect_data ((GtkWidget*) _data1_->b, "leave-notify-event", (GCallback) __lambda3__gtk_widget_leave_notify_event, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
_tmp5_ = _g_object_ref0 (_data1_->b);
self->priv->mult_boxes = g_list_append (self->priv->mult_boxes, _tmp5_);
}
_tmp6_ = _g_object_ref0 (_data1_->b);
result = _tmp6_;
block1_data_unref (_data1_);
_data1_ = NULL;
return result;
}
static Block2Data* block2_data_ref (Block2Data* _data2_) {
g_atomic_int_inc (&_data2_->_ref_count_);
return _data2_;
}
static void block2_data_unref (Block2Data* _data2_) {
if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
_g_object_unref0 (_data2_->self);
_g_object_unref0 (_data2_->b);
g_slice_free (Block2Data, _data2_);
}
}
static gboolean _lambda4_ (GdkEventButton* e, Block2Data* _data2_) {
Canvas * self;
gboolean result = FALSE;
gboolean _tmp0_;
self = _data2_->self;
_tmp0_ = canvas_handle_release (self, _data2_->b, e, TRUE);
result = _tmp0_;
return result;
}
static gboolean __lambda4__gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
gboolean result;
result = _lambda4_ (event, self);
return result;
}
static gboolean _lambda5_ (GdkEventCrossing* e, Block2Data* _data2_) {
Canvas * self;
gboolean result = FALSE;
self = _data2_->self;
canvas_highlight_box (self, _data2_->b, TRUE, TRUE, TRUE);
result = FALSE;
return result;
}
static gboolean __lambda5__gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
gboolean result;
result = _lambda5_ (event, self);
return result;
}
static gboolean _lambda6_ (GdkEventCrossing* e, Block2Data* _data2_) {
Canvas * self;
gboolean result = FALSE;
self = _data2_->self;
canvas_highlight_box (self, _data2_->b, TRUE, FALSE, TRUE);
result = FALSE;
return result;
}
static gboolean __lambda6__gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
gboolean result;
result = _lambda6_ (event, self);
return result;
}
static CharBox* canvas_create_digit_box (Canvas* self, gboolean* unknown, int unknown_length1, gint i) {
CharBox* result = NULL;
Block2Data* _data2_;
CharBox* _tmp4_;
g_return_val_if_fail (self != NULL, NULL);
_data2_ = g_slice_new0 (Block2Data);
_data2_->_ref_count_ = 1;
_data2_->self = g_object_ref (self);
if (unknown[i] == TRUE) {
gchar* _tmp0_ = NULL;
gchar* digit_str;
DigitBox* _tmp1_ = NULL;
CharBox* _tmp2_;
_tmp0_ = g_strdup_printf ("%i", i);
digit_str = _tmp0_;
_tmp1_ = digit_box_new (self, digit_str);
_g_object_unref0 (_data2_->b);
_data2_->b = (CharBox*) g_object_ref_sink (_tmp1_);
gtk_widget_add_events ((GtkWidget*) _data2_->b, (gint) ((GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK) | GDK_LEAVE_NOTIFY_MASK));
g_signal_connect_data ((GtkWidget*) _data2_->b, "button-release-event", (GCallback) __lambda4__gtk_widget_button_release_event, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
g_signal_connect_data ((GtkWidget*) _data2_->b, "enter-notify-event", (GCallback) __lambda5__gtk_widget_enter_notify_event, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
g_signal_connect_data ((GtkWidget*) _data2_->b, "leave-notify-event", (GCallback) __lambda6__gtk_widget_leave_notify_event, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
_tmp2_ = _g_object_ref0 (_data2_->b);
self->priv->digit_boxes = g_list_append (self->priv->digit_boxes, _tmp2_);
_g_free0 (digit_str);
} else {
CharBox* _tmp3_ = NULL;
_tmp3_ = char_box_new (" ", GTK_SHADOW_NONE);
_g_object_unref0 (_data2_->b);
_data2_->b = g_object_ref_sink (_tmp3_);
}
_tmp4_ = _g_object_ref0 (_data2_->b);
result = _tmp4_;
block2_data_unref (_data2_);
_data2_ = NULL;
return result;
}
static void canvas_handle_puzzle_change (Canvas* self, MultPuzzle* p) {
gchar* _tmp0_ = NULL;
gchar* multiplicand;
gchar* _tmp6_ = NULL;
gchar* multiplier;
gchar* _tmp20_ = NULL;
gchar* answer;
gint _tmp26_;
gboolean* _tmp27_ = NULL;
gboolean* unknown;
gint unknown_length1;
gint _unknown_size_;
gboolean _tmp31_;
g_return_if_fail (self != NULL);
g_return_if_fail (p != NULL);
__g_list_free__g_object_unref0_0 (self->priv->mult_boxes);
self->priv->mult_boxes = NULL;
__g_list_free__g_object_unref0_0 (self->priv->digit_boxes);
self->priv->digit_boxes = NULL;
_tmp0_ = mult_puzzle_get_multiplicand (self->priv->_puzzle);
multiplicand = _tmp0_;
{
gint i;
i = 0;
{
gboolean _tmp1_;
_tmp1_ = TRUE;
while (TRUE) {
gint _tmp2_;
gchar _tmp3_;
CharBox* _tmp4_ = NULL;
CharBox* _tmp5_;
if (!_tmp1_) {
i = i + 1;
}
_tmp1_ = FALSE;
_tmp2_ = strlen (multiplicand);
if (!(i < _tmp2_)) {
break;
}
_tmp3_ = string_get (multiplicand, (glong) i);
_tmp4_ = canvas_create_mult_box (self, (gunichar) _tmp3_);
_tmp5_ = _tmp4_;
_g_object_unref0 (self->priv->xboxes[i]);
self->priv->xboxes[i] = _tmp5_;
gtk_widget_show_all ((GtkWidget*) self->priv->xboxes[i]);
gtk_container_add ((GtkContainer*) self->priv->fixed, (GtkWidget*) self->priv->xboxes[i]);
}
}
}
_tmp6_ = mult_puzzle_get_multiplier (self->priv->_puzzle);
multiplier = _tmp6_;
{
gint i;
i = 0;
{
gboolean _tmp7_;
_tmp7_ = TRUE;
while (TRUE) {
gint _tmp8_;
gchar _tmp9_;
CharBox* _tmp10_ = NULL;
CharBox* _tmp11_;
if (!_tmp7_) {
i = i + 1;
}
_tmp7_ = FALSE;
_tmp8_ = strlen (multiplier);
if (!(i < _tmp8_)) {
break;
}
_tmp9_ = string_get (multiplier, (glong) i);
_tmp10_ = canvas_create_mult_box (self, (gunichar) _tmp9_);
_tmp11_ = _tmp10_;
_g_object_unref0 (self->priv->yboxes[i]);
self->priv->yboxes[i] = _tmp11_;
gtk_widget_show_all ((GtkWidget*) self->priv->yboxes[i]);
gtk_container_add ((GtkContainer*) self->priv->fixed, (GtkWidget*) self->priv->yboxes[i]);
}
}
}
{
gint i;
i = 0;
{
gboolean _tmp12_;
_tmp12_ = TRUE;
while (TRUE) {
guint _tmp13_;
gchar* _tmp14_ = NULL;
gchar* addend;
if (!_tmp12_) {
i = i + 1;
}
_tmp12_ = FALSE;
_tmp13_ = mult_puzzle_get_num_addends (self->priv->_puzzle);
if (!(i < _tmp13_)) {
break;
}
_tmp14_ = mult_puzzle_get_addend (self->priv->_puzzle, i);
addend = _tmp14_;
{
gint j;
j = 0;
{
gboolean _tmp15_;
_tmp15_ = TRUE;
while (TRUE) {
gint _tmp16_;
gchar _tmp17_;
CharBox* _tmp18_ = NULL;
CharBox* _tmp19_;
if (!_tmp15_) {
j = j + 1;
}
_tmp15_ = FALSE;
_tmp16_ = strlen (addend);
if (!(j < _tmp16_)) {
break;
}
_tmp17_ = string_get (addend, (glong) j);
_tmp18_ = canvas_create_mult_box (self, (gunichar) _tmp17_);
_tmp19_ = _tmp18_;
_g_object_unref0 (self->priv->addboxes[i].array[j]);
self->priv->addboxes[i].array[j] = _tmp19_;
gtk_widget_show_all ((GtkWidget*) self->priv->addboxes[i].array[j]);
gtk_container_add ((GtkContainer*) self->priv->fixed, (GtkWidget*) self->priv->addboxes[i].array[j]);
}
}
}
_g_free0 (addend);
}
}
}
_tmp20_ = mult_puzzle_get_answer (self->priv->_puzzle);
answer = _tmp20_;
{
gint i;
i = 0;
{
gboolean _tmp21_;
_tmp21_ = TRUE;
while (TRUE) {
gint _tmp22_;
gchar _tmp23_;
CharBox* _tmp24_ = NULL;
CharBox* _tmp25_;
if (!_tmp21_) {
i = i + 1;
}
_tmp21_ = FALSE;
_tmp22_ = strlen (answer);
if (!(i < _tmp22_)) {
break;
}
_tmp23_ = string_get (answer, (glong) i);
_tmp24_ = canvas_create_mult_box (self, (gunichar) _tmp23_);
_tmp25_ = _tmp24_;
_g_object_unref0 (self->priv->zboxes[i]);
self->priv->zboxes[i] = _tmp25_;
gtk_widget_show_all ((GtkWidget*) self->priv->zboxes[i]);
gtk_container_add ((GtkContainer*) self->priv->fixed, (GtkWidget*) self->priv->zboxes[i]);
}
}
}
_tmp27_ = mult_puzzle_get_unknown_digits (self->priv->_puzzle, &_tmp26_);
unknown = _tmp27_;
unknown_length1 = _tmp26_;
_unknown_size_ = _tmp26_;
{
gint i;
i = 0;
{
gboolean _tmp28_;
_tmp28_ = TRUE;
while (TRUE) {
CharBox* _tmp29_ = NULL;
CharBox* _tmp30_;
if (!_tmp28_) {
i++;
}
_tmp28_ = FALSE;
if (!(i < 10)) {
break;
}
_tmp29_ = canvas_create_digit_box (self, unknown, unknown_length1, i);
_tmp30_ = _tmp29_;
_g_object_unref0 (self->priv->digitboxes[i]);
self->priv->digitboxes[i] = _tmp30_;
gtk_widget_show_all ((GtkWidget*) self->priv->digitboxes[i]);
gtk_container_add ((GtkContainer*) self->priv->fixed, (GtkWidget*) self->priv->digitboxes[i]);
}
}
}
_tmp31_ = mult_puzzle_get_is_done (p);
if (_tmp31_) {
gtk_widget_set_sensitive ((GtkWidget*) self, FALSE);
{
gint i;
i = 0;
{
gboolean _tmp32_;
_tmp32_ = TRUE;
while (TRUE) {
if (!_tmp32_) {
i++;
}
_tmp32_ = FALSE;
if (!(i < 10)) {
break;
}
char_box_set_highlight (self->priv->digitboxes[i], GTK_STATE_FLAG_INSENSITIVE);
}
}
}
}
unknown = (g_free (unknown), NULL);
_g_free0 (answer);
_g_free0 (multiplier);
_g_free0 (multiplicand);
}
void canvas_highlight_box (Canvas* self, CharBox* box, gboolean digit_box, gboolean hover, gboolean all) {
CanvasMode _tmp5_ = 0;
CanvasMode native_mode;
g_return_if_fail (self != NULL);
g_return_if_fail (box != NULL);
if (all) {
GList* _tmp0_ = NULL;
GList* boxes;
if (digit_box) {
_tmp0_ = self->priv->digit_boxes;
} else {
_tmp0_ = self->priv->mult_boxes;
}
boxes = _tmp0_;
{
GList* b_collection;
GList* b_it;
b_collection = boxes;
for (b_it = b_collection; b_it != NULL; b_it = b_it->next) {
CharBox* _tmp1_;
CharBox* b;
_tmp1_ = _g_object_ref0 ((CharBox*) b_it->data);
b = _tmp1_;
{
gboolean _tmp2_ = FALSE;
if (b != box) {
const gchar* _tmp3_ = NULL;
const gchar* _tmp4_ = NULL;
_tmp3_ = char_box_get_letter (b);
_tmp4_ = char_box_get_letter (box);
_tmp2_ = g_strcmp0 (_tmp3_, _tmp4_) == 0;
} else {
_tmp2_ = FALSE;
}
if (_tmp2_) {
canvas_highlight_box (self, b, digit_box, hover, FALSE);
}
_g_object_unref0 (b);
}
}
}
}
if (digit_box) {
_tmp5_ = CANVAS_MODE_DIGIT;
} else {
_tmp5_ = CANVAS_MODE_CHAR;
}
native_mode = _tmp5_;
if (self->priv->mode == native_mode) {
const gchar* _tmp6_ = NULL;
_tmp6_ = char_box_get_letter (box);
if (g_strcmp0 (self->priv->mode_letter, _tmp6_) == 0) {
char_box_set_highlight (box, GTK_STATE_FLAG_ACTIVE);
return;
}
} else {
if (self->priv->mode != CANVAS_MODE_NONE) {
if (digit_box) {
gint _tmp7_;
gboolean* _tmp8_ = NULL;
gboolean* unknowns;
gint unknowns_length1;
gint _unknowns_size_;
gchar _tmp9_;
gint _tmp10_;
gboolean* _tmp11_ = NULL;
gboolean* guesses;
gint guesses_length1;
gint _guesses_size_;
const gchar* _tmp12_ = NULL;
gchar _tmp13_;
gint _tmp14_;
gint digit;
gboolean _tmp15_ = FALSE;
_tmp8_ = mult_puzzle_get_unknown_digits (self->priv->_puzzle, &_tmp7_);
unknowns = _tmp8_;
unknowns_length1 = _tmp7_;
_unknowns_size_ = _tmp7_;
_tmp9_ = string_get (self->priv->mode_letter, (glong) 0);
_tmp11_ = mult_puzzle_get_letter_guesses (self->priv->_puzzle, (MultPuzzleChar) _tmp9_, &_tmp10_);
guesses = _tmp11_;
guesses_length1 = _tmp10_;
_guesses_size_ = _tmp10_;
_tmp12_ = char_box_get_letter (box);
_tmp13_ = string_get (_tmp12_, (glong) 0);
_tmp14_ = g_ascii_digit_value (_tmp13_);
digit = _tmp14_;
if (!unknowns[digit]) {
_tmp15_ = TRUE;
} else {
_tmp15_ = guesses[digit];
}
if (_tmp15_) {
char_box_set_highlight (box, GTK_STATE_FLAG_INSENSITIVE);
guesses = (g_free (guesses), NULL);
unknowns = (g_free (unknowns), NULL);
return;
}
guesses = (g_free (guesses), NULL);
unknowns = (g_free (unknowns), NULL);
} else {
gchar _tmp16_;
gint _tmp17_;
gint digit;
const gchar* _tmp18_ = NULL;
gchar _tmp19_;
gint _tmp20_;
gboolean* _tmp21_ = NULL;
gboolean* _tmp22_;
gint _tmp22__length1;
gboolean _tmp23_;
_tmp16_ = string_get (self->priv->mode_letter, (glong) 0);
_tmp17_ = g_ascii_digit_value (_tmp16_);
digit = _tmp17_;
_tmp18_ = char_box_get_letter (box);
_tmp19_ = string_get (_tmp18_, (glong) 0);
_tmp21_ = mult_puzzle_get_letter_guesses (self->priv->_puzzle, (MultPuzzleChar) _tmp19_, &_tmp20_);
_tmp22_ = _tmp21_;
_tmp22__length1 = _tmp20_;
_tmp23_ = _tmp22_[digit];
_tmp22_ = (g_free (_tmp22_), NULL);
if (_tmp23_) {
char_box_set_highlight (box, GTK_STATE_FLAG_INSENSITIVE);
return;
}
}
if (hover) {
char_box_set_highlight (box, GTK_STATE_FLAG_PRELIGHT);
return;
}
} else {
if (hover) {
char_box_set_highlight (box, GTK_STATE_FLAG_PRELIGHT);
return;
}
}
}
char_box_set_highlight (box, GTK_STATE_FLAG_NORMAL);
}
static gboolean canvas_handle_release (Canvas* self, CharBox* box, GdkEventButton* event, gboolean digit_box) {
gboolean result = FALSE;
gboolean _tmp0_;
gint x = 0;
gint y = 0;
gint w = 0;
gint h = 0;
gint _tmp1_;
gint _tmp2_;
GdkWindow* _tmp3_ = NULL;
gint _tmp4_;
GdkWindow* _tmp5_ = NULL;
gint _tmp6_;
gboolean _tmp7_ = FALSE;
gint _tmp8_;
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (box != NULL, FALSE);
_tmp0_ = gtk_widget_get_visible ((GtkWidget*) box);
if (!_tmp0_) {
result = FALSE;
return result;
}
gtk_widget_get_pointer ((GtkWidget*) box, &_tmp1_, &_tmp2_);
x = _tmp1_;
y = _tmp2_;
_tmp3_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp4_ = gdk_window_get_width (_tmp3_);
w = _tmp4_;
_tmp5_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp6_ = gdk_window_get_height (_tmp5_);
h = _tmp6_;
_tmp8_ = CLAMP (x, 0, w);
if (_tmp8_ != x) {
_tmp7_ = TRUE;
} else {
gint _tmp9_;
_tmp9_ = CLAMP (y, 0, h);
_tmp7_ = _tmp9_ != y;
}
if (_tmp7_) {
result = FALSE;
return result;
}
if ((*event).button == 1) {
if (digit_box) {
canvas_start_digit_choice (self, box);
} else {
canvas_start_char_choice (self, box);
}
result = TRUE;
return result;
}
result = FALSE;
return result;
}
static gboolean canvas_handle_none_release (Canvas* self, GdkEventButton* event) {
gboolean result = FALSE;
gint x = 0;
gint y = 0;
gint w = 0;
gint h = 0;
gint _tmp0_;
gint _tmp1_;
GdkWindow* _tmp2_ = NULL;
gint _tmp3_;
GdkWindow* _tmp4_ = NULL;
gint _tmp5_;
gboolean _tmp6_ = FALSE;
gint _tmp7_;
g_return_val_if_fail (self != NULL, FALSE);
gtk_widget_get_pointer ((GtkWidget*) self, &_tmp0_, &_tmp1_);
x = _tmp0_;
y = _tmp1_;
_tmp2_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp3_ = gdk_window_get_width (_tmp2_);
w = _tmp3_;
_tmp4_ = gtk_widget_get_window ((GtkWidget*) self);
_tmp5_ = gdk_window_get_height (_tmp4_);
h = _tmp5_;
_tmp7_ = CLAMP (x, 0, w);
if (_tmp7_ != x) {
_tmp6_ = TRUE;
} else {
gint _tmp8_;
_tmp8_ = CLAMP (y, 0, h);
_tmp6_ = _tmp8_ != y;
}
if (_tmp6_) {
result = FALSE;
return result;
}
if ((*event).button == 1) {
canvas_clear_mode (self);
}
result = TRUE;
return result;
}
MultPuzzle* canvas_get_puzzle (Canvas* self) {
MultPuzzle* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_puzzle;
return result;
}
static void canvas_set_puzzle (Canvas* self, MultPuzzle* value) {
MultPuzzle* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = _g_object_ref0 (value);
_g_object_unref0 (self->priv->_puzzle);
self->priv->_puzzle = _tmp0_;
g_object_notify ((GObject *) self, "puzzle");
}
GtkMult* canvas_get_mult (Canvas* self) {
GtkMult* result;
g_return_val_if_fail (self != NULL, NULL);
result = self->priv->_mult;
return result;
}
static void canvas_set_mult (Canvas* self, GtkMult* value) {
GtkMult* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = _g_object_ref0 (value);
_g_object_unref0 (self->priv->_mult);
self->priv->_mult = _tmp0_;
g_object_notify ((GObject *) self, "mult");
}
static gboolean _canvas_handle_none_release_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
gboolean result;
result = canvas_handle_none_release (self, event);
return result;
}
static void _canvas_handle_size_allocate_gtk_widget_size_allocate (GtkWidget* _sender, GdkRectangle* allocation, gpointer self) {
canvas_handle_size_allocate (self, allocation);
}
static void _canvas_handle_puzzle_change_mult_puzzle_changed (MultPuzzle* _sender, gpointer self) {
canvas_handle_puzzle_change (self, _sender);
}
static GObject * canvas_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
GObjectClass * parent_class;
Canvas * self;
MultPuzzle* _tmp0_ = NULL;
GtkFixed* _tmp1_ = NULL;
GtkVSeparator* _tmp2_ = NULL;
GtkHSeparator* _tmp3_ = NULL;
GtkHSeparator* _tmp4_ = NULL;
CharBox* _tmp5_ = NULL;
CharBox* _tmp6_ = NULL;
gchar* _tmp7_ = NULL;
gchar* x;
gchar* _tmp8_ = NULL;
gchar* y;
gchar* _tmp9_ = NULL;
gchar* z;
gint _tmp10_;
gint _tmp11_;
gint _tmp12_;
CharBox** _tmp13_ = NULL;
gint _tmp14_;
CharBox** _tmp15_ = NULL;
gint _tmp16_;
CharBox** _tmp17_ = NULL;
CharBox** _tmp18_ = NULL;
guint _tmp19_;
ArrayBox* _tmp20_ = NULL;
gint vsep_width = 0;
gint hsep1_height = 0;
gint _tmp26_;
parent_class = G_OBJECT_CLASS (canvas_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = CANVAS (obj);
_tmp0_ = gtk_mult_get_puzzle (self->priv->_mult);
canvas_set_puzzle (self, _tmp0_);
self->priv->mode = CANVAS_MODE_NONE;
_g_free0 (self->priv->mode_letter);
self->priv->mode_letter = NULL;
self->priv->min_box_request = -1;
__g_list_free__g_object_unref0_0 (self->priv->mult_boxes);
self->priv->mult_boxes = NULL;
__g_list_free__g_object_unref0_0 (self->priv->digit_boxes);
self->priv->digit_boxes = NULL;
_tmp1_ = (GtkFixed*) gtk_fixed_new ();
_g_object_unref0 (self->priv->fixed);
self->priv->fixed = g_object_ref_sink (_tmp1_);
gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->fixed);
_tmp2_ = (GtkVSeparator*) gtk_vseparator_new ();
_g_object_unref0 (self->priv->vsep);
self->priv->vsep = (GtkWidget*) g_object_ref_sink (_tmp2_);
_tmp3_ = (GtkHSeparator*) gtk_hseparator_new ();
_g_object_unref0 (self->priv->hsep1);
self->priv->hsep1 = (GtkWidget*) g_object_ref_sink (_tmp3_);
_tmp4_ = (GtkHSeparator*) gtk_hseparator_new ();
_g_object_unref0 (self->priv->hsep2);
self->priv->hsep2 = (GtkWidget*) g_object_ref_sink (_tmp4_);
gtk_container_add ((GtkContainer*) self->priv->fixed, self->priv->vsep);
gtk_container_add ((GtkContainer*) self->priv->fixed, self->priv->hsep1);
gtk_container_add ((GtkContainer*) self->priv->fixed, self->priv->hsep2);
_tmp5_ = char_box_new ("+", GTK_SHADOW_NONE);
_g_object_unref0 (self->priv->plusbox);
self->priv->plusbox = g_object_ref_sink (_tmp5_);
gtk_container_add ((GtkContainer*) self->priv->fixed, (GtkWidget*) self->priv->plusbox);
_tmp6_ = char_box_new ("×", GTK_SHADOW_NONE);
_g_object_unref0 (self->priv->timesbox);
self->priv->timesbox = g_object_ref_sink (_tmp6_);
gtk_container_add ((GtkContainer*) self->priv->fixed, (GtkWidget*) self->priv->timesbox);
_tmp7_ = mult_puzzle_get_multiplicand (self->priv->_puzzle);
x = _tmp7_;
_tmp8_ = mult_puzzle_get_multiplier (self->priv->_puzzle);
y = _tmp8_;
_tmp9_ = mult_puzzle_get_answer (self->priv->_puzzle);
z = _tmp9_;
_tmp10_ = strlen (y);
self->priv->num_box_rows = 3 + ((gint) _tmp10_);
_tmp11_ = strlen (z);
self->priv->num_box_cols = 1 + ((gint) _tmp11_);
_tmp12_ = strlen (x);
_tmp13_ = g_new0 (CharBox*, _tmp12_ + 1);
self->priv->xboxes = (_vala_array_free (self->priv->xboxes, self->priv->xboxes_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->xboxes = _tmp13_;
self->priv->xboxes_length1 = _tmp12_;
self->priv->_xboxes_size_ = _tmp12_;
_tmp14_ = strlen (y);
_tmp15_ = g_new0 (CharBox*, _tmp14_ + 1);
self->priv->yboxes = (_vala_array_free (self->priv->yboxes, self->priv->yboxes_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->yboxes = _tmp15_;
self->priv->yboxes_length1 = _tmp14_;
self->priv->_yboxes_size_ = _tmp14_;
_tmp16_ = strlen (z);
_tmp17_ = g_new0 (CharBox*, _tmp16_ + 1);
self->priv->zboxes = (_vala_array_free (self->priv->zboxes, self->priv->zboxes_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->zboxes = _tmp17_;
self->priv->zboxes_length1 = _tmp16_;
self->priv->_zboxes_size_ = _tmp16_;
_tmp18_ = g_new0 (CharBox*, 10 + 1);
self->priv->digitboxes = (_vala_array_free (self->priv->digitboxes, self->priv->digitboxes_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->digitboxes = _tmp18_;
self->priv->digitboxes_length1 = 10;
self->priv->_digitboxes_size_ = 10;
_tmp19_ = mult_puzzle_get_num_addends (self->priv->_puzzle);
_tmp20_ = g_new0 (ArrayBox, _tmp19_);
self->priv->addboxes = (_vala_ArrayBox_array_free (self->priv->addboxes, self->priv->addboxes_length1), NULL);
self->priv->addboxes = _tmp20_;
self->priv->addboxes_length1 = _tmp19_;
self->priv->_addboxes_size_ = _tmp19_;
{
gint i;
i = 0;
{
gboolean _tmp21_;
_tmp21_ = TRUE;
while (TRUE) {
gchar* _tmp22_ = NULL;
gchar* _tmp23_;
gint _tmp24_;
CharBox** _tmp25_ = NULL;
if (!_tmp21_) {
i = i + 1;
}
_tmp21_ = FALSE;
if (!(i < self->priv->addboxes_length1)) {
break;
}
_tmp22_ = mult_puzzle_get_addend (self->priv->_puzzle, i);
_tmp23_ = _tmp22_;
_tmp24_ = strlen (_tmp23_);
_tmp25_ = g_new0 (CharBox*, _tmp24_ + 1);
self->priv->addboxes[i].array = (_vala_array_free (self->priv->addboxes[i].array, self->priv->addboxes[i].array_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->addboxes[i].array = _tmp25_;
self->priv->addboxes[i].array_length1 = _tmp24_;
self->priv->addboxes[i]._array_size_ = _tmp24_;
_g_free0 (_tmp23_);
}
}
}
gtk_widget_get_preferred_height (self->priv->hsep1, NULL, &_tmp26_);
hsep1_height = _tmp26_;
vsep_width = hsep1_height;
self->priv->min_width = ((((12 + ((self->priv->num_box_cols - 1) * CANVAS_SPACING)) + CANVAS_SPACING) + vsep_width) + (CANVAS_SPACING * 4)) + 12;
self->priv->min_height = ((12 + ((self->priv->num_box_rows + 1) * CANVAS_SPACING)) + (hsep1_height * 2)) + 12;
gtk_widget_set_size_request ((GtkWidget*) self, self->priv->min_width, self->priv->min_height);
gtk_widget_add_events ((GtkWidget*) self, (gint) GDK_BUTTON_RELEASE_MASK);
g_signal_connect_object ((GtkWidget*) self, "button-release-event", (GCallback) _canvas_handle_none_release_gtk_widget_button_release_event, self, 0);
g_signal_connect_object ((GtkWidget*) self->priv->fixed, "size-allocate", (GCallback) _canvas_handle_size_allocate_gtk_widget_size_allocate, self, 0);
canvas_handle_puzzle_change (self, self->priv->_puzzle);
g_signal_connect_object (self->priv->_puzzle, "changed", (GCallback) _canvas_handle_puzzle_change_mult_puzzle_changed, self, 0);
_g_free0 (z);
_g_free0 (y);
_g_free0 (x);
return obj;
}
static void canvas_class_init (CanvasClass * klass) {
canvas_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (CanvasPrivate));
G_OBJECT_CLASS (klass)->get_property = _vala_canvas_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_canvas_set_property;
G_OBJECT_CLASS (klass)->constructor = canvas_constructor;
G_OBJECT_CLASS (klass)->finalize = canvas_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), CANVAS_PUZZLE, g_param_spec_object ("puzzle", "puzzle", "puzzle", TYPE_MULT_PUZZLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (G_OBJECT_CLASS (klass), CANVAS_MULT, g_param_spec_object ("mult", "mult", "mult", TYPE_GTK_MULT, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}
static void canvas_instance_init (Canvas * self) {
self->priv = CANVAS_GET_PRIVATE (self);
}
static void canvas_finalize (GObject* obj) {
Canvas * self;
self = CANVAS (obj);
_g_object_unref0 (self->priv->_puzzle);
_g_object_unref0 (self->priv->_mult);
_g_free0 (self->priv->mode_letter);
_g_object_unref0 (self->priv->fixed);
_g_object_unref0 (self->priv->vsep);
_g_object_unref0 (self->priv->hsep1);
_g_object_unref0 (self->priv->hsep2);
__g_list_free__g_object_unref0_0 (self->priv->mult_boxes);
__g_list_free__g_object_unref0_0 (self->priv->digit_boxes);
self->priv->xboxes = (_vala_array_free (self->priv->xboxes, self->priv->xboxes_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->yboxes = (_vala_array_free (self->priv->yboxes, self->priv->yboxes_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->zboxes = (_vala_array_free (self->priv->zboxes, self->priv->zboxes_length1, (GDestroyNotify) g_object_unref), NULL);
self->priv->addboxes = (_vala_ArrayBox_array_free (self->priv->addboxes, self->priv->addboxes_length1), NULL);
self->priv->digitboxes = (_vala_array_free (self->priv->digitboxes, self->priv->digitboxes_length1, (GDestroyNotify) g_object_unref), NULL);
_g_object_unref0 (self->priv->plusbox);
_g_object_unref0 (self->priv->timesbox);
G_OBJECT_CLASS (canvas_parent_class)->finalize (obj);
}
GType canvas_get_type (void) {
static volatile gsize canvas_type_id__volatile = 0;
if (g_once_init_enter (&canvas_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (CanvasClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) canvas_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Canvas), 0, (GInstanceInitFunc) canvas_instance_init, NULL };
GType canvas_type_id;
canvas_type_id = g_type_register_static (GTK_TYPE_EVENT_BOX, "Canvas", &g_define_type_info, 0);
g_once_init_leave (&canvas_type_id__volatile, canvas_type_id);
}
return canvas_type_id__volatile;
}
static void _vala_canvas_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
Canvas * self;
self = CANVAS (object);
switch (property_id) {
case CANVAS_PUZZLE:
g_value_set_object (value, canvas_get_puzzle (self));
break;
case CANVAS_MULT:
g_value_set_object (value, canvas_get_mult (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_canvas_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
Canvas * self;
self = CANVAS (object);
switch (property_id) {
case CANVAS_PUZZLE:
canvas_set_puzzle (self, g_value_get_object (value));
break;
case CANVAS_MULT:
canvas_set_mult (self, g_value_get_object (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
if ((array != NULL) && (destroy_func != NULL)) {
int i;
for (i = 0; i < array_length; i = i + 1) {
if (((gpointer*) array)[i] != NULL) {
destroy_func (((gpointer*) array)[i]);
}
}
}
}
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
_vala_array_destroy (array, array_length, destroy_func);
g_free (array);
}
gmult-8.0/gmult/CharBox.vala 0000644 0001750 0001750 00000005541 11551310024 015407 0 ustar udienz udienz /* -*- Mode: Vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
Multiplication Puzzle
Copyright (C) 2004-2008,2011 Michael Terry
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 3 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, see .
*/
using GLib;
/* Vala 0.12's bindings for this are wrong, so we make our own */
[CCode (cheader_filename = "gtk/gtk.h")]
extern void gtk_style_context_get_color(Gtk.StyleContext context,
Gtk.StateFlags state,
out Gdk.RGBA color);
public class CharBox : Gtk.EventBox
{
public string letter { get; set; default = "?"; }
public Gtk.ShadowType border { get; set; default = Gtk.ShadowType.NONE; }
public int points { get; set; }
private Gtk.StateFlags _highlight = Gtk.StateFlags.NORMAL;
public Gtk.StateFlags highlight {
get {return _highlight;}
set {
_highlight = value;
queue_draw ();
}
}
/* Private methods & members */
private Gtk.DrawingArea area;
private bool draw_request (Cairo.Context ctx)
{
var w = area.get_allocated_width();
var h = area.get_allocated_height();
var style = get_style_context ();
style.save();
style.add_class(Gtk.STYLE_CLASS_RUBBERBAND);
style.set_state(highlight);
if (highlight != Gtk.StateFlags.NORMAL)
Gtk.render_background (style, ctx, 0, 0, w, h);
if (border != Gtk.ShadowType.NONE)
Gtk.render_frame (style, ctx, 0, 0, w, h); // FIXME: highlight/border?
// Letter
Gdk.RGBA color;
gtk_style_context_get_color(style, highlight, out color);
ctx.set_source_rgba(color.red, color.green, color.blue, color.alpha);
ctx.set_font_size (points);
Cairo.TextExtents te = Cairo.TextExtents();
ctx.text_extents (_(letter), out te);
Cairo.FontExtents fe = Cairo.FontExtents();
ctx.font_extents (out fe);
ctx.move_to ( w/2 - te.x_bearing - te.width / 2,
h/2 - fe.descent + fe.height / 2);
ctx.show_text (_(letter));
style.restore();
return true;
}
/* Constructor */
public CharBox (string letter, Gtk.ShadowType border)
{
this.letter = letter;
this.border = border;
}
construct
{
area = new Gtk.DrawingArea ();
area.draw.connect(draw_request);
add (area);
}
}
gmult-8.0/po/af.po 0000644 0001750 0001750 00000014555 11551323754 013453 0 ustar udienz udienz # Afrikaans translation for the GNU Multiplication puzzle.
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Petri Jooste , 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 2.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:32+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Afrikaans \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
"X-Poedit-Language: Afrikaans\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Maal Raaisel"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Spel"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Wenk"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Oplossing"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Hulp"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Veels geluk!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Verkeerd — %1$s is nie %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Korrek — %1$s is %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Verkeerde Raaiskote"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Tyd"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Maak Maal Raaisel toe"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Begin 'n nuwe spel"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Raaisel is opgelos"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Los hierdie spel op"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s is %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Wys 'n gerandomiseerde nommer"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Informasie oor Maal Raaisel"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Horcrux https://launchpad.net/~pizzabotha\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Petri Jooste https://launchpad.net/~rkwjpj-puknet\n"
" Stephan Wessels https://launchpad.net/~slwessels"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Bepaal watter letters is watter getalle"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Hierdie program word versprei in die hoop dat dit nuttig sal wees, maar "
#~ "SONDER ENIGE WAARBORG; sonder selfs die geïmpliseerde waarborg van "
#~ "VERHANDELBAARHEID of GESKIKTHEID VIR 'N SPESIFIEKE DOEL. Sien die GNU "
#~ "Algemene Publieke Lisensie vir meer detail."
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Kon nie %s wys nie"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Jy behoort 'n kopie van die GNU Algemene Publieke Lisensie te ge kry het "
#~ "saam met hierdie program; indien nie, skryf aan die Free Software "
#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, VSA."
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Hierdie program is gratis sagteware; U kan dit herversprei en/of verander "
#~ "onder die terme van die GNU Algemene publieke lisensie soos gepubliseer deur "
#~ "die Gratis Sagteware Vereeniging; Weergawe 3 van die lisensie, of (volgende "
#~ "U keuse) enige opvolgende weergawe."
gmult-8.0/po/eu.po 0000644 0001750 0001750 00000010666 11551323754 013475 0 ustar udienz udienz # Basque translation of gmult.
# Copyright (C) 2005 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Mikel Olasagasti , 2004, 2005.
# , fuzzy
#
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:33+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Basque \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Biderketa puzzlea"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Jokua"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Ebatzi"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Laguntza"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Zorionak!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Hasi joku berri bat"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Puzzlea ebatzita"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Ebatzi joku hau"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Biderketa puzzleari buruz"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Mikel Olasagasti Uranga \n"
"\n"
"Launchpad Contributions:\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Kalkulatu zein letra den zein zenbaki"
gmult-8.0/po/hu.po 0000644 0001750 0001750 00000014653 11551323754 013500 0 ustar udienz udienz # SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 6.1\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:33+0000\n"
"Last-Translator: Polesz \n"
"Language-Team: Hungarian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
"X-Poedit-Country: HUNGARY\n"
"X-Poedit-Language: Hungarian\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Szorzás Rejtvény"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Játék"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Javaslat"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Megoldás"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Súgó"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Gratulálunk!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Helytelen — %1$s nem %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Helyes — %1$s egyenlő %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Hibás Feltételezések"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Idő"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Szorzás rejtvény bezárása"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Új játék indítása"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Rejtvény megoldva"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "A játék megoldása"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s van %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Szám felfedése véletlenszerűen"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Szorzás rejtvény névjegye"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"fordítók névjegye\n"
"\n"
"Launchpad Contributions:\n"
" Muszela Balázs https://launchpad.net/~bazsi86-deactivatedaccount\n"
" Polesz https://launchpad.net/~polesz-nedudu"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Találja ki, hogy melyik betű melyik számnak felel meg"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Ezt a programot abban a reményben terjesztjük, hogy hasznos, de mindennemű "
#~ "GARANCIA NÉLKÜL. Részletesen erről a GNU General Public License-ben "
#~ "(Általános Nyilvános Licenc) olvashat."
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Ez a program szabad szoftver. Ön továbbadhatja és/vagy módosíthatja a Szabad "
#~ "Szoftver Alapítvány által kiadott GNU General Public License (Általános "
#~ "Nyilvános Licenc) 3. verziójában (vagy választása szerint) bármely újabb "
#~ "verzióban foglaltak szerint."
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Nem lehet a képernyőt megnyitni: %s"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "A programmal együtt meg kellett kapnia a GNU General Public License "
#~ "(Általános Nyilvános Licenc) egy példányát. Amennyiben nem így történt, "
#~ "akkor beszerezhető a Szabad Szoftver Alapítványtól. Free Software Foundation "
#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
gmult-8.0/po/POTFILES.in 0000644 0001750 0001750 00000000240 11551155441 014260 0 ustar udienz udienz [encoding: UTF-8]
gmult/Canvas.vala
gmult/CharBox.vala
gmult/DigitBox.vala
gmult/GtkMult.vala
gmult/MultPuzzle.vala
gmult/TableBox.vala
data/gmult.desktop.in
gmult-8.0/po/nl.po 0000644 0001750 0001750 00000015560 11551323754 013473 0 ustar udienz udienz # Dutch messages for gmult.
# Copyright (C) 2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# Tim Van Holder , 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-14 13:30+0000\n"
"Last-Translator: Mira \n"
"Language-Team: Dutch \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Vermenigvuldigingspuzzel"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Spel"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Hint"
# of "_Los Op"?
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Oplossing"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Help"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Proficiat!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Verkeerd — %1$s is niet %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Juist — %1$s is %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Foute gokken"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Tijd"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Multplication Puzzle afsluiten"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Start een nieuw spel"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Puzzel opgelost"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Los dit spel op"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s is %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Toon een willekeurig cijfer"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Over Vermenigvuldigingspuzzel"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Nederlandse vertaling door Tim Van Holder.\n"
"Meld vertalingsfouten aan .\n"
"\n"
"Launchpad Contributions:\n"
" Fly-Man- https://launchpad.net/~flyman\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Mira https://launchpad.net/~paniej\n"
" Steven De Baets https://launchpad.net/~stevendebaets\n"
" Tim Van Holder https://launchpad.net/~tim-van-holder-telenet"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Probeer uit te vissen welke cijfers er schuilgaan achter de letters"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Kan %s niet weergeven"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Dit programma wordt gedistribueerd in de hoop dat het bruikbaar zal zijn, "
#~ "maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie voor "
#~ "VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN SPECIFIEK DOEL. Zie de GNU General "
#~ "Public License voor meer details."
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Dit programma is vrije software;je kan het herdistributeren en/of wijzigen "
#~ "onder de voorwaarden van de GNU General Public License zoals gepubliseerd "
#~ "door de Free Software Foundation; onder versie 3 van de Licentie, of enige "
#~ "latere versie."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "U zou moeten hebben ontvangen een kopie van de GNU General Public License "
#~ "samen met dit programma, zo niet, schrijf naar de Free Software Foundation, "
#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Sluit Multiplication Puzzle"
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Je zou een kopie van de GNU General Public License moeten hebben gekregen "
#~ "samen met dit programma. Zo niet, zie http://www.gnu.org/licenses/."
gmult-8.0/po/vi.po 0000644 0001750 0001750 00000014750 11551323754 013500 0 ustar udienz udienz # Vietnamese translation for gmult.
# Copyright © 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Clytie Siddall , 2005-2008.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 6.0\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:31+0000\n"
"Last-Translator: Clytie Siddall \n"
"Language-Team: Vietnamese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Câu đố nhân"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "Đ"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "K"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Chơi"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Giải"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "Trợ g_iúp"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Chúc mừng !"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Không đúng — %1$s không phải là %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Đúng — %1$s là %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Đóng câu đố nhân"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Bắt đầu lượt chơi mới"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Câu đố đã được giải"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Giải lượt chơi này"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Giới thiệu câu đố nhân"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Nhóm Việt hóa Phần mềm Tự do "
"\n"
"\n"
"Launchpad Contributions:\n"
" Clytie Siddall https://launchpad.net/~clytie"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Tính ra chữ cái nào là chữ số nào"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Không thể hiển thị %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Chương trình này là phần mềm tự do; bạn có thể phát hành lại nó và/hoặc sửa "
#~ "đổi nó với điều kiện của Giấy Phép Công Cộng GNU như được xuất bản bởi Tổ "
#~ "Chức Phần Mềm Tự Do; hoặc phiên bản 3 của Giấy Phép này, hoặc (tùy chọn) bất "
#~ "kỳ phiên bản sau nào."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Chương trình này được phát hành vì mong muốn nó có ích, nhưng KHÔNG CÓ BẢO "
#~ "HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM ĐƯỢC NGỤ Ý KHẢ NĂNG BÁN HAY KHẢ NĂNG "
#~ "LÀM ĐƯỢC VIỆC DỨT KHOÁT. Xem Giấy Phép Công Cộng GNU để biết thêm chi tiết."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Bạn đã nhận một bản sao của Giấy Phép Công Cộng GNU cùng với chương trình "
#~ "này; nếu không, hãy viết thư cho Tổ Chức Phần Mềm Tự Do,\n"
#~ "Free Software Foundation, Inc.,\n"
#~ "51 Franklin Street, Fifth Floor,\n"
#~ "Boston, MA 02110-1301, USA (Mỹ)."
gmult-8.0/po/ms.po 0000644 0001750 0001750 00000015365 11551323754 013504 0 ustar udienz udienz # gmult Bahasa Melayu (Malay) (ms).
# Copyright (C) 2005 Sharuzzaman Ahmat Raslan
# This file is distributed under the same license as the gmult package.
# Sharuzzaman Ahmat Raslan , 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-06-27 06:42+0000\n"
"Last-Translator: abuyop \n"
"Language-Team: Malay \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Teka-teki Darab"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Permainan"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Bayangan"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Selesaikan"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Bantuan"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Tahniah!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Salah - %1$s bukan %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Betul - %1$s adalah %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Tekaan yang silap"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Masa"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Tutup Multiplication Puzzle"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Mulakan permainan baru"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Teka-teki diselesaikan"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Selesaikan permainan ini"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s adalah %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Singkap digit secara rambang"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Perihal Teka-teki Darab"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Sharuzzaman Ahmat Raslan \n"
"\n"
"Launchpad Contributions:\n"
" Hafiz, Muhammad https://launchpad.net/~muhammad-hafiz\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Sharuzzaman Ahmat Raslan https://launchpad.net/~sharuzzaman\n"
" abuyop https://launchpad.net/~abuyop"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Tentukan aksara yang mana adalah nombor"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Tidak boleh paparkan %s"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Anda sepatutnya telah menerima satu salinan Lesen Umum GNU bersama-sama "
#~ "program ini; sekiranya tidak, sila hantarkan surat ke Free Software "
#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Program ini diedarkan dengan harapan ianya berguna tetapi TANPA SEBARANG "
#~ "JAMINAN; tanpa sebarang implakasi jaminan KEBOLEHDAGANGAN atau KESESUAIAN "
#~ "UNTUK SESUATU TUJUAN. Sila rujuk GNU General Public LIcense untuk keterangan "
#~ "lanjut."
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Program ini adalah perisian bebas, anda boleh sebarkannya / atau mengubahnya "
#~ "dibawah terma-terma Lesen Umum GNU seperti mana diterbitkan oleh Penubuhan "
#~ "Perisian Percuma, sama ada versi 3 lesen tersebut atau (pilihan anda) lain-"
#~ "lain versi."
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Anda seharusnya menerima salinan Lesen GNU General Public bersama-sama "
#~ "perisian ini. Jika tiada, lihat http://www.gnu.org/licenses/."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Keluar Teka-teki Darab"
gmult-8.0/po/fr.po 0000644 0001750 0001750 00000015607 11551323754 013473 0 ustar udienz udienz # Messages français pour GNU concernant gmult.
# Copyright © 2004-2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Michel Robitaille , traducteur depuis/since 1996.
# Odile Bénassy , traductrice depuis 2008.
msgid ""
msgstr ""
"Project-Id-Version: GNU gmult 6.0\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-08-13 18:20+0000\n"
"Last-Translator: Nicolas Delvaux \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Jeu-devinette de multiplication"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Jeu"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Astuce"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Résoudre"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Aide"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Félicitations !"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Incorrect - %1$s n'est pas %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Correct - %1$s est bien %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Tentatives incorrectes"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Temps"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Quitter ce jeu de multiplication"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Débuter une nouvelle partie"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Problème résolu"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Afficher la solution"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s est %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Tirer un chiffre au hasard"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "À propos de ce jeu de multiplication"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Traduction française par Odile Bénassy\n"
"\n"
"Launchpad Contributions:\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Michel Robitaille https://launchpad.net/~robitail\n"
" Sorkin https://launchpad.net/~kosnila\n"
" Thibault Févry https://launchpad.net/~thibaultfevry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Vous devez deviner à quel nombre correspond chaque lettre"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Impossible d'afficher %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Ceci est un logiciel libre. Vous pouvez le redistribuer et/ou le modifier, "
#~ "selon les termes de la licence publique générale de GNU, - publiée par la "
#~ "Free Software Foundation - dans sa version 3 ou ultérieure, au choix."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Ce programme est publié avec l'espoir qu'il sera utile, mais SANS AUCUNE "
#~ "GARANTIE, pas même la garantie implite de CAPACITÉ DE MISE SUR LE MARCHÉ ni "
#~ "celle d'ADAPTATION À UN BUT PARTICULIER. Pour tous détails, voyez la Licence "
#~ "Générale de GNU."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "En même temps que ce programme, vous avez dû recevoir le texte de la "
#~ "licence. Si ce n'était pas le cas, écrivez à « Free Software Foundation, "
#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA »."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Quitter Multiplication Puzzle"
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Vous devriez avoir reçu une copie de la GNU General Public License avec ce "
#~ "programme. Sinon, voir http://www.gnu.org/licenses/."
gmult-8.0/po/gmult.pot 0000644 0001750 0001750 00000007643 11551324464 014400 0 ustar udienz udienz #, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\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=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
"Language: \n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr ""
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr ""
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr ""
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr ""
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr ""
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr ""
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr ""
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr ""
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr ""
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr ""
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr ""
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr ""
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr ""
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr ""
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr ""
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr ""
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr ""
gmult-8.0/po/LINGUAS 0000644 0001750 0001750 00000000146 11551155441 013535 0 ustar udienz udienz af
ar
cs
da
de
el
en_GB
es
eu
fi
fr
hu
id
io
it
ja
ms
nl
pl
pt
pt_BR
rm
ro
ru
sr
sv
tr
vi
zh_CN
zh_TW
gmult-8.0/po/pt.po 0000644 0001750 0001750 00000010341 11551323754 013475 0 ustar udienz udienz # Portuguese translation for gmult
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the gmult package.
# FIRST AUTHOR , 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:33+0000\n"
"Last-Translator: Launchpad Translations Administrators "
"\n"
"Language-Team: Portuguese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr ""
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr ""
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr ""
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr ""
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr ""
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr ""
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr ""
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Ajuda"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Parabéns!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr ""
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr ""
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" nglnx https://launchpad.net/~nglnx"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr ""
gmult-8.0/po/zh_TW.po 0000644 0001750 0001750 00000011072 11551323754 014107 0 ustar udienz udienz # Traditional Chinese Messages for gmult
# Copyright (C) 2005 Free Software Foundation, Inc.
# Wei-Lun Chao , 2005
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:33+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Chinese (traditional) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "乘法字謎"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "甲"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "乙"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "丙"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "丁"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "戊"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "己"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "庚"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "辛"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "壬"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "癸"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "遊戲(_G)"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "解答(_S)"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "求助(_H)"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "恭喜!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "時間"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "關閉 Multiplication Puzzle"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "重新開始新的遊戲"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "字謎已解答"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "解答這個遊戲"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "關於乘法字謎"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"趙惟倫 \n"
"\n"
"Launchpad Contributions:\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Wei-Lun Chao https://launchpad.net/~chaoweilun-pcmail\n"
" sika https://launchpad.net/~sikajs"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "推測出哪個文字代表哪個數字"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "無法顯示 %s"
gmult-8.0/po/da.po 0000644 0001750 0001750 00000014531 11551323754 013443 0 ustar udienz udienz # Danish Translation of Multiplication Puzzle.
# Copyright (C) 2008 Multiplication Puzzle.
# This file is distributed under the same license as the gmult package.
# Joe Hansen , 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult-6.0\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:28+0000\n"
"Last-Translator: Christian Funder Sommerlund \n"
"Language-Team: Danish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
# Har valgt ikke at oversætte spillets navn
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Multiplication Puzzle"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Spil"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Tip"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Løs"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Hjælp"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Tillykke!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Forkert — %1$s er ikke %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Rigtigt - %1$s er %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Forkerte gæt"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Tid"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Luk Multiplication Puzzle"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Start et nyt spil"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Opgave løst"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Løs dette spil"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s er %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Afslør et tilfældigt tal"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Om Multiplication Puzzle"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Joe Hansen \n"
"\n"
"Dansk-gruppen \n"
"Mere info: http://www.dansk-gruppen.dk\n"
"\n"
"Launchpad Contributions:\n"
" Christian Funder Sommerlund https://launchpad.net/~zero3\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Regn ud hvilke bogstaver der repræsenterer hvilke tal"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Kunne ikke vise %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Dette program er frit programmel; du kan distribuere det og/eller ændre det "
#~ "under betingelserne i GNU Free Documentation License (GFDL), udgivet af the "
#~ "Free Software Foundation; enten version 3 af denne licens, eller (ved dit "
#~ "valg) enhver senere version."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Dette program distribueres i håbet om, at det er brugbart, men uden nogen "
#~ "form for ansvar; herunder også ethvert ansvar der måtte fremstå "
#~ "underforstået. Se GNU General Public License for yderligere oplysninger."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Du bør have modtaget en kopi af GNU General Public License sammen med dette "
#~ "program; hvis ikke så skriv til the Free Software Foundation, Inc., 59 "
#~ "Temple Place - Suite 330, Boston, MA 02111-1307, USA."
gmult-8.0/po/en_GB.po 0000644 0001750 0001750 00000015075 11551323754 014035 0 ustar udienz udienz # English (United Kingdom) translation for gmult
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the gmult package.
# FIRST AUTHOR , 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-05-09 10:40+0000\n"
"Last-Translator: MoLE \n"
"Language-Team: English (United Kingdom) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Multiplication Puzzle"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Game"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Hint"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Solve"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Help"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Congratulations!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Incorrect — %1$s is not %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Correct — %1$s is %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Incorrect Guesses"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Time"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Close Multiplication Puzzle"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Start a new game"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Puzzle solved"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Solve this game"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s is %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Reveal a digit at random"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "About Multiplication Puzzle"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Jonathon Fernyhough https://launchpad.net/~jfernyhough\n"
" MoLE https://launchpad.net/~moleonthehill"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Figure out which letters are which numbers"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Could not display %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "This program is free software; you can redistribute it and/or modify it "
#~ "under the terms of the GNU General Public Licence as published by the Free "
#~ "Software Foundation; either version 3 of the Licence, or (at your option) "
#~ "any later version."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "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 Licence for "
#~ "more details."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "You should have received a copy of the GNU General Public Licence along with "
#~ "this program; if not, write to the Free Software Foundation, Inc., 59 Temple "
#~ "Place - Suite 330, Boston, MA 02111-1307, USA."
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "You should have received a copy of the GNU General Public Licence along with "
#~ "this program. If not, see http://www.gnu.org/licences/."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Quit Multiplication Puzzle"
gmult-8.0/po/el.po 0000644 0001750 0001750 00000010364 11551323754 013457 0 ustar udienz udienz # Greek translation for gmult
# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
# This file is distributed under the same license as the gmult package.
# FIRST AUTHOR , 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:29+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Greek \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "0"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr ""
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr ""
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr ""
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr ""
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr ""
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr ""
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr ""
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr ""
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr ""
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr ""
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr ""
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr ""
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr ""
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr ""
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr ""
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr ""
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Michael Terry https://launchpad.net/~mterry\n"
" nikos roussos https://launchpad.net/~comzeradd"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr ""
gmult-8.0/po/cs.po 0000644 0001750 0001750 00000013473 11551323754 013470 0 ustar udienz udienz # Czech translation for gmult
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the gmult package.
# FIRST AUTHOR , 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:33+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Czech \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Multiplication Puzzle"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Hra"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Rada"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Vyřešit"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Nápověda"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Gratuluji!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Nesprávně — %1$s není %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Správně — %1$s je %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Špatný odhad"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Čas"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Zavřít Multiplication Puzzle"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Začít novou hru"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Hlavolam vyřešen"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Vyřešit tuhle hru"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s je %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Odhalovat číslice v náhodném pořadí"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "O aplikaci Multiplication Puzzle"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Konki https://launchpad.net/~pavel-konkol\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Sipral https://launchpad.net/~zakyne-xyz"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Zjistěte jaké číslice odpovídají písmenům"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Nelze zobrazit %s"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Tento program je šířen v naději, že bude užitečný, avšak BEZ JAKÉKOLIV "
#~ "ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO "
#~ "URČITÝ ÚČEL. Další podrobnosti hledejte v GNU General Public License."
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr "překladatelé-titulky"
#~ msgid ""
#~ "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."
#~ msgstr "překladatelé-titulky"
gmult-8.0/po/ru.po 0000644 0001750 0001750 00000016716 11551323754 013514 0 ustar udienz udienz # Russian translation of gmult.
# Copyright (C) 2008 THE gmult'S COPYRIGHT HOLDER
# This file is distributed under the same license as the gmult package.
# avl , 2008.
# , fuzzy
#
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 6.2\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-09 02:54+0000\n"
"Last-Translator: AleX \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Игра \"Умножение\""
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "А"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "Б"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "В"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "Г"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "Д"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "Е"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "Ж"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "З"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "И"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "К"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Игра"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Подсказка"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Решить"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Помощь"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Поздравляем!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Неправильно - %1$s·не является·%2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Верно·—·%1$s·это·%2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Неправильная попытка"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Время"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Закрыть игру \"умножение\""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Начать новую игру"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Головоломка решена"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Решить игру"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s это %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Открыть случайную цифру"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Об игре \"умножение\""
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"переводчики\n"
"\n"
"Launchpad Contributions:\n"
" AleX https://launchpad.net/~akrivozubov\n"
" HsH https://launchpad.net/~hsh\n"
" Maxim Strukov https://launchpad.net/~unbelll\n"
" Michael Terry https://launchpad.net/~mterry\n"
" avl https://launchpad.net/~avl-fedoraproject\n"
" dpetrov83 https://launchpad.net/~dpetrov83"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Определите каким буквам соответствуют цифры"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Не показывается %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Эта программа является свободным ПО; вы можете передавать ее и/или "
#~ "модифицировать в соответствии с условиями GNU General Public License версии "
#~ "3 или, на ваш выбор, более поздней как она публикуется фондом свободного "
#~ "программного обеспечения FSF;"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Эта программа распостраняется в надежде, что она будет вам полезна, но БЕЗ "
#~ "КАКИХ БЫ ТО НИ БЫЛО ГАРАНТИЙ; подробнее см. текст лицензии "
#~ "GNU·General·Public·License"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Вы должны получит копию лицензии GNU GeneralPublic License вместе с "
#~ "программой;Если этого не произошло, напишите а фонд свободного программного "
#~ "обеспеченияFSF по адресу Free·Software·Foundation,·Inc.,·59·Temple Place·-"
#~ "·Suite·330,·Boston,·MA··02111-1307,·USA."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Выход из Multiplication Puzzle"
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Вы должны были получить копию GNU General Public License вместе с этой "
#~ "программой. Если же нет, см. http://www.gnu.org/licenses/."
gmult-8.0/po/POTFILES.skip 0000644 0001750 0001750 00000000144 11551155441 014623 0 ustar udienz udienz gmult/Canvas.c
gmult/CharBox.c
gmult/DigitBox.c
gmult/GtkMult.c
gmult/MultPuzzle.c
gmult/TableBox.c
gmult-8.0/po/pt_BR.po 0000644 0001750 0001750 00000014753 11551323754 014073 0 ustar udienz udienz # translation of gmult-2.1 to Brazilian Portuguese
# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
# This file is distributed under the same license as the xchat package.
# Renan Mathias Fernandes , 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 2.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:29+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Brazilian Portuguese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
"X-Poedit-Country: BRAZIL\n"
"X-Poedit-Language: Portuguese\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Enigma da Multiplicação"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Jogo"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Dica"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Resolva"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Ajuda"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Parabéns!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Errado — %1$s não é %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Certo — %1$s é %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Tentativa Incorreta"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Tempo"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Fecha o Enigma da Multiplicação"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Iniciar um novo jogo"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Enigma resolvido"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Resolver este jogo"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s é %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Revelar um dígito aleatoriamente"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Sobre o Enigma da Multiplicação"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" André Gondim https://launchpad.net/~andregondim\n"
" Dennys Leite Maia https://launchpad.net/~dennysleite\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Renan Mathias Fernandes https://launchpad.net/~renanfernandes"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Descubra quais números estão representados pelas letras."
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Não foi possivel exibir %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Este programa é um software livre; você pode redistribuí-lo e/ou modificá-lo "
#~ "sob os termos da GNU General Public License conforme publicada pela Free "
#~ "Software Foundation; tanto na versão 3 da Licença, ou (conforme deseje) "
#~ "qualquer versão posterior."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER "
#~ "GARANTIA; sem mesmo a garantia implícita de COMERCIABILIDADE ou ADEQUAÇÃO A "
#~ "UM DETERMINADO PROPÓSITO. Veja a GNU General Public License para mais "
#~ "detalhes."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Você deve ter recebido uma cópia da GNU General Public License junto com "
#~ "este programa; caso contrário, escreva para a Free Software Foundation, "
#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, E.U.A.."
gmult-8.0/po/sv.po 0000644 0001750 0001750 00000015164 11551323754 013512 0 ustar udienz udienz # Swedish translation of gmult.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the gmult package.
# Daniel Nylander , 2005
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-08-04 17:46+0000\n"
"Last-Translator: David Bengtsson \n"
"Language-Team: Swedish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Multipliceringspussel"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Spel"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Tips"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Lös"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Hjälp"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Gratulerar!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Fel — %1$s är inte %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Rätt — %1$s is %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Felaktiga gissningar"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Tid"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Stäng Multipliceringspussel"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Starta ett nytt spel"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Pusslet löst"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Lös detta spel"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s är %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Avslöja en siffra slumpmässigt"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Om Multipliceringspussel"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Daniel Nylander \n"
"\n"
"Launchpad Contributions:\n"
" Daniel Nylander https://launchpad.net/~yeager\n"
" David Bengtsson https://launchpad.net/~justfaking"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Lista ut vilka bokstäver som är vilka nummer"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Detta program distribueras i hopp om att det ska vara användbart, men UTAN "
#~ "NÅGON SOM HELST GARANTI, även utan underförstådd garanti om SÄLJBARHET eller "
#~ "LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General Public License för "
#~ "ytterligare information."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Du bör ha fått en kopia av GNU General Public License tillsammans med detta "
#~ "program; om inte, skriv till Free Software Foundation, Inc., 59 Temple Place "
#~ "- Suite 330, Boston, MA 02111-1307, USA."
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Kunde inte visa %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Detta program är fri programvara; du kan distribuera det och/eller ändra det "
#~ "under villkoren för GNU General Public License som publicerats av Free "
#~ "Software Foundation; antingen version 3 av licensen, eller (enligt dig "
#~ "själv) någon senare version."
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Du bör ha fått en kopia av GNU General Public License tillsammans med det "
#~ "här programmet. Om inte, se http://www.gnu.org/licenses/."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Avsluta Multipliceringspussel"
gmult-8.0/po/de.po 0000644 0001750 0001750 00000014644 11551323754 013454 0 ustar udienz udienz # German translation for gmult.
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Roland Illig , 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 2.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-06-07 21:46+0000\n"
"Last-Translator: Gabor Karsay \n"
"Language-Team: German \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Multiplizierrätsel"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Spiel"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Tipp"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Lösen"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Hilfe"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Herzlichen Glückwunsch!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Falsch — %1$s ist nicht %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Richtig — %1$s ist %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Falsche Antworten"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Zeit"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Neues Spiel anfangen"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Rätsel gelöst"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Dieses Spiel auflösen"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s ist %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Zufällig eine Ziffer verraten"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Über Multiplizierrätsel"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Demophobie https://launchpad.net/~demophobie\n"
" Gabor Karsay https://launchpad.net/~gabor-karsay\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Roland Illig https://launchpad.net/~roland-illig\n"
" Stefano Palazzo https://launchpad.net/~stefano-palazzo"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Finde heraus, welche Buchstaben welche Ziffern sind."
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "%s konnte nicht angezeigt werden"
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Multiplizierrätsel beenden"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Dieses Programm ist freie Software, Sie können es weitergeben und/oder "
#~ "verändern, solange Sie sich an die Regeln der GNU General Public License "
#~ "halten, so wie sie von der Free Software Foundation festgelegt wurden; "
#~ "entweder in Version 3 der Lizenz oder (nach Ihrem Ermessen) in jeder "
#~ "folgenden Lizenz."
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem "
#~ "Programm erhalten haben. Falls nicht, besuchen Sie "
#~ "http://www.gnu.org/licenses/ für weitere Informationen."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Die Veröffentlichung dieses Programmes erfolgt in der Hoffnung, dass es "
#~ "Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die "
#~ "implizierte Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN "
#~ "BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License."
gmult-8.0/po/ar.po 0000644 0001750 0001750 00000014764 11551323754 013471 0 ustar udienz udienz # Arabic translation for gmult
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the gmult package.
# FIRST AUTHOR , 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:27+0000\n"
"Last-Translator: benohb \n"
"Language-Team: Arabic \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "لغز متعدد"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_لعبة"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_تلميحة"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_حل"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_مساعدة"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "تهانينا!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "خاطئ —%1$s ليست %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "صحيح —%1$s هو %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "التخمينات خاطئة"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "وقت"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "غلق اللغز المتعدد"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "ابدأ لعبة جديدة"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "اللغز حل"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "حل هذا اللغز"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$sهو %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "إفشاء الارقام عشوائيا"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "عن اللغز المتعدد"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" benohb https://launchpad.net/~hamid"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "لديك عدد التخمين الذي يقابل كل خطاب"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "يوزّع البرنامج على أمل أن يكون مفيدًا لمن يستخدمه دون أدنى مسؤولية؛ ولا حتى "
#~ "أي ضمان يضمن صلاحية العرض في السوق أو توافقه مع أي استخدام محدد. يمكنك "
#~ "مراجعة الرخصة العمومية العامة لجنو لمزيد من التفاصيل."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "ينبغي ان تستلم نسخة من النسخة العمومية العامة لجنو مع هذا البرنامج;و في حالة "
#~ "عدم استيلامها راسل مؤسسة البرمجيات الحرة\r\n"
#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "لا يجب اظهار %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "هذا البرنامج من البرمجيات الحرة ; يمكنك توزيعة و/او تعديله انه تحت رخصة فريق "
#~ "جنو الرخصة العمومية العامة منشور من طرف مؤسسة البرمجيات الحرة ; كما الاصدار "
#~ "3 من الرخصة,او(في اعداداتك)اي رخصة موالية."
gmult-8.0/po/Makevars 0000644 0001750 0001750 00000000456 11551155441 014210 0 ustar udienz udienz # Makefile variables for PO directory in any package using GNU gettext.
DOMAIN = $(PACKAGE)
subdir = po
top_builddir = ..
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --from-code=UTF-8
COPYRIGHT_HOLDER = Michael Terry
MSGID_BUGS_ADDRESS = mike@mterry.name
EXTRA_LOCALE_CATEGORIES =
gmult-8.0/po/ChangeLog 0000644 0001750 0001750 00000000142 11551155441 014256 0 ustar udienz udienz 2004-04-12 gettextize
* Makefile.in.in: Upgrade to gettext-0.12.1.
gmult-8.0/po/zh_CN.po 0000644 0001750 0001750 00000014355 11551323754 014064 0 ustar udienz udienz # gmult 简体中文翻译
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Meng Jie , 2004.
# Ji ZhengYu , 2008.
msgid ""
msgstr ""
"Project-Id-Version: gmult 6.0\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:33+0000\n"
"Last-Translator: Kyle WANG \n"
"Language-Team: Chinese (simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
"X-Poedit-Country: CHINA\n"
"X-Poedit-Language: Chinese\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "乘法猜数游戏"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "游戏(_G)"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "提示(_H)"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "解谜(_S)"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "帮助(_H)"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "恭喜!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "错误 -- %1$s 不是 %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "正确 -- %1$s 正是 %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "猜错次数"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "时间"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "关闭乘法猜数游戏"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "开始新游戏"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "谜底解开了"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "猜出谜底"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s 是 %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "随机显示一个数字"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "关于乘法猜数游戏"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"致谢翻译者\n"
"\n"
"Launchpad Contributions:\n"
" Kyle WANG https://launchpad.net/~osfans-deactivatedaccount-"
"deactivatedaccount\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "猜出各个字母代表哪些数字"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "无法显示 %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "此程序为自由软件;您可以自由软件基金会发布的 GNU "
#~ "通用公共协议的许可之下重新分发或是修改这个程序;您可以选择该协议的第三版,或是(按您意愿)选择更新的版本。"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "分发此程序是希望它有用,但没有任何形式的担保;甚至没有为某一特殊目的而隐含的任何可销性或是适用性担保。更多详细内容请参阅 GNU 通用公共协议。"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "您应该已经随同此程序收到一份 GNU 通用公共协议的副本;如果没有,请写信至 Free Software Foundation, Inc., 59 "
#~ "Temple Place - Suite 330, Boston, MA 02111-1307, USA."
gmult-8.0/po/id.po 0000644 0001750 0001750 00000014442 11551323754 013454 0 ustar udienz udienz # Indonesian translations for gmult package.
# Copyright (C) 2008 Mike Terry.
# This file is distributed under the same license as the gmult package.
# Andhika Padmawan , 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 6.0\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:32+0000\n"
"Last-Translator: padmawan \n"
"Language-Team: Indonesian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Puzzle Multiplikasi"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Permainan"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Petunjuk"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "P_ecahkan"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Bantuan"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Selamat!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Salah — %1$s bukan %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Benar — %1$s adalah %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Perkiraan salah"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Waktu"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Tutup Puzzle Mutiplikasi"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Mulai permainan baru"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Puzzle terpecahkan"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Pecahkan permainan ini"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s adalah %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Membuka satu digit secara acak"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Tentang Puzzle Multiplikasi"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Andhika Padmawan \n"
"\n"
"Launchpad Contributions:\n"
" Waluyo Adi Siswanto https://launchpad.net/~was-wlk\n"
" padmawan https://launchpad.net/~andhika-padmawan"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Tebak nomor mana berada pada huruf yang mana"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Tak dapat menampilkan %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Program ini adalah perangkat lunak bebas; anda dapat mendistribusikan ulang "
#~ "dan/atau memodifikasinya di bawah Lisensi Publik Umum GNU yang diterbitkan "
#~ "oleh Free Software Foundation; baik versi 3 dari Lisensi, atau (sesuai "
#~ "pilihan anda) versi manapun setelahnya."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Program ini didistribusikan dengan harapan dapat berguna; tapi TANPA GARANSI "
#~ "APAPUN; tanpa pula garansi implisit dari PENJUALAN atau PENGGUNAAN UNTUK "
#~ "TUJUAN KHUSUS. Lihat Lisensi Publik Umum GNU untuk detail lebih lanjut."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Anda seharusnya menerima salinan dari Lisensi Publik Umum GNU bersama dengan "
#~ "program ini; jika tidak, kirim surat ke Free Software Foundation, Inc., 59 "
#~ "Temple Place - Suite 330, Boston, MA 02111-1307, USA."
gmult-8.0/po/fi.po 0000644 0001750 0001750 00000011420 11551323754 013447 0 ustar udienz udienz # translation of gmult-5.0.pot to Finnish
# Copyright © 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
#
# Jorma Karvonen , 2008.
msgid ""
msgstr ""
"Project-Id-Version: gmult 5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:29+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Finnish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Kertolaskupulma"
# Useimmat suomentajat ovat laittaneet saman merkin tai jättäneet nämä tyhjäksi
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Peli"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Vihje"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Ratkaise"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Ohje"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Onneksi olkoon!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Väärin — %1$s ei ole %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Oikein — %1$s on %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Vääriä arvauksia"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Aika"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Sulje Multiplication Puzzle"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Aloita uusi peli"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Pulma ratkaistu"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Ratkaise tämä peli"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s on %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Paljasta satunnainen numero"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Kertolaskupulma-ohjelmasta"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Jorma Karvonen\n"
"\n"
"Launchpad Contributions:\n"
" Jorma Karvonen https://launchpad.net/~karvjorm-users\n"
" Jussi Aalto https://launchpad.net/~jtaalto-deactivatedaccount\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Yritä ratkaista, mikä kirjain vastaa mitä numeroa"
gmult-8.0/po/rm.po 0000644 0001750 0001750 00000010611 11551323754 013470 0 ustar udienz udienz #
# translation of gmult-4.0.po to Rumantsch (Rhaeto-Romance) [rm]
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
# Florian Verdet _goto , 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult-4.0\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:28+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Rhaeto-Romance \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Puzzle da multiplicaziun"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr ""
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr ""
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr ""
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr ""
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr ""
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr ""
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr ""
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr ""
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr ""
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr ""
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Game"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Schoglier"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr ""
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Gratulaziuns!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Cumanzar ün nouv gö"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Puzzle scholt"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Schoglier quist gö"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Chatta oura che custabs chi sun che nomers"
gmult-8.0/po/io.po 0000644 0001750 0001750 00000011146 11551323754 013465 0 ustar udienz udienz # Language io translations for Multiplication Puzzle package.
# Copyright (C) 2008 THE Multiplication Puzzle'S COPYRIGHT HOLDER
# This file is distributed under the same license as the Multiplication Puzzle package.
# Michael Terry , 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: Multiplication Puzzle 6.2\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:29+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Language io\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Multiplikada Enigmato"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Ludo"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Solvez"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Helpo"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Gratuladi!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Nekorekta — %1$s ne es %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Korekta — %1$s es %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Tempo"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Klozez Multiplikada Enigmato"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Startez nova ludo"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Enigmato es solvita"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Solvez ca ludo"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Pri Multiplikada Enigmato"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Michael Terry \n"
"\n"
"Launchpad Contributions:\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Dechifrez nombri de literi"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Ne povis montrar %s"
gmult-8.0/po/it.po 0000644 0001750 0001750 00000014613 11551323754 013474 0 ustar udienz udienz # Italian messages for gmult.
# Copyright (C) 2005, 2008, Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Marco Colombo , 2005, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 6.0\n"
"Report-Msgid-Bugs-To: mike@mterry.name\n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:33+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Italian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Moltiplicazione Cifrata"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
# NdT: tanto per avere solo lettere dell'alfabeto italiano
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "L"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Gioco"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Suggerimento"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Risolvi"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "A_iuto"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Complimenti!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Sbagliato: %1$s non è %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Corretto: %1$s è %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Non hai indovinato"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Orario"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Esci da Moltiplicazione Cifrata"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Inizia un nuovo gioco"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Rompicapo risolto"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Risolvi questo gioco"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s è %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Scopri una cifra a caso"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Informazioni su Moltiplicazione Cifrata"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Marco Colombo \n"
"\n"
"Launchpad Contributions:\n"
" LoReNicolò https://launchpad.net/~god121-p-l\n"
" Michael Terry https://launchpad.net/~mterry\n"
" bertu https://launchpad.net/~albi-mana"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Indovina quale numero corrisponde a ogni lettera"
# FIXME
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Impossibile mostrare %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Questo è software libero; potete redistribuirlo e/o modificarlo secondo i "
#~ "termini della GNU General Public Licence come pubblicata dalla Free Software "
#~ "Foundation; la versione 3 della Licenza o (a vostra scelta) ogni versione "
#~ "successiva."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Questo programma è distribuito con la speranza che possa essere utile, ma "
#~ "SENZA ALCUNA GARANZIA; anche senza la garanzia implicita di COMMERCIABILITÀ "
#~ "o di IDONEITÀ AD UNO SCOPO PARTICOLARE. Si consulti la GNU General Public "
#~ "License per ulteriori dettagli."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Dovreste aver ricevuto una copia della GNU General Public License con questo "
#~ "programma; altrimenti scrivere a Free Software Foundation, Inc., 59 Temple "
#~ "Place - Suite 330, Boston, MA 02111-1307, USA."
gmult-8.0/po/ja.po 0000644 0001750 0001750 00000010661 11551323754 013451 0 ustar udienz udienz # Japanese translation of gmult.
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is distributed under the same license as the gmult package.
# Trevor Lalish-Menagh , 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 4.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:28+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "掛けるパズル"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr ""
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr ""
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr ""
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr ""
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr ""
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr ""
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr ""
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr ""
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr ""
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr ""
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_ゲーム"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_解く"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr ""
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "おめでとうございます!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "新ゲーム"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "パズルを解いた"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "このゲームを解く"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Trevor Lalish-Menagh https://launchpad.net/~jumex"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "どの文字がどの数字かをあててください"
gmult-8.0/po/sr.po 0000644 0001750 0001750 00000011074 11551323754 013502 0 ustar udienz udienz # Serbian translation of `gmult'.
# Copyright (C) 2005 Free Software Foundation, Inc.
# This file is distributed under the same license as the `gmult' package.
# Aleksandar Jelenak , 2005.
msgid ""
msgstr ""
"Project-Id-Version: gmult 5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:27+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Serbian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Слагалица са множењем"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Игра"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Реши"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Помоћ"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Честитке!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Почни нову игру"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Слагалица решена"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Реши ову игру"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "О Слагалици са множењем"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"преводилачке заслуге\n"
"\n"
"Launchpad Contributions:\n"
" Aleksandar Jelenak https://launchpad.net/~jelenak-verizon\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Пронађи која слова су који бројеви"
gmult-8.0/po/tr.po 0000644 0001750 0001750 00000015042 11551323754 013502 0 ustar udienz udienz # translation of gmult.po to Turkish
# Gmult turkish messages.
# Copyright (C) 2005.
# Doruk Fisek , 2005.
msgid ""
msgstr ""
"Project-Id-Version: gmult 4.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-05-10 01:52+0000\n"
"Last-Translator: Angel Spy \n"
"Language-Team: Turkish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Çarpma Bulmacası"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Oyun"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_İpucu"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Çöz"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Yardım"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Tebrikler!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Yanlış — %1$s %2$s değil"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Doğru — %1$s %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Yanlış Tahmin"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Süre"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Çarpma Bulmacasını Kapat"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Yeni bir oyuna başla"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Bulmaca çözüldü"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Bu oyunu çöz"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "rastgele bir rakamı göster"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Çarpma Bulmacası Hakkında"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Angel Spy https://launchpad.net/~dilara.ekinci\n"
" Doruk Fisek https://launchpad.net/~dfisek\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Mustafa Yılmaz https://launchpad.net/~apshalasha"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Hangi harflerin hangi rakamlara karşılık geldiğini bulun"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "%s gösterilemiyor"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version.\r\n"
#~ "\r\n"
#~ "Bu program özgür yazılımdır; Özgür Yazılım Derneği tarafından yayınlanan GNU "
#~ "Genel Kamu Lisansı'na bağlı kalarak tekrar dağıtabilir ve/veya üzerinde "
#~ "değişiklik yapabilirsiniz."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Bu program faydalı olacağı umut edilerek dağıtılmaktadır, fakat HİÇBİR "
#~ "GARANTİSİ YOKTUR; hatta ÜRÜN DEĞERİ ya da BİR AMACA UYGUNLUK gibi garantiler "
#~ "de vermez. Lütfen daha fazla detay için GNU Genel Kamu Lisansı'nı inceleyin."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Bu programla birlikte GNU Genel Kamu Lisansı'nın bir kopyası size gelmiş "
#~ "olmalı. Eğer gelmediyse, Özgür Yazılım Derneği'ne bildirin. Free Software "
#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Çarpma Bulmacasından Çık"
gmult-8.0/po/pl.po 0000644 0001750 0001750 00000015613 11551323754 013474 0 ustar udienz udienz # Polish translation for gmult
# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
# This file is distributed under the same license as the gmult package.
# FIRST AUTHOR , 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-12-19 10:36+0000\n"
"Last-Translator: Adam Czabara \n"
"Language-Team: Polish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Multiplication Puzzle"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Gra"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Podpowiedź"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Rozwiąż"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Pomoc"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Gratulacje!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Niepoprawne — %1$s nie jest %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Poprawne — %1$s jest %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Nieprawidłowe odgadnięcia"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Czas"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Zamknij Multiplication Puzzle"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Rozpocznij nową grę"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Puzzle rozwiązane"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Rozwiąż tą grę"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s jest %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Wykaż losowo cyfrę"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "O Multiplication Puzzle"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Adam Czabara https://launchpad.net/~adam-czabara\n"
" Marcin Szymkowski https://launchpad.net/~sector\n"
" Michael Terry https://launchpad.net/~mterry\n"
" Michał Trzebiatowski https://launchpad.net/~hippie-1968"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Stwierdź które są numery, które litery"
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny, "
#~ "jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI "
#~ "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania "
#~ "bliższych informacji sięgnij do Powszechnej Licencji Publicznej GNU."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz "
#~ "Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie, "
#~ "napisz do Free Software Foundation, Inc., 59 Temple Place - Suite 330, "
#~ "Boston, MA 02111-1307, USA."
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej "
#~ "i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej "
#~ "przez Fundację Wolnego Oprogramowania; według wersji 3-tej Licencji lub "
#~ "(według twojego wyboru) którejś z późniejszych wersji."
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "Nie można wyświetlić %s"
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Wraz z programem powinieneś otrzymać kopie Powszechnej Licencji Publicznej "
#~ "GNU (GNU General Public License). Jeśli nie, odwiedź "
#~ "http://www.gnu.org/licenses/."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Zamknij Multiplication Puzzle"
gmult-8.0/po/ro.po 0000644 0001750 0001750 00000010630 11551323754 013473 0 ustar udienz udienz # Mesajele în limba română pentru gmult.
# Copyright (C) 2003 Free Software Foundation, Inc.
# Acest fişier este distribuit sub aceeaşi licenţă ca şi pachetul gmult.
# Laurentiu Buzdugan , 2003.
#
#
#
msgid ""
msgstr ""
"Project-Id-Version: gmult 4.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2010-04-05 22:29+0000\n"
"Last-Translator: Michael Terry \n"
"Language-Team: Romanian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr ""
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr ""
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr ""
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr ""
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr ""
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr ""
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr ""
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr ""
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr ""
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr ""
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Joc de aritmetică"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr ""
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr ""
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr ""
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr ""
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr ""
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr ""
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr ""
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr ""
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr ""
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr ""
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Joc"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr ""
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Rezolvă"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "_Ajutor"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "Felicitări"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr ""
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr ""
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr ""
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Începe un joc nou"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Joc rezolvat"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Rezolvă acest joc"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr ""
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr ""
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr ""
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Laurentiu Buzdugan https://launchpad.net/~lbuz\n"
" Michael Terry https://launchpad.net/~mterry"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Deduceţi care litere corespund căror numere"
gmult-8.0/po/Makefile.in.in 0000644 0001750 0001750 00000015377 11551156716 015204 0 ustar udienz udienz # Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper
# Copyright (C) 2004-2008 Rodney Dawes
#
# This file may be copied and used freely without restrictions. It may
# be used in projects which are not available under a GNU Public License,
# but which still want to provide support for the GNU gettext functionality.
#
# - Modified by Owen Taylor to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes for use with intltool
#
# We have the following line for use by intltoolize:
# INTLTOOL_MAKEFILE
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@
datarootdir = @datarootdir@
libdir = @libdir@
DATADIRNAME = @DATADIRNAME@
itlocaledir = $(prefix)/$(DATADIRNAME)/locale
subdir = po
install_sh = @install_sh@
# Automake >= 1.8 provides @mkdir_p@.
# Until it can be supposed, use the safe fallback:
mkdir_p = $(install_sh) -d
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
GMSGFMT = @GMSGFMT@
MSGFMT = @MSGFMT@
XGETTEXT = @XGETTEXT@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
ALL_LINGUAS = @ALL_LINGUAS@
PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
POTFILES = \
# This comment gets stripped out
CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
.SUFFIXES:
.SUFFIXES: .po .pox .gmo .mo .msg .cat
.po.pox:
$(MAKE) $(GETTEXT_PACKAGE).pot
$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
.po.mo:
$(MSGFMT) -o $@ $<
.po.gmo:
file=`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: $(CATALOGS)
all-no:
$(GETTEXT_PACKAGE).pot: $(POTFILES)
$(GENPOT)
install: install-data
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
$(mkdir_p) $$dir; \
if test -r $$lang.gmo; then \
$(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
else \
$(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
echo "installing $(srcdir)/$$lang.gmo as" \
"$$dir/$(GETTEXT_PACKAGE).mo"; \
fi; \
if test -r $$lang.gmo.m; then \
$(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
else \
if test -r $(srcdir)/$$lang.gmo.m ; then \
$(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
$$dir/$(GETTEXT_PACKAGE).mo.m; \
echo "installing $(srcdir)/$$lang.gmo.m as" \
"$$dir/$(GETTEXT_PACKAGE).mo.m"; \
else \
true; \
fi; \
fi; \
done
# Empty stubs to satisfy archaic automake needs
dvi info ctags tags CTAGS TAGS ID:
# Define this as empty until I found a useful application.
install-exec installcheck:
uninstall:
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
done
check: all $(GETTEXT_PACKAGE).pot
rm -f missing notexist
srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
if [ -r missing -o -r notexist ]; then \
exit 1; \
fi
mostlyclean:
rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
rm -f .intltool-merge-cache
clean: mostlyclean
distclean: clean
rm -f Makefile Makefile.in POTFILES stamp-it
rm -f *.mo *.msg *.cat *.cat.m *.gmo
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 Makefile.in.in
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir: $(DISTFILES)
dists="$(DISTFILES)"; \
extra_dists="$(EXTRA_DISTFILES)"; \
for file in $$extra_dists; do \
test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
done; \
for file in $$dists; do \
test -f $$file || file="$(srcdir)/$$file"; \
ln $$file $(distdir) 2> /dev/null \
|| cp -p $$file $(distdir); \
done
update-po: Makefile
$(MAKE) $(GETTEXT_PACKAGE).pot
tmpdir=`pwd`; \
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
echo "$$lang:"; \
result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
if $$result; then \
if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
:; \
else \
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
rm -f $$tmpdir/$$lang.new.po; \
exit 1; \
fi; \
fi; \
else \
echo "msgmerge for $$lang.gmo failed!"; \
rm -f $$tmpdir/$$lang.new.po; \
fi; \
done
Makefile POTFILES: stamp-it
@if test ! -f $@; then \
rm -f stamp-it; \
$(MAKE) stamp-it; \
fi
stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
$(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:
gmult-8.0/po/es.po 0000644 0001750 0001750 00000015331 11551323754 013465 0 ustar udienz udienz # Spanish translation for gmult
# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
# This file is distributed under the same license as the gmult package.
# FIRST AUTHOR , 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: gmult\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-04-13 08:03-0400\n"
"PO-Revision-Date: 2011-01-12 03:55+0000\n"
"Last-Translator: Fitoschido \n"
"Language-Team: Spanish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-13 13:36+0000\n"
"X-Generator: Launchpad (build 12792)\n"
#. Translators: If there's a better alternative to Arabic numerals for
#. your language, please use it instead of these digits. Note
#. that it still has to make sense when used as part of the math puzzle.
#: ../gmult/DigitBox.vala:48 ../gmult/GtkMult.vala:99
msgid "0"
msgstr "0"
#: ../gmult/DigitBox.vala:49 ../gmult/GtkMult.vala:100
msgid "1"
msgstr "1"
#: ../gmult/DigitBox.vala:50 ../gmult/GtkMult.vala:101
msgid "2"
msgstr "2"
#: ../gmult/DigitBox.vala:51 ../gmult/GtkMult.vala:102
msgid "3"
msgstr "3"
#: ../gmult/DigitBox.vala:52 ../gmult/GtkMult.vala:103
msgid "4"
msgstr "4"
#: ../gmult/DigitBox.vala:53 ../gmult/GtkMult.vala:104
msgid "5"
msgstr "5"
#: ../gmult/DigitBox.vala:54 ../gmult/GtkMult.vala:105
msgid "6"
msgstr "6"
#: ../gmult/DigitBox.vala:55 ../gmult/GtkMult.vala:106
msgid "7"
msgstr "7"
#: ../gmult/DigitBox.vala:56 ../gmult/GtkMult.vala:107
msgid "8"
msgstr "8"
#: ../gmult/DigitBox.vala:57 ../gmult/GtkMult.vala:108
msgid "9"
msgstr "9"
#. to open display ('cause we passed false above)
#: ../gmult/GtkMult.vala:82 ../gmult/GtkMult.vala:515
#: ../data/gmult.desktop.in.h:2
msgid "Multiplication Puzzle"
msgstr "Rompecabezas de multiplicaciones"
#. Translators: The next several characters are used to show the 'unknown'
#. digits in the puzzle. Translate to something that makes sense for
#. your alphabet.
#: ../gmult/GtkMult.vala:89 ../gmult/TableBox.vala:54
msgid "A"
msgstr "A"
#: ../gmult/GtkMult.vala:90 ../gmult/TableBox.vala:55
msgid "B"
msgstr "B"
#: ../gmult/GtkMult.vala:91 ../gmult/TableBox.vala:56
msgid "C"
msgstr "C"
#: ../gmult/GtkMult.vala:92 ../gmult/TableBox.vala:57
msgid "D"
msgstr "D"
#: ../gmult/GtkMult.vala:93 ../gmult/TableBox.vala:58
msgid "E"
msgstr "E"
#: ../gmult/GtkMult.vala:94 ../gmult/TableBox.vala:59
msgid "F"
msgstr "F"
#: ../gmult/GtkMult.vala:95 ../gmult/TableBox.vala:60
msgid "G"
msgstr "G"
#: ../gmult/GtkMult.vala:96 ../gmult/TableBox.vala:61
msgid "H"
msgstr "H"
#: ../gmult/GtkMult.vala:97 ../gmult/TableBox.vala:62
msgid "I"
msgstr "I"
#: ../gmult/GtkMult.vala:98 ../gmult/TableBox.vala:63
msgid "J"
msgstr "J"
#: ../gmult/GtkMult.vala:157
msgid "_Game"
msgstr "_Juego"
#: ../gmult/GtkMult.vala:164
msgid "_Hint"
msgstr "_Pista"
#: ../gmult/GtkMult.vala:169
msgid "_Solve"
msgstr "_Resolver"
#: ../gmult/GtkMult.vala:178
msgid "_Help"
msgstr "Ay_uda"
#: ../gmult/GtkMult.vala:295
msgid "Congratulations!"
msgstr "¡Felicidades!"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:305
#, c-format
msgid "Incorrect — %1$s is not %2$s"
msgstr "Incorrecto — %1$s no es %2$s"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:309
#, c-format
msgid "Correct — %1$s is %2$s"
msgstr "Correcto — %1$s es %2$s"
#: ../gmult/GtkMult.vala:345
#, c-format
msgid "Incorrect Guesses"
msgstr "Adivinanzas incorrectas"
#: ../gmult/GtkMult.vala:356
#, c-format
msgid "Time"
msgstr "Tiempo"
#: ../gmult/GtkMult.vala:376
msgid "Close Multiplication Puzzle"
msgstr "Cerrar Rompecabezas de Multiplicación"
#: ../gmult/GtkMult.vala:388
msgid "Start a new game"
msgstr "Iniciar una partida nueva"
#: ../gmult/GtkMult.vala:399
msgid "Puzzle solved"
msgstr "Rompecabezas resuelto"
#: ../gmult/GtkMult.vala:408
msgid "Solve this game"
msgstr "Resolver este juego"
#. Translators: First argument is letter, second is digit
#: ../gmult/GtkMult.vala:442
#, c-format
msgid "%1$s is %2$s"
msgstr "%1$s es %2$s"
#: ../gmult/GtkMult.vala:455
msgid "Reveal a digit at random"
msgstr "Revelar un dígito al azar"
#: ../gmult/GtkMult.vala:475 ../gmult/GtkMult.vala:495
msgid "About Multiplication Puzzle"
msgstr "Sobre el Rompecabezas de multiplicaciones"
#: ../gmult/GtkMult.vala:478
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Andres Rodriguez https://launchpad.net/~andreserl\n"
" Fitoschido https://launchpad.net/~fitoschido\n"
" Paco Molinero https://launchpad.net/~franciscomol"
#: ../data/gmult.desktop.in.h:1
msgid "Figure out which letters are which numbers"
msgstr "Averiguar cuáles letras son qué números"
#, c-format
#~ msgid "Could not display %s"
#~ msgstr "No se pudo mostrar %s"
#, c-format
#~ msgid ""
#~ "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 3 of the License, or (at your option) "
#~ "any later version."
#~ msgstr ""
#~ "Este programa es software libre; puede redistribuirlo y/o modificarlo bajo "
#~ "los términos de la GNU General Public License como es publicado por la Free "
#~ "Software Foundation; bien sea la versión 3 de la Licencia, o (a su elección) "
#~ "cualquier versión posterior."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Este programa se distribuye con la esperanza de que le sea útil, pero SIN "
#~ "NINGUNA GARANTÍA; incluso la garantía implícita de MERCANTILIDAD o IDONEIDAD "
#~ "PARA UN PROPÓSITO PARTICULAR. Vea la Licencia Pública General de GNU para "
#~ "más detalles."
#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Usted debió haber recibido una copia de la Licencia Pública General de GNU "
#~ "con este programa; si no, escriba a la Free Software Foundation, Inc., 59 "
#~ "Temple Place - Suite 330, Boston, MA 02111-1307, USA."
#~ msgid "Quit Multiplication Puzzle"
#~ msgstr "Salir del rompecabezas"
#~ msgid ""
#~ "You should have received a copy of the GNU General Public License along with "
#~ "this program. If not, see http://www.gnu.org/licenses/."
#~ msgstr ""
#~ "Debería de haber recibido una copia de la licencia GNU General Public "
#~ "License con este programa. De lo contrario, vea http://www.gnu.org/licenses/."
gmult-8.0/vapi/Makefile.am 0000644 0001750 0001750 00000000032 11551155441 015057 0 ustar udienz udienz EXTRA_DIST = config.vapi
gmult-8.0/vapi/config.vapi 0000644 0001750 0001750 00000002110 11551155441 015150 0 ustar udienz udienz /*
Copyright (C) 2007,2008 Jaap Haitsma
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 3 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, see .
*/
[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")]
namespace Config {
public const string GETTEXT_PACKAGE;
public const string PACKAGE_DATADIR;
public const string LOCALE_DIR;
public const string THEME_DIR;
public const string PACKAGE_NAME;
public const string PACKAGE_VERSION;
public const string PACKAGE;
public const string VERSION;
}
gmult-8.0/vapi/Makefile.in 0000644 0001750 0001750 00000023470 11551160265 015103 0 ustar udienz udienz # Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = vapi
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALAC = @VALAC@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = config.vapi
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu vapi/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu vapi/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
# 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:
gmult-8.0/THANKS 0000644 0001750 0001750 00000000126 11551155441 013003 0 ustar udienz udienz Thanks to Eugenia Loli-Queru of osnews.com fame for creating the original gmult icon.
gmult-8.0/aclocal.m4 0000644 0001750 0001750 00000434767 11551160264 013755 0 ustar udienz udienz # generated automatically by aclocal 1.11.1 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file 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.
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
[m4_warning([this file was generated for autoconf 2.67.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
# gettext.m4 serial 63 (gettext-0.18)
dnl Copyright (C) 1995-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
dnl gettext package package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Authors:
dnl Ulrich Drepper , 1995-2000.
dnl Bruno Haible , 2000-2006, 2008-2010.
dnl Macro to add for using GNU gettext.
dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
dnl default (if it is not specified or empty) is 'no-libtool'.
dnl INTLSYMBOL should be 'external' for packages with no intl directory,
dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
dnl If INTLSYMBOL is 'use-libtool', then a libtool library
dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
dnl depending on --{enable,disable}-{shared,static} and on the presence of
dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
dnl $(top_builddir)/intl/libintl.a will be created.
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
dnl implementations (in libc or libintl) without the ngettext() function
dnl will be ignored. If NEEDSYMBOL is specified and is
dnl 'need-formatstring-macros', then GNU gettext implementations that don't
dnl support the ISO C 99 formatstring macros will be ignored.
dnl INTLDIR is used to find the intl libraries. If empty,
dnl the value `$(top_builddir)/intl/' is used.
dnl
dnl The result of the configuration is one of three cases:
dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
dnl and used.
dnl Catalog format: GNU --> install in $(datadir)
dnl Catalog extension: .mo after installation, .gmo in source tree
dnl 2) GNU gettext has been found in the system's C library.
dnl Catalog format: GNU --> install in $(datadir)
dnl Catalog extension: .mo after installation, .gmo in source tree
dnl 3) No internationalization, always use English msgid.
dnl Catalog format: none
dnl Catalog extension: none
dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
dnl The use of .gmo is historical (it was needed to avoid overwriting the
dnl GNU format catalogs when building on a platform with an X/Open gettext),
dnl but we keep it in order not to force irrelevant filename changes on the
dnl maintainers.
dnl
AC_DEFUN([AM_GNU_GETTEXT],
[
dnl Argument checking.
ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
[errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
])])])])])
ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
[AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
[errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
])])])])
define([gt_included_intl],
ifelse([$1], [external],
ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
[yes]))
define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
gt_NEEDS_INIT
AM_GNU_GETTEXT_NEED([$2])
AC_REQUIRE([AM_PO_SUBDIRS])dnl
ifelse(gt_included_intl, yes, [
AC_REQUIRE([AM_INTL_SUBDIR])dnl
])
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
dnl Sometimes libintl requires libiconv, so first search for libiconv.
dnl Ideally we would do this search only after the
dnl if test "$USE_NLS" = "yes"; then
dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
dnl the configure script would need to contain the same shell code
dnl again, outside any 'if'. There are two solutions:
dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
dnl documented, we avoid it.
ifelse(gt_included_intl, yes, , [
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
])
dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
gt_INTL_MACOSX
dnl Set USE_NLS.
AC_REQUIRE([AM_NLS])
ifelse(gt_included_intl, yes, [
BUILD_INCLUDED_LIBINTL=no
USE_INCLUDED_LIBINTL=no
])
LIBINTL=
LTLIBINTL=
POSUB=
dnl Add a version number to the cache macros.
case " $gt_needs " in
*" need-formatstring-macros "*) gt_api_version=3 ;;
*" need-ngettext "*) gt_api_version=2 ;;
*) gt_api_version=1 ;;
esac
gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
dnl If we use NLS figure out what method
if test "$USE_NLS" = "yes"; then
gt_use_preinstalled_gnugettext=no
ifelse(gt_included_intl, yes, [
AC_MSG_CHECKING([whether included gettext is requested])
AC_ARG_WITH([included-gettext],
[ --with-included-gettext use the GNU gettext library included here],
nls_cv_force_use_gnu_gettext=$withval,
nls_cv_force_use_gnu_gettext=no)
AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
])
dnl User does not insist on using GNU NLS library. Figure out what
dnl to use. If GNU gettext is available we use this. Else we have
dnl to fall back to GNU NLS library.
if test $gt_api_version -ge 3; then
gt_revision_test_code='
#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
#endif
changequote(,)dnl
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
changequote([,])dnl
'
else
gt_revision_test_code=
fi
if test $gt_api_version -ge 2; then
gt_expression_test_code=' + * ngettext ("", "", 0)'
else
gt_expression_test_code=
fi
AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
[AC_TRY_LINK([#include
$gt_revision_test_code
extern int _nl_msg_cat_cntr;
extern int *_nl_domain_bindings;],
[bindtextdomain ("", "");
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings],
[eval "$gt_func_gnugettext_libc=yes"],
[eval "$gt_func_gnugettext_libc=no"])])
if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
dnl Sometimes libintl requires libiconv, so first search for libiconv.
ifelse(gt_included_intl, yes, , [
AM_ICONV_LINK
])
dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
dnl even if libiconv doesn't exist.
AC_LIB_LINKFLAGS_BODY([intl])
AC_CACHE_CHECK([for GNU gettext in libintl],
[$gt_func_gnugettext_libintl],
[gt_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $INCINTL"
gt_save_LIBS="$LIBS"
LIBS="$LIBS $LIBINTL"
dnl Now see whether libintl exists and does not depend on libiconv.
AC_TRY_LINK([#include
$gt_revision_test_code
extern int _nl_msg_cat_cntr;
extern
#ifdef __cplusplus
"C"
#endif
const char *_nl_expand_alias (const char *);],
[bindtextdomain ("", "");
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
[eval "$gt_func_gnugettext_libintl=yes"],
[eval "$gt_func_gnugettext_libintl=no"])
dnl Now see whether libintl exists and depends on libiconv.
if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
LIBS="$LIBS $LIBICONV"
AC_TRY_LINK([#include
$gt_revision_test_code
extern int _nl_msg_cat_cntr;
extern
#ifdef __cplusplus
"C"
#endif
const char *_nl_expand_alias (const char *);],
[bindtextdomain ("", "");
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
[LIBINTL="$LIBINTL $LIBICONV"
LTLIBINTL="$LTLIBINTL $LTLIBICONV"
eval "$gt_func_gnugettext_libintl=yes"
])
fi
CPPFLAGS="$gt_save_CPPFLAGS"
LIBS="$gt_save_LIBS"])
fi
dnl If an already present or preinstalled GNU gettext() is found,
dnl use it. But if this macro is used in GNU gettext, and GNU
dnl gettext is already preinstalled in libintl, we update this
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
|| { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
&& test "$PACKAGE" != gettext-runtime \
&& test "$PACKAGE" != gettext-tools; }; then
gt_use_preinstalled_gnugettext=yes
else
dnl Reset the values set by searching for libintl.
LIBINTL=
LTLIBINTL=
INCINTL=
fi
ifelse(gt_included_intl, yes, [
if test "$gt_use_preinstalled_gnugettext" != "yes"; then
dnl GNU gettext is not found in the C library.
dnl Fall back on included 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.
BUILD_INCLUDED_LIBINTL=yes
USE_INCLUDED_LIBINTL=yes
LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
fi
CATOBJEXT=
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Mark actions to use GNU gettext tools.
CATOBJEXT=.gmo
fi
])
if test -n "$INTL_MACOSX_LIBS"; then
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Some extra flags are needed during linking.
LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
fi
fi
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
AC_DEFINE([ENABLE_NLS], [1],
[Define to 1 if translation of program messages to the user's native language
is requested.])
else
USE_NLS=no
fi
fi
AC_MSG_CHECKING([whether to use NLS])
AC_MSG_RESULT([$USE_NLS])
if test "$USE_NLS" = "yes"; then
AC_MSG_CHECKING([where the gettext function comes from])
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
gt_source="external libintl"
else
gt_source="libc"
fi
else
gt_source="included intl directory"
fi
AC_MSG_RESULT([$gt_source])
fi
if test "$USE_NLS" = "yes"; then
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
AC_MSG_CHECKING([how to link with libintl])
AC_MSG_RESULT([$LIBINTL])
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
fi
dnl For backward compatibility. Some packages may be using this.
AC_DEFINE([HAVE_GETTEXT], [1],
[Define if the GNU gettext() function is already present or preinstalled.])
AC_DEFINE([HAVE_DCGETTEXT], [1],
[Define if the GNU dcgettext() function is already present or preinstalled.])
fi
dnl We need to process the po/ directory.
POSUB=po
fi
ifelse(gt_included_intl, yes, [
dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
dnl to 'yes' because some of the testsuite requires it.
if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
BUILD_INCLUDED_LIBINTL=yes
fi
dnl Make all variables we use known to autoconf.
AC_SUBST([BUILD_INCLUDED_LIBINTL])
AC_SUBST([USE_INCLUDED_LIBINTL])
AC_SUBST([CATOBJEXT])
dnl For backward compatibility. Some configure.ins may be using this.
nls_cv_header_intl=
nls_cv_header_libgt=
dnl For backward compatibility. Some Makefiles may be using this.
DATADIRNAME=share
AC_SUBST([DATADIRNAME])
dnl For backward compatibility. Some Makefiles may be using this.
INSTOBJEXT=.mo
AC_SUBST([INSTOBJEXT])
dnl For backward compatibility. Some Makefiles may be using this.
GENCAT=gencat
AC_SUBST([GENCAT])
dnl For backward compatibility. Some Makefiles may be using this.
INTLOBJS=
if test "$USE_INCLUDED_LIBINTL" = yes; then
INTLOBJS="\$(GETTOBJS)"
fi
AC_SUBST([INTLOBJS])
dnl Enable libtool support if the surrounding package wishes it.
INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
])
dnl For backward compatibility. Some Makefiles may be using this.
INTLLIBS="$LIBINTL"
AC_SUBST([INTLLIBS])
dnl Make all documented variables known to autoconf.
AC_SUBST([LIBINTL])
AC_SUBST([LTLIBINTL])
AC_SUBST([POSUB])
])
dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
m4_define([gt_NEEDS_INIT],
[
m4_divert_text([DEFAULTS], [gt_needs=])
m4_define([gt_NEEDS_INIT], [])
])
dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
AC_DEFUN([AM_GNU_GETTEXT_NEED],
[
m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
])
dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
# iconv.m4 serial 11 (gettext-0.18.1)
dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
[
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
dnl accordingly.
AC_LIB_LINKFLAGS_BODY([iconv])
])
AC_DEFUN([AM_ICONV_LINK],
[
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
dnl those with the standalone portable GNU libiconv installed).
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
dnl accordingly.
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
dnl Add $INCICONV to CPPFLAGS before performing the following checks,
dnl because if the user has installed libiconv and not disabled its use
dnl via --without-libiconv-prefix, he wants to use it. The first
dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
am_save_CPPFLAGS="$CPPFLAGS"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
AC_TRY_LINK([#include
#include ],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
[am_cv_func_iconv=yes])
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS $LIBICONV"
AC_TRY_LINK([#include
#include ],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
[am_cv_lib_iconv=yes]
[am_cv_func_iconv=yes])
LIBS="$am_save_LIBS"
fi
])
if test "$am_cv_func_iconv" = yes; then
AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10.
am_save_LIBS="$LIBS"
if test $am_cv_lib_iconv = yes; then
LIBS="$LIBS $LIBICONV"
fi
AC_TRY_RUN([
#include
#include
int main ()
{
/* Test against AIX 5.1 bug: Failures are not distinguishable from successful
returns. */
{
iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
if (cd_utf8_to_88591 != (iconv_t)(-1))
{
static const char input[] = "\342\202\254"; /* EURO SIGN */
char buf[10];
const char *inptr = input;
size_t inbytesleft = strlen (input);
char *outptr = buf;
size_t outbytesleft = sizeof (buf);
size_t res = iconv (cd_utf8_to_88591,
(char **) &inptr, &inbytesleft,
&outptr, &outbytesleft);
if (res == 0)
return 1;
}
}
/* Test against Solaris 10 bug: Failures are not distinguishable from
successful returns. */
{
iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
if (cd_ascii_to_88591 != (iconv_t)(-1))
{
static const char input[] = "\263";
char buf[10];
const char *inptr = input;
size_t inbytesleft = strlen (input);
char *outptr = buf;
size_t outbytesleft = sizeof (buf);
size_t res = iconv (cd_ascii_to_88591,
(char **) &inptr, &inbytesleft,
&outptr, &outbytesleft);
if (res == 0)
return 1;
}
}
#if 0 /* This bug could be worked around by the caller. */
/* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
{
iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
if (cd_88591_to_utf8 != (iconv_t)(-1))
{
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
char buf[50];
const char *inptr = input;
size_t inbytesleft = strlen (input);
char *outptr = buf;
size_t outbytesleft = sizeof (buf);
size_t res = iconv (cd_88591_to_utf8,
(char **) &inptr, &inbytesleft,
&outptr, &outbytesleft);
if ((int)res > 0)
return 1;
}
}
#endif
/* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
provided. */
if (/* Try standardized names. */
iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
/* Try IRIX, OSF/1 names. */
&& iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
/* Try AIX names. */
&& iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
/* Try HP-UX names. */
&& iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
return 1;
return 0;
}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
[case "$host_os" in
aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
*) am_cv_func_iconv_works="guessing yes" ;;
esac])
LIBS="$am_save_LIBS"
])
case "$am_cv_func_iconv_works" in
*no) am_func_iconv=no am_cv_lib_iconv=no ;;
*) am_func_iconv=yes ;;
esac
else
am_func_iconv=no am_cv_lib_iconv=no
fi
if test "$am_func_iconv" = yes; then
AC_DEFINE([HAVE_ICONV], [1],
[Define if you have the iconv() function and it works.])
fi
if test "$am_cv_lib_iconv" = yes; then
AC_MSG_CHECKING([how to link with libiconv])
AC_MSG_RESULT([$LIBICONV])
else
dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
dnl either.
CPPFLAGS="$am_save_CPPFLAGS"
LIBICONV=
LTLIBICONV=
fi
AC_SUBST([LIBICONV])
AC_SUBST([LTLIBICONV])
])
dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
dnl avoid warnings like
dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
dnl This is tricky because of the way 'aclocal' is implemented:
dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
dnl Otherwise aclocal's initial scan pass would miss the macro definition.
dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
dnl Otherwise aclocal would emit many "Use of uninitialized value $1"
dnl warnings.
m4_define([gl_iconv_AC_DEFUN],
m4_version_prereq([2.64],
[[AC_DEFUN_ONCE(
[$1], [$2])]],
[[AC_DEFUN(
[$1], [$2])]]))
gl_iconv_AC_DEFUN([AM_ICONV],
[
AM_ICONV_LINK
if test "$am_cv_func_iconv" = yes; then
AC_MSG_CHECKING([for iconv declaration])
AC_CACHE_VAL([am_cv_proto_iconv], [
AC_TRY_COMPILE([
#include
#include
extern
#ifdef __cplusplus
"C"
#endif
#if defined(__STDC__) || defined(__cplusplus)
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
#else
size_t iconv();
#endif
], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"])
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
AC_MSG_RESULT([
$am_cv_proto_iconv])
AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
[Define as const if the declaration of iconv() needs const.])
fi
])
# intlmacosx.m4 serial 3 (gettext-0.18)
dnl Copyright (C) 2004-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
dnl gettext package package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Checks for special options needed on MacOS X.
dnl Defines INTL_MACOSX_LIBS.
AC_DEFUN([gt_INTL_MACOSX],
[
dnl Check for API introduced in MacOS X 10.2.
AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
[gt_cv_func_CFPreferencesCopyAppValue],
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
AC_TRY_LINK([#include ],
[CFPreferencesCopyAppValue(NULL, NULL)],
[gt_cv_func_CFPreferencesCopyAppValue=yes],
[gt_cv_func_CFPreferencesCopyAppValue=no])
LIBS="$gt_save_LIBS"])
if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
[Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
fi
dnl Check for API introduced in MacOS X 10.3.
AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();],
[gt_cv_func_CFLocaleCopyCurrent=yes],
[gt_cv_func_CFLocaleCopyCurrent=no])
LIBS="$gt_save_LIBS"])
if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
[Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
fi
INTL_MACOSX_LIBS=
if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
fi
AC_SUBST([INTL_MACOSX_LIBS])
])
dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
# serial 40 IT_PROG_INTLTOOL
AC_DEFUN([IT_PROG_INTLTOOL], [
AC_PREREQ([2.50])dnl
AC_REQUIRE([AM_NLS])dnl
case "$am__api_version" in
1.[01234])
AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
;;
*)
;;
esac
if test -n "$1"; then
AC_MSG_CHECKING([for intltool >= $1])
INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
[INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
]
AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.])
fi
AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
fi
INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@'
INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
_IT_SUBST(INTLTOOL_DESKTOP_RULE)
_IT_SUBST(INTLTOOL_DIRECTORY_RULE)
_IT_SUBST(INTLTOOL_KEYS_RULE)
_IT_SUBST(INTLTOOL_PROP_RULE)
_IT_SUBST(INTLTOOL_OAF_RULE)
_IT_SUBST(INTLTOOL_PONG_RULE)
_IT_SUBST(INTLTOOL_SERVER_RULE)
_IT_SUBST(INTLTOOL_SHEET_RULE)
_IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
_IT_SUBST(INTLTOOL_UI_RULE)
_IT_SUBST(INTLTOOL_XAM_RULE)
_IT_SUBST(INTLTOOL_KBD_RULE)
_IT_SUBST(INTLTOOL_XML_RULE)
_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
_IT_SUBST(INTLTOOL_CAVES_RULE)
_IT_SUBST(INTLTOOL_SCHEMAS_RULE)
_IT_SUBST(INTLTOOL_THEME_RULE)
_IT_SUBST(INTLTOOL_SERVICE_RULE)
_IT_SUBST(INTLTOOL_POLICY_RULE)
# Check the gettext tools to make sure they are GNU
AC_PATH_PROG(XGETTEXT, xgettext)
AC_PATH_PROG(MSGMERGE, msgmerge)
AC_PATH_PROG(MSGFMT, msgfmt)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
fi
xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
fi
AC_PATH_PROG(INTLTOOL_PERL, perl)
if test -z "$INTLTOOL_PERL"; then
AC_MSG_ERROR([perl not found])
fi
AC_MSG_CHECKING([for perl >= 5.8.1])
$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
if test $? -ne 0; then
AC_MSG_ERROR([perl 5.8.1 is required for intltool])
else
IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
AC_MSG_RESULT([$IT_PERL_VERSION])
fi
if test "x$2" != "xno-xml"; then
AC_MSG_CHECKING([for XML::Parser])
if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
AC_MSG_RESULT([ok])
else
AC_MSG_ERROR([XML::Parser perl module is required for intltool])
fi
fi
# Substitute ALL_LINGUAS so we can use it in po/Makefile
AC_SUBST(ALL_LINGUAS)
# Set DATADIRNAME correctly if it is not set yet
# (copied from glib-gettext.m4)
if test -z "$DATADIRNAME"; then
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[]],
[[extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr]])],
[DATADIRNAME=share],
[case $host in
*-*-solaris*)
dnl On Solaris, if bind_textdomain_codeset is in libc,
dnl GNU format message catalog is always supported,
dnl since both are added to the libc all together.
dnl Hence, we'd like to go with DATADIRNAME=share
dnl in this case.
AC_CHECK_FUNC(bind_textdomain_codeset,
[DATADIRNAME=share], [DATADIRNAME=lib])
;;
*)
[DATADIRNAME=lib]
;;
esac])
fi
AC_SUBST(DATADIRNAME)
IT_PO_SUBDIR([po])
])
# IT_PO_SUBDIR(DIRNAME)
# ---------------------
# All po subdirs have to be declared with this macro; the subdir "po" is
# declared by IT_PROG_INTLTOOL.
#
AC_DEFUN([IT_PO_SUBDIR],
[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
dnl
dnl The following CONFIG_COMMANDS should be executed at the very end
dnl of config.status.
AC_CONFIG_COMMANDS_PRE([
AC_CONFIG_COMMANDS([$1/stamp-it], [
if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
fi
rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
>"$1/stamp-it.tmp"
[sed '/^#/d
s/^[[].*] *//
/^[ ]*$/d
'"s|^| $ac_top_srcdir/|" \
"$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
]
[sed '/^POTFILES =/,/[^\\]$/ {
/^POTFILES =/!d
r $1/POTFILES
}
' "$1/Makefile.in" >"$1/Makefile"]
rm -f "$1/Makefile.tmp"
mv "$1/stamp-it.tmp" "$1/stamp-it"
])
])dnl
])
# _IT_SUBST(VARIABLE)
# -------------------
# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
#
AC_DEFUN([_IT_SUBST],
[
AC_SUBST([$1])
m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
]
)
# deprecated macros
AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
# A hint is needed for aclocal from Automake <= 1.9.4:
# AC_DEFUN([AC_PROG_INTLTOOL], ...)
# lib-ld.m4 serial 4 (gettext-0.18)
dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Subroutines of libtool.m4,
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
dnl with libtool.m4.
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
AC_DEFUN([AC_LIB_PROG_LD_GNU],
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
case `$LD -v 2>&1 conf$$.sh
echo "exit 0" >>conf$$.sh
chmod +x conf$$.sh
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
PATH_SEPARATOR=';'
else
PATH_SEPARATOR=:
fi
rm -f conf$$.sh
fi
ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
esac
case $ac_prog in
# Accept absolute paths.
[[\\/]* | [A-Za-z]:[\\/]*)]
[re_direlt='/[^/][^/]*/\.\./']
# Canonicalize the path of ld
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
done
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([acl_cv_path_LD],
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
acl_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.
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
*GNU* | *'with BFD'*)
test "$with_gnu_ld" != no && break ;;
*)
test "$with_gnu_ld" != yes && break ;;
esac
fi
done
IFS="$ac_save_ifs"
else
acl_cv_path_LD="$LD" # Let the user override the test with a path.
fi])
LD="$acl_cv_path_LD"
if test -n "$LD"; then
AC_MSG_RESULT([$LD])
else
AC_MSG_RESULT([no])
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_LIB_PROG_LD_GNU
])
# lib-link.m4 serial 21 (gettext-0.18)
dnl Copyright (C) 2001-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
AC_PREREQ([2.54])
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
dnl augments the CPPFLAGS variable.
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_LINKFLAGS],
[
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
pushdef([Name],[translit([$1],[./-], [___])])
pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
AC_LIB_LINKFLAGS_BODY([$1], [$2])
ac_cv_lib[]Name[]_libs="$LIB[]NAME"
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
])
LIB[]NAME="$ac_cv_lib[]Name[]_libs"
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME)
AC_SUBST([LIB]NAME[_PREFIX])
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
dnl results of this search when this library appears as a dependency.
HAVE_LIB[]NAME=yes
popdef([NAME])
popdef([Name])
])
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
dnl searches for libname and the libraries corresponding to explicit and
dnl implicit dependencies, together with the specified include files and
dnl the ability to compile and link the specified testcode. The missing-message
dnl defaults to 'no' and may contain additional hints for the user.
dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
[
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
pushdef([Name],[translit([$1],[./-], [___])])
pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
dnl accordingly.
AC_LIB_LINKFLAGS_BODY([$1], [$2])
dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
dnl because if the user has installed lib[]Name and not disabled its use
dnl via --without-lib[]Name-prefix, he wants to use it.
ac_save_CPPFLAGS="$CPPFLAGS"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
ac_save_LIBS="$LIBS"
dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
dnl because these -l options might require -L options that are present in
dnl LIBS. -l options benefit only from the -L options listed before it.
dnl Otherwise, add it to the front of LIBS, because it may be a static
dnl library that depends on another static library that is present in LIBS.
dnl Static libraries benefit only from the static libraries listed after
dnl it.
case " $LIB[]NAME" in
*" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
*) LIBS="$LIB[]NAME $LIBS" ;;
esac
AC_TRY_LINK([$3], [$4],
[ac_cv_lib[]Name=yes],
[ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
LIBS="$ac_save_LIBS"
])
if test "$ac_cv_lib[]Name" = yes; then
HAVE_LIB[]NAME=yes
AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
AC_MSG_CHECKING([how to link with lib[]$1])
AC_MSG_RESULT([$LIB[]NAME])
else
HAVE_LIB[]NAME=no
dnl If $LIB[]NAME didn't lead to a usable library, we don't need
dnl $INC[]NAME either.
CPPFLAGS="$ac_save_CPPFLAGS"
LIB[]NAME=
LTLIB[]NAME=
LIB[]NAME[]_PREFIX=
fi
AC_SUBST([HAVE_LIB]NAME)
AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME)
AC_SUBST([LIB]NAME[_PREFIX])
popdef([NAME])
popdef([Name])
])
dnl Determine the platform dependent parameters needed to use rpath:
dnl acl_libext,
dnl acl_shlibext,
dnl acl_hardcode_libdir_flag_spec,
dnl acl_hardcode_libdir_separator,
dnl acl_hardcode_direct,
dnl acl_hardcode_minus_L.
AC_DEFUN([AC_LIB_RPATH],
[
dnl Tell automake >= 1.10 to complain if config.rpath is missing.
m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
. ./conftest.sh
rm -f ./conftest.sh
acl_cv_rpath=done
])
wl="$acl_cv_wl"
acl_libext="$acl_cv_libext"
acl_shlibext="$acl_cv_shlibext"
acl_libname_spec="$acl_cv_libname_spec"
acl_library_names_spec="$acl_cv_library_names_spec"
acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
acl_hardcode_direct="$acl_cv_hardcode_direct"
acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
dnl Determine whether the user wants rpath handling at all.
AC_ARG_ENABLE([rpath],
[ --disable-rpath do not hardcode runtime library paths],
:, enable_rpath=yes)
])
dnl AC_LIB_FROMPACKAGE(name, package)
dnl declares that libname comes from the given package. The configure file
dnl will then not have a --with-libname-prefix option but a
dnl --with-package-prefix option. Several libraries can come from the same
dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
dnl macro call that searches for libname.
AC_DEFUN([AC_LIB_FROMPACKAGE],
[
pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
define([acl_frompackage_]NAME, [$2])
popdef([NAME])
pushdef([PACK],[$2])
pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
define([acl_libsinpackage_]PACKUP,
m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1])
popdef([PACKUP])
popdef([PACK])
])
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
[
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
dnl Autoconf >= 2.61 supports dots in --with options.
pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
dnl By default, look in $includedir and $libdir.
use_additional=yes
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
AC_ARG_WITH(P_A_C_K[-prefix],
[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
--without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
[
if test "X$withval" = "Xno"; then
use_additional=no
else
if test "X$withval" = "X"; then
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
else
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
if test "$acl_libdirstem2" != "$acl_libdirstem" \
&& ! test -d "$withval/$acl_libdirstem"; then
additional_libdir="$withval/$acl_libdirstem2"
fi
fi
fi
])
dnl Search the library and its dependencies in $additional_libdir and
dnl $LDFLAGS. Using breadth-first-seach.
LIB[]NAME=
LTLIB[]NAME=
INC[]NAME=
LIB[]NAME[]_PREFIX=
dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
dnl computed. So it has to be reset here.
HAVE_LIB[]NAME=
rpathdirs=
ltrpathdirs=
names_already_handled=
names_next_round='$1 $2'
while test -n "$names_next_round"; do
names_this_round="$names_next_round"
names_next_round=
for name in $names_this_round; do
already_handled=
for n in $names_already_handled; do
if test "$n" = "$name"; then
already_handled=yes
break
fi
done
if test -z "$already_handled"; then
names_already_handled="$names_already_handled $name"
dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
dnl or AC_LIB_HAVE_LINKFLAGS call.
uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
eval value=\"\$HAVE_LIB$uppername\"
if test -n "$value"; then
if test "$value" = yes; then
eval value=\"\$LIB$uppername\"
test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
eval value=\"\$LTLIB$uppername\"
test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
else
dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
dnl that this library doesn't exist. So just drop it.
:
fi
else
dnl Search the library lib$name in $additional_libdir and $LDFLAGS
dnl and the already constructed $LIBNAME/$LTLIBNAME.
found_dir=
found_la=
found_so=
found_a=
eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
if test -n "$acl_shlibext"; then
shrext=".$acl_shlibext" # typically: shrext=.so
else
shrext=
fi
if test $use_additional = yes; then
dir="$additional_libdir"
dnl The same code as in the loop below:
dnl First look for a shared library.
if test -n "$acl_shlibext"; then
if test -f "$dir/$libname$shrext"; then
found_dir="$dir"
found_so="$dir/$libname$shrext"
else
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
ver=`(cd "$dir" && \
for f in "$libname$shrext".*; do echo "$f"; done \
| sed -e "s,^$libname$shrext\\\\.,," \
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
| sed 1q ) 2>/dev/null`
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
found_dir="$dir"
found_so="$dir/$libname$shrext.$ver"
fi
else
eval library_names=\"$acl_library_names_spec\"
for f in $library_names; do
if test -f "$dir/$f"; then
found_dir="$dir"
found_so="$dir/$f"
break
fi
done
fi
fi
fi
dnl Then look for a static library.
if test "X$found_dir" = "X"; then
if test -f "$dir/$libname.$acl_libext"; then
found_dir="$dir"
found_a="$dir/$libname.$acl_libext"
fi
fi
if test "X$found_dir" != "X"; then
if test -f "$dir/$libname.la"; then
found_la="$dir/$libname.la"
fi
fi
fi
if test "X$found_dir" = "X"; then
for x in $LDFLAGS $LTLIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
dnl First look for a shared library.
if test -n "$acl_shlibext"; then
if test -f "$dir/$libname$shrext"; then
found_dir="$dir"
found_so="$dir/$libname$shrext"
else
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
ver=`(cd "$dir" && \
for f in "$libname$shrext".*; do echo "$f"; done \
| sed -e "s,^$libname$shrext\\\\.,," \
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
| sed 1q ) 2>/dev/null`
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
found_dir="$dir"
found_so="$dir/$libname$shrext.$ver"
fi
else
eval library_names=\"$acl_library_names_spec\"
for f in $library_names; do
if test -f "$dir/$f"; then
found_dir="$dir"
found_so="$dir/$f"
break
fi
done
fi
fi
fi
dnl Then look for a static library.
if test "X$found_dir" = "X"; then
if test -f "$dir/$libname.$acl_libext"; then
found_dir="$dir"
found_a="$dir/$libname.$acl_libext"
fi
fi
if test "X$found_dir" != "X"; then
if test -f "$dir/$libname.la"; then
found_la="$dir/$libname.la"
fi
fi
;;
esac
if test "X$found_dir" != "X"; then
break
fi
done
fi
if test "X$found_dir" != "X"; then
dnl Found the library.
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
if test "X$found_so" != "X"; then
dnl Linking with a shared library. We attempt to hardcode its
dnl directory into the executable's runpath, unless it's the
dnl standard /usr/lib.
if test "$enable_rpath" = no \
|| test "X$found_dir" = "X/usr/$acl_libdirstem" \
|| test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
dnl No hardcoding is needed.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
dnl Use an explicit option to hardcode DIR into the resulting
dnl binary.
dnl Potentially add DIR to ltrpathdirs.
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
haveit=
for x in $ltrpathdirs; do
if test "X$x" = "X$found_dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
ltrpathdirs="$ltrpathdirs $found_dir"
fi
dnl The hardcoding into $LIBNAME is system dependent.
if test "$acl_hardcode_direct" = yes; then
dnl Using DIR/libNAME.so during linking hardcodes DIR into the
dnl resulting binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
dnl Use an explicit option to hardcode DIR into the resulting
dnl binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
dnl Potentially add DIR to rpathdirs.
dnl The rpathdirs will be appended to $LIBNAME at the end.
haveit=
for x in $rpathdirs; do
if test "X$x" = "X$found_dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
rpathdirs="$rpathdirs $found_dir"
fi
else
dnl Rely on "-L$found_dir".
dnl But don't add it if it's already contained in the LDFLAGS
dnl or the already constructed $LIBNAME
haveit=
for x in $LDFLAGS $LIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$found_dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
fi
if test "$acl_hardcode_minus_L" != no; then
dnl FIXME: Not sure whether we should use
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
dnl here.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
dnl here, because this doesn't fit in flags passed to the
dnl compiler. So give up. No hardcoding. This affects only
dnl very old systems.
dnl FIXME: Not sure whether we should use
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
dnl here.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
fi
fi
fi
fi
else
if test "X$found_a" != "X"; then
dnl Linking with a static library.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
else
dnl We shouldn't come here, but anyway it's good to have a
dnl fallback.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
fi
fi
dnl Assume the include files are nearby.
additional_includedir=
case "$found_dir" in
*/$acl_libdirstem | */$acl_libdirstem/)
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
if test "$name" = '$1'; then
LIB[]NAME[]_PREFIX="$basedir"
fi
additional_includedir="$basedir/include"
;;
*/$acl_libdirstem2 | */$acl_libdirstem2/)
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
if test "$name" = '$1'; then
LIB[]NAME[]_PREFIX="$basedir"
fi
additional_includedir="$basedir/include"
;;
esac
if test "X$additional_includedir" != "X"; then
dnl Potentially add $additional_includedir to $INCNAME.
dnl But don't add it
dnl 1. if it's the standard /usr/include,
dnl 2. if it's /usr/local/include and we are using GCC on Linux,
dnl 3. if it's already present in $CPPFLAGS or the already
dnl constructed $INCNAME,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_includedir" != "X/usr/include"; then
haveit=
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
for x in $CPPFLAGS $INC[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-I$additional_includedir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test -d "$additional_includedir"; then
dnl Really add $additional_includedir to $INCNAME.
INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
fi
fi
fi
fi
fi
dnl Look for dependencies.
if test -n "$found_la"; then
dnl Read the .la file. It defines the variables
dnl dlname, library_names, old_library, dependency_libs, current,
dnl age, revision, installed, dlopen, dlpreopen, libdir.
save_libdir="$libdir"
case "$found_la" in
*/* | *\\*) . "$found_la" ;;
*) . "./$found_la" ;;
esac
libdir="$save_libdir"
dnl We use only dependency_libs.
for dep in $dependency_libs; do
case "$dep" in
-L*)
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
dnl But don't add it
dnl 1. if it's the standard /usr/lib,
dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
dnl 3. if it's already present in $LDFLAGS or the already
dnl constructed $LIBNAME,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
&& test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
haveit=
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
|| test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
if test -n "$GCC"; then
case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
haveit=
for x in $LDFLAGS $LIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$additional_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test -d "$additional_libdir"; then
dnl Really add $additional_libdir to $LIBNAME.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
fi
fi
haveit=
for x in $LDFLAGS $LTLIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$additional_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test -d "$additional_libdir"; then
dnl Really add $additional_libdir to $LTLIBNAME.
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
fi
fi
fi
fi
;;
-R*)
dir=`echo "X$dep" | sed -e 's/^X-R//'`
if test "$enable_rpath" != no; then
dnl Potentially add DIR to rpathdirs.
dnl The rpathdirs will be appended to $LIBNAME at the end.
haveit=
for x in $rpathdirs; do
if test "X$x" = "X$dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
rpathdirs="$rpathdirs $dir"
fi
dnl Potentially add DIR to ltrpathdirs.
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
haveit=
for x in $ltrpathdirs; do
if test "X$x" = "X$dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
ltrpathdirs="$ltrpathdirs $dir"
fi
fi
;;
-l*)
dnl Handle this in the next round.
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
;;
*.la)
dnl Handle this in the next round. Throw away the .la's
dnl directory; it is already contained in a preceding -L
dnl option.
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
;;
*)
dnl Most likely an immediate library name.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
;;
esac
done
fi
else
dnl Didn't find the library; assume it is in the system directories
dnl known to the linker and runtime loader. (All the system
dnl directories known to the linker should also be known to the
dnl runtime loader, otherwise the system is severely misconfigured.)
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
fi
fi
fi
done
done
if test "X$rpathdirs" != "X"; then
if test -n "$acl_hardcode_libdir_separator"; then
dnl Weird platform: only the last -rpath option counts, the user must
dnl pass all path elements in one option. We can arrange that for a
dnl single library, but not when more than one $LIBNAMEs are used.
alldirs=
for found_dir in $rpathdirs; do
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
done
dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
acl_save_libdir="$libdir"
libdir="$alldirs"
eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
else
dnl The -rpath options are cumulative.
for found_dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$found_dir"
eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
done
fi
fi
if test "X$ltrpathdirs" != "X"; then
dnl When using libtool, the option that works for both libraries and
dnl executables is -R. The -R options are cumulative.
for found_dir in $ltrpathdirs; do
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
done
fi
popdef([P_A_C_K])
popdef([PACKLIBS])
popdef([PACKUP])
popdef([PACK])
popdef([NAME])
])
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
dnl unless already present in VAR.
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
dnl contains two or three consecutive elements that belong together.
AC_DEFUN([AC_LIB_APPENDTOVAR],
[
for element in [$2]; do
haveit=
for x in $[$1]; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X$element"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
[$1]="${[$1]}${[$1]:+ }$element"
fi
done
])
dnl For those cases where a variable contains several -L and -l options
dnl referring to unknown libraries and directories, this macro determines the
dnl necessary additional linker options for the runtime path.
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
dnl otherwise linking without libtool is assumed.
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
[
AC_REQUIRE([AC_LIB_RPATH])
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
$1=
if test "$enable_rpath" != no; then
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
dnl Use an explicit option to hardcode directories into the resulting
dnl binary.
rpathdirs=
next=
for opt in $2; do
if test -n "$next"; then
dir="$next"
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem" \
&& test "X$dir" != "X/usr/$acl_libdirstem2"; then
rpathdirs="$rpathdirs $dir"
fi
next=
else
case $opt in
-L) next=yes ;;
-L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem" \
&& test "X$dir" != "X/usr/$acl_libdirstem2"; then
rpathdirs="$rpathdirs $dir"
fi
next= ;;
*) next= ;;
esac
fi
done
if test "X$rpathdirs" != "X"; then
if test -n ""$3""; then
dnl libtool is used for linking. Use -R options.
for dir in $rpathdirs; do
$1="${$1}${$1:+ }-R$dir"
done
else
dnl The linker is used for linking directly.
if test -n "$acl_hardcode_libdir_separator"; then
dnl Weird platform: only the last -rpath option counts, the user
dnl must pass all path elements in one option.
alldirs=
for dir in $rpathdirs; do
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
done
acl_save_libdir="$libdir"
libdir="$alldirs"
eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
$1="$flag"
else
dnl The -rpath options are cumulative.
for dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$dir"
eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
$1="${$1}${$1:+ }$flag"
done
fi
fi
fi
fi
fi
AC_SUBST([$1])
])
# lib-prefix.m4 serial 7 (gettext-0.18)
dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
dnl require excessive bracketing.
ifdef([AC_HELP_STRING],
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
dnl to access previously installed libraries. The basic assumption is that
dnl a user will want packages to use other packages he previously installed
dnl with the same --prefix option.
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
dnl libraries, but is otherwise very convenient.
AC_DEFUN([AC_LIB_PREFIX],
[
AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
dnl By default, look in $includedir and $libdir.
use_additional=yes
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
AC_LIB_ARG_WITH([lib-prefix],
[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
--without-lib-prefix don't search for libraries in includedir and libdir],
[
if test "X$withval" = "Xno"; then
use_additional=no
else
if test "X$withval" = "X"; then
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
else
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
fi
fi
])
if test $use_additional = yes; then
dnl Potentially add $additional_includedir to $CPPFLAGS.
dnl But don't add it
dnl 1. if it's the standard /usr/include,
dnl 2. if it's already present in $CPPFLAGS,
dnl 3. if it's /usr/local/include and we are using GCC on Linux,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_includedir" != "X/usr/include"; then
haveit=
for x in $CPPFLAGS; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-I$additional_includedir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
if test -d "$additional_includedir"; then
dnl Really add $additional_includedir to $CPPFLAGS.
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
fi
fi
fi
fi
dnl Potentially add $additional_libdir to $LDFLAGS.
dnl But don't add it
dnl 1. if it's the standard /usr/lib,
dnl 2. if it's already present in $LDFLAGS,
dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
haveit=
for x in $LDFLAGS; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$additional_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
if test -n "$GCC"; then
case $host_os in
linux*) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
if test -d "$additional_libdir"; then
dnl Really add $additional_libdir to $LDFLAGS.
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
fi
fi
fi
fi
fi
])
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
dnl acl_final_exec_prefix, containing the values to which $prefix and
dnl $exec_prefix will expand at the end of the configure script.
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
[
dnl Unfortunately, prefix and exec_prefix get only finally determined
dnl at the end of configure.
if test "X$prefix" = "XNONE"; then
acl_final_prefix="$ac_default_prefix"
else
acl_final_prefix="$prefix"
fi
if test "X$exec_prefix" = "XNONE"; then
acl_final_exec_prefix='${prefix}'
else
acl_final_exec_prefix="$exec_prefix"
fi
acl_save_prefix="$prefix"
prefix="$acl_final_prefix"
eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
prefix="$acl_save_prefix"
])
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
dnl variables prefix and exec_prefix bound to the values they will have
dnl at the end of the configure script.
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
[
acl_save_prefix="$prefix"
prefix="$acl_final_prefix"
acl_save_exec_prefix="$exec_prefix"
exec_prefix="$acl_final_exec_prefix"
$1
exec_prefix="$acl_save_exec_prefix"
prefix="$acl_save_prefix"
])
dnl AC_LIB_PREPARE_MULTILIB creates
dnl - a variable acl_libdirstem, containing the basename of the libdir, either
dnl "lib" or "lib64" or "lib/64",
dnl - a variable acl_libdirstem2, as a secondary possible value for
dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
dnl "lib/amd64".
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
[
dnl There is no formal standard regarding lib and lib64.
dnl On glibc systems, the current practice is that on a system supporting
dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
dnl the compiler's default mode by looking at the compiler's library search
dnl path. If at least one of its elements ends in /lib64 or points to a
dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
dnl Otherwise we use the default, namely "lib".
dnl On Solaris systems, the current practice is that on a system supporting
dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
AC_REQUIRE([AC_CANONICAL_HOST])
acl_libdirstem=lib
acl_libdirstem2=
case "$host_os" in
solaris*)
dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
dnl .
dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
dnl symlink is missing, so we set acl_libdirstem2 too.
AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
[AC_EGREP_CPP([sixtyfour bits], [
#ifdef _LP64
sixtyfour bits
#endif
], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
])
if test $gl_cv_solaris_64bit = yes; then
acl_libdirstem=lib/64
case "$host_cpu" in
sparc*) acl_libdirstem2=lib/sparcv9 ;;
i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
esac
fi
;;
*)
searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
if test -n "$searchpath"; then
acl_save_IFS="${IFS= }"; IFS=":"
for searchdir in $searchpath; do
if test -d "$searchdir"; then
case "$searchdir" in
*/lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
*/../ | */.. )
# Better ignore directories of this form. They are misleading.
;;
*) searchdir=`cd "$searchdir" && pwd`
case "$searchdir" in
*/lib64 ) acl_libdirstem=lib64 ;;
esac ;;
esac
fi
done
IFS="$acl_save_IFS"
fi
;;
esac
test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
])
# nls.m4 serial 5 (gettext-0.18)
dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
dnl gettext package package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Authors:
dnl Ulrich Drepper , 1995-2000.
dnl Bruno Haible , 2000-2003.
AC_PREREQ([2.50])
AC_DEFUN([AM_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])
])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 1 (pkg-config-0.24)
#
# Copyright © 2004 Scott James Remnant .
#
# 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.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
# ----------------------------------
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=m4_default([$1], [0.9.0])
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
fi[]dnl
])# PKG_PROG_PKG_CONFIG
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# Check to see whether a particular set of modules exists. Similar
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
#
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
# only at the first occurence in configure.ac, so if the first place
# it's called might be skipped (such as if it is within an "if", you
# have to call PKG_CHECK_EXISTS manually
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
m4_default([$2], [:])
m4_ifvaln([$3], [else
$3])dnl
fi])
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# ---------------------------------------------
m4_define([_PKG_CONFIG],
[if test -n "$$1"; then
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
[pkg_failed=yes])
else
pkg_failed=untried
fi[]dnl
])# _PKG_CONFIG
# _PKG_SHORT_ERRORS_SUPPORTED
# -----------------------------
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi[]dnl
])# _PKG_SHORT_ERRORS_SUPPORTED
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
# [ACTION-IF-NOT-FOUND])
#
#
# Note that if there is a possibility the first call to
# PKG_CHECK_MODULES might not happen, you should be sure to include an
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
#
#
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_MODULES],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no
AC_MSG_CHECKING([for $1])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
_PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
_PKG_TEXT
To get pkg-config, see .])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
$3
fi[]dnl
])# PKG_CHECK_MODULES
# po.m4 serial 17 (gettext-0.18)
dnl Copyright (C) 1995-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
dnl gettext package package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Authors:
dnl Ulrich Drepper , 1995-2000.
dnl Bruno Haible , 2000-2003.
AC_PREREQ([2.50])
dnl Checks for all prerequisites of the po subdirectory.
AC_DEFUN([AM_PO_SUBDIRS],
[
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
AC_REQUIRE([AM_NLS])dnl
dnl Release version of the gettext macros. This is used to ensure that
dnl the gettext macros and po/Makefile.in.in are in sync.
AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
dnl Perform the following tests also if --disable-nls has been given,
dnl because they are needed for "make dist" to work.
dnl Search for GNU msgfmt in the PATH.
dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
dnl The second test excludes FreeBSD msgfmt.
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
(if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
:)
AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
dnl Test whether it is GNU msgfmt >= 0.15.
changequote(,)dnl
case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
*) MSGFMT_015=$MSGFMT ;;
esac
changequote([,])dnl
AC_SUBST([MSGFMT_015])
changequote(,)dnl
case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
*) GMSGFMT_015=$GMSGFMT ;;
esac
changequote([,])dnl
AC_SUBST([GMSGFMT_015])
dnl Search for GNU xgettext 0.12 or newer in the PATH.
dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
dnl The second test excludes FreeBSD xgettext.
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
(if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
:)
dnl Remove leftover from FreeBSD xgettext call.
rm -f messages.po
dnl Test whether it is GNU xgettext >= 0.15.
changequote(,)dnl
case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
*) XGETTEXT_015=$XGETTEXT ;;
esac
changequote([,])dnl
AC_SUBST([XGETTEXT_015])
dnl Search for GNU msgmerge 0.11 or newer in the PATH.
AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
[$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
dnl Installation directories.
dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
dnl have to define it here, so that it can be used in po/Makefile.
test -n "$localedir" || localedir='${datadir}/locale'
AC_SUBST([localedir])
dnl Support for AM_XGETTEXT_OPTION.
test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
AC_CONFIG_COMMANDS([po-directories], [[
for ac_file in $CONFIG_FILES; do
# Support "outfile[:infile[:infile...]]"
case "$ac_file" in
*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
esac
# PO directories have a Makefile.in generated from Makefile.in.in.
case "$ac_file" in */Makefile.in)
# Adjust a relative srcdir.
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
# In autoconf-2.13 it is called $ac_given_srcdir.
# In autoconf-2.50 it is called $srcdir.
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
case "$ac_given_srcdir" in
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
/*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
# Treat a directory as a PO directory if and only if it has a
# POTFILES.in file. This allows packages to have multiple PO
# directories under different names or in different locations.
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
rm -f "$ac_dir/POTFILES"
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
POMAKEFILEDEPS="POTFILES.in"
# ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
# on $ac_dir but don't depend on user-specified configuration
# parameters.
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
# The LINGUAS file contains the set of available languages.
if test -n "$OBSOLETE_ALL_LINGUAS"; then
test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
fi
ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
# Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else
# The set of available languages was given in configure.in.
# Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
fi
# Compute POFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
# Compute UPDATEPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
# Compute DUMMYPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
# Compute GMOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
case "$ac_given_srcdir" in
.) srcdirpre= ;;
*) srcdirpre='$(srcdir)/' ;;
esac
POFILES=
UPDATEPOFILES=
DUMMYPOFILES=
GMOFILES=
for lang in $ALL_LINGUAS; do
POFILES="$POFILES $srcdirpre$lang.po"
UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
done
# CATALOGS depends on both $ac_dir and the user's LINGUAS
# environment variable.
INST_LINGUAS=
if test -n "$ALL_LINGUAS"; then
for presentlang in $ALL_LINGUAS; do
useit=no
if test "%UNSET%" != "$LINGUAS"; then
desiredlanguages="$LINGUAS"
else
desiredlanguages="$ALL_LINGUAS"
fi
for desiredlang in $desiredlanguages; do
# Use the presentlang catalog if desiredlang is
# a. equal to presentlang, or
# b. a variant of presentlang (because in this case,
# presentlang can be used as a fallback for messages
# which are not translated in the desiredlang catalog).
case "$desiredlang" in
"$presentlang"*) useit=yes;;
esac
done
if test $useit = yes; then
INST_LINGUAS="$INST_LINGUAS $presentlang"
fi
done
fi
CATALOGS=
if test -n "$INST_LINGUAS"; then
for lang in $INST_LINGUAS; do
CATALOGS="$CATALOGS $lang.gmo"
done
fi
test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
if test -f "$f"; then
case "$f" in
*.orig | *.bak | *~) ;;
*) cat "$f" >> "$ac_dir/Makefile" ;;
esac
fi
done
fi
;;
esac
done]],
[# Capture the value of obsolete ALL_LINGUAS because we need it to compute
# POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
# from automake < 1.5.
eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
# Capture the value of LINGUAS because we need it to compute CATALOGS.
LINGUAS="${LINGUAS-%UNSET%}"
])
])
dnl Postprocesses a Makefile in a directory containing PO files.
AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
[
# When this code is run, in config.status, two variables have already been
# set:
# - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
# - LINGUAS is the value of the environment variable LINGUAS at configure
# time.
changequote(,)dnl
# Adjust a relative srcdir.
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
# In autoconf-2.13 it is called $ac_given_srcdir.
# In autoconf-2.50 it is called $srcdir.
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
case "$ac_given_srcdir" in
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
/*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
# Find a way to echo strings without interpreting backslash.
if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
gt_echo='echo'
else
if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
gt_echo='printf %s\n'
else
echo_func () {
cat < "$ac_file.tmp"
if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
# Add dependencies that cannot be formulated as a simple suffix rule.
for lang in $ALL_LINGUAS; do
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
cat >> "$ac_file.tmp" < /dev/null; then
# Add dependencies that cannot be formulated as a simple suffix rule.
for lang in $ALL_LINGUAS; do
frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996.
AC_PREREQ([2.50])
# Search path for a program which passes the given test.
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],
[
# Prepare PATH_SEPARATOR.
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
echo "#! /bin/sh" >conf$$.sh
echo "exit 0" >>conf$$.sh
chmod +x conf$$.sh
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
PATH_SEPARATOR=';'
else
PATH_SEPARATOR=:
fi
rm -f conf$$.sh
fi
# Find out how to test for executable files. Don't use a zero-byte file,
# as systems may use methods other than mode bits to determine executability.
cat >conf$$.file <<_ASEOF
#! /bin/sh
exit 0
_ASEOF
chmod +x conf$$.file
if test -x conf$$.file >/dev/null 2>&1; then
ac_executable_p="test -x"
else
ac_executable_p="test -f"
fi
rm -f conf$$.file
# 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.
;;
*)
ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
for ac_dir in ifelse([$5], , $PATH, [$5]); do
IFS="$ac_save_IFS"
test -z "$ac_dir" && ac_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
if [$3]; then
ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
break 2
fi
fi
done
done
IFS="$ac_save_IFS"
dnl If no 4th arg is given, leave the cache variable unset,
dnl so AC_PATH_PROGS will keep looking.
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
])dnl
;;
esac])dnl
$1="$ac_cv_path_$1"
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
AC_MSG_RESULT([$][$1])
else
AC_MSG_RESULT([no])
fi
AC_SUBST([$1])dnl
])
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file 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.
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.11.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# _AM_AUTOCONF_VERSION(VERSION)
# -----------------------------
# aclocal traces this macro to find the Autoconf version.
# This is a private macro too. Using m4_define simplifies
# the logic in aclocal, which can simply ignore this definition.
m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.11.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file 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.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
[dnl Rely on autoconf to set up CDPATH properly.
AC_PREREQ([2.50])dnl
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
# Free Software Foundation, Inc.
#
# This file 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.
# serial 9
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
m4_define([_AM_COND_VALUE_$1], [$2])dnl
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi
AC_CONFIG_COMMANDS_PRE(
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
AC_MSG_ERROR([[conditional "$1" was never defined.
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
# Free Software Foundation, Inc.
#
# This file 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.
# serial 10
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX", "GCJ", or "OBJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
[$1], UPC, [depcc="$UPC" am_compiler_list=],
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
am__universal=false
m4_case([$1], [CC],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac],
[CXX],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac])
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
AM_CONDITIONAL([am__fastdep$1], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
[ --disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file 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.
#serial 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
# Autoconf 2.62 quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
shift
for mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named `Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`AS_DIRNAME("$mf")`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
AS_MKDIR_P([$dirpart/$fdir])
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
# AM_OUTPUT_DEPENDENCY_COMMANDS
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each `.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
#
# This file 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.
# serial 16
# 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.
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
# The call with PACKAGE and VERSION arguments is the old style
# call (pre autoconf-2.50), which is being phased out. PACKAGE
# and VERSION should now be passed to AC_INIT and removed from
# the call to AM_INIT_AUTOMAKE.
# We support both call styles for the transition. After
# the next Automake release, Autoconf can make the AC_INIT
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.62])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
AC_SUBST([CYGPATH_W])
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_CC],
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_CXX],
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
[_AM_DEPENDENCIES(OBJC)],
[define([AC_PROG_OBJC],
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
])
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
])
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
# loop where config.status creates the headers, so we can generate
# our stamp files there.
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
[# Compute $1's index in $config_headers.
_am_arg=$1
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file 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.
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
if test x"${install_sh}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
AC_SUBST(install_sh)])
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
#
# This file 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.
# serial 2
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
[rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file 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.
# serial 5
# AM_MAINTAINER_MODE([DEFAULT-MODE])
# ----------------------------------
# Control maintainer-specific portions of Makefiles.
# Default is to disable them, unless `enable' is passed literally.
# For symmetry, `disable' may be passed as well. Anyway, the user
# can override the default with the --enable/--disable switch.
AC_DEFUN([AM_MAINTAINER_MODE],
[m4_case(m4_default([$1], [disable]),
[enable], [m4_define([am_maintainer_other], [disable])],
[disable], [m4_define([am_maintainer_other], [enable])],
[m4_define([am_maintainer_other], [enable])
m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
dnl maintainer-mode's default is 'disable' unless 'enable' is passed
AC_ARG_ENABLE([maintainer-mode],
[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
(and sometimes confusing) to the casual installer],
[USE_MAINTAINER_MODE=$enableval],
[USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
AC_MSG_RESULT([$USE_MAINTAINER_MODE])
AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
MAINT=$MAINTAINER_MODE_TRUE
AC_SUBST([MAINT])dnl
]
)
AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
#
# This file 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.
# serial 4
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from `make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file 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.
# serial 6
# AM_PROG_CC_C_O
# --------------
# Like AC_PROG_CC_C_O, but changed for automake.
AC_DEFUN([AM_PROG_CC_C_O],
[AC_REQUIRE([AC_PROG_CC_C_O])dnl
AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([compile])dnl
# FIXME: we rely on the cache variable name because
# there is no other way.
set dummy $CC
am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
if test "$am_t" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__CC in this case,
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
CC="$am_aux_dir/compile $CC"
fi
dnl Make sure AC_PROG_CC is never called again, or it will override our
dnl setting of CC.
m4_define([AC_PROG_CC],
[m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file 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.
# serial 6
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
AC_MSG_WARN([`missing' script is too old or missing])
fi
])
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
#
# This file 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.
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
AC_DEFUN([AM_PROG_MKDIR_P],
[AC_PREREQ([2.60])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
dnl while keeping a definition of mkdir_p for backward compatibility.
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
dnl Makefile.ins that do not define MKDIR_P, so we do our own
dnl adjustment using top_builddir (which is defined more often than
dnl MKDIR_P).
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
case $mkdir_p in
[[\\/$]]* | ?:[[\\/]]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
])
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file 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.
# serial 4
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
# ------------------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
# ----------------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
# Free Software Foundation, Inc.
#
# This file 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.
# serial 5
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[[\\\"\#\$\&\'\`$am_lf]]*)
AC_MSG_ERROR([unsafe absolute working directory name]);;
esac
case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
esac
# 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" conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $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]" = conftest.file
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
AC_MSG_RESULT(yes)])
# Copyright (C) 2009 Free Software Foundation, Inc.
#
# This file 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.
# serial 1
# AM_SILENT_RULES([DEFAULT])
# --------------------------
# Enable less verbose build rules; with the default set to DEFAULT
# (`yes' being less verbose, `no' or empty being verbose).
AC_DEFUN([AM_SILENT_RULES],
[AC_ARG_ENABLE([silent-rules],
[ --enable-silent-rules less verbose build output (undo: `make V=1')
--disable-silent-rules verbose build output (undo: `make V=0')])
case $enable_silent_rules in
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
esac
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
AM_BACKSLASH='\'
AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file 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.
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
# Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the `STRIP' environment variable to overrule this program.
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
#
# This file 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.
# serial 2
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# This macro is traced by Automake.
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
#
# This file 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.
# serial 2
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# FORMAT should be one of `v7', `ustar', or `pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# $tardir.
# tardir=directory && $(am__tar) > result.tar
#
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility.
AM_MISSING_PROG([AMTAR], [tar])
m4_if([$1], [v7],
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
# Loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
# Do not fold the above two line into one, because Tru64 sh and
# Solaris sh will not grok spaces in the rhs of `-'.
for _am_tool in $_am_tools
do
case $_am_tool in
gnutar)
for _am_tar in tar gnutar gtar;
do
AM_RUN_LOG([$_am_tar --version]) && break
done
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
am__untar="$_am_tar -xf -"
;;
plaintar)
# Must skip GNU tar: if it does not support --format= it doesn't create
# ustar tarball either.
(tar --version) >/dev/null 2>&1 && continue
am__tar='tar chf - "$$tardir"'
am__tar_='tar chf - "$tardir"'
am__untar='tar xf -'
;;
pax)
am__tar='pax -L -x $1 -w "$$tardir"'
am__tar_='pax -L -x $1 -w "$tardir"'
am__untar='pax -r'
;;
cpio)
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
am__untar='cpio -i -H $1 -d'
;;
none)
am__tar=false
am__tar_=false
am__untar=false
;;
esac
# If the value was cached, stop now. We just wanted to have am__tar
# and am__untar set.
test -n "${am_cv_prog_tar_$1}" && break
# tar/untar a dummy directory, and stop if the command works
rm -rf conftest.dir
mkdir conftest.dir
echo GrepMe > conftest.dir/file
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
AM_RUN_LOG([$am__untar /dev/null 2>&1 && break
fi
done
rm -rf conftest.dir
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([acinclude.m4])
gmult-8.0/Makefile.am 0000644 0001750 0001750 00000000502 11551155441 014122 0 ustar udienz udienz SUBDIRS = data gmult po vapi
# Distribute pot file
dist-hook:
$(MAKE) -C "$(srcdir)/po" "$(GETTEXT_PACKAGE).pot"
cp "$(srcdir)/po/$(GETTEXT_PACKAGE).pot" "$(distdir)/po/"
EXTRA_DIST = autogen.sh intltool-extract.in intltool-merge.in intltool-update.in
DISTCLEANFILES = intltool-extract intltool-merge intltool-update
gmult-8.0/missing 0000755 0001750 0001750 00000026233 11551156715 013503 0 ustar udienz udienz #! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2009-04-28.21; # UTC
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
# 2008, 2009 Free Software Foundation, Inc.
# Originally by Fran,cois 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, see .
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case $1 in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-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
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
autom4te touch the output file, or create a stub one
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
\`g' are ignored when checking the name.
Send bug reports to ."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
# normalize program name to check for.
program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program). This is about non-GNU programs, so use $1 not
# $program.
case $1 in
lex*|yacc*)
# Not GNU programs, they don't have --version.
;;
tar*)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1
fi
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case $program in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case $f in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te*)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison*|yacc*)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if test $# -ne 1; then
eval LASTARG="\${$#}"
case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if test ! -f y.tab.h; then
echo >y.tab.h
fi
if test ! -f y.tab.c; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex*|flex*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if test $# -ne 1; then
eval LASTARG="\${$#}"
case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if test ! -f lex.yy.c; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit $?
fi
;;
makeinfo*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '
/^@setfilename/{
s/.* \([^ ]*\) *$/\1/
p
q
}' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
# If the file does not exist, the user really needs makeinfo;
# let's fail without touching anything.
test -f $file || exit 1
touch $file
;;
tar*)
shift
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case $firstarg in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case $firstarg in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
gmult-8.0/intltool-extract.in 0000644 0001750 0001750 00000000000 11551156716 015731 0 ustar udienz udienz gmult-8.0/INSTALL 0000644 0001750 0001750 00000036332 11551156716 013137 0 ustar udienz udienz Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
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, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
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 you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' 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.
Running `configure' might take a while. 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, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the `make install' phase executed with root
privileges.
5. Optionally, type `make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior `make install' required
root privileges, verifies that the installation completed
correctly.
6. 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.
7. Often, you can also type `make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide `make
distcheck', which can by used by developers to test that all other
targets like `make install' and `make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
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 can use 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 `..'. This
is known as a "VPATH" build.
With a non-GNU `make', it is safer 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.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' 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. In general, the
default for these options is expressed in terms of `${prefix}', so that
specifying just `--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to `configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
`make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, `make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
`${prefix}'. Any directories that were specified during `configure',
but not in terms of `${prefix}', must each be overridden at install
time for the entire installation to be relocated. The approach of
makefile variable overrides for each directory variable is required by
the GNU Coding Standards, and ideally causes no recompilation.
However, some platforms have known limitations with the semantics of
shared libraries that end up requiring recompilation when using this
method, particularly noticeable in packages that use GNU Libtool.
The second method involves providing the `DESTDIR' variable. For
example, `make install DESTDIR=/alternate/directory' will prepend
`/alternate/directory' before all installation names. The approach of
`DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of `${prefix}'
at `configure' time.
Optional Features
=================
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'.
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.
Some packages offer the ability to configure how verbose the
execution of `make' will be. For these packages, running `./configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with `make V=1'; while running `./configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with `make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
in your `PATH', put it _after_ `/usr/bin'.
On Haiku, software installed for all users goes in `/boot/common',
not `/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
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 machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
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.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--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.
`--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
gmult-8.0/depcomp 0000755 0001750 0001750 00000044267 11551156716 013471 0 ustar udienz udienz #! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2009-04-28.21; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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, see .
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva .
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to .
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u="sed s,\\\\\\\\,/,g"
depmode=msvisualcpp
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
# Add `dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mechanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
gmult-8.0/README 0000644 0001750 0001750 00000001625 11551155441 012755 0 ustar udienz udienz Multiplication Puzzle
Multiplication Puzzle is a simple game inspired by the
multiplication game inside the popular editor emacs.
You are presented with a long multiplication problem
where a 3-digit number is multiplied by a 2-digit number,
yielding two intermediate 4-digit number and a final
5-digit answer. However, all the digits are replaced
by letters.
Your job is to discover which letters are which digits.
==========
TO INSTALL
==========
Please read the INSTALL file. For the hasty, just type the following:
./configure
make
sudo make install
=======
TO PLAY
=======
Run the executable "gmult".
You can make guesses in one of three ways:
1) Drag a digit to the letter you think it is.
2) Click on a letter or digit, then on your guess.
3) Type a letter or digit, then your guess.
If you are right, all instances of that letter will be replaced
by the digit.
© 2004—2008 Michael Terry
gmult-8.0/intltool-update.in 0000644 0001750 0001750 00000000000 11551156716 015541 0 ustar udienz udienz gmult-8.0/acinclude.m4 0000644 0001750 0001750 00000002123 11551155634 014264 0 ustar udienz udienz # -*- Mode: m4; indent-tabs-mode: nil; tab-width: 2 -*-
#
# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
#
# This file 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.
# serial 4
# Check whether the Vala compiler exists in `PATH'. If it is found, the
# variable VALAC is set. Optionally a minimum release number of the
# compiler can be requested.
#
# DEJA_PROG_VALAC([MINIMUM-VERSION])
# --------------------------------
AC_DEFUN([GMULT_PROG_VALAC],
[AC_PATH_PROG([VALAC], [valac-0.12], [])
AS_IF([test -z "$VALAC"],
[AC_MSG_WARN([No Vala compiler found. You will not be able to compile .vala source files.])],
[AS_IF([test -n "$1"],
[AC_MSG_CHECKING([$VALAC is at least version $1])
am__vala_version=`$VALAC --version | sed 's/Vala *//'`
AS_VERSION_COMPARE([$1], ["$am__vala_version"],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([Vala $1 not found.])])])])
])
gmult-8.0/config.rpath 0000755 0001750 0001750 00000043647 11551155710 014416 0 ustar udienz udienz #! /bin/sh
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
# Copyright 1996-2007 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit , 1996
#
# This file 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.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
# should be set by the caller.
#
# The set of defined variables is at the end of this script.
# Known limitations:
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
# than 256 bytes, otherwise the compiler driver will dump core. The only
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
# All known linkers require a `.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
shrext=.so
host="$1"
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
# Code taken from libtool.m4's _LT_CC_BASENAME.
for cc_temp in $CC""; do
case $cc_temp in
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
\-*) ;;
*) break;;
esac
done
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
wl=
if test "$GCC" = yes; then
wl='-Wl,'
else
case "$host_os" in
aix*)
wl='-Wl,'
;;
darwin*)
case $cc_basename in
xlc*)
wl='-Wl,'
;;
esac
;;
mingw* | cygwin* | pw32* | os2*)
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
;;
irix5* | irix6* | nonstopux*)
wl='-Wl,'
;;
newsos6)
;;
linux* | k*bsd*-gnu)
case $cc_basename in
icc* | ecc*)
wl='-Wl,'
;;
pgcc | pgf77 | pgf90)
wl='-Wl,'
;;
ccc*)
wl='-Wl,'
;;
como)
wl='-lopt='
;;
*)
case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*)
wl='-Wl,'
;;
esac
;;
esac
;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
rdos*)
;;
solaris*)
wl='-Wl,'
;;
sunos4*)
wl='-Qoption ld '
;;
sysv4 | sysv4.2uw2* | sysv4.3*)
wl='-Wl,'
;;
sysv4*MP*)
;;
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
wl='-Wl,'
;;
unicos*)
wl='-Wl,'
;;
uts4*)
;;
esac
fi
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
case "$host_os" in
cygwin* | mingw* | pw32*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
if test "$GCC" != yes; then
with_gnu_ld=no
fi
;;
interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++)
with_gnu_ld=yes
;;
openbsd*)
with_gnu_ld=no
;;
esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
# Set some defaults for GNU ld with shared library support. These
# are reset later if shared libraries are not supported. Putting them
# here allows them to be overridden if necessary.
# Unlike libtool, we use -rpath here, not --rpath, since the documented
# option of GNU ld is called -rpath, not --rpath.
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
case "$host_os" in
aix3* | aix4* | aix5*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# Samuel A. Falvo II reports
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
# behavior of shared libraries on other platforms, we cannot use
# them.
ld_shlibs=no
;;
beos*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
cygwin* | mingw* | pw32*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
interix[3-9]*)
hardcode_direct=no
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
netbsd*)
;;
solaris*)
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
case `$LD -v 2>&1` in
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
ld_shlibs=no
;;
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
else
ld_shlibs=no
fi
;;
esac
;;
sunos4*)
hardcode_direct=yes
;;
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
esac
if test "$ld_shlibs" = no; then
hardcode_libdir_flag_spec=
fi
else
case "$host_os" in
aix3*)
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
if test "$GCC" = yes; then
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
hardcode_direct=unsupported
fi
;;
aix4* | aix5*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
aix_use_runtimelinking=no
else
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
break
fi
done
;;
esac
fi
hardcode_direct=yes
hardcode_libdir_separator=':'
if test "$GCC" = yes; then
case $host_os in aix4.[012]|aix4.[012].*)
collect2name=`${CC} -print-prog-name=collect2`
if test -f "$collect2name" && \
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
:
else
# We have old collect2
hardcode_direct=unsupported
hardcode_minus_L=yes
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
;;
esac
fi
# Begin _LT_AC_SYS_LIBPATH_AIX.
echo 'int main () { return 0; }' > conftest.c
${CC} ${LDFLAGS} conftest.c -o conftest
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
if test -z "$aix_libpath"; then
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
fi
if test -z "$aix_libpath"; then
aix_libpath="/usr/lib:/lib"
fi
rm -f conftest.c conftest
# End _LT_AC_SYS_LIBPATH_AIX.
if test "$aix_use_runtimelinking" = yes; then
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
else
if test "$host_cpu" = ia64; then
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
else
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
fi
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec=' '
libext=lib
;;
darwin* | rhapsody*)
hardcode_direct=no
if test "$GCC" = yes ; then
:
else
case $cc_basename in
xlc*)
;;
*)
ld_shlibs=no
;;
esac
fi
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
freebsd1*)
ld_shlibs=no
;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
freebsd2*)
hardcode_direct=yes
hardcode_minus_L=yes
;;
freebsd* | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
hpux9*)
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
hpux10*)
if test "$with_gnu_ld" = no; then
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
fi
;;
hpux11*)
if test "$with_gnu_ld" = no; then
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
case $host_cpu in
hppa*64*|ia64*)
hardcode_direct=no
;;
*)
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
esac
fi
;;
irix5* | irix6* | nonstopux*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
netbsd*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
newsos6)
hardcode_direct=yes
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
openbsd*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
else
case "$host_os" in
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
hardcode_libdir_flag_spec='-R$libdir'
;;
*)
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
esac
fi
else
ld_shlibs=no
fi
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
osf3*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
osf4* | osf5*)
if test "$GCC" = yes; then
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
# Both cc and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
fi
hardcode_libdir_separator=:
;;
solaris*)
hardcode_libdir_flag_spec='-R$libdir'
;;
sunos4*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
;;
sysv4)
case $host_vendor in
sni)
hardcode_direct=yes # is this really true???
;;
siemens)
hardcode_direct=no
;;
motorola)
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
;;
esac
;;
sysv4.3*)
;;
sysv4*MP*)
if test -d /usr/nec; then
ld_shlibs=yes
fi
;;
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
;;
sysv5* | sco3.2v5* | sco5v6*)
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
hardcode_libdir_separator=':'
;;
uts4*)
hardcode_libdir_flag_spec='-L$libdir'
;;
*)
ld_shlibs=no
;;
esac
fi
# Check dynamic linker characteristics
# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
# Unlike libtool.m4, here we don't care about _all_ names of the library, but
# only about the one the linker finds when passed -lNAME. This is the last
# element of library_names_spec in libtool.m4, or possibly two of them if the
# linker has special search rules.
library_names_spec= # the last element of library_names_spec in libtool.m4
libname_spec='lib$name'
case "$host_os" in
aix3*)
library_names_spec='$libname.a'
;;
aix4* | aix5*)
library_names_spec='$libname$shrext'
;;
amigaos*)
library_names_spec='$libname.a'
;;
beos*)
library_names_spec='$libname$shrext'
;;
bsdi[45]*)
library_names_spec='$libname$shrext'
;;
cygwin* | mingw* | pw32*)
shrext=.dll
library_names_spec='$libname.dll.a $libname.lib'
;;
darwin* | rhapsody*)
shrext=.dylib
library_names_spec='$libname$shrext'
;;
dgux*)
library_names_spec='$libname$shrext'
;;
freebsd1*)
;;
freebsd* | dragonfly*)
case "$host_os" in
freebsd[123]*)
library_names_spec='$libname$shrext$versuffix' ;;
*)
library_names_spec='$libname$shrext' ;;
esac
;;
gnu*)
library_names_spec='$libname$shrext'
;;
hpux9* | hpux10* | hpux11*)
case $host_cpu in
ia64*)
shrext=.so
;;
hppa*64*)
shrext=.sl
;;
*)
shrext=.sl
;;
esac
library_names_spec='$libname$shrext'
;;
interix[3-9]*)
library_names_spec='$libname$shrext'
;;
irix5* | irix6* | nonstopux*)
library_names_spec='$libname$shrext'
case "$host_os" in
irix5* | nonstopux*)
libsuff= shlibsuff=
;;
*)
case $LD in
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
*) libsuff= shlibsuff= ;;
esac
;;
esac
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
linux* | k*bsd*-gnu)
library_names_spec='$libname$shrext'
;;
knetbsd*-gnu)
library_names_spec='$libname$shrext'
;;
netbsd*)
library_names_spec='$libname$shrext'
;;
newsos6)
library_names_spec='$libname$shrext'
;;
nto-qnx*)
library_names_spec='$libname$shrext'
;;
openbsd*)
library_names_spec='$libname$shrext$versuffix'
;;
os2*)
libname_spec='$name'
shrext=.dll
library_names_spec='$libname.a'
;;
osf3* | osf4* | osf5*)
library_names_spec='$libname$shrext'
;;
rdos*)
;;
solaris*)
library_names_spec='$libname$shrext'
;;
sunos4*)
library_names_spec='$libname$shrext$versuffix'
;;
sysv4 | sysv4.3*)
library_names_spec='$libname$shrext'
;;
sysv4*MP*)
library_names_spec='$libname$shrext'
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
library_names_spec='$libname$shrext'
;;
uts4*)
library_names_spec='$libname$shrext'
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <