Index: AUTHORS
===================================================================
RCS file: /cvs/gnome/dasher/AUTHORS,v
retrieving revision 1.4
diff -u -p -r1.4 AUTHORS
--- AUTHORS	11 Jan 2004 00:23:06 -0000	1.4
+++ AUTHORS	22 Jul 2005 20:49:48 -0000
@@ -1,4 +1,4 @@
-Dasher was written by:
+Dasher is written by:
 
 David MacKay
 David Ward
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/dasher/ChangeLog,v
retrieving revision 1.115.4.2
diff -u -p -r1.115.4.2 ChangeLog
--- ChangeLog	22 Jul 2005 20:40:57 -0000	1.115.4.2
+++ ChangeLog	22 Jul 2005 20:49:49 -0000
@@ -1,7 +1,69 @@
+2005-07-22  Behdad Esfahbod  <behdad@behdad.org>
+
+	* Src/main.cc: Exit if glade file not found.
+
+	* Src/Alphabet/AlphIO.cpp: Fix parsing of orientation.
+
+	* Src/DasherCore/LanguageModelling/WordLanguageModel.cpp: Fix
+	assignment operator (=) that was mistyped as equality (==).
+
+2005-07-21  Behdad Esfahbod  <behdad@behdad.org>
+
+	* AUTHORS, README: Minor wording changes.
+
+	* ChangeLog: Lots of linebreaking and whitespaces fixes.
+
+	* Makefile.am: Cleanup and added MAINTAINERCLEANFILES.
+
+	* configure.in: Updated to the preferred new syntax.  Fixed misc
+	stuff.  And removed the old hack to patch libtool.  It was from
+	2003 and should be fixed now.  If not, it really should be reported
+	as a libtool bug.
+
+	* Src/Test/configure.in: Updated to the preffered new syntax.  Passing
+	`foreign' to automake, to not nag about missing NEWS and other files.
+	This was breaking jhbuild builds in tinderbox.
+
+	* Src/Makefile.am, Src/Gtk2/Makefile.am: We set SETTINGS_* in
+	configure now, no need to do here.
+
+	* Src/Common/IOstreamDasherEdit.cc: Free allocated memory.
+
+	* Src/Common/IOstreamDasherEdit.cc, Src/DasherCore/DasherModel.cpp, 
+	Src/DasherCore/DasherViewSquare.cpp: Comment out unused variable.
+
+	* Src/DasherCore/DasherViewSquare.cpp: Explicitly cast between double,
+	int, long, myint, and screenint.  Shuts up gcc warning.
+
+	* Src/DasherCore/DasherViewSquare.cpp: Initialize variables that gcc
+	thinks might be used uninitialized.  Shuts up gcc warning.
+
+	* Src/DasherCore/DasherViewSquare.cpp, Src/DasherCore/DasherModel.cpp:
+	Removed unused variables.  Shuts up gcc warning.
+
+	* Src/Gtk2/accessibility.cc: #ifdef GNOME_SPEECH a variable that is
+	only used in that case.  Shuts up gcc warning.
+
+	* Src/DasherCore/LanguageModelling/MixtureLanguageModel.h: Remove
+	excess namespace qualifier.
+
+	* Src/DasherCore/DasherModel.cpp, Src/DasherCore/Alphabet/Alphabet.cpp,
+	Src/DasherCore/LanguageModelling/WordLanguageModel.cpp: Avoid
+	comparison between signed and unsigned integers.  Shuts up gcc warning.
+
+	* Src/DasherCore/LanguageModelling/DictLanguageModel.cpp,
+	Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp,
+	Src/DasherCore/LanguageModelling/WordLanguageModel.cpp,
+	Src/Common/IOstreamDasherEdit.cc, Src/DasherCore/DasherModel.cpp, 
+	Src/DasherCore/DasherNode.h, Src/DasherCore/DasherTypes.h:
+	Reorder member variables in initialization to follow the order in the
+	class definition.  Shuts up gcc warnings about initialization order.
+
 2005-06-12  David Ward <d.j.ward.94@gmail.com>
 
 	* remove non-standard C++ 
-		- gcc extension allows dynamic arrays, suggest this is switched off
+		- gcc extension allows dynamic arrays, suggest this is
+		  switched off
 
 2005-06-11  David Ward <d.j.ward.94@gmail.com>
 
@@ -15,30 +77,37 @@
 2005-05-22	David Ward <d.j.ward.94@gmail.com>
 
 	* New Alphabet directory for all the alphabet classes
-		- CCustomAlphabet functionality moved to CAlphabet and deleted CCustomAlphabet
+		- CCustomAlphabet functionality moved to CAlphabet and
+		  deleted CCustomAlphabet
 		- Nicer CAlphabet interface
-	 	
+
 2005-05-07	David Ward <d.j.ward.94@gmail.com>
 
 	* MAJOR changes to DasherCore
-		- Linux build temporarily broken - only minor fixes should be needed
+		- Linux build temporarily broken - only minor fixes should
+		  be needed
 		- DasherCore relatively stable - hence this checkin 
 		
-	* CDasherScreen interface is now entirely UTF8, rather than part Symbol, part string
+	* CDasherScreen interface is now entirely UTF8, rather than part
+	  Symbol, part string
 		- renamed DrawText to DrawString because of Win32 macros
 
 	* Win32 - dropping support for non-unicode build
 		- major clean up
-		- use a precompiled header for all frequently used windows headers 		
+		- use a precompiled header for all frequently used windows
+		  headers 		
 
 	* CDasherCore 
 		- simplify DasherNode children and clean up Push_Node
-		- children at index 0 are now valid children. So child-loops now look sensible i=0;i<ChildCount;i++
+		- children at index 0 are now valid children. So child-loops
+		  now look sensible i=0;i<ChildCount;i++
 	
 	* CAlphabet 
-		- used to be modified on the fly to add/remove the control symbol. Now the control symbol
-			always exists - DasherCore decides whether or not to use it
-		- potentially, we can now switch on/off control mode without restarting Dasher
+		- used to be modified on the fly to add/remove the control
+		  symbol. Now the control symbol always exists - DasherCore
+		  decides whether or not to use it
+		- potentially, we can now switch on/off control mode without
+		  restarting Dasher
 
 
 2005-04-25  David Ward <d.j.ward.94@gmail.com>
@@ -47,25 +116,25 @@
 		- removed dependency on Dasher-specific CAlphabet 
 
 	* The rendering of the mouse, mouse line and mouse position box are
-		now handled by the view, rather than DasherInterface or Platform.		
-		A few changes to CDasherInterface have been made - some functions
-		have been removed. See code comments.
+	  now handled by the view, rather than DasherInterface or Platform.
+	  A few changes to CDasherInterface have been made - some functions
+	  have been removed. See code comments.
 		
 	* Clean up DasherView classes - started implementing a push mechanism
-		that is view-driven rather than model-driven. Ditched the silly 'force' flag
-		on DasherNodes - this was created to stop small nodes initially flashing in 
-		and out of view. This has been solved another way.
+	  that is view-driven rather than model-driven. Ditched the silly
+	  'force' flag on DasherNodes - this was created to stop small nodes
+	  initially flashing in and out of view. This has been solved another
+	  way.
 		
-	* Win32 CDasherScreen now caches TextSize calls. This was previously taking
-		25% runtime, now its negligible	
-	
+	* Win32 CDasherScreen now caches TextSize calls. This was previously
+	  taking 25% runtime, now its negligible.
+
 2005-04-15  Iaki Larra�aga  <dooteo@euskalgnu.org>
 
 	* configure.in: Added "eu" (Basque) to ALL_LINGUAS.
 	* Data/Translations/training_basque_EU.txt: Added Basque tranining
 	  file.
 	* Data/system.rc/alphabet.basque.xml: Added Basque language support.
-	
 
 2005-04-14  David Ward <djw30@mrao.cam.ac.uk>
 
@@ -83,7 +152,7 @@
 	* Moved language model files to LanguageModelling directory
 	* Created CBigramLanguageModel
 	* Introduced pooled allocators for faster and more compact allocation
-		PPM language model now uses them for nodes and contexts
+	  PPM language model now uses them for nodes and contexts
 
 2005-04-04  Christian Rose  <menthos@menthos.com>
 
@@ -91,7 +160,7 @@
 
 2005-03-31  Steve Murphy  <murf@e-tools.com>
 
-        * configure.in: Added "rw" to ALL_LINGUAS.
+	* configure.in: Added "rw" to ALL_LINGUAS.
 
 2005-03-08  Matthew Garrett  <mjg59@srcf.ucam.org>
 
@@ -100,7 +169,7 @@
 	* Version 3.2.14
 	* Brown paper bag - wnck API has changed. Fixed.
 	* Version 3.2.15
-	
+
 2005-01-30  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Make autogen.sh do the right thing
@@ -112,19 +181,19 @@
 	* Fix up string length checking - avoid crashes when "Speak on stop"
 	  switched on
 	* Version 3.2.13
-	
+
 2005-01-25  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Fix a couple of crash bugs in the window-focus handling
 	* Make window choice available on non-accessible builds
-	
+
 2005-01-12  Matthew Garrett  <mjg59@srcf.ucam.org>
 	
 	* Make the build system work after autotools make my life miserable
 	  again.
 	* Add support for focusing windows from within Dasher
 	* Bump version to 3.2.12
-	
+
 2004-10-01  Abel Cheung  <maddog@linuxhall.org>
 
 	* configure.in: Added "mk" to ALL_LINGUAS.
@@ -158,12 +227,13 @@
 2004-08-20  Jayaradha  <njaya@redhat.com>
 
 	* configure.in: Added "ta" to ALL_LINGUAS
-2004-08-19  Chris Ball      <cjb@mrao.cam.ac.uk>
 
-    * Src/Gtk2/dasher.glade: Revert dasher.glade to a last-known-good
-      version, since new versions of glade-2 create code that's not
-      backwards-compatible with older versions of libglade.
-                
+2004-08-19  Chris Ball  <cjb@mrao.cam.ac.uk>
+
+	* Src/Gtk2/dasher.glade: Revert dasher.glade to a last-known-good
+	version, since new versions of glade-2 create code that's not
+	backwards-compatible with older versions of libglade.
+
 2004-08-16  Christian Rose  <menthos@menthos.com>
 
 	* configure.in: Added "bs" to ALL_LINGUAS.
@@ -181,14 +251,14 @@
 	* Switch to using gnome-vfs
 	* Add support for non-local files
 	* Clean up compiler warnings
-	
+
 2004-07-29  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* copy all on stop no longer causes the selection to change
 	* revamp the documentation build a little, make help actually work
 	* switch to the gnome-common autogen script
 	* fix a couple of stray linebreaks in glade files
-	
+
 2004-07-12  Pawan Chitrakar  <pawan@nplinux.org>
 
 	* configure.in: Added ne Nepali in ALL_LINGUAS
@@ -200,12 +270,13 @@
 2004-06-28  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Fix the configure script so that it doesn't drop out unnecessarily
-	
+
 2004-06-18  Mohammad DAMT  <mdamt@bisnisweb.com>
- 
-        * po/id.po: Added Indonesian translation by Ahmad Riza H Nst <rizahnst@eriagempita.co.id>
-        * configure.in (ALL_LINGUAS): Added "id" for Indonesian
- 
+
+	* po/id.po: Added Indonesian translation by
+	Ahmad Riza H Nst <rizahnst@eriagempita.co.id>
+	* configure.in (ALL_LINGUAS): Added "id" for Indonesian
+
 2004-06-09  Stanislav Brabec  <sbrabec@suse.cz>
 
 	* Data/system.rc/alphabet.czech.xml: Added support for Czech
@@ -227,7 +298,7 @@
 2004-05-31  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Fix configure.in so --with-gnome doesn't disable gnome support
-	
+
 2004-04-16  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Fix linking issue - should work with multiple versions of automake
@@ -236,28 +307,28 @@
 	* Don't complain about filesel_hide on startup
 	* Fix crash on changing alphabets with control mode enabled
 	* Fix libintl stuff - just use the glib support
-	
+
 2004-04-15  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Fix build on Solaris 10
 	* bump version number
-	
+
 2004-03-24  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Use older Gnome Speech if necessary
-	
+
 2004-03-23  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Readded pre-2.4 compatibility code
-	
+
 2004-03-22  Guntupalli Karunakar  <karunakar@freedomink.org>
 
-        * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
+	* configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
 
 2004-03-22  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* bump version number
-	
+
 2004-03-21  Mugurel Tudor  <mugurelu@go.ro>
 
 	* configure.in: Added "ro" to ALL_LINGUAS
@@ -267,8 +338,8 @@
 	* configure.in: Added "ru" "tr" "zh_CN" "zh_TW" to ALL_LINGUAS.
 
 2004-03-20  Evandro Fernandes Giovanini  <evandrofg@ig.com.br>
- 
-        * configure.in(ALL_LINGUAS): Added "pt_BR"
+
+	* configure.in(ALL_LINGUAS): Added "pt_BR"
 	(Brazilian Portuguese).
 
 2004-03-16  Sayamindu Dasgupta <sayamindu@clai.net>
@@ -280,7 +351,7 @@
 	* Fix the panel finding code - applications don't have 
 	  SPI_STATE_ENABLED
 	* Bump version number to 3.2.7
-	
+
 2004-03-12  Dafydd Harries  <daf@muse.19inch.net>
 
 	* configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
@@ -293,14 +364,14 @@
 
 	* Make sure that gettext is initialised before the UI is built
 	* Bump version number to 3.2.6 for a brown paper bag release
-	
+
 2004-03-08  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Remove the kludge that strips out some widgets - according to the
 	  ATK folks it's a bug in filechooser, and that's been sorted
 	  anyway now
 	* Fix a couple of minor translation bugs
-	
+
 2004-03-07  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Be somewhat more paranoid about what widgets we examine, since the
@@ -309,12 +380,12 @@
 	  fix a crasher bug that was hidden by that	
 	* Use gtkfilechooser
 	* Bumped version number to 3.2.5
-	
+
 2004-03-06  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Check CORBA return sanely, so no crash if we're unable to find
 	  a voice
-	
+
 2004-02-26  Sanlig Badral  <badral@openmn.org>
 
 	* /Data/Translation: Added Mongolian alphabet schema.
@@ -342,7 +413,7 @@
 	* Added Finnish to ALL_LINGUAS
 
 2004-02-22  M�ətin Əmirov  <metin@karegen.com>
-                                                                                
+
 	* configure.in: Added "az" to ALL_LINGUAS.
 
 2004-02-21 Hasbullah Bin Pit <sebol@my-penguin.org>
@@ -352,7 +423,7 @@
 2004-02-21  Matthew Garrett  <mjg59@srcf.ucam.og>
 
 	* Sort out strange visuals stuff - should work on kdrive now
-	
+
 2004-02-21  Christian Rose  <menthos@menthos.com>
 
 	* configure.in: Added "en_CA" to ALL_LINGUAS.
@@ -366,18 +437,18 @@
 	* Don't generate bogus colour numbers if not in advanced colour mode
 
 2004-02-11  Arafat Medini  <lumina@silverpen.de>
-                                                                                
-        * configure.in: Added Arabic locale "ar" to ALL_LINGUAS.
+
+	* configure.in: Added Arabic locale "ar" to ALL_LINGUAS.
 
 2004-02-11  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Don't assume that symbols are all one character long when deleting
 	text
-	
+
 2004-02-09  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* Don't include popt.h except when needed
-	
+
 2004-02-08  Matthew Garrett  <mjg59@srcf.ucam.org>
 
 	* updated the documentation system 
@@ -402,10 +473,10 @@
 
 	* fix up entering text into arbitrary text widgets via the
 	accessibility interface
-	
+
 2004-02-01  Robert Sedak  <robert.sedak@sk.htnet.hr>
 
-        * configure.in: Added "hr" (Croatian) to ALL_LINGUAS.
+	* configure.in: Added "hr" (Croatian) to ALL_LINGUAS.
 
 2004-02-01  Marcel Telka  <marcel@telka.sk>
 
@@ -459,7 +530,7 @@
 	* Remove weird focusing behaviour that broke stuff
 	* Don't attempt to get accessibility information if we've focused 
 	ourselves
-	
+
 2004-04-14  Matthew Garrett <mjg59@srcf.ucam.org>
 
 	* 3.2.2 - "It's got LASER POWERED FLYING LETTERS that ATTACK
@@ -478,7 +549,7 @@
 	* Significantly saner locale handling
 	* Initialise speech properly
 	* CONFORM TO THE SPELLING PREFERENCES OF OUR US OVERLORDS
-	
+
 2004-01-11  Kostas Papadimas <pkst@gnome.org>
 
 	* configure.in: Added "el" (Greek) to ALL_LINGUAS.
Index: Makefile.am
===================================================================
RCS file: /cvs/gnome/dasher/Makefile.am,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile.am
--- Makefile.am	16 Apr 2004 15:22:20 -0000	1.10
+++ Makefile.am	22 Jul 2005 20:49:49 -0000
@@ -1,6 +1,35 @@
-distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper' | grep -v '^\./share/gnome/help'
-
 SUBDIRS = Src Data po Doc
 
-EXTRA_DIST = NEWS MAINTAINERS intltool-merge.in intltool-extract.in intltool-update.in
-DISTCLEANFILES = libtool.old intltool-merge intltool-extract intltool-update
+distuninstallcheck_listfiles = \
+		find . -type f -print | \
+		grep -v '^\./var/scrollkeeper' | \
+		grep -v '^\./share/gnome/help'
+
+EXTRA_DIST = \
+		NEWS \
+		MAINTAINERS \
+		intltool-merge.in \
+		intltool-extract.in \
+		intltool-update.in
+
+DISTCLEANFILES = \
+		intltool-merge \
+		intltool-extract \
+		intltool-update
+
+MAINTAINERCLEANFILES = \
+		$(srcdir)/INSTALL \
+		$(srcdir)/aclocal.m4 \
+		$(srcdir)/autoscan.log \
+		$(srcdir)/compile \
+		$(srcdir)/config.guess \
+		$(srcdir)/config.h.in \
+		$(srcdir)/config.sub \
+		$(srcdir)/configure \
+		$(srcdir)/configure.scan \
+		$(srcdir)/depcomp \
+		$(srcdir)/install-sh \
+		$(srcdir)/ltmain.sh \
+		$(srcdir)/missing \
+		$(srcdir)/mkinstalldirs \
+		`find "$(srcdir)" -type f -name Makefile.in -print`
Index: README
===================================================================
RCS file: /cvs/gnome/dasher/README,v
retrieving revision 1.13
diff -u -p -r1.13 README
--- README	31 May 2004 17:23:14 -0000	1.13
+++ README	22 Jul 2005 20:49:49 -0000
@@ -1,8 +1,7 @@
-Dasher version 3.2.4
---------------------
+Dasher
+------
 
-This is the full release of Dasher 3.2.4. Documentation may be found
-in Doc/
+This is the full release of Dasher 3.2. Documentation may be found in Doc/
 
 Dasher is a zooming predictive text entry system, designed for situations
 where keyboard input is impractical (for instance, accessibility or PDAs). It
@@ -18,14 +17,18 @@ Dasher includes some alphabets which req
 have installed; for example, for the International Phonetic Alphabet, Korean
 and Hiragana (Japanese).  We aren't legally allowed to distribute a font for
 the IPA, but you can download one yourself from:  
-   <http://www.sil.org/computing/fonts/encore-ipa.html>.
 
-We'd appreciate any feedback / bug reports / patches - please send
+  http://www.sil.org/computing/fonts/encore-ipa.html
+
+We would appreciate any feedback / bug reports / patches - please send
 them to dasher@mrao.cam.ac.uk
 
-You can find the Dasher website at http://www.inference.phy.cam.ac.uk/dasher
+You can find the Dasher website at:
+
+  http://www.inference.phy.cam.ac.uk/dasher
+
 
-Yours,
+Regards,
 
 The Dasher Team
 
Index: configure.in
===================================================================
RCS file: /cvs/gnome/dasher/configure.in,v
retrieving revision 1.94
diff -u -p -r1.94 configure.in
--- configure.in	26 Jun 2005 08:16:33 -0000	1.94
+++ configure.in	22 Jul 2005 20:49:49 -0000
@@ -1,6 +1,8 @@
-AC_PREREQ(2.50)
+AC_PREREQ(2.56)
 AC_INIT([dasher],[3.2.15],[dasher@mrao.cam.ac.uk])
-AM_INIT_AUTOMAKE
+AC_REVISION([$Id: configure.in,v])
+AC_CONFIG_SRCDIR([Src/main.cc])
+AM_INIT_AUTOMAKE([gnu check-news])
 AM_MAINTAINER_MODE
 
 AC_PROG_MAKE_SET
@@ -19,28 +21,34 @@ AM_GLIB_GNU_GETTEXT
 
 AC_PROG_CXX
 
-WITHGNOME=true;
-WITHSPEECH=true;
-WITHA11Y=true;
-WITHGTK2=true;
-
 AC_CHECK_LIB(expat, XML_Parse,, AC_MSG_ERROR([Expat library not found.]))
 
+WITHGNOME=true
+WITHSPEECH=true
+WITHQTE=false
+WITHGPE=false
+WITHA11Y=true
+WITHGTK2=true
+
 AC_ARG_WITH([gnome],
-	 AC_HELP_STRING([--without-gnome],[build without Gnome support (default is YES)]), 
-	[WITHGNOME=false])
-AC_ARG_WITH([qte],
-	 AC_HELP_STRING([--with-qte],[build with QTE support (default is NO)]), 
-	[WITHQTE=true],[WITHQTE=false])
+	 AC_HELP_STRING([--with-gnome],[build with Gnome support (default is YES)]), 
+	[WITHGNOME=true],[WITHGNOME=false])
 
 AC_ARG_WITH([speech],
-	 AC_HELP_STRING([--without-speech],[build without speech support (default is YES)]), [WITHSPEECH=false])
+	AC_HELP_STRING([--with-speech],[build with speech support (default is YES)]),
+	[WITHSPEECH=true],[WITHSPEECH=false])
+
+AC_ARG_WITH([qte],
+	AC_HELP_STRING([--with-qte],[build with QTE support (default is NO)]), 
+	[WITHQTE=true],[WITHQTE=false])
 
 AC_ARG_WITH([gpe],
-	 AC_HELP_STRING([--with-gpe],[build with gpe support (default is NO)]), [WITHGPE=true],[WITHGPE=false])
+	AC_HELP_STRING([--with-gpe],[build with gpe support (default is NO)]),
+	[WITHGPE=true],[WITHGPE=false])
 
 AC_ARG_WITH([a11y],
-	 AC_HELP_STRING([--without-a11y],[build without support for the GNOME accessibility library(default is YES)]), [WITHA11Y=false])
+	AC_HELP_STRING([--with-a11y],[build with support for the GNOME accessibility library (default is YES)]),
+	[WITHA11Y=true], [WITHA11Y=false])
 
 if [[ x"$WITHGTK2" = xtrue ]]
 then 
@@ -157,19 +165,35 @@ AM_CONDITIONAL(WITH_GPE, test x$WITHGPE 
 
 AC_SUBST(GTK2_CFLAGS)
 AC_SUBST(GTK2_LIBS)
+
 AC_SUBST(GCONF_CFLAGS)
 AC_SUBST(GCONF_LIBS)
 
-AC_OUTPUT([Makefile Src/Common/Makefile Src/Qt/Makefile Src/Gtk2/Makefile Src/DasherCore/Makefile Src/DasherCore/Alphabet/Makefile Src/DasherCore/LanguageModelling/Makefile Src/Makefile Data/Makefile Data/Translations/Makefile Data/system.rc/Makefile Data/Help/Makefile Data/Help/Gnome/Makefile Data/Help/Gnome/C/Makefile Data/Help/Gnome/eu/Makefile Doc/Makefile po/Makefile.in ],[])
-
-if grep "^sys_lib_search_path_spec.*" libtool >/dev/null ; then
-AC_MSG_RESULT(patching libtool to fix HIDEOUS BREAKAGE)
-    test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
-    sed -e s/^hardcode_direct.*$/hardcode_direct=yes/g libtool | \
-    sed -e s/^hardcode_minus_L.*$/hardcode_minus_L=yes/g | \
-    sed -e s/^hardcode_shlibpath_var.*$/hardcode_shlibpath_var=no/g >libtool.new
-    mv libtool.new libtool
-fi
-
-
-
+if [[ x"$WITHGPE" = xtrue ]]; then
+	SETTINGS_LIBS="-lgpewidget -lXsettings-client -lXsettings"
+else
+	SETTINGS_CFLAGS=$GCONF_CFLAGS
+	SETTINGS_LIBS=$GCONF_LIBS
+fi
+AC_SUBST(SETTINGS_CFLAGS)
+AC_SUBST(SETTINGS_LIBS)
+
+
+AC_CONFIG_FILES([Makefile
+		 Src/Makefile
+		 Src/Common/Makefile
+		 Src/DasherCore/Makefile
+		 Src/DasherCore/Alphabet/Makefile
+		 Src/DasherCore/LanguageModelling/Makefile
+		 Src/Gtk2/Makefile
+		 Src/Qt/Makefile
+		 Data/Makefile
+		 Data/Translations/Makefile
+		 Data/system.rc/Makefile
+		 Data/Help/Makefile
+		 Data/Help/Gnome/Makefile
+		 Data/Help/Gnome/C/Makefile
+		 Data/Help/Gnome/eu/Makefile
+		 Doc/Makefile
+		 po/Makefile.in])
+AC_OUTPUT
Index: Src/Makefile.am
===================================================================
RCS file: /cvs/gnome/dasher/Src/Makefile.am,v
retrieving revision 1.24
diff -u -p -r1.24 Makefile.am
--- Src/Makefile.am	26 Jun 2005 08:16:34 -0000	1.24
+++ Src/Makefile.am	22 Jul 2005 20:49:49 -0000
@@ -6,19 +6,13 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEF
 
 bin_PROGRAMS = dasher
 
-if WITH_GPE
-SETTINGS_LIBS = -lgpewidget -lXsettings-client -lXsettings
-else
-SETTINGS_CFLAGS = $(GCONF_CFLAGS)
-SETTINGS_LIBS = $(GCONF_LIBS)
-endif
-
 if DOGTK2
 
 SUBDIRS = DasherCore Gtk2 Common
 dasher_SOURCES = main.cc
 
 AM_CXXFLAGS = -O2 $(GTK2_CFLAGS) $(SETTINGS_CFLAGS) $(gnome_speech_CFLAGS) $(gnome_a11y_CFLAGS) $(glade_CFLAGS) $(gnome_CFLAGS) $(gthread_CFLAGS) $(wnck_CFLAGS) -I$(srcdir)/Gtk2/ -I$(srcdir)/DasherCore/ -I$(srcdir)/../intl -I$(top_srcdir)/intl -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\" -DPROGDATA=\"$(pkgdatadir)\"
+
 dasher_LDADD = $(GTK2_LIBS) $(SETTINGS_LIBS) $(gnome_speech_LIBS) $(gnome_a11y_LIBS) $(glade_LIBS) $(gnome_LIBS) $(gthread_LIBS) $(wnck_LIBS) -lexpat $(X_LIBS) $(GPELIB) Gtk2/libdashergtk.a DasherCore/libdashercore.a DasherCore/LanguageModelling/libdasherlm.a DasherCore/Alphabet/libdasheralphabet.a
 
 endif
Index: Src/main.cc
===================================================================
RCS file: /cvs/gnome/dasher/Src/main.cc,v
retrieving revision 1.25.4.1
diff -u -p -r1.25.4.1 main.cc
--- Src/main.cc	2 Jul 2005 16:24:12 -0000	1.25.4.1
+++ Src/main.cc	22 Jul 2005 20:49:49 -0000
@@ -129,9 +129,11 @@ main(int argc, char *argv[])
 #ifdef WITH_GPE
   xml = glade_xml_new(PROGDATA"/dashergpe.glade", NULL, NULL);
 #else
-  xml = glade_xml_new(PROGDATA"/dasher/dasher.glade", NULL, NULL);
+  xml = glade_xml_new(PROGDATA"/dasher.glade", NULL, NULL);
   the_gconf_client = gconf_client_get_default();
 #endif
+  if (!xml)
+    return 1;
 
 
 #if (defined GNOME_SPEECH || defined GNOME_A11Y)
Index: Src/Common/IOstreamDasherEdit.cc
===================================================================
RCS file: /cvs/gnome/dasher/Src/Common/IOstreamDasherEdit.cc,v
retrieving revision 1.3
diff -u -p -r1.3 IOstreamDasherEdit.cc
--- Src/Common/IOstreamDasherEdit.cc	13 Nov 2003 04:26:52 -0000	1.3
+++ Src/Common/IOstreamDasherEdit.cc	22 Jul 2005 20:49:49 -0000
@@ -11,7 +11,11 @@
 #include <iconv.h>
 
 IOstreamDasherEdit::IOstreamDasherEdit( CDasherInterface *_interface, std::ostream* os )
-  : Dasher::CDashEditbox(), outstream(os), flush_count(0), interface( _interface )
+  :
+  Dasher::CDashEditbox(),
+  flush_count(0),
+  interface(_interface),
+  outstream(os)
 {
   enc = 1;
   snprintf( encstr, 255, "ISO-8859-%d", enc);
@@ -73,6 +77,9 @@ void IOstreamDasherEdit::output(symbol S
   
   std::string csymbol( cb, 256-outb );
   
+  delete cb;
+  delete ib;
+
   *outstream << csymbol;
 }
 
Index: Src/DasherCore/DasherInterface.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/Attic/DasherInterface.cpp,v
retrieving revision 1.53
diff -u -p -r1.53 DasherInterface.cpp
--- Src/DasherCore/DasherInterface.cpp	1 Jul 2005 08:41:01 -0000	1.53
+++ Src/DasherCore/DasherInterface.cpp	22 Jul 2005 20:49:49 -0000
@@ -129,7 +129,7 @@ void CDasherInterface::CreateDasherModel
 	delete m_pDasherModel;
       }
 
-      CDasherModel::LanguageModelID NewLanguageModelID;
+      CDasherModel::LanguageModelID NewLanguageModelID = CDasherModel::idPPM;
 
       switch( m_LanguageModelID ) {
       case 0:
Index: Src/DasherCore/DasherModel.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/DasherModel.cpp,v
retrieving revision 1.46
diff -u -p -r1.46 DasherModel.cpp
--- Src/DasherCore/DasherModel.cpp	14 Jun 2005 14:56:47 -0000	1.46
+++ Src/DasherCore/DasherModel.cpp	22 Jul 2005 20:49:49 -0000
@@ -28,10 +28,18 @@ using namespace std;
 
 CDasherModel::CDasherModel(const CAlphabet* pAlphabet, CDashEditbox* pEditbox, LanguageModelID idLM, CLanguageModelParams *_params,
 						   bool Dimensions, bool Eyetracker, bool Paused)
-  : m_pcAlphabet(pAlphabet), m_pEditbox(pEditbox) ,
-	 m_Dimensions(Dimensions),  m_Eyetracker(Eyetracker),  m_Paused(Paused), 
-	 m_Root(0), m_iNormalization(1<<16),	m_uniform(50) , m_pLanguageModel(NULL),
-    m_bControlMode(false), m_bAdaptive(true)
+  :
+  m_pEditbox(pEditbox) ,
+  m_pLanguageModel(NULL),
+  m_pcAlphabet(pAlphabet),
+  m_Root(0),
+  m_Dimensions(Dimensions),
+  m_Eyetracker(Eyetracker),
+  m_Paused(Paused), 
+  m_bAdaptive(true),
+  m_uniform(50),
+  m_iNormalization(1<<16),
+  m_bControlMode(false)
 {
 
   // Convert the full alphabet to a symbolic representation for use in the language model
@@ -48,6 +56,9 @@ CDasherModel::CDasherModel(const CAlphab
   case idPPM:
     m_pLanguageModel = new CPPMLanguageModel(alphabet, _params);
     break;
+  case idBigram:
+    m_pLanguageModel = NULL; // FIXME
+    break;
   case idWord:
     m_pLanguageModel = new CWordLanguageModel(alphabet, _params);
     break; 
@@ -846,7 +857,7 @@ void CDasherModel::GetProbs(CLanguageMod
   int iSymbols = m_pcAlphabet->GetNumberSymbols(); // note that this includes the control node and the root node
 
 	// Number of text symbols, for which the language model gives the distribution
-	int iTextSymbols = m_pcAlphabet->GetNumberTextSymbols();
+  // int iTextSymbols = m_pcAlphabet->GetNumberTextSymbols();
 
 	NewSymbols.resize(iSymbols);
 //	Groups.resize(iSymbols);
@@ -880,19 +891,19 @@ void CDasherModel::GetProbs(CLanguageMod
 
 #if _DEBUG
 	int iTotal = 0;
-	for( int k=0; k < Probs.size(); ++k )
+	for(unsigned int k(0); k < Probs.size(); ++k)
 		iTotal += Probs[k];
 	DASHER_ASSERT(iTotal == nonuniform_norm);
 #endif
 
-	for( int k=1; k < Probs.size(); ++k )
+	for(unsigned int k(1); k < Probs.size(); ++k)
 		Probs[k] += uniform_add;
 
 	Probs.push_back( control_space );
 
 #if _DEBUG
 	iTotal = 0;
-	for( int k=0; k < Probs.size(); ++k )
+	for(unsigned int k(0); k < Probs.size(); ++k)
 		iTotal += Probs[k];
 //	DASHER_ASSERT(iTotal == iNorm);
 #endif
@@ -943,7 +954,7 @@ CDasherModel::CTrainer::CTrainer(CDasher
 
 void CDasherModel::CTrainer::Train(const std::vector<symbol>& vSymbols)
 {
-	for (int i=0; i<vSymbols.size() ; i++)
+	for (unsigned int i=0; i<vSymbols.size() ; i++)
 		m_DasherModel.m_pLanguageModel->LearnSymbol(m_Context,vSymbols[i]);
 }
 
@@ -1137,7 +1148,7 @@ void CDasherModel::Recursive_Push_Node(C
 	if ( iDepth == 0 )
 		return;
 
-	for (int i=0; i< pNode->ChildCount(); i++) 
+	for (unsigned int i=0; i< pNode->ChildCount(); i++) 
 	{
 		Recursive_Push_Node(pNode->Children()[i],iDepth-1);
 	}
Index: Src/DasherCore/DasherNode.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/DasherNode.cpp,v
retrieving revision 1.16
diff -u -p -r1.16 DasherNode.cpp
--- Src/DasherCore/DasherNode.cpp	21 May 2005 20:49:36 -0000	1.16
+++ Src/DasherCore/DasherNode.cpp	22 Jul 2005 20:49:49 -0000
@@ -100,8 +100,7 @@ void CDasherNode::OrphanChild(CDasherNod
 {
 	DASHER_ASSERT ( Children() ) ;
 
-	int i; 
-	for (i=0;i< ChildCount(); i++) 
+	for (unsigned int i(0);i< ChildCount(); i++) 
 	{
 		if ( Children()[i] != pChild )
 		{
@@ -122,10 +121,9 @@ void CDasherNode::DeleteNephews(int iChi
 {
 	DASHER_ASSERT ( Children() ) ;
 
-	int i; 
-	for (i=0;i< ChildCount(); i++) 
+	for (unsigned int i(0);i< ChildCount(); i++) 
 	{
-		if (i != iChild)
+		if (i != (unsigned int)iChild)
 		{
 			Children()[i]->Delete_children();
 		}
@@ -140,7 +138,7 @@ void CDasherNode::Delete_children() 
 {
 	if (m_ppChildren) 
 	{
-		for (int i=0;i<m_iChildCount;i++) 
+		for (unsigned int i(0);i<m_iChildCount;i++) 
 		{
 		     m_ppChildren[i]->Delete_children();
 		     delete m_ppChildren[i];
Index: Src/DasherCore/DasherNode.h
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/DasherNode.h,v
retrieving revision 1.20
diff -u -p -r1.20 DasherNode.h
--- Src/DasherCore/DasherNode.h	21 May 2005 20:49:36 -0000	1.20
+++ Src/DasherCore/DasherNode.h	22 Jul 2005 20:49:49 -0000
@@ -120,10 +120,21 @@ using namespace Opts;
 /////////////////////////////////////////////////////////////////////////////
 
 inline CDasherNode::CDasherNode(const CDasherModel& dashermodel, CDasherNode* pParent,symbol Symbol, int iphase, ColorSchemes ColorScheme,int ilbnd,int ihbnd,CLanguageModel *lm, bool ControlChild, int Colour=-1, ControlTree *controltree=0)
-	:  m_DasherModel(dashermodel), m_iLbnd(ilbnd), m_iHbnd(ihbnd), 
-	m_iChildCount(0), m_bAlive(true), m_bControlChild(ControlChild), m_bSeen(false), 
-	m_ColorScheme(ColorScheme), m_iPhase(iphase), m_iColour(Colour), m_Symbol(Symbol), 
-	m_pLanguageModel(lm), m_ppChildren(0), m_pParent(pParent), m_Context(NULL), 
+	:
+	m_iLbnd(ilbnd), m_iHbnd(ihbnd), 
+	m_Symbol(Symbol), 
+	m_ppChildren(NULL),
+	m_iChildCount(0),
+	m_bAlive(true),
+	m_bControlChild(ControlChild),
+	m_bSeen(false), 
+	m_ColorScheme(ColorScheme),
+	m_iPhase(iphase),
+	m_iColour(Colour),
+	m_DasherModel(dashermodel),
+	m_pLanguageModel(lm),
+	m_Context(0), 
+	m_pParent(pParent),
 	m_controltree(controltree)
 {
 
Index: Src/DasherCore/DasherView.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/DasherView.cpp,v
retrieving revision 1.18
diff -u -p -r1.18 DasherView.cpp
--- Src/DasherCore/DasherView.cpp	1 Jul 2005 08:41:01 -0000	1.18
+++ Src/DasherCore/DasherView.cpp	22 Jul 2005 20:49:49 -0000
@@ -16,9 +16,19 @@ using namespace Dasher;
 /////////////////////////////////////////////////////////////////////////////
 
 CDasherView::CDasherView(CDasherScreen* DasherScreen, CDasherModel& DasherModel, Opts::ScreenOrientations Orientation, bool ColourMode)
-  : ScreenOrientation(Orientation), ColourMode(ColourMode), m_pScreen(DasherScreen), m_DasherModel(DasherModel),
-  m_bDrawMouse(false),m_bDrawMouseLine(false),m_bDrawKeyboard(false),m_iDrawMousePosBox(0),
-    m_iMousePosDist(50), m_iTruncation(0), m_iTruncationType(2), m_pInput(0)
+  :
+  ScreenOrientation(Orientation),
+  ColourMode(ColourMode),
+  m_iTruncation(0),
+  m_iTruncationType(2),
+  m_pScreen(DasherScreen),
+  m_DasherModel(DasherModel),
+  m_pInput(0),
+  m_bDrawMouse(false),
+  m_bDrawMouseLine(false),
+  m_bDrawKeyboard(false),
+  m_iDrawMousePosBox(0),
+  m_iMousePosDist(50)
 {
 	// myint ySum, ySumCounter=0, yFilterTimescale=2, yAutoOffset=0, ySigBiasPixels=0, ySigBiasPercentage=0;   
 }
Index: Src/DasherCore/DasherViewSquare.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/DasherViewSquare.cpp,v
retrieving revision 1.46
diff -u -p -r1.46 DasherViewSquare.cpp
--- Src/DasherCore/DasherViewSquare.cpp	1 Jul 2005 08:41:01 -0000	1.46
+++ Src/DasherCore/DasherViewSquare.cpp	22 Jul 2005 20:49:49 -0000
@@ -120,9 +120,7 @@ void CDasherViewSquare::RenderGroups(CDa
 	if (!Children)
 		return;
 	int current=0;
-	int lower=0;
-	int upper=0;
-    std::string Label="";
+	std::string Label="";
 
 	myint range=y2-y1;
 	
@@ -263,7 +261,7 @@ int CDasherViewSquare::RenderNode(const 
 	  int iSpacing( iDasherY / 128 ); // FIXME - assuming that this is an integer below
 
 
-	  int iXStart;
+	  int iXStart = 0;
 	  
 	  switch( iTruncationType ) {
 	  case 0:
@@ -377,7 +375,7 @@ int CDasherViewSquare::RenderNode(const 
 	
 	myint iDasherAnchorX( iDasherSize );
 
-	myint iDasherAnchorY( (std::min(y2 , DasherVisibleMaxY()) + std::max(y1, DasherVisibleMinY()))/2 );
+	//myint iDasherAnchorY( (std::min(y2 , DasherVisibleMaxY()) + std::max(y1, DasherVisibleMinY()))/2 );
 	
 	std::string sDisplayText;
 	
@@ -477,16 +475,14 @@ void CDasherViewSquare::Screen2Dasher( s
   // CanvasY having no sane relationship with the actual width and
   // height of the canvas
   
-  screenint iScreenCanvasMinX;
-  screenint iScreenCanvasMaxX;
-  screenint iScreenCanvasMinY;
-  screenint iScreenCanvasMaxY;
+  screenint iScreenCanvasMinX = 0;
+  screenint iScreenCanvasMaxX = 0;
+  screenint iScreenCanvasMinY = 0;
+  screenint iScreenCanvasMaxY = 0;
 
  switch (ScreenOrientation) {
  case (Dasher::Opts::LeftToRight):
-   iScreenCanvasMinX = 0;
    iScreenCanvasMaxX = iCanvasWidth;
-   iScreenCanvasMinY = 0;
    iScreenCanvasMaxY = iCanvasHeight;
 
    // Chose iDasherWidth so that the cross hair is in the centre of the screen, even though we have a margin down one side
@@ -496,23 +492,19 @@ void CDasherViewSquare::Screen2Dasher( s
  case (Dasher::Opts::RightToLeft):
    iScreenCanvasMinX = iScreenWidth - iCanvasWidth;
    iScreenCanvasMaxX = iScreenWidth;
-   iScreenCanvasMinY = 0;
    iScreenCanvasMaxY = iCanvasHeight;
 
    //   iDasherWidth = (iDasherHeight * (iScreenCanvasMaxX - iScreenCanvasMinX)) / (2*(iScreenCanvasMaxX - iScreenCanvasMinX) - iScreenWidth);
    
    break;
  case (Dasher::Opts::TopToBottom):
-   iScreenCanvasMinX = 0;
    iScreenCanvasMaxX = iScreenWidth;
-   iScreenCanvasMinY = 0;
    iScreenCanvasMaxY = iScreenHeight * iCanvasWidth / iScreenWidth; // URGH
 
    //   iDasherWidth = (iDasherHeight * (iScreenCanvasMaxY - iScreenCanvasMinY)) / (2*(iScreenCanvasMaxY - iScreenCanvasMinY) - iScreenHeight);
 
    break;
  case (Dasher::Opts::BottomToTop):
-   iScreenCanvasMinX = 0;
    iScreenCanvasMaxX = iScreenWidth;
    iScreenCanvasMinY = iScreenHeight - iScreenHeight * iCanvasWidth / iScreenWidth; // Still URGH
    iScreenCanvasMaxY = iScreenHeight; 
@@ -549,7 +541,7 @@ void CDasherViewSquare::Screen2Dasher( s
    break;
  }
 
- iDasherX = ixmap( iDasherX / static_cast<double>( DasherModel().DasherY() ) ) * DasherModel().DasherY();
+ iDasherX = myint(ixmap( iDasherX / static_cast<double>( DasherModel().DasherY() ) ) * DasherModel().DasherY());
  iDasherY = m_ymap.unmap( iDasherY );
 
 }
@@ -560,7 +552,7 @@ void CDasherViewSquare::Dasher2Screen( m
 
   // Apply the nonlinearities
 
-  iDasherX = xmap( iDasherX / static_cast<double>( DasherModel().DasherY() ) ) * DasherModel().DasherY();
+  iDasherX = myint(xmap( iDasherX / static_cast<double>( DasherModel().DasherY() ) ) * DasherModel().DasherY());
   iDasherY = m_ymap.map( iDasherY );
 
   // Things we're likely to need:
@@ -582,16 +574,14 @@ void CDasherViewSquare::Dasher2Screen( m
   // CanvasY having no sane relationship with the actual width and
   // height of the canvas
   
-  screenint iScreenCanvasMinX;
-  screenint iScreenCanvasMaxX;
-  screenint iScreenCanvasMinY;
-  screenint iScreenCanvasMaxY;
+  screenint iScreenCanvasMinX = 0;
+  screenint iScreenCanvasMaxX = 0;
+  screenint iScreenCanvasMinY = 0;
+  screenint iScreenCanvasMaxY = 0;
 
  switch (ScreenOrientation) {
  case (Dasher::Opts::LeftToRight):
-   iScreenCanvasMinX = 0;
    iScreenCanvasMaxX = iCanvasWidth;
-   iScreenCanvasMinY = 0;
    iScreenCanvasMaxY = iCanvasHeight;
 
    //   iDasherWidth = (iDasherHeight * (iScreenCanvasMaxX - iScreenCanvasMinX)) / (2*(iScreenCanvasMaxX - iScreenCanvasMinX) - iScreenWidth);
@@ -600,21 +590,17 @@ void CDasherViewSquare::Dasher2Screen( m
  case (Dasher::Opts::RightToLeft):
    iScreenCanvasMinX = iScreenWidth - iCanvasWidth;
    iScreenCanvasMaxX = iScreenWidth;
-   iScreenCanvasMinY = 0;
    iScreenCanvasMaxY = iCanvasHeight;
 
    //   iDasherWidth = (iDasherHeight * (iScreenCanvasMaxX - iScreenCanvasMinX)) / (2*(iScreenCanvasMaxX - iScreenCanvasMinX) - iScreenWidth);
    break;
  case (Dasher::Opts::TopToBottom):
-   iScreenCanvasMinX = 0;
    iScreenCanvasMaxX = iScreenWidth;
-   iScreenCanvasMinY = 0;
    iScreenCanvasMaxY = iScreenHeight * iCanvasWidth / iScreenWidth; // URGH 
 
    //  iDasherWidth = (iDasherHeight * (iScreenCanvasMaxY - iScreenCanvasMinY)) / (2*(iScreenCanvasMaxY - iScreenCanvasMinY) - iScreenHeight);
    break;
  case (Dasher::Opts::BottomToTop):
-   iScreenCanvasMinX = 0;
    iScreenCanvasMaxX = iScreenWidth;
    iScreenCanvasMinY = iScreenHeight - iScreenHeight * iCanvasWidth / iScreenWidth; // Still URGH
    iScreenCanvasMaxY = iScreenHeight;
@@ -667,7 +653,7 @@ myint CDasherViewSquare::DasherVisibleMa
 /// The maximum Dasher X co-ordinate which will be visible
 
 myint CDasherViewSquare::DasherVisibleMaxX() {
-  return ixmap( 1.0 ) * DasherModel().DasherY();
+  return myint(ixmap( 1.0 ) * DasherModel().DasherY());
 }
 
 /// Convert raw Dasher co-ordinates to the equivalent 1D mode position
@@ -692,13 +678,13 @@ void CDasherViewSquare::Dasher2OneD( myi
       
       if (yb>1) {
 	x=0;
-	iDasherY=double(DasherModel().DasherOY());
+	iDasherY=myint(DasherModel().DasherOY());
       }
       else { 
 	angle=(yb*3.14159)*(yb+(1-yb)*(ybackrange/yforwardrange/ellipse_eccentricity));
 
 	x=(-sin(angle)*circlesize/2)*ellipse_eccentricity;
-	iDasherY=-(1+cos(angle))*circlesize/2+DasherModel().DasherOY();
+	iDasherY=myint(-(1+cos(angle))*circlesize/2+DasherModel().DasherOY());
       }
     }
     else if (disty <-(yforwardrange)) {
@@ -707,24 +693,24 @@ void CDasherViewSquare::Dasher2OneD( myi
       
       if (yb>1) {
 	x=0;
-	iDasherY=double(DasherModel().DasherOY());
+	iDasherY=myint(DasherModel().DasherOY());
       }   
       else {
 	angle=(yb*3.14159)*(yb+(1-yb)*(ybackrange/yforwardrange/ellipse_eccentricity));
 	
 	x=(-sin(angle)*circlesize/2)*ellipse_eccentricity;
-	iDasherY=(1+cos(angle))*circlesize/2+DasherModel().DasherOY();
+	iDasherY=myint((1+cos(angle))*circlesize/2+DasherModel().DasherOY());
       }   
     }
     
     else {
       angle=((disty*3.14159/2)/yforwardrange);
       x=cos(angle)*circlesize;
-      iDasherY=-sin(angle)*circlesize+DasherModel().DasherOY();
+      iDasherY=myint(-sin(angle)*circlesize+DasherModel().DasherOY());
     }
     x=DasherModel().DasherOX()-x;
 
-    iDasherX = x;
+    iDasherX = myint(x);
 }
 
 /// Convert raw Dasher co-ordinates to eyetracker position
@@ -772,7 +758,7 @@ void CDasherViewSquare::Dasher2Eyetracke
 
   double dYGain( 1.1 );
 
-  iDasherY = (iDasherY - iDasherOY) * dYGain + iDasherOY;
+  iDasherY = myint((iDasherY - iDasherOY) * dYGain + iDasherOY);
 
   // Truncate the Y range, as behaviour isn't well defined outside of these limits
 
@@ -788,10 +774,10 @@ void CDasherViewSquare::Dasher2Eyetracke
   int iDasherMinX; // Minimum X value to allow for the circle
 
   if( iDasherY < iDasherOY ) {
-    iDasherMinX = (1 - sqrt( 1 - pow(((iDasherOY - iDasherY) / static_cast<double>(iDasherOY)), 2.0 ) )) * iDasherOX;
+    iDasherMinX = int((1 - sqrt( 1 - pow(((iDasherOY - iDasherY) / static_cast<double>(iDasherOY)), 2.0 ) )) * iDasherOX);
   }
   else {
-    iDasherMinX = (1 - sqrt( 1 - pow(((iDasherY - iDasherOY) / static_cast<double>(iDasherMaxY - iDasherOY)), 2.0 ) )) * iDasherOX;
+    iDasherMinX = int((1 - sqrt( 1 - pow(((iDasherY - iDasherOY) / static_cast<double>(iDasherMaxY - iDasherOY)), 2.0 ) )) * iDasherOX);
   }
   
   // If X is outside of the circle, bring it in.
@@ -980,16 +966,16 @@ void CDasherViewSquare::DasherDrawText( 
   else
     Size *= 11;
 	
-  screenint TextWidth, TextHeight, OriginX=0, OriginY=0;
+  screenint TextWidth, TextHeight;
   
   Screen().TextSize(sDisplayText, &TextWidth, &TextHeight, Size);
 
   // Poistion of text box relative to anchor depends on orientation
 
-  screenint newleft2;
-  screenint newtop2;
-  screenint newright2;
-  screenint newbottom2;
+  screenint newleft2 = 0;
+  screenint newtop2 = 0;
+  screenint newright2 = 0;
+  screenint newbottom2 = 0;
 
   switch (ScreenOrientation) {
   case (Dasher::Opts::LeftToRight):
@@ -1403,7 +1389,7 @@ void CDasherViewSquare::screen2dasher(sc
 	
     // If we're in standard mode, fudge things for the vertical acceleration
 	if (DasherModel().Dimensions()==false && KeyControl==false && eyetracker==false) {
-		dashery = m_ymap.unmap(dashery);
+		dashery = m_ymap.unmap(myint(dashery));
 		if (dashery>DasherModel().DasherY()) {
 			dashery=DasherModel().DasherY();
 		}
Index: Src/DasherCore/FrameRate.h
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/FrameRate.h,v
retrieving revision 1.9
diff -u -p -r1.9 FrameRate.h
--- Src/DasherCore/FrameRate.h	9 Jun 2005 08:24:58 -0000	1.9
+++ Src/DasherCore/FrameRate.h	22 Jul 2005 20:49:49 -0000
@@ -29,7 +29,7 @@ class CFrameRate {
 		/// TODO: Eventually fix this so that it uses integer maths internally.
 
 		myint MinSize( myint t ) const {
-		  return t / m_dRXmax;
+		  return myint(t / m_dRXmax);
 		};
 
 		int Steps() const {return m_iSteps;}
Index: Src/DasherCore/Alphabet/AlphIO.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/Alphabet/AlphIO.cpp,v
retrieving revision 1.2
diff -u -p -r1.2 AlphIO.cpp
--- Src/DasherCore/Alphabet/AlphIO.cpp	21 May 2005 20:49:36 -0000	1.2
+++ Src/DasherCore/Alphabet/AlphIO.cpp	22 Jul 2005 20:49:49 -0000
@@ -390,13 +390,13 @@ void CAlphIO::XML_StartElement(void *use
 	
 	if (strcmp(name, "orientation")==0) {
 		while (*atts!=0) {
-			if (strcmp(*atts, "type")) {
+			if (strcmp(*atts, "type")==0) {
 				atts++;
-				if (strcmp(*atts, "RL")) {
-					Me->InputInfo.Orientation = Opts::LeftToRight;
-				} else if (strcmp(*atts, "TB")) {
+				if (strcmp(*atts, "RL")==0) {
+					Me->InputInfo.Orientation = Opts::RightToLeft;
+				} else if (strcmp(*atts, "TB")==0) {
 					Me->InputInfo.Orientation = Opts::TopToBottom;
-				} else if (strcmp(*atts, "BT")) {
+				} else if (strcmp(*atts, "BT")==0) {
 					Me->InputInfo.Orientation = Opts::BottomToTop;
 				} else
 					Me->InputInfo.Orientation = Opts::LeftToRight;
Index: Src/DasherCore/Alphabet/Alphabet.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/Alphabet/Alphabet.cpp,v
retrieving revision 1.2
diff -u -p -r1.2 Alphabet.cpp
--- Src/DasherCore/Alphabet/Alphabet.cpp	27 May 2005 08:32:04 -0000	1.2
+++ Src/DasherCore/Alphabet/Alphabet.cpp	22 Jul 2005 20:49:49 -0000
@@ -192,12 +192,12 @@ void CAlphabet::AddControlSymbol(const s
 
 void CAlphabet::Trace() const 
 {
-	unsigned int i;
+	int i;
 	DASHER_TRACEOUTPUT("GetNumberSymbols() %d\n",GetNumberSymbols());
 	DASHER_TRACEOUTPUT("GetNumberTextSymbols() %d\n",GetNumberTextSymbols());
 	
 	int iGroup=0;
-	for (i=0;i<m_Characters.size();i++) 
+	for (i=0;i<(int)m_Characters.size();i++) 
 	{
 		if (iGroup < m_iGroups  && i==m_GroupStart[iGroup])
 		{
Index: Src/DasherCore/LanguageModelling/DictLanguageModel.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/LanguageModelling/DictLanguageModel.cpp,v
retrieving revision 1.4
diff -u -p -r1.4 DictLanguageModel.cpp
--- Src/DasherCore/LanguageModelling/DictLanguageModel.cpp	1 Jul 2005 09:58:39 -0000	1.4
+++ Src/DasherCore/LanguageModelling/DictLanguageModel.cpp	22 Jul 2005 20:49:49 -0000
@@ -85,8 +85,8 @@ CDictLanguageModel::CDictnode * CDictLan
 /////////////////////////////////////////////////////////////////////
 
 CDictLanguageModel::CDictLanguageModel(const CSymbolAlphabet &Alphabet, CLanguageModelParams *_params)
-  : CLanguageModel(Alphabet, _params), max_order( 0 ), 
-    m_NodeAlloc(8192), m_ContextAlloc(1024), NodesAllocated(0)
+  : CLanguageModel(Alphabet, _params), NodesAllocated(0), max_order( 0 ), 
+    m_NodeAlloc(8192), m_ContextAlloc(1024)
 {
 	m_pRoot= m_NodeAlloc.Alloc();
 	m_pRoot->sbl = -1;
Index: Src/DasherCore/LanguageModelling/MixtureLanguageModel.h
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/LanguageModelling/MixtureLanguageModel.h,v
retrieving revision 1.3
diff -u -p -r1.3 MixtureLanguageModel.h
--- Src/DasherCore/LanguageModelling/MixtureLanguageModel.h	23 Jun 2005 18:23:24 -0000	1.3
+++ Src/DasherCore/LanguageModelling/MixtureLanguageModel.h	22 Jul 2005 20:49:49 -0000
@@ -19,9 +19,11 @@
 
 /////////////////////////////////////////////////////////////////////////////
 
-namespace Dasher {class CMixtureLanguageModel;
+namespace Dasher {
 
-class Dasher::CMixtureLanguageModel : public CLanguageModel
+class CMixtureLanguageModel;
+
+class CMixtureLanguageModel : public CLanguageModel
 {
 public:
 	
Index: Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp,v
retrieving revision 1.18
diff -u -p -r1.18 PPMLanguageModel.cpp
--- Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp	26 Jun 2005 08:16:34 -0000	1.18
+++ Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp	22 Jul 2005 20:49:49 -0000
@@ -21,7 +21,7 @@ using namespace std;
 
 CPPMLanguageModel::CPPMLanguageModel(const CSymbolAlphabet& SymbolAlphabet, CLanguageModelParams *_params)
   : CLanguageModel(SymbolAlphabet, _params), m_iMaxOrder( 5 ), 
-    m_NodeAlloc(8192), m_ContextAlloc(1024), NodesAllocated(0)
+    NodesAllocated(0), m_NodeAlloc(8192), m_ContextAlloc(1024)
 {
 	m_pRoot= m_NodeAlloc.Alloc();
 	m_pRoot->symbol = -1;
Index: Src/DasherCore/LanguageModelling/WordLanguageModel.cpp
===================================================================
RCS file: /cvs/gnome/dasher/Src/DasherCore/LanguageModelling/WordLanguageModel.cpp,v
retrieving revision 1.13
diff -u -p -r1.13 WordLanguageModel.cpp
--- Src/DasherCore/LanguageModelling/WordLanguageModel.cpp	1 Jul 2005 09:58:39 -0000	1.13
+++ Src/DasherCore/LanguageModelling/WordLanguageModel.cpp	22 Jul 2005 20:49:49 -0000
@@ -116,8 +116,8 @@ CWordLanguageModel::CWordnode * CWordLan
 /////////////////////////////////////////////////////////////////////
 
 CWordLanguageModel::CWordLanguageModel(const CSymbolAlphabet &Alphabet, CLanguageModelParams *_params)
-  : CLanguageModel(Alphabet, _params), max_order( 2 ), 
-    m_NodeAlloc(8192), m_ContextAlloc(1024), NodesAllocated(0)
+  : CLanguageModel(Alphabet, _params), NodesAllocated(0), max_order( 2 ), 
+    m_NodeAlloc(8192), m_ContextAlloc(1024)
 {
 	m_pRoot= m_NodeAlloc.Alloc();
 	m_pRoot->sbl = -1;
@@ -324,7 +324,7 @@ void CWordLanguageModel::GetProbs( Conte
   int iToSpend( norm );
   
   for(int i(0); i < iNumSymbols; ++i) {
-    probs[i] = norm * dProbs[i]/dNorm;
+    probs[i] = (unsigned int)(norm * dProbs[i]/dNorm);
     iToSpend -= probs[i];
   }
 
@@ -393,7 +393,7 @@ void CWordLanguageModel::CollapseContext
 		  
 	  apNodeCache = new std::vector< CWordnode * > *[ oSymbols.size() ];
 
-      for( int i(0); i < oSymbols.size(); ++i )
+      for(unsigned int i(0); i < oSymbols.size(); ++i )
 	apNodeCache[i] = new std::vector< CWordnode* >;
       
       // FIXME - remember to delete member vectors when we're done
@@ -434,7 +434,7 @@ void CWordLanguageModel::CollapseContext
 	    pTmpChild->next = pTmp->child;
 	    pTmp->child = pTmpChild;
 	    
-	    bUpdateExclusion == false;
+	    bUpdateExclusion = false;
 
 	    // Newly allocated child already has a count of one, so no need to increment it explicitly
 	    
@@ -461,7 +461,7 @@ void CWordLanguageModel::CollapseContext
       // Now we need to go through and fix up the vine pointers
       
       //      for( std::vector< std::vector< CWordnode* >* >::iterator it( oNodeCache.begin() ); it != oNodeCache.end(); ++it ) {
-      for( int i(0); i < oSymbols.size(); ++i ) {
+      for(unsigned int i(0); i < oSymbols.size(); ++i ) {
 	
 	CWordnode *pPreviousNode( NULL ); // Start with a NULL pointer
 	
Index: Src/Gtk2/Makefile.am
===================================================================
RCS file: /cvs/gnome/dasher/Src/Gtk2/Makefile.am,v
retrieving revision 1.9
diff -u -p -r1.9 Makefile.am
--- Src/Gtk2/Makefile.am	21 May 2005 10:43:39 -0000	1.9
+++ Src/Gtk2/Makefile.am	22 Jul 2005 20:49:49 -0000
@@ -10,7 +10,6 @@ else
 gladefile = dasher.glade
 settings_store = settings_store.cc settings_store.h
 EXTRA_DIST = gpesettings_store.cc gpesettings_store.h
-SETTINGS_CFLAGS=$(GCONF_CFLAGS)
 endif
 
 libdashergtk_a_SOURCES = dasher.cc dasher.h canvas.cc canvas.h edit.cc edit.h accessibility.cc accessibility.h speech.cc speech.h fileops.cc fileops.h dasher.glade dashergpe.glade $(settings_store)
Index: Src/Gtk2/accessibility.cc
===================================================================
RCS file: /cvs/gnome/dasher/Src/Gtk2/accessibility.cc,v
retrieving revision 1.26
diff -u -p -r1.26 accessibility.cc
--- Src/Gtk2/accessibility.cc	8 Mar 2005 15:22:53 -0000	1.26
+++ Src/Gtk2/accessibility.cc	22 Jul 2005 20:49:49 -0000
@@ -147,7 +147,9 @@ ControlTree* buildcontroltree() {
   ControlTree *pausetree=new ControlTree;
   ControlTree *movetree=new ControlTree;
   ControlTree *deletetree=new ControlTree;
+#ifdef GNOME_SPEECH
   ControlTree *speaktree=new ControlTree;
+#endif
 //  ControlTree *paneltree=new ControlTree;
 //  ControlTree *speedtree=new ControlTree;
 #ifndef GNOME_A11Y
Index: Src/Test/configure.in
===================================================================
RCS file: /cvs/gnome/dasher/Src/Test/configure.in,v
retrieving revision 1.2
diff -u -p -r1.2 configure.in
--- Src/Test/configure.in	1 Jul 2005 08:41:03 -0000	1.2
+++ Src/Test/configure.in	22 Jul 2005 20:49:49 -0000
@@ -1,6 +1,8 @@
-AC_INIT(LanguageModelling/pjc51_main.cpp)
-AM_INIT_AUTOMAKE(dasher_test, 0.0.1)
-
+AC_PREREQ(2.56)
+AC_INIT([dasher_test],[0.0.1],[dasher@mrao.cam.ac.uk])
+AC_REVISION([$Id: configure.in,v])
+AC_CONFIG_SRCDIR([LanguageModelling/pjc51_main.cpp])
+AM_INIT_AUTOMAKE([foreign])
 
 AC_CHECK_LIB(expat, XML_Parse,, AC_MSG_ERROR([Expat library not found.]))
 AC_CHECK_LIB(gslcblas,main)
Index: po/Makefile.in.in
===================================================================
RCS file: /cvs/gnome/dasher/po/Makefile.in.in,v
retrieving revision 1.4.8.1
diff -u -p -r1.4.8.1 Makefile.in.in
--- po/Makefile.in.in	2 Jul 2005 16:24:13 -0000	1.4.8.1
+++ po/Makefile.in.in	22 Jul 2005 20:49:50 -0000
@@ -32,12 +32,10 @@ localedir = $(libdir)/locale
 gnulocaledir = $(datadir)/locale
 gettextsrcdir = $(datadir)/glib-2.0/gettext/po
 subdir = po
-install_sh = @install_sh@
-mkdir_p = @mkdir_p@
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
 
 CC = @CC@
 GENCAT = @GENCAT@
@@ -46,8 +44,8 @@ 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
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
 
 DEFS = @DEFS@
 CFLAGS = @CFLAGS@
@@ -60,7 +58,7 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $
 SOURCES = 
 POFILES = @POFILES@
 GMOFILES = @GMOFILES@
-DISTFILES = ChangeLog Makefile.in.in POTFILES.in \
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
 $(POFILES) $(GMOFILES) $(SOURCES)
 
 POTFILES = \
@@ -77,13 +75,13 @@ INSTOBJEXT = @INSTOBJEXT@
 
 .po.pox:
 	$(MAKE) $(GETTEXT_PACKAGE).pot
-	$(MSGMERGE) $< $(top_builddir)/po/$(GETTEXT_PACKAGE).pot -o $*pox
+	$(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*pox
 
 .po.mo:
 	$(MSGFMT) -o $@ $<
 
 .po.gmo:
-	file=`echo $* | sed 's,.*/,,'`.gmo \
+	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
 	  && rm -f $$file && $(GMSGFMT) -o $$file $<
 
 .po.cat:
@@ -96,7 +94,7 @@ all: all-@USE_NLS@
 all-yes: $(CATALOGS)
 all-no:
 
-$(GETTEXT_PACKAGE).pot: $(POTFILES)
+$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
 	$(GENPOT)
 
 install: install-exec install-data
@@ -104,7 +102,7 @@ install-exec:
 install-data: install-data-@USE_NLS@
 install-data-no: all
 install-data-yes: all
-	if test -n "$(MKINSTALLDIRS)"; then \
+	if test -r "$(MKINSTALLDIRS)"; then \
 	  $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
 	else \
 	  $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
@@ -118,7 +116,7 @@ install-data-yes: all
 	  esac; \
 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 	  dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
-	  if test -n "$(MKINSTALLDIRS)"; then \
+	  if test -r "$(MKINSTALLDIRS)"; then \
 	    $(MKINSTALLDIRS) $$dir; \
 	  else \
 	    $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
@@ -146,7 +144,7 @@ install-data-yes: all
 	  fi; \
 	done
 	if test "$(PACKAGE)" = "glib"; then \
-	  if test -n "$(MKINSTALLDIRS)"; then \
+	  if test -r "$(MKINSTALLDIRS)"; then \
 	    $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
 	  else \
 	    $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
@@ -179,7 +177,7 @@ check: all
 dvi info tags TAGS ID:
 
 mostlyclean:
-	rm -f core core.* *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+	rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp
 	rm -fr *.o
 	rm -f .intltool-merge-cache
 
@@ -194,7 +192,7 @@ maintainer-clean: distclean
 	rm -f $(GMOFILES)
 
 distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: $(DISTFILES) $(GETTEXT_PACKAGE).pot
+dist distdir: update-po $(DISTFILES)
 	dists="$(DISTFILES)"; \
 	for file in $$dists; do \
 	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
@@ -204,14 +202,14 @@ dist distdir: $(DISTFILES) $(GETTEXT_PAC
 update-po: Makefile
 	$(MAKE) $(GETTEXT_PACKAGE).pot
 	tmpdir=`pwd`; \
+	cd $(srcdir); \
 	catalogs='$(CATALOGS)'; \
 	for cat in $$catalogs; do \
 	  cat=`basename $$cat`; \
 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 	  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 \
+	  if $$tmpdir/$(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -o $$tmpdir/$$lang.new.po $$lang; then \
+	    if cmp $$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 \
