[glom] Fix the build with the latest gtkmm.



commit db89d2685b0b7acc5e4c09def3fccab3211021f9
Author: Murray Cumming <murrayc murrayc com>
Date:   Mon Oct 18 13:23:35 2010 +0200

    Fix the build with the latest gtkmm.
    
      * Makefile_glom.am:
      * po/POTFILES.in:
    * glom/mode_data/datawidget/comboentry.[h|cc]: Removed this.
      * glom/mode_data/datawidget/combo.cc: Add a has_entry parameter to the
      constructor and handle that in set_choices_related().

 ChangeLog                                          |   10 +
 Makefile_glom.am                                   |    2 -
 glom/glom_developer.glade                          |   16 +-
 glom/libglom/example_document_load.cc              |    2 +
 glom/libglom/test_connectionpool.cc                |   11 +-
 glom/libglom/test_sharedptr_layoutitem.cc          |   17 +-
 glom/mode_data/datawidget/combo.cc                 |   38 ++-
 glom/mode_data/datawidget/combo.h                  |    3 +-
 .../datawidget/combochoiceswithtreemodel.cc        |    3 +-
 glom/mode_data/datawidget/comboentry.cc            |  427 --------------------
 glom/mode_data/datawidget/comboentry.h             |  121 ------
 glom/mode_data/datawidget/datawidget.cc            |    3 +-
 .../datawidget/treemodel_db_withextratext.h        |    2 +-
 glom/mode_design/comboentry_currency.cc            |    8 +-
 glom/mode_design/comboentry_currency.h             |    4 +-
 .../layout_item_dialogs/comboentry_borderwidth.cc  |    8 +-
 .../layout_item_dialogs/comboentry_borderwidth.h   |    4 +-
 glom/variablesmap.cc                               |   15 +-
 glom/variablesmap.h                                |    4 +-
 po/POTFILES.in                                     |    1 -
 tests/glade_toplevels_instantiation                |  148 +++++++
 tests/test_document_autosave                       |  148 +++++++
 tests/test_document_autosave.cc                    |    1 +
 tests/test_document_load                           |  148 +++++++
 tests/test_document_load.cc                        |   16 +-
 tests/test_glade_derived_instantiation             |  148 +++++++
 tests/test_parsing_time.cc                         |    9 +-
 tests/test_python_execute_func                     |  148 +++++++
 tests/test_python_execute_func.cc                  |    4 +-
 tests/test_python_execute_func_bad_syntax          |  148 +++++++
 tests/test_python_execute_func_bad_syntax.cc       |    8 +-
 tests/test_python_execute_func_change_result_type  |  148 +++++++
 .../test_python_execute_func_change_result_type.cc |    4 +-
 tests/test_python_execute_func_date                |  148 +++++++
 tests/test_python_execute_script                   |  148 +++++++
 tests/test_python_execute_script.cc                |    3 +-
 tests/test_selfhosting_new_empty                   |  148 +++++++
 tests/test_selfhosting_new_empty.cc                |    1 +
 tests/test_selfhosting_new_from_example            |  148 +++++++
 tests/test_selfhosting_new_from_example.cc         |    1 +
 40 files changed, 1736 insertions(+), 638 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 07befc1..ce407a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2010-10-18  Murray Cumming  <murrayc murrayc com>
+
+	Fix the build with the latest gtkmm.
+
+  * Makefile_glom.am:
+  * po/POTFILES.in:
+	* glom/mode_data/datawidget/comboentry.[h|cc]: Removed this.
+  * glom/mode_data/datawidget/combo.cc: Add a has_entry parameter to the
+  constructor and handle that in set_choices_related().
+
 2010-10-14  Murray Cumming  <murrayc murrayc com>
 
 	Build fixes after recent commits.
diff --git a/Makefile_glom.am b/Makefile_glom.am
index d1a71bd..f30dc4e 100644
--- a/Makefile_glom.am
+++ b/Makefile_glom.am
@@ -129,8 +129,6 @@ glom_source_files = \
 	glom/mode_data/datawidget/dialog_choose_date.h			\
 	glom/mode_data/datawidget/dialog_choose_id.cc			\
 	glom/mode_data/datawidget/dialog_choose_id.h				\
-	glom/mode_data/datawidget/comboentry.cc				\
-	glom/mode_data/datawidget/comboentry.h				\
 	glom/mode_data/datawidget/combo.cc				\
 	glom/mode_data/datawidget/combo.h				\
 	glom/mode_data/datawidget/combochoices.cc			\
diff --git a/glom/glom_developer.glade b/glom/glom_developer.glade
index 911e192..4ed2bc9 100644
--- a/glom/glom_developer.glade
+++ b/glom/glom_developer.glade
@@ -467,7 +467,7 @@
                                 <property name="column_spacing">12</property>
                                 <property name="row_spacing">6</property>
                                 <child>
-                                  <object class="GtkComboBox" id="combobox_lookup_field">
+                                  <object class="GtkComboBoxText" id="combobox_lookup_field">
                                     <property name="visible">True</property>
                                   </object>
                                   <packing>
@@ -2950,7 +2950,7 @@ Glom could not create the new database. Maybe you do not have the necessary acce
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="combobox_group">
+                  <object class="GtkComboBoxText" id="combobox_group">
                     <property name="visible">True</property>
                   </object>
                   <packing>
@@ -3208,7 +3208,7 @@ Glom could not create the new database. Maybe you do not have the necessary acce
                             <property name="column_spacing">6</property>
                             <property name="row_spacing">6</property>
                             <child>
-                              <object class="GtkComboBox" id="combobox_group">
+                              <object class="GtkComboBoxText" id="combobox_group">
                                 <property name="visible">True</property>
                               </object>
                               <packing>
@@ -3693,7 +3693,7 @@ Which user should be added to this group?</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="combo_user_name">
+                  <object class="GtkComboBoxText" id="combo_user_name">
                     <property name="visible">True</property>
                   </object>
                   <packing>
@@ -5481,7 +5481,8 @@ Which user should be added to this group?</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkComboBoxEntry" id="comboboxentry_border_width">
+                              <object class="GtkComboBox" id="comboboxentry_border_width">
+                                <property name="has-entry">True</property>
                                 <property name="visible">True</property>
                               </object>
                               <packing>
@@ -6408,7 +6409,8 @@ Which user should be added to this group?</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkComboBoxEntry" id="entry_currency_symbol">
+                      <object class="GtkComboBox" id="entry_currency_symbol">
+                        <property name="has-entry">True</property>
                         <property name="visible">True</property>
                       </object>
                       <packing>
@@ -8035,7 +8037,7 @@ If a suitable related table already exists then you should instead cancel and ju
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="combobox_from_key">
+                  <object class="GtkComboBoxText" id="combobox_from_key">
                     <property name="visible">True</property>
                   </object>
                   <packing>
diff --git a/glom/libglom/example_document_load.cc b/glom/libglom/example_document_load.cc
index 0cef396..37171c7 100644
--- a/glom/libglom/example_document_load.cc
+++ b/glom/libglom/example_document_load.cc
@@ -24,6 +24,8 @@
 #include <libglom/document/document.h>
 #include <libglom/init.h>
 
+#include <iostream>
+
 void print_layout_group(const Glom::sharedptr<Glom::LayoutGroup>& layout_group, const Glib::ustring& indent)
 {
   if(!layout_group)
diff --git a/glom/libglom/test_connectionpool.cc b/glom/libglom/test_connectionpool.cc
index ebe18ae..549f3dc 100644
--- a/glom/libglom/test_connectionpool.cc
+++ b/glom/libglom/test_connectionpool.cc
@@ -17,7 +17,7 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
- 
+
 #include <libgdamm/init.h>
 #include <libglom/connectionpool.h>
 
@@ -29,9 +29,9 @@
 #include <libglom/connectionpool_backends/sqlite.h>
 #endif //#GLOM_ENABLE_POSTGRESQL
 
+#include <iostream>
 
-int
-main()
+int main()
 {
   Gnome::Gda::init();
 
@@ -81,8 +81,3 @@ main()
 
   return 0;
 }
-
-
-
-
-
diff --git a/glom/libglom/test_sharedptr_layoutitem.cc b/glom/libglom/test_sharedptr_layoutitem.cc
index c4afd5b..155e7e2 100644
--- a/glom/libglom/test_sharedptr_layoutitem.cc
+++ b/glom/libglom/test_sharedptr_layoutitem.cc
@@ -17,18 +17,18 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
- 
+
 #include <libglom/data_structure/layout/layoutgroup.h>
 #include <libglom/data_structure/layout/layoutitem_field.h>
 
+#include <iostream>
 
-int
-main()
+int main()
 {
   Glom::sharedptr<Glom::LayoutItem_Field> field_copy;
   {
     Glom::sharedptr<Glom::LayoutGroup> group;
-  
+
     {
        Glom::sharedptr<Glom::LayoutGroup> group_inscope = Glom::sharedptr<Glom::LayoutGroup>::create();
        std::cout << "group_inscope refcount = " << *(group_inscope._get_refcount()) << std::endl; //Should be 1.
@@ -38,7 +38,7 @@ main()
        Glom::sharedptr<Glom::LayoutItem> itemgroup = group_inscope;
        std::cout << "itemgroup refcount = " << *(itemgroup._get_refcount()) << std::endl; //Should be 2.
 
-       Glom::sharedptr<Glom::LayoutGroup> group_casted = Glom::sharedptr<Glom::LayoutGroup>::cast_dynamic(itemgroup); 
+       Glom::sharedptr<Glom::LayoutGroup> group_casted = Glom::sharedptr<Glom::LayoutGroup>::cast_dynamic(itemgroup);
 
        std::cout << "itemgroup refcount = " << *(itemgroup._get_refcount()) << std::endl; //Should be 3.
        std::cout << "group_casted refcount = " << *(group_casted._get_refcount()) << std::endl; //Should be 3
@@ -67,7 +67,7 @@ main()
 
       Glom::sharedptr<Glom::LayoutItem_Field> item_casted = Glom::sharedptr<Glom::LayoutItem_Field>::cast_dynamic(item);
       std::cout << "group item_casted refcount = " << *(item_casted._get_refcount()) << std::endl; //Should be 4.
- 
+
       std::cout << "group item_casted name = " << item_casted->get_name() << std::endl;
 
       field_copy = item_casted;
@@ -79,8 +79,3 @@ main()
 
   return 0;
 }
-
-
-
-
-
diff --git a/glom/mode_data/datawidget/combo.cc b/glom/mode_data/datawidget/combo.cc
index 1960d91..cd981d4 100644
--- a/glom/mode_data/datawidget/combo.cc
+++ b/glom/mode_data/datawidget/combo.cc
@@ -23,6 +23,7 @@
 #include <gtkmm/messagedialog.h>
 #include <glom/mode_data/datawidget/cellcreation.h>
 #include <glom/dialog_invalid_data.h>
+#include <glom/mode_data/datawidget/treemodel_db_withextratext.h>
 #include <libglom/data_structure/glomconversions.h>
 #include <libglom/db_utils.h>
 #include <glom/application.h>
@@ -40,18 +41,14 @@ namespace Glom
 namespace DataWidgetChildren
 {
 
-ComboGlom::ComboGlom()
-: ComboChoicesWithTreeModel()
+ComboGlom::ComboGlom(bool has_entry)
+: Gtk::ComboBox(has_entry),
+  ComboChoicesWithTreeModel()
 {
 #ifndef GLOM_ENABLE_CLIENT_ONLY
   setup_menu();
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 
-  init();
-}
-
-void ComboGlom::init()
-{
   #ifdef GLOM_ENABLE_MAEMO
   //Maemo:
   set_selector(m_maemo_selector);
@@ -88,6 +85,11 @@ void ComboGlom::set_choices_fixed(const FieldFormatting::type_list_values& list_
 
   clear();
 
+  if(get_has_entry())
+  {
+    set_entry_text_column(0);
+  }
+
   const guint columns_count = model->get_n_columns();
   for(guint i = 0; i < columns_count; ++i)
   {
@@ -124,6 +126,24 @@ void ComboGlom::set_choices_related(const Document* document, const sharedptr<co
 
   clear();
 
+  if(get_has_entry())
+  {
+    Glib::RefPtr<DbTreeModelWithExtraText> model_db =
+      Glib::RefPtr<DbTreeModelWithExtraText>::cast_dynamic(model);
+    if(model_db)
+    {
+      const int text_col = model_db->get_text_column();
+      //const GType debug_type = model_db->get_column_type(text_col);
+      //std::cout << "DEBUG: text_col=" << text_col << ", debug_type=" << g_type_name(debug_type) << std::endl;
+      set_entry_text_column(text_col);
+    }
+    else
+    {
+      std::cerr << G_STRFUNC << ": The model is not a DbTreeModelWithExtraText." << std::endl;
+      return;
+    }
+  }
+
   guint model_column_index = 0;
   for(type_vec_const_layout_items::const_iterator iter = m_db_layout_items.begin(); iter != m_db_layout_items.end(); ++iter)
   {
@@ -158,7 +178,7 @@ void ComboGlom::set_value(const Gnome::Gda::Value& value)
   sharedptr<const LayoutItem_Field> layout_item = sharedptr<const LayoutItem_Field>::cast_dynamic(get_layout_item());
   if(!layout_item)
     return;
- 
+
   m_old_value = value;
 
   Glib::RefPtr<Gtk::TreeModel> model = get_choices_model();
@@ -237,7 +257,7 @@ Gnome::Gda::Value ComboGlom::get_value() const
      row.get_value(0, value);
      return value;
   }
-  
+
   return Gnome::Gda::Value();
 }
 
diff --git a/glom/mode_data/datawidget/combo.h b/glom/mode_data/datawidget/combo.h
index 81db53a..74157a6 100644
--- a/glom/mode_data/datawidget/combo.h
+++ b/glom/mode_data/datawidget/combo.h
@@ -53,7 +53,7 @@ class ComboGlom
 public:
 
   ///You must call set_layout_item() to specify the field type and formatting of the main column.
-  ComboGlom();
+  ComboGlom(bool has_entry = false);
 
   virtual ~ComboGlom();
 
@@ -72,7 +72,6 @@ public:
   virtual Gnome::Gda::Value get_value() const;
 
 private:
-  void init();
 
   #ifndef GLOM_ENABLE_MAEMO
   // Note that this is a normal signal handler when glibmm was complied
diff --git a/glom/mode_data/datawidget/combochoiceswithtreemodel.cc b/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
index 65e0ced..ed89da0 100644
--- a/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
+++ b/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
@@ -105,7 +105,6 @@ void ComboChoicesWithTreeModel::set_choices_with_second(const type_list_values_w
   create_model(columns_count);
 
   //Fill the model with data:
-  //TODO: Remove duplication with ComboEntry:
   sharedptr<LayoutItem_Field> layout_item =
     sharedptr<LayoutItem_Field>::cast_dynamic(get_layout_item());
   const FieldFormatting& format = layout_item->get_formatting_used();
@@ -235,7 +234,7 @@ void ComboChoicesWithTreeModel::set_choices_related(const Document* document, co
   m_db_layout_items.clear();
 
   //We create DbTreeModelWithExtraText rather than just DbTreeModel, 
-  //because ComboEntry needs it.
+  //because Combo(has_entry) needs it.
   m_refModel = DbTreeModelWithExtraText::create(found_set, layout_items, true /* allow_view */, false /* find mode */, m_db_layout_items);
   if(!m_refModel)
   {
diff --git a/glom/mode_data/datawidget/datawidget.cc b/glom/mode_data/datawidget/datawidget.cc
index 404f37f..248dc75 100644
--- a/glom/mode_data/datawidget/datawidget.cc
+++ b/glom/mode_data/datawidget/datawidget.cc
@@ -23,7 +23,6 @@
 #include "entry.h"
 #include "checkbutton.h"
 #include "label.h"
-#include <glom/mode_data/datawidget/comboentry.h>
 #include <glom/mode_data/datawidget/combo.h>
 #include <glom/mode_data/datawidget/combo_as_radio_buttons.h>
 #include <glom/mode_data/datawidget/textview.h>
@@ -59,7 +58,7 @@ static DataWidgetChildren::ComboChoices* create_combo_widget_for_field(const sha
       result = Gtk::manage(new DataWidgetChildren::ComboGlom());
   }
   else
-    result = Gtk::manage(new DataWidgetChildren::ComboEntry());
+    result = Gtk::manage(new DataWidgetChildren::ComboGlom(true /* has_entry */));
 
   return result;
 }
diff --git a/glom/mode_data/datawidget/treemodel_db_withextratext.h b/glom/mode_data/datawidget/treemodel_db_withextratext.h
index 83bad5e..3b65024 100644
--- a/glom/mode_data/datawidget/treemodel_db_withextratext.h
+++ b/glom/mode_data/datawidget/treemodel_db_withextratext.h
@@ -28,7 +28,7 @@ namespace Glom
 
 /** This awkward class is just a version of DbTreeModel that has an 
  * extra text column that is a text representation of the primary key,
- * for use in a GtkComboEntry, which requires a text column in the model.
+ * for use in a GtkCombo with has_entry, which requires a text column in the model.
  */
 class DbTreeModelWithExtraText
   : public DbTreeModel
diff --git a/glom/mode_design/comboentry_currency.cc b/glom/mode_design/comboentry_currency.cc
index 1912f56..b164e1e 100644
--- a/glom/mode_design/comboentry_currency.cc
+++ b/glom/mode_design/comboentry_currency.cc
@@ -25,7 +25,7 @@ namespace Glom
 {
 
 ComboEntry_Currency::ComboEntry_Currency(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /* builder */)
-: Gtk::ComboBoxEntry(cobject)
+: Gtk::ComboBox(cobject)
 {
   m_model = Gtk::ListStore::create(m_model_columns);
 
@@ -42,7 +42,7 @@ ComboEntry_Currency::ComboEntry_Currency(BaseObjectType* cobject, const Glib::Re
   }
 
   set_model(m_model);
-  set_text_column(m_model_columns.m_symbol);
+  set_entry_text_column(m_model_columns.m_symbol);
 
   //Show this too.
   pack_start(m_model_columns.m_name);
@@ -55,7 +55,3 @@ ComboEntry_Currency::~ComboEntry_Currency()
 }
 
 } //namespace Glom
-
-
-
-
diff --git a/glom/mode_design/comboentry_currency.h b/glom/mode_design/comboentry_currency.h
index 73ecc1b..6b62348 100644
--- a/glom/mode_design/comboentry_currency.h
+++ b/glom/mode_design/comboentry_currency.h
@@ -21,7 +21,7 @@
 #ifndef GLOM_MODE_DESIGN_COMBOENTRY_CURRENCY_H
 #define GLOM_MODE_DESIGN_COMBOENTRY_CURRENCY_H
 
-#include <gtkmm/comboboxentry.h>
+#include <gtkmm/combobox.h>
 #include <gtkmm/builder.h>
 
 #include <gtkmm/liststore.h>
@@ -31,7 +31,7 @@ namespace Glom
 {
 
 /// A ComboBox that allows the user to choose, or enter, a currency symbol.
-class ComboEntry_Currency : public Gtk::ComboBoxEntry
+class ComboEntry_Currency : public Gtk::ComboBox
 {
 public:
   ComboEntry_Currency(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder);
diff --git a/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.cc b/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.cc
index 56d794e..6eb262e 100644
--- a/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.cc
@@ -25,7 +25,7 @@ namespace Glom
 {
 
 ComboEntry_BorderWidth::ComboEntry_BorderWidth(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /* builder */)
-: Gtk::ComboBoxEntry(cobject)
+: Gtk::ComboBox(cobject)
 {
   m_model = Gtk::ListStore::create(m_model_columns);
 
@@ -42,7 +42,7 @@ ComboEntry_BorderWidth::ComboEntry_BorderWidth(BaseObjectType* cobject, const Gl
   (*iter)[m_model_columns.m_value] = string_for_number(1.0);
 
   set_model(m_model);
-  set_text_column(m_model_columns.m_value);
+  set_entry_text_column(m_model_columns.m_value);
 }
 
 
@@ -60,7 +60,3 @@ Glib::ustring ComboEntry_BorderWidth::string_for_number(double number)
 }
 
 } //namespace Glom
-
-
-
-
diff --git a/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.h b/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.h
index 779a765..76ffb45 100644
--- a/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.h
+++ b/glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.h
@@ -21,7 +21,7 @@
 #ifndef GLOM_MODE_DESIGN_COMBOENTRY_BORDERWIDTH_H
 #define GLOM_MODE_DESIGN_COMBOENTRY_BORDERWIDTH_H
 
-#include <gtkmm/comboboxentry.h>
+#include <gtkmm/combobox.h>
 #include <gtkmm/builder.h>
 
 #include <gtkmm/liststore.h>
@@ -29,7 +29,7 @@
 namespace Glom
 {
 
-class ComboEntry_BorderWidth : public Gtk::ComboBoxEntry
+class ComboEntry_BorderWidth : public Gtk::ComboBox
 {
 public:
   ComboEntry_BorderWidth(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder);
diff --git a/glom/variablesmap.cc b/glom/variablesmap.cc
index d436f2c..d1ff08f 100644
--- a/glom/variablesmap.cc
+++ b/glom/variablesmap.cc
@@ -22,7 +22,7 @@
 #include <gtkmm/entry.h>
 #include <gtkmm/calendar.h>
 #include <gtkmm/scale.h>
-#include <gtkmm/comboboxentry.h>
+#include <gtkmm/combobox.h>
 
 namespace Glom
 {
@@ -53,14 +53,15 @@ void VariablesMap::connect_widget(const Glib::ustring& widget_name, Glib::ustrin
   m_builder->get_widget(widget_name, pWidget); 
 
   Gtk::Entry* pEntry = dynamic_cast<Gtk::Entry*>(pWidget); //it mange both Gtk::entry and Gtk::SpinButton
-  Gtk::ComboBoxEntry* pComboBoxEntry = dynamic_cast<Gtk::ComboBoxEntry*>(pWidget);
+  Gtk::ComboBox* pComboBox = dynamic_cast<Gtk::ComboBox*>(pWidget);
   if(pEntry)
   {
     m_mapWidgetsToVariables[pEntry] = (void*)(&variable);
   }
-  if(pComboBoxEntry)
+
+  if(pComboBox)
   {
-    m_mapWidgetsToVariables[pComboBoxEntry] = (void*)(&variable);
+    m_mapWidgetsToVariables[pComboBox] = (void*)(&variable);
   }
 }
 
@@ -120,7 +121,7 @@ void VariablesMap::transfer_one_widget(Gtk::Widget* pWidget, bool to_variable)
     {
       //Cast the variable appropriately and set it appropriately:
       Gtk::Entry* pEntry = dynamic_cast<Gtk::Entry*>(pWidget);
-      Gtk::ComboBoxEntry* pComboBoxEntry = dynamic_cast<Gtk::ComboBoxEntry*>(pWidget);
+      Gtk::ComboBox* pComboBox = dynamic_cast<Gtk::ComboBox*>(pWidget);
 
       Gtk::ToggleButton* pToggleButton = dynamic_cast<Gtk::ToggleButton*>(pWidget); //CheckButtons and RadioButtons.
       Gtk::Scale* pScale = dynamic_cast<Gtk::Scale*>(pWidget); 
@@ -136,10 +137,10 @@ void VariablesMap::transfer_one_widget(Gtk::Widget* pWidget, bool to_variable)
           pEntry->set_text(*pVar);
       }
       
-      if(pComboBoxEntry)
+      if(pComboBox)
       {
         Glib::ustring* pVar = (Glib::ustring*)(pVariable);
-	Gtk::Entry* pIEntry = dynamic_cast<Gtk::Entry*>(pComboBoxEntry->get_child());
+	Gtk::Entry* pIEntry = dynamic_cast<Gtk::Entry*>(pComboBox->get_child());
 
         if(to_variable)
         {
diff --git a/glom/variablesmap.h b/glom/variablesmap.h
index 30c5fcf..18c5a6d 100644
--- a/glom/variablesmap.h
+++ b/glom/variablesmap.h
@@ -36,7 +36,7 @@ namespace Glom
  *
  * Gtk::Entry --> Glib::ustring
  * Gtk::SpinBox --> Glib::ustring
- * Gtk::ComboBoxEntry --> Glib::ustring
+ * Gtk::ComboBox --> Glib::ustring
  * Gtk::Scale --> double
  * Gtk::Calendar --> Glib::Date
  * Gtk::CheckBox --> bool
@@ -52,7 +52,7 @@ public:
   ///For ToggleButton (CheckBox and RadioButton)
   void connect_widget(const Glib::ustring& widget_name, bool& variable);
 
-  ///For Entry, ComboBoxEntry and SpinBox
+  ///For Entry, ComboBox and SpinBox
   void connect_widget(const Glib::ustring& widget_name, Glib::ustring& variable);
 
   ///For Scale (HScale and VScale)
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 2769a16..7d30d5e 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -119,7 +119,6 @@ glom/mode_design/translation/dialog_change_language.cc
 glom/mode_design/translation/window_translations.cc
 glom/utility_widgets/adddel/adddel.cc
 glom/mode_data/datawidget/combochoiceswithtreemodel.cc
-glom/mode_data/datawidget/comboentry.cc
 glom/mode_data/datawidget/datawidget.cc
 glom/mode_data/db_adddel/db_adddel.cc
 glom/mode_data/datawidget/dialog_choose_id.cc
diff --git a/tests/glade_toplevels_instantiation b/tests/glade_toplevels_instantiation
new file mode 100755
index 0000000..415cd8d
--- /dev/null
+++ b/tests/glade_toplevels_instantiation
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/glade_toplevels_instantiation - temporary wrapper script for .libs/glade_toplevels_instantiation
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/glade_toplevels_instantiation program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/glade_toplevels_instantiation.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'glade_toplevels_instantiation'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_document_autosave b/tests/test_document_autosave
new file mode 100755
index 0000000..af111d5
--- /dev/null
+++ b/tests/test_document_autosave
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_document_autosave - temporary wrapper script for .libs/test_document_autosave
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_document_autosave program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_document_autosave.o  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_document_autosave'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_document_autosave.cc b/tests/test_document_autosave.cc
index 9ef3496..a7bbfd9 100644
--- a/tests/test_document_autosave.cc
+++ b/tests/test_document_autosave.cc
@@ -21,6 +21,7 @@
 #include <libglom/document/document.h>
 #include <libglom/init.h>
 #include <giomm/file.h>
+#include <iostream>
 
 Glib::ustring file_uri;
 
diff --git a/tests/test_document_load b/tests/test_document_load
new file mode 100755
index 0000000..362dcc0
--- /dev/null
+++ b/tests/test_document_load
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_document_load - temporary wrapper script for .libs/test_document_load
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_document_load program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_document_load.o  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_document_load'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_document_load.cc b/tests/test_document_load.cc
index ee20efa..b2fcf4b 100644
--- a/tests/test_document_load.cc
+++ b/tests/test_document_load.cc
@@ -22,10 +22,12 @@
 #include <libglom/init.h>
 #include <giomm/file.h>
 
+#include <iostream>
+
 template<typename T_Container>
 bool contains(const T_Container& container, const Glib::ustring& name)
 {
-  typename T_Container::const_iterator iter = 
+  typename T_Container::const_iterator iter =
     std::find(container.begin(), container.end(), name);
   return iter != container.end();
 }
@@ -34,8 +36,8 @@ template<typename T_Container>
 bool contains_named(const T_Container& container, const Glib::ustring& name)
 {
   typedef typename T_Container::value_type::object_type type_item;
-  typename T_Container::const_iterator iter = 
-    std::find_if(container.begin(), container.end(), 
+  typename T_Container::const_iterator iter =
+    std::find_if(container.begin(), container.end(),
       Glom::predicate_FieldHasName<type_item>(name));
   return iter != container.end();
 }
@@ -49,8 +51,8 @@ int main()
 
   try
   {
-    const std::string path = 
-       Glib::build_filename(GLOM_DOCDIR_EXAMPLES_NOTINSTALLED, 
+    const std::string path =
+       Glib::build_filename(GLOM_DOCDIR_EXAMPLES_NOTINSTALLED,
          "example_music_collection.glom");
     uri = Glib::filename_to_uri(path);
   }
@@ -110,14 +112,14 @@ int main()
   g_assert(field->get_glom_type() == Glom::Field::TYPE_NUMERIC);
   g_assert(!field->get_auto_increment());
   g_assert(!field->get_unique_key());
-    
+
   //Check a relationship:
   const Glom::sharedptr<const Glom::Relationship> relationship = document.get_relationship("albums", "artist");
   g_assert(relationship);
   g_assert(relationship->get_from_field() == "artist_id");
   g_assert(relationship->get_to_table() == "artists");
   g_assert(relationship->get_to_field() == "artist_id");
-  
+
   Glom::libglom_deinit();
 
   return EXIT_SUCCESS;
diff --git a/tests/test_glade_derived_instantiation b/tests/test_glade_derived_instantiation
new file mode 100755
index 0000000..2559ecb
--- /dev/null
+++ b/tests/test_glade_derived_instantiation
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_glade_derived_instantiation - temporary wrapper script for .libs/test_glade_derived_instantiation
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_glade_derived_instantiation program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_glade_derived_instantiation.o glom/application.o glom/base_db.o glom/base_db_table.o glom/base_db_table_data.o glom/base_db_table_data_readonly.o glom/box_db_table.o glom/box_reports.o glom/box_withbuttons.o glom/dialog_connection.o glom/dialog_existing_or_new.o glom/dialog_invalid_data.o glom/dialog_progress_creating.o glom/filechooser_export.o glom/frame_glom.o glom/glade_utils.o glom/notebook_glom.o glom/utils_ui.o glom/variablesmap.o glom/xsl_utils.o glom/printoperation_printlayout.o glom/report_builder.o glom/window_boxholder.o glom/bakery/app.o glom/bakery/app_withdoc.o glom/bakery/app_withdoc_gtk.o glom/bakery/busy_cursor.o glom/bakery/dialog_offersave.o glom/import_csv/dialog_import_csv.o glom/import_csv/dialog_import_csv_progress.o glom/import_csv/file_encodings.o glom/import_csv/csv_parser.o glom/mode_data/box_data.o glom/mode_data/box_data_calendar_related.o glom/mode_data/box_data_details.o glom/mode_data/box_data_list.o glom/mode_data/box_data_list_
 related.o glom/mode_data/box_data_manyrecords.o glom/mode_data/box_data_portal.o glom/mode_data/buttonglom.o glom/mode_data/db_adddel/db_adddel.o glom/mode_data/db_adddel/db_adddel_withbuttons.o glom/mode_data/db_adddel/db_treeviewcolumn_glom.o glom/mode_data/flowtablewithfields.o glom/mode_data/notebook_data.o glom/mode_data/placeholder-glom.o glom/mode_data/datawidget/datawidget.o glom/mode_data/datawidget/cellcreation.o glom/mode_data/datawidget/cellrenderer_buttonimage.o glom/mode_data/datawidget/cellrenderer_buttontext.o glom/mode_data/datawidget/cellrenderer_dblist.o glom/mode_data/datawidget/checkbutton.o glom/mode_data/datawidget/entry.o glom/mode_data/datawidget/label.o glom/mode_data/datawidget/textview.o glom/mode_data/datawidget/dialog_choose_date.o glom/mode_data/datawidget/dialog_choose_id.o glom/mode_data/datawidget/combo.o glom/mode_data/datawidget/combochoices.o glom/mode_data/datawidget/combochoiceswithtreemodel.o glom/mode_data/datawidget/combo_as_radio_bu
 ttons.o glom/mode_data/datawidget/treemodel_db.o glom/mode_data/datawidget/treemodel_db_withextratext.o glom/mode_find/box_data_details_find.o glom/mode_find/box_data_list_find.o glom/mode_find/notebook_find.o glom/print_layout/canvas_layout_item.o glom/print_layout/canvas_print_layout.o glom/python_embed/glom_python.o glom/python_embed/python_ui_callbacks.o glom/utility_widgets/combo_textglade.o glom/utility_widgets/dialog_flowtable.o glom/utility_widgets/dialog_image_progress.o glom/utility_widgets/dialog_properties.o glom/utility_widgets/flowtable.o glom/utility_widgets/imageglom.o glom/utility_widgets/layoutwidgetbase.o glom/utility_widgets/layoutwidgetfield.o glom/utility_widgets/layoutwidgetmenu.o glom/utility_widgets/layoutwidgetutils.o glom/utility_widgets/notebookglom.o glom/utility_widgets/placeholder.o glom/utility_widgets/adddel/adddel.o glom/utility_widgets/adddel/adddel_withbuttons.o glom/utility_widgets/adddel/treeviewcolumn_glom.o glom/utility_widgets/canvas/
 canvas_editable.o glom/utility_widgets/canvas/canvas_group_grid.o glom/utility_widgets/canvas/canvas_group_movable.o glom/utility_widgets/canvas/canvas_group_resizable.o glom/utility_widgets/canvas/canvas_image_movable.o glom/utility_widgets/canvas/canvas_item_movable.o glom/utility_widgets/canvas/canvas_line_movable.o glom/utility_widgets/canvas/canvas_rect_movable.o glom/utility_widgets/canvas/canvas_table_movable.o glom/utility_widgets/canvas/canvas_text_movable.o glom/utility_widgets/cellrendererlist.o glom/mode_design/dialog_database_preferences.o glom/mode_design/dialog_initial_password.o glom/mode_design/box_db_table_relationships.o glom/mode_design/dialog_add_related_table.o glom/mode_design/dialog_design.o glom/mode_design/dialog_fields.o glom/mode_design/dialog_relationships.o glom/mode_design/iso_codes.o glom/mode_design/fields/box_db_table_definition.o glom/mode_design/fields/combo_fieldtype.o glom/mode_design/fields/dialog_fieldcalculation.o glom/mode_design/fie
 lds/dialog_fielddefinition.o glom/mode_design/layout/combobox_fields.o glom/mode_design/layout/combobox_relationship.o glom/mode_design/layout/dialog_choose_field.o glom/mode_design/layout/dialog_choose_relationship.o glom/mode_design/layout/dialog_layout.o glom/mode_design/layout/dialog_layout_export.o glom/mode_design/layout/dialog_layout_calendar_related.o glom/mode_design/layout/dialog_layout_details.o glom/mode_design/layout/dialog_layout_list.o glom/mode_design/layout/dialog_layout_list_related.o glom/mode_design/layout/treestore_layout.o glom/mode_design/layout/layout_item_dialogs/box_formatting.o glom/mode_design/layout/layout_item_dialogs/combo_summarytype.o glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.o glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.o glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.o glom/mode_design/layout/layout_item_dialogs/dialog_field_summary.o glom/mode_design/layout/layout_item_dialogs/d
 ialog_formatting.o glom/mode_design/layout/layout_item_dialogs/dialog_group_by.o glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.o glom/mode_design/layout/layout_item_dialogs/dialog_groupby_sortfields.o glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.o glom/mode_design/layout/layout_item_dialogs/dialog_notebook.o glom/mode_design/layout/layout_item_dialogs/dialog_textobject.o glom/mode_design/relationships_overview/canvas_group_dbtable.o glom/mode_design/relationships_overview/dialog_relationships_overview.o glom/mode_design/relationships_overview/printoperation_relationshipsoverview.o glom/mode_design/print_layouts/box_print_layouts.o glom/mode_design/print_layouts/dialog_text_formatting.o glom/mode_design/print_layouts/print_layout_toolbar.o glom/mode_design/print_layouts/print_layout_toolbar_button.o glom/mode_design/print_layouts/window_print_layout_edit.o glom/mode_design/report_layout/dialog_layout_report.o glom/mode_design/report_layout/tr
 eestore_report_layout.o glom/mode_design/script_library/dialog_new_script.o glom/mode_design/script_library/dialog_script_library.o glom/mode_design/users/dialog_choose_user.o glom/mode_design/users/dialog_groups_list.o glom/mode_design/users/dialog_new_group.o glom/mode_design/users/dialog_user.o glom/mode_design/users/dialog_users_list.o glom/mode_design/comboentry_currency.o glom/mode_design/translation/combobox_locale.o glom/mode_design/translation/dialog_change_language.o glom/mode_design/translation/dialog_copy_translation.o glom/mode_design/translation/dialog_identify_original.o glom/mode_design/translation/window_translations.o glom/utility_widgets/filechooserdialog_saveextras.o glom/utility_widgets/flowtable_dnd.o glom/utility_widgets/layouttoolbar.o glom/utility_widgets/layouttoolbarbutton.o glom/utility_widgets/notebooklabelglom.o glom/utility_widgets/sidebar.o glom/navigation/box_tables.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.
 0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -lboost_python -lgettextpo -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_glade_derived_instantiation'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_parsing_time.cc b/tests/test_parsing_time.cc
index 13a3933..74187f1 100644
--- a/tests/test_parsing_time.cc
+++ b/tests/test_parsing_time.cc
@@ -1,4 +1,5 @@
 #include <libglom/data_structure/glomconversions.h>
+#include <iostream>
 
 int main()
 {
@@ -9,9 +10,9 @@ int main()
 
   bool success = false;
 
-  //We try parse_time() though parse_value() calls it anyway, 
+  //We try parse_time() though parse_value() calls it anyway,
   //to give us a clue if parse_value would fail.
-  struct tm value_as_tm = 
+  struct tm value_as_tm =
     Glom::Conversions::parse_time(time_text_input, success);
   if(!success)
   {
@@ -20,7 +21,7 @@ int main()
   }
 
   success = false;
-  const Gnome::Gda::Value value = 
+  const Gnome::Gda::Value value =
     Glom::Conversions::parse_value(Glom::Field::TYPE_TIME, time_text_input, success);
 
   if(!success)
@@ -44,7 +45,7 @@ int main()
     return EXIT_FAILURE;
   }
 
-  const Glib::ustring time_text_parsed = 
+  const Glib::ustring time_text_parsed =
     Glom::Conversions::get_text_for_gda_value(Glom::Field::TYPE_TIME, value);
 
 
diff --git a/tests/test_python_execute_func b/tests/test_python_execute_func
new file mode 100755
index 0000000..8ac8d84
--- /dev/null
+++ b/tests/test_python_execute_func
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_python_execute_func - temporary wrapper script for .libs/test_python_execute_func
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_python_execute_func program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_python_execute_func.o glom/python_embed/glom_python.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_python_execute_func'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_python_execute_func.cc b/tests/test_python_execute_func.cc
index d6b4b46..8c6f5b5 100644
--- a/tests/test_python_execute_func.cc
+++ b/tests/test_python_execute_func.cc
@@ -1,8 +1,8 @@
 #include <glom/libglom/init.h>
 #include <glom/python_embed/glom_python.h>
 #include <libglom/data_structure/glomconversions.h>
-
 #include <boost/python.hpp>
+#include <iostream>
 
 int main()
 {
@@ -40,7 +40,7 @@ int main()
 
   //Check that there was no python error:
   g_assert(error_message.empty());
-  
+
   //Check that the return value is of the expected type:
   g_assert(value.get_value_type() == GDA_TYPE_NUMERIC);
 
diff --git a/tests/test_python_execute_func_bad_syntax b/tests/test_python_execute_func_bad_syntax
new file mode 100755
index 0000000..67dec21
--- /dev/null
+++ b/tests/test_python_execute_func_bad_syntax
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_python_execute_func_bad_syntax - temporary wrapper script for .libs/test_python_execute_func_bad_syntax
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_python_execute_func_bad_syntax program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_python_execute_func_bad_syntax.o glom/python_embed/glom_python.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_python_execute_func_bad_syntax'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_python_execute_func_bad_syntax.cc b/tests/test_python_execute_func_bad_syntax.cc
index 500067e..152b2dc 100644
--- a/tests/test_python_execute_func_bad_syntax.cc
+++ b/tests/test_python_execute_func_bad_syntax.cc
@@ -1,14 +1,14 @@
 #include <glom/libglom/init.h>
 #include <glom/python_embed/glom_python.h>
 #include <libglom/data_structure/glomconversions.h>
-
 #include <boost/python.hpp>
+#include <iostream>
 
 int main()
 {
   Glom::libglom_init(); //Also initializes python.
 
-  const char* calculation = 
+  const char* calculation =
     "count = 0\n"
     "return cownt";
   Glom::type_map_fields field_values;
@@ -40,10 +40,10 @@ int main()
 
   //std::cout << "type=" << g_type_name(value.get_value_type()) << std::endl;
   //std::cout << "value=" << value.to_string() << std::endl;
-  
+
   //Check that we received a traceback error:
   g_assert(!error_message.empty());
-  
+
   //Check that the return value is of the expected type:
   g_assert(value.get_value_type() == GDA_TYPE_NUMERIC);
 
diff --git a/tests/test_python_execute_func_change_result_type b/tests/test_python_execute_func_change_result_type
new file mode 100755
index 0000000..2780599
--- /dev/null
+++ b/tests/test_python_execute_func_change_result_type
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_python_execute_func_change_result_type - temporary wrapper script for .libs/test_python_execute_func_change_result_type
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_python_execute_func_change_result_type program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_python_execute_func_change_result_type.o glom/python_embed/glom_python.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_python_execute_func_change_result_type'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_python_execute_func_change_result_type.cc b/tests/test_python_execute_func_change_result_type.cc
index 720cd14..e09edba 100644
--- a/tests/test_python_execute_func_change_result_type.cc
+++ b/tests/test_python_execute_func_change_result_type.cc
@@ -1,8 +1,8 @@
 #include <glom/libglom/init.h>
 #include <glom/python_embed/glom_python.h>
 #include <libglom/data_structure/glomconversions.h>
-
 #include <boost/python.hpp>
+#include <iostream>
 
 int main()
 {
@@ -41,7 +41,7 @@ int main()
 
   //Check that there was no python error:
   g_assert(error_message.empty());
-  
+
   //Check that the return value is of the expected type:
   g_assert(Glom::Field::get_glom_type_for_gda_type(value.get_value_type()) == result_type);
 
diff --git a/tests/test_python_execute_func_date b/tests/test_python_execute_func_date
new file mode 100755
index 0000000..49d6f8a
--- /dev/null
+++ b/tests/test_python_execute_func_date
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_python_execute_func_date - temporary wrapper script for .libs/test_python_execute_func_date
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_python_execute_func_date program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_python_execute_func_date.o glom/python_embed/glom_python.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_python_execute_func_date'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_python_execute_script b/tests/test_python_execute_script
new file mode 100755
index 0000000..bebc546
--- /dev/null
+++ b/tests/test_python_execute_script
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_python_execute_script - temporary wrapper script for .libs/test_python_execute_script
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_python_execute_script program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_python_execute_script.o glom/python_embed/glom_python.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_python_execute_script'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_python_execute_script.cc b/tests/test_python_execute_script.cc
index 1ee2cf4..a51554d 100644
--- a/tests/test_python_execute_script.cc
+++ b/tests/test_python_execute_script.cc
@@ -1,5 +1,6 @@
 #include <glom/libglom/init.h>
 #include <glom/python_embed/glom_python.h>
+#include <iostream>
 
 //Store results from the callbacks and check them later:
 Glib::ustring result_table_name_list;
@@ -94,7 +95,7 @@ int main()
   }
 
   g_assert(error_message.empty());
-  
+
   //Check that the callbacks received the expected values:
   g_assert(result_table_name_list == table_name_input);
   g_assert(result_table_name_details == table_name_details_input);
diff --git a/tests/test_selfhosting_new_empty b/tests/test_selfhosting_new_empty
new file mode 100755
index 0000000..f600606
--- /dev/null
+++ b/tests/test_selfhosting_new_empty
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_selfhosting_new_empty - temporary wrapper script for .libs/test_selfhosting_new_empty
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_selfhosting_new_empty program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_selfhosting_new_empty.o glom/application.o glom/base_db.o glom/base_db_table.o glom/base_db_table_data.o glom/base_db_table_data_readonly.o glom/box_db_table.o glom/box_reports.o glom/box_withbuttons.o glom/dialog_connection.o glom/dialog_existing_or_new.o glom/dialog_invalid_data.o glom/dialog_progress_creating.o glom/filechooser_export.o glom/frame_glom.o glom/glade_utils.o glom/notebook_glom.o glom/utils_ui.o glom/variablesmap.o glom/xsl_utils.o glom/printoperation_printlayout.o glom/report_builder.o glom/window_boxholder.o glom/bakery/app.o glom/bakery/app_withdoc.o glom/bakery/app_withdoc_gtk.o glom/bakery/busy_cursor.o glom/bakery/dialog_offersave.o glom/import_csv/dialog_import_csv.o glom/import_csv/dialog_import_csv_progress.o glom/import_csv/file_encodings.o glom/import_csv/csv_parser.o glom/mode_data/box_data.o glom/mode_data/box_data_calendar_related.o glom/mode_data/box_data_details.o glom/mode_data/box_data_list.o glom/mode_data/box_data_list_relate
 d.o glom/mode_data/box_data_manyrecords.o glom/mode_data/box_data_portal.o glom/mode_data/buttonglom.o glom/mode_data/db_adddel/db_adddel.o glom/mode_data/db_adddel/db_adddel_withbuttons.o glom/mode_data/db_adddel/db_treeviewcolumn_glom.o glom/mode_data/flowtablewithfields.o glom/mode_data/notebook_data.o glom/mode_data/placeholder-glom.o glom/mode_data/datawidget/datawidget.o glom/mode_data/datawidget/cellcreation.o glom/mode_data/datawidget/cellrenderer_buttonimage.o glom/mode_data/datawidget/cellrenderer_buttontext.o glom/mode_data/datawidget/cellrenderer_dblist.o glom/mode_data/datawidget/checkbutton.o glom/mode_data/datawidget/entry.o glom/mode_data/datawidget/label.o glom/mode_data/datawidget/textview.o glom/mode_data/datawidget/dialog_choose_date.o glom/mode_data/datawidget/dialog_choose_id.o glom/mode_data/datawidget/combo.o glom/mode_data/datawidget/combochoices.o glom/mode_data/datawidget/combochoiceswithtreemodel.o glom/mode_data/datawidget/combo_as_radio_buttons.
 o glom/mode_data/datawidget/treemodel_db.o glom/mode_data/datawidget/treemodel_db_withextratext.o glom/mode_find/box_data_details_find.o glom/mode_find/box_data_list_find.o glom/mode_find/notebook_find.o glom/print_layout/canvas_layout_item.o glom/print_layout/canvas_print_layout.o glom/python_embed/glom_python.o glom/python_embed/python_ui_callbacks.o glom/utility_widgets/combo_textglade.o glom/utility_widgets/dialog_flowtable.o glom/utility_widgets/dialog_image_progress.o glom/utility_widgets/dialog_properties.o glom/utility_widgets/flowtable.o glom/utility_widgets/imageglom.o glom/utility_widgets/layoutwidgetbase.o glom/utility_widgets/layoutwidgetfield.o glom/utility_widgets/layoutwidgetmenu.o glom/utility_widgets/layoutwidgetutils.o glom/utility_widgets/notebookglom.o glom/utility_widgets/placeholder.o glom/utility_widgets/adddel/adddel.o glom/utility_widgets/adddel/adddel_withbuttons.o glom/utility_widgets/adddel/treeviewcolumn_glom.o glom/utility_widgets/canvas/canvas
 _editable.o glom/utility_widgets/canvas/canvas_group_grid.o glom/utility_widgets/canvas/canvas_group_movable.o glom/utility_widgets/canvas/canvas_group_resizable.o glom/utility_widgets/canvas/canvas_image_movable.o glom/utility_widgets/canvas/canvas_item_movable.o glom/utility_widgets/canvas/canvas_line_movable.o glom/utility_widgets/canvas/canvas_rect_movable.o glom/utility_widgets/canvas/canvas_table_movable.o glom/utility_widgets/canvas/canvas_text_movable.o glom/utility_widgets/cellrendererlist.o glom/mode_design/dialog_database_preferences.o glom/mode_design/dialog_initial_password.o glom/mode_design/box_db_table_relationships.o glom/mode_design/dialog_add_related_table.o glom/mode_design/dialog_design.o glom/mode_design/dialog_fields.o glom/mode_design/dialog_relationships.o glom/mode_design/iso_codes.o glom/mode_design/fields/box_db_table_definition.o glom/mode_design/fields/combo_fieldtype.o glom/mode_design/fields/dialog_fieldcalculation.o glom/mode_design/fields/di
 alog_fielddefinition.o glom/mode_design/layout/combobox_fields.o glom/mode_design/layout/combobox_relationship.o glom/mode_design/layout/dialog_choose_field.o glom/mode_design/layout/dialog_choose_relationship.o glom/mode_design/layout/dialog_layout.o glom/mode_design/layout/dialog_layout_export.o glom/mode_design/layout/dialog_layout_calendar_related.o glom/mode_design/layout/dialog_layout_details.o glom/mode_design/layout/dialog_layout_list.o glom/mode_design/layout/dialog_layout_list_related.o glom/mode_design/layout/treestore_layout.o glom/mode_design/layout/layout_item_dialogs/box_formatting.o glom/mode_design/layout/layout_item_dialogs/combo_summarytype.o glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.o glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.o glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.o glom/mode_design/layout/layout_item_dialogs/dialog_field_summary.o glom/mode_design/layout/layout_item_dialogs/dialog_
 formatting.o glom/mode_design/layout/layout_item_dialogs/dialog_group_by.o glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.o glom/mode_design/layout/layout_item_dialogs/dialog_groupby_sortfields.o glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.o glom/mode_design/layout/layout_item_dialogs/dialog_notebook.o glom/mode_design/layout/layout_item_dialogs/dialog_textobject.o glom/mode_design/relationships_overview/canvas_group_dbtable.o glom/mode_design/relationships_overview/dialog_relationships_overview.o glom/mode_design/relationships_overview/printoperation_relationshipsoverview.o glom/mode_design/print_layouts/box_print_layouts.o glom/mode_design/print_layouts/dialog_text_formatting.o glom/mode_design/print_layouts/print_layout_toolbar.o glom/mode_design/print_layouts/print_layout_toolbar_button.o glom/mode_design/print_layouts/window_print_layout_edit.o glom/mode_design/report_layout/dialog_layout_report.o glom/mode_design/report_layout/treestor
 e_report_layout.o glom/mode_design/script_library/dialog_new_script.o glom/mode_design/script_library/dialog_script_library.o glom/mode_design/users/dialog_choose_user.o glom/mode_design/users/dialog_groups_list.o glom/mode_design/users/dialog_new_group.o glom/mode_design/users/dialog_user.o glom/mode_design/users/dialog_users_list.o glom/mode_design/comboentry_currency.o glom/mode_design/translation/combobox_locale.o glom/mode_design/translation/dialog_change_language.o glom/mode_design/translation/dialog_copy_translation.o glom/mode_design/translation/dialog_identify_original.o glom/mode_design/translation/window_translations.o glom/utility_widgets/filechooserdialog_saveextras.o glom/utility_widgets/flowtable_dnd.o glom/utility_widgets/layouttoolbar.o glom/utility_widgets/layouttoolbarbutton.o glom/utility_widgets/notebooklabelglom.o glom/utility_widgets/sidebar.o glom/navigation/box_tables.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4.0 /opt
 /gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -lboost_python -lgettextpo -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_selfhosting_new_empty'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_selfhosting_new_empty.cc b/tests/test_selfhosting_new_empty.cc
index ed6905e..8568c10 100644
--- a/tests/test_selfhosting_new_empty.cc
+++ b/tests/test_selfhosting_new_empty.cc
@@ -25,6 +25,7 @@
 #include <libglom/privs.h>
 #include <libglom/utils.h>
 #include <giomm/file.h>
+#include <iostream>
 
 static void on_initialize_progress()
 {
diff --git a/tests/test_selfhosting_new_from_example b/tests/test_selfhosting_new_from_example
new file mode 100755
index 0000000..94f4555
--- /dev/null
+++ b/tests/test_selfhosting_new_from_example
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# tests/test_selfhosting_new_from_example - temporary wrapper script for .libs/test_selfhosting_new_from_example
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The tests/test_selfhosting_new_from_example program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/murrayc/checkouts/gnome/glom; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/opt/gnome228/lib; export LD_LIBRARY_PATH; PATH=/opt/gnome228/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/murrayc/.local/bin:/home/murrayc/.local/bin; export PATH; g++ -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DCAIROMM_DISABLE_DEPRECATED -Wall -Wextra -Wno-missing-field-initializers -DGSEAL_ENABLE -Werror -g -O0 -o \$progdir/\$fil
 e tests/test_selfhosting_new_from_example.o glom/application.o glom/base_db.o glom/base_db_table.o glom/base_db_table_data.o glom/base_db_table_data_readonly.o glom/box_db_table.o glom/box_reports.o glom/box_withbuttons.o glom/dialog_connection.o glom/dialog_existing_or_new.o glom/dialog_invalid_data.o glom/dialog_progress_creating.o glom/filechooser_export.o glom/frame_glom.o glom/glade_utils.o glom/notebook_glom.o glom/utils_ui.o glom/variablesmap.o glom/xsl_utils.o glom/printoperation_printlayout.o glom/report_builder.o glom/window_boxholder.o glom/bakery/app.o glom/bakery/app_withdoc.o glom/bakery/app_withdoc_gtk.o glom/bakery/busy_cursor.o glom/bakery/dialog_offersave.o glom/import_csv/dialog_import_csv.o glom/import_csv/dialog_import_csv_progress.o glom/import_csv/file_encodings.o glom/import_csv/csv_parser.o glom/mode_data/box_data.o glom/mode_data/box_data_calendar_related.o glom/mode_data/box_data_details.o glom/mode_data/box_data_list.o glom/mode_data/box_data_list
 _related.o glom/mode_data/box_data_manyrecords.o glom/mode_data/box_data_portal.o glom/mode_data/buttonglom.o glom/mode_data/db_adddel/db_adddel.o glom/mode_data/db_adddel/db_adddel_withbuttons.o glom/mode_data/db_adddel/db_treeviewcolumn_glom.o glom/mode_data/flowtablewithfields.o glom/mode_data/notebook_data.o glom/mode_data/placeholder-glom.o glom/mode_data/datawidget/datawidget.o glom/mode_data/datawidget/cellcreation.o glom/mode_data/datawidget/cellrenderer_buttonimage.o glom/mode_data/datawidget/cellrenderer_buttontext.o glom/mode_data/datawidget/cellrenderer_dblist.o glom/mode_data/datawidget/checkbutton.o glom/mode_data/datawidget/entry.o glom/mode_data/datawidget/label.o glom/mode_data/datawidget/textview.o glom/mode_data/datawidget/dialog_choose_date.o glom/mode_data/datawidget/dialog_choose_id.o glom/mode_data/datawidget/combo.o glom/mode_data/datawidget/combochoices.o glom/mode_data/datawidget/combochoiceswithtreemodel.o glom/mode_data/datawidget/combo_as_radio_b
 uttons.o glom/mode_data/datawidget/treemodel_db.o glom/mode_data/datawidget/treemodel_db_withextratext.o glom/mode_find/box_data_details_find.o glom/mode_find/box_data_list_find.o glom/mode_find/notebook_find.o glom/print_layout/canvas_layout_item.o glom/print_layout/canvas_print_layout.o glom/python_embed/glom_python.o glom/python_embed/python_ui_callbacks.o glom/utility_widgets/combo_textglade.o glom/utility_widgets/dialog_flowtable.o glom/utility_widgets/dialog_image_progress.o glom/utility_widgets/dialog_properties.o glom/utility_widgets/flowtable.o glom/utility_widgets/imageglom.o glom/utility_widgets/layoutwidgetbase.o glom/utility_widgets/layoutwidgetfield.o glom/utility_widgets/layoutwidgetmenu.o glom/utility_widgets/layoutwidgetutils.o glom/utility_widgets/notebookglom.o glom/utility_widgets/placeholder.o glom/utility_widgets/adddel/adddel.o glom/utility_widgets/adddel/adddel_withbuttons.o glom/utility_widgets/adddel/treeviewcolumn_glom.o glom/utility_widgets/canvas
 /canvas_editable.o glom/utility_widgets/canvas/canvas_group_grid.o glom/utility_widgets/canvas/canvas_group_movable.o glom/utility_widgets/canvas/canvas_group_resizable.o glom/utility_widgets/canvas/canvas_image_movable.o glom/utility_widgets/canvas/canvas_item_movable.o glom/utility_widgets/canvas/canvas_line_movable.o glom/utility_widgets/canvas/canvas_rect_movable.o glom/utility_widgets/canvas/canvas_table_movable.o glom/utility_widgets/canvas/canvas_text_movable.o glom/utility_widgets/cellrendererlist.o glom/mode_design/dialog_database_preferences.o glom/mode_design/dialog_initial_password.o glom/mode_design/box_db_table_relationships.o glom/mode_design/dialog_add_related_table.o glom/mode_design/dialog_design.o glom/mode_design/dialog_fields.o glom/mode_design/dialog_relationships.o glom/mode_design/iso_codes.o glom/mode_design/fields/box_db_table_definition.o glom/mode_design/fields/combo_fieldtype.o glom/mode_design/fields/dialog_fieldcalculation.o glom/mode_design/fi
 elds/dialog_fielddefinition.o glom/mode_design/layout/combobox_fields.o glom/mode_design/layout/combobox_relationship.o glom/mode_design/layout/dialog_choose_field.o glom/mode_design/layout/dialog_choose_relationship.o glom/mode_design/layout/dialog_layout.o glom/mode_design/layout/dialog_layout_export.o glom/mode_design/layout/dialog_layout_calendar_related.o glom/mode_design/layout/dialog_layout_details.o glom/mode_design/layout/dialog_layout_list.o glom/mode_design/layout/dialog_layout_list_related.o glom/mode_design/layout/treestore_layout.o glom/mode_design/layout/layout_item_dialogs/box_formatting.o glom/mode_design/layout/layout_item_dialogs/combo_summarytype.o glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.o glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.o glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.o glom/mode_design/layout/layout_item_dialogs/dialog_field_summary.o glom/mode_design/layout/layout_item_dialogs/
 dialog_formatting.o glom/mode_design/layout/layout_item_dialogs/dialog_group_by.o glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.o glom/mode_design/layout/layout_item_dialogs/dialog_groupby_sortfields.o glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.o glom/mode_design/layout/layout_item_dialogs/dialog_notebook.o glom/mode_design/layout/layout_item_dialogs/dialog_textobject.o glom/mode_design/relationships_overview/canvas_group_dbtable.o glom/mode_design/relationships_overview/dialog_relationships_overview.o glom/mode_design/relationships_overview/printoperation_relationshipsoverview.o glom/mode_design/print_layouts/box_print_layouts.o glom/mode_design/print_layouts/dialog_text_formatting.o glom/mode_design/print_layouts/print_layout_toolbar.o glom/mode_design/print_layouts/print_layout_toolbar_button.o glom/mode_design/print_layouts/window_print_layout_edit.o glom/mode_design/report_layout/dialog_layout_report.o glom/mode_design/report_layout/t
 reestore_report_layout.o glom/mode_design/script_library/dialog_new_script.o glom/mode_design/script_library/dialog_script_library.o glom/mode_design/users/dialog_choose_user.o glom/mode_design/users/dialog_groups_list.o glom/mode_design/users/dialog_new_group.o glom/mode_design/users/dialog_user.o glom/mode_design/users/dialog_users_list.o glom/mode_design/comboentry_currency.o glom/mode_design/translation/combobox_locale.o glom/mode_design/translation/dialog_change_language.o glom/mode_design/translation/dialog_copy_translation.o glom/mode_design/translation/dialog_identify_original.o glom/mode_design/translation/window_translations.o glom/utility_widgets/filechooserdialog_saveextras.o glom/utility_widgets/flowtable_dnd.o glom/utility_widgets/layouttoolbar.o glom/utility_widgets/layouttoolbarbutton.o glom/utility_widgets/notebooklabelglom.o glom/utility_widgets/sidebar.o glom/navigation/box_tables.o -pthread  -L/opt/gnome228/lib glom/libglom/.libs/libglom-1.16.so -lgdamm-4
 .0 /opt/gnome228/lib/libgda-4.0.so -lepc-1.0 -lavahi-common -lavahi-client -lavahi-glib -lsoup-2.4 -lgconfmm-2.6 -lgconf-2 -lxml++-2.6 -lxslt -lz -lxml2 -lgoocanvasmm-2.0 -lgoocanvas-2.0 -lgtksourceviewmm-3.0 /opt/gnome228/lib/libgtkmm-3.0.so -lgtksourceview-3.0 -latkmm-1.6 /opt/gnome228/lib/libgdkmm-3.0.so -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-3.0 -lgdk-x11-3.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl -lutil -lpython2.6 -lboost_python -lgettextpo -pthread -Wl,-rpath -Wl,/home/murrayc/checkouts/gnome/glom/glom/libglom/.libs -Wl,-rpath -Wl,/opt/gnome228/lib -Wl,-rpath -Wl,/opt/gnome228/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' glom/libglom/libglom-1.16.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'test_selfhosting_new_from_example'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/tests/test_selfhosting_new_from_example.cc b/tests/test_selfhosting_new_from_example.cc
index 40b47f5..a36bac6 100644
--- a/tests/test_selfhosting_new_from_example.cc
+++ b/tests/test_selfhosting_new_from_example.cc
@@ -25,6 +25,7 @@
 #include <libglom/privs.h>
 #include <libglom/db_utils.h>
 #include <giomm/file.h>
+#include <iostream>
 
 static void on_initialize_progress()
 {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]