/*
 *  Copyright (C) 2000 Ximian Inc.
 *
 *  Authors:
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Library General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include "camel-news-address.h"


static void camel_news_address_class_init (CamelNewsAddressClass *klass);

static CamelAddressClass *camel_news_address_parent;

static void
camel_news_address_class_init (CamelNewsAddressClass *klass)
{
	camel_news_address_parent = CAMEL_ADDRESS_CLASS (camel_type_get_global_classfuncs (camel_address_get_type ()));
}


CamelType
camel_news_address_get_type (void)
{
	static guint type = CAMEL_INVALID_TYPE;
	
	if (type == CAMEL_INVALID_TYPE) {
		type = camel_type_register (camel_address_get_type (), "CamelNewsAddress",
					    sizeof (CamelNewsAddress),
					    sizeof (CamelNewsAddressClass),
					    (CamelObjectClassInitFunc) camel_news_address_class_init,
					    NULL,
					    NULL,
					    NULL);
	}
	
	return type;
}

/**
 * camel_news_address_new:
 *
 * Create a new CamelNewsAddress object.
 * 
 * Return value: A new CamelNewsAddress widget.
 **/
CamelNewsAddress *
camel_news_address_new (void)
{
	CamelNewsAddress *new = CAMEL_NEWS_ADDRESS ( camel_object_new (camel_news_address_get_type ()));
	return new;
}
ref='/~lantw44/cgit/gsoc2013-evolution/tree/?h=GDM_2_2_5_4'>tree</a><a href='/~lantw44/cgit/gsoc2013-evolution/commit/?h=GDM_2_2_5_4'>commit</a><a class='active' href='/~lantw44/cgit/gsoc2013-evolution/diff/?h=GDM_2_2_5_4'>diff</a><a href='/~lantw44/cgit/gsoc2013-evolution/stats/?h=GDM_2_2_5_4'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/gsoc2013-evolution/log/'>
<input type='hidden' name='h' value='GDM_2_2_5_4'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='h' value='GDM_2_2_5_4'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><div class='diffstat-header'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/?h=GDM_2_2_5_4'>Diffstat</a></div><table summary='diffstat' class='diffstat'><tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/.cvsignore?h=GDM_2_2_5_4'>.cvsignore</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/AUTHORS?h=GDM_2_2_5_4'>AUTHORS</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/COPYING?h=GDM_2_2_5_4'>COPYING</a></td><td class='right'>340</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/COPYING-DOCS?h=GDM_2_2_5_4'>COPYING-DOCS</a></td><td class='right'>355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ChangeLog?h=GDM_2_2_5_4'>ChangeLog</a></td><td class='right'>7213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 37.4%;'/><td class='none' style='width: 62.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/HACKING?h=GDM_2_2_5_4'>HACKING</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/INSTALL?h=GDM_2_2_5_4'>INSTALL</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/MAINTAINERS?h=GDM_2_2_5_4'>MAINTAINERS</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/Makefile.am?h=GDM_2_2_5_4'>Makefile.am</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/NEWS?h=GDM_2_2_5_4'>NEWS</a></td><td class='right'>2102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.9%;'/><td class='none' style='width: 89.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/README?h=GDM_2_2_5_4'>README</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/acconfig.h?h=GDM_2_2_5_4'>acconfig.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/.cvsignore?h=GDM_2_2_5_4'>addressbook/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/ChangeLog?h=GDM_2_2_5_4'>addressbook/ChangeLog</a></td><td class='right'>9735</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 50.5%;'/><td class='none' style='width: 49.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/E-CARD-NEEDED-FIELDS?h=GDM_2_2_5_4'>addressbook/E-CARD-NEEDED-FIELDS</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/Makefile.am?h=GDM_2_2_5_4'>addressbook/Makefile.am</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/.cvsignore?h=GDM_2_2_5_4'>addressbook/backend/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/Makefile.am?h=GDM_2_2_5_4'>addressbook/backend/Makefile.am</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/.cvsignore?h=GDM_2_2_5_4'>addressbook/backend/ebook/.cvsignore</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in?h=GDM_2_2_5_4'>addressbook/backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in?h=GDM_2_2_5_4'>addressbook/backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/Makefile.am?h=GDM_2_2_5_4'>addressbook/backend/ebook/Makefile.am</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/TODO?h=GDM_2_2_5_4'>addressbook/backend/ebook/TODO</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-listener.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-listener.c</a></td><td class='right'>826</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-listener.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-listener.h</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-types.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-types.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-util.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-util.c</a></td><td class='right'>586</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-util.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-util.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-view-listener.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-view-listener.c</a></td><td class='right'>461</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-view-listener.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-view-listener.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-view.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-view.c</a></td><td class='right'>351</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book-view.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book-view.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book.c</a></td><td class='right'>1490</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.7%;'/><td class='none' style='width: 92.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-book.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-book.h</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-compare.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-compare.c</a></td><td class='right'>702</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-compare.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-compare.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-cursor.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-cursor.c</a></td><td class='right'>235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-cursor.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-cursor.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-pairs.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-pairs.h</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-simple.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-simple.c</a></td><td class='right'>1227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.4%;'/><td class='none' style='width: 93.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-simple.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-simple.h</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card-types.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card-types.h</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card.c</a></td><td class='right'>4359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 22.6%;'/><td class='none' style='width: 77.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-card.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-card.h</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-destination.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-destination.c</a></td><td class='right'>1644</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.5%;'/><td class='none' style='width: 91.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/e-destination.h?h=GDM_2_2_5_4'>addressbook/backend/ebook/e-destination.h</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/evolution-ldif-importer.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/evolution-ldif-importer.c</a></td><td class='right'>623</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/evolution-vcard-importer.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/evolution-vcard-importer.c</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/load-gnomecard-addressbook.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/load-gnomecard-addressbook.c</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/load-pine-addressbook.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/load-pine-addressbook.c</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/test-card.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/test-card.c</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/test-client-list.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/test-client-list.c</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/ebook/test-client.c?h=GDM_2_2_5_4'>addressbook/backend/ebook/test-client.c</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/idl/.cvsignore?h=GDM_2_2_5_4'>addressbook/backend/idl/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/idl/Makefile.am?h=GDM_2_2_5_4'>addressbook/backend/idl/Makefile.am</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/idl/addressbook.idl?h=GDM_2_2_5_4'>addressbook/backend/idl/addressbook.idl</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/.cvsignore?h=GDM_2_2_5_4'>addressbook/backend/pas/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/Makefile.am?h=GDM_2_2_5_4'>addressbook/backend/pas/Makefile.am</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/TODO?h=GDM_2_2_5_4'>addressbook/backend/pas/TODO</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/evolutionperson.schema?h=GDM_2_2_5_4'>addressbook/backend/pas/evolutionperson.schema</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend-card-sexp.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend-card-sexp.c</a></td><td class='right'>401</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend-card-sexp.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend-card-sexp.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend-file.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend-file.c</a></td><td class='right'>1548</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.0%;'/><td class='none' style='width: 92.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend-file.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend-file.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend-ldap.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend-ldap.c</a></td><td class='right'>2566</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.3%;'/><td class='none' style='width: 86.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend-ldap.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend-ldap.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend.c</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-backend.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-backend.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-book-factory.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-book-factory.c</a></td><td class='right'>624</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-book-factory.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-book-factory.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-book-view.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-book-view.c</a></td><td class='right'>315</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-book-view.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-book-view.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-book.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-book.c</a></td><td class='right'>871</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-book.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-book.h</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-card-cursor.c?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-card-cursor.c</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/backend/pas/pas-card-cursor.h?h=GDM_2_2_5_4'>addressbook/backend/pas/pas-card-cursor.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/conduit/.cvsignore?h=GDM_2_2_5_4'>addressbook/conduit/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/conduit/Makefile.am?h=GDM_2_2_5_4'>addressbook/conduit/Makefile.am</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/conduit/address-conduit-config.h?h=GDM_2_2_5_4'>addressbook/conduit/address-conduit-config.h</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/conduit/address-conduit.c?h=GDM_2_2_5_4'>addressbook/conduit/address-conduit.c</a></td><td class='right'>1478</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.7%;'/><td class='none' style='width: 92.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/conduit/address-conduit.h?h=GDM_2_2_5_4'>addressbook/conduit/address-conduit.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/conduit/e-address.conduit.in?h=GDM_2_2_5_4'>addressbook/conduit/e-address.conduit.in</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/Makefile.am</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/component/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/GNOME_Evolution_Addressbook.oaf.in?h=GDM_2_2_5_4'>addressbook/gui/component/GNOME_Evolution_Addressbook.oaf.in</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/component/Makefile.am</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-component.c?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-component.c</a></td><td class='right'>449</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-component.h?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-component.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-config.c?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-config.c</a></td><td class='right'>487</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-config.glade?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-config.glade</a></td><td class='right'>926</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.8%;'/><td class='none' style='width: 95.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-config.h?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-config.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-factory.c?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-factory.c</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-storage.c?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-storage.c</a></td><td class='right'>603</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.1%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook-storage.h?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook-storage.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook.c?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook.c</a></td><td class='right'>1049</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.4%;'/><td class='none' style='width: 94.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/addressbook.h?h=GDM_2_2_5_4'>addressbook/gui/component/addressbook.h</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/e-address-popup.c?h=GDM_2_2_5_4'>addressbook/gui/component/e-address-popup.c</a></td><td class='right'>1217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.3%;'/><td class='none' style='width: 93.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/e-address-popup.h?h=GDM_2_2_5_4'>addressbook/gui/component/e-address-popup.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/e-address-widget.c?h=GDM_2_2_5_4'>addressbook/gui/component/e-address-widget.c</a></td><td class='right'>577</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/e-address-widget.h?h=GDM_2_2_5_4'>addressbook/gui/component/e-address-widget.h</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/e-cardlist-model.c?h=GDM_2_2_5_4'>addressbook/gui/component/e-cardlist-model.c</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/e-cardlist-model.h?h=GDM_2_2_5_4'>addressbook/gui/component/e-cardlist-model.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/Makefile.am</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-bonobo.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-bonobo.c</a></td><td class='right'>439</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-bonobo.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-bonobo.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-completion.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-completion.c</a></td><td class='right'>1225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.4%;'/><td class='none' style='width: 93.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-completion.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-completion.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-factory.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-factory.c</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-factory.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-factory.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-manager.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-manager.c</a></td><td class='right'>583</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-manager.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-manager.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-model.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-model.c</a></td><td class='right'>897</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.7%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-model.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-model.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-popup.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-popup.c</a></td><td class='right'>562</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-popup.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-popup.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-table-model.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-table-model.c</a></td><td class='right'>347</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-table-model.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-table-model.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-text-model.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-text-model.c</a></td><td class='right'>739</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.8%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names-text-model.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names-text-model.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names.c?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names.c</a></td><td class='right'>944</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.9%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/e-select-names.h?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/e-select-names.h</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/recipient.glade?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/recipient.glade</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/component/select-names/select-names.glade?h=GDM_2_2_5_4'>addressbook/gui/component/select-names/select-names.glade</a></td><td class='right'>444</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/Makefile.am</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/arrow.png?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/arrow.png</a></td><td class='right'>bin</td><td class='graph'>174 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/contact-editor.glade?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/contact-editor.glade</a></td><td class='right'>2537</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.2%;'/><td class='none' style='width: 86.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-editor-address.c?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-editor-address.c</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-editor-address.h?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-editor-address.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-editor-confirm-delete.glade?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-editor-confirm-delete.glade</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-editor-fullname.c?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-editor-fullname.c</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-editor-fullname.h?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-editor-fullname.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-editor.c?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-editor.c</a></td><td class='right'>2560</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.3%;'/><td class='none' style='width: 86.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-editor.h?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-editor.h</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-quick-add.c?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-quick-add.c</a></td><td class='right'>454</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-quick-add.h?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-quick-add.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-save-as.c?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-save-as.c</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/e-contact-save-as.h?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/e-contact-save-as.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/file-exists.glade?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/file-exists.glade</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/fulladdr.glade?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/fulladdr.glade</a></td><td class='right'>706</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.7%;'/><td class='none' style='width: 96.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/fullname.glade?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/fullname.glade</a></td><td class='right'>389</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-editor/test-editor.c?h=GDM_2_2_5_4'>addressbook/gui/contact-editor/test-editor.c</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-list-editor/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/contact-list-editor/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-list-editor/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/contact-list-editor/Makefile.am</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-list-editor/contact-list-editor.glade?h=GDM_2_2_5_4'>addressbook/gui/contact-list-editor/contact-list-editor.glade</a></td><td class='right'>272</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-list-editor/e-contact-list-editor.c?h=GDM_2_2_5_4'>addressbook/gui/contact-list-editor/e-contact-list-editor.c</a></td><td class='right'>881</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.6%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-list-editor/e-contact-list-editor.h?h=GDM_2_2_5_4'>addressbook/gui/contact-list-editor/e-contact-list-editor.h</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-list-editor/e-contact-list-model.c?h=GDM_2_2_5_4'>addressbook/gui/contact-list-editor/e-contact-list-model.c</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/contact-list-editor/e-contact-list-model.h?h=GDM_2_2_5_4'>addressbook/gui/contact-list-editor/e-contact-list-model.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/merging/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/merging/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/merging/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/merging/Makefile.am</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/merging/e-card-duplicate-detected.glade?h=GDM_2_2_5_4'>addressbook/gui/merging/e-card-duplicate-detected.glade</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/merging/e-card-merging-book-commit-duplicate-detected.glade?h=GDM_2_2_5_4'>addressbook/gui/merging/e-card-merging-book-commit-duplicate-detected.glade</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/merging/e-card-merging.c?h=GDM_2_2_5_4'>addressbook/gui/merging/e-card-merging.c</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/merging/e-card-merging.h?h=GDM_2_2_5_4'>addressbook/gui/merging/e-card-merging.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/search/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/search/.cvsignore</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/search/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/search/Makefile.am</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/search/addresstypes.xml?h=GDM_2_2_5_4'>addressbook/gui/search/addresstypes.xml</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/search/e-addressbook-search-dialog.c?h=GDM_2_2_5_4'>addressbook/gui/search/e-addressbook-search-dialog.c</a></td><td class='right'>180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/search/e-addressbook-search-dialog.h?h=GDM_2_2_5_4'>addressbook/gui/search/e-addressbook-search-dialog.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/.cvsignore?h=GDM_2_2_5_4'>addressbook/gui/widgets/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/Makefile.am?h=GDM_2_2_5_4'>addressbook/gui/widgets/Makefile.am</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-model.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-model.c</a></td><td class='right'>578</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-model.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-model.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-reflow-adapter.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-reflow-adapter.c</a></td><td class='right'>650</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-reflow-adapter.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-reflow-adapter.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-table-adapter.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-table-adapter.c</a></td><td class='right'>391</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-table-adapter.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-table-adapter.h</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-util.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-util.c</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-util.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-util.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-view.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-view.c</a></td><td class='right'>1554</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.1%;'/><td class='none' style='width: 91.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-addressbook-view.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-addressbook-view.h</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-control.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-control.c</a></td><td class='right'>364</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-control.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-control.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-label.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-label.c</a></td><td class='right'>457</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-label.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-label.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-view-widget.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-view-widget.c</a></td><td class='right'>344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-view-widget.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-view-widget.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-view.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-view.c</a></td><td class='right'>458</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-view.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-view.h</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-widget-test.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-widget-test.c</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-widget.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-widget.c</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard-widget.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard-widget.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard.c</a></td><td class='right'>958</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/e-minicard.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/e-minicard.h</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/gal-view-factory-minicard.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/gal-view-factory-minicard.c</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/gal-view-factory-minicard.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/gal-view-factory-minicard.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/gal-view-minicard.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/gal-view-minicard.c</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/gal-view-minicard.h?h=GDM_2_2_5_4'>addressbook/gui/widgets/gal-view-minicard.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/test-minicard-label.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/test-minicard-label.c</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/test-minicard-view.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/test-minicard-view.c</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/test-minicard.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/test-minicard.c</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/gui/widgets/test-reflow.c?h=GDM_2_2_5_4'>addressbook/gui/widgets/test-reflow.c</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/.cvsignore?h=GDM_2_2_5_4'>addressbook/printing/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/Makefile.am?h=GDM_2_2_5_4'>addressbook/printing/Makefile.am</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print-envelope.c?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print-envelope.c</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print-envelope.h?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print-envelope.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print-style-editor.c?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print-style-editor.c</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print-style-editor.h?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print-style-editor.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print-types.h?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print-types.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print.c?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print.c</a></td><td class='right'>1204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.2%;'/><td class='none' style='width: 93.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print.glade?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print.glade</a></td><td class='right'>2003</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.4%;'/><td class='none' style='width: 89.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/e-contact-print.h?h=GDM_2_2_5_4'>addressbook/printing/e-contact-print.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/medbook.ecps?h=GDM_2_2_5_4'>addressbook/printing/medbook.ecps</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/phonelist.ecps?h=GDM_2_2_5_4'>addressbook/printing/phonelist.ecps</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/smallbook.ecps?h=GDM_2_2_5_4'>addressbook/printing/smallbook.ecps</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/test-contact-print-style-editor.c?h=GDM_2_2_5_4'>addressbook/printing/test-contact-print-style-editor.c</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/addressbook/printing/test-print.c?h=GDM_2_2_5_4'>addressbook/printing/test-print.c</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/.cvsignore?h=GDM_2_2_5_4'>art/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/16_copy.png?h=GDM_2_2_5_4'>art/16_copy.png</a></td><td class='right'>bin</td><td class='graph'>516 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/16_customize.png?h=GDM_2_2_5_4'>art/16_customize.png</a></td><td class='right'>bin</td><td class='graph'>266 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/16_cut.png?h=GDM_2_2_5_4'>art/16_cut.png</a></td><td class='right'>bin</td><td class='graph'>531 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/16_paste.png?h=GDM_2_2_5_4'>art/16_paste.png</a></td><td class='right'>bin</td><td class='graph'>626 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/ChangeLog?h=GDM_2_2_5_4'>art/ChangeLog</a></td><td class='right'>456</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/Makefile.am?h=GDM_2_2_5_4'>art/Makefile.am</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/about-box.png?h=GDM_2_2_5_4'>art/about-box.png</a></td><td class='right'>bin</td><td class='graph'>16070 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/add-attachment.png?h=GDM_2_2_5_4'>art/add-attachment.png</a></td><td class='right'>bin</td><td class='graph'>715 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/add-nntp-folder-24.png?h=GDM_2_2_5_4'>art/add-nntp-folder-24.png</a></td><td class='right'>bin</td><td class='graph'>863 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/add-service.png?h=GDM_2_2_5_4'>art/add-service.png</a></td><td class='right'>bin</td><td class='graph'>1186 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/alarm.png?h=GDM_2_2_5_4'>art/alarm.png</a></td><td class='right'>bin</td><td class='graph'>4384 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/all_contacts.xpm?h=GDM_2_2_5_4'>art/all_contacts.xpm</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/apply-filters-16.xpm?h=GDM_2_2_5_4'>art/apply-filters-16.xpm</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/arrow-left-24.png?h=GDM_2_2_5_4'>art/arrow-left-24.png</a></td><td class='right'>bin</td><td class='graph'>429 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/arrow-right-24.png?h=GDM_2_2_5_4'>art/arrow-right-24.png</a></td><td class='right'>bin</td><td class='graph'>431 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/attachment.xpm?h=GDM_2_2_5_4'>art/attachment.xpm</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/bcg.png?h=GDM_2_2_5_4'>art/bcg.png</a></td><td class='right'>bin</td><td class='graph'>526 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/bell.xpm?h=GDM_2_2_5_4'>art/bell.xpm</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/briefcase.png?h=GDM_2_2_5_4'>art/briefcase.png</a></td><td class='right'>bin</td><td class='graph'>2358 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/butterfly.png?h=GDM_2_2_5_4'>art/butterfly.png</a></td><td class='right'>bin</td><td class='graph'>12117 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/cellphone.png?h=GDM_2_2_5_4'>art/cellphone.png</a></td><td class='right'>bin</td><td class='graph'>3440 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/check-filled.xpm?h=GDM_2_2_5_4'>art/check-filled.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/compose-message.png?h=GDM_2_2_5_4'>art/compose-message.png</a></td><td class='right'>bin</td><td class='graph'>1062 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/configure_16_addressbook.xpm?h=GDM_2_2_5_4'>art/configure_16_addressbook.xpm</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/configure_16_calendar.xpm?h=GDM_2_2_5_4'>art/configure_16_calendar.xpm</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/configure_16_folder.xpm?h=GDM_2_2_5_4'>art/configure_16_folder.xpm</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/configure_16_mail.xpm?h=GDM_2_2_5_4'>art/configure_16_mail.xpm</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/contact-is-a-list.png?h=GDM_2_2_5_4'>art/contact-is-a-list.png</a></td><td class='right'>bin</td><td class='graph'>173 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/copy-message.png?h=GDM_2_2_5_4'>art/copy-message.png</a></td><td class='right'>bin</td><td class='graph'>863 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/copy.png?h=GDM_2_2_5_4'>art/copy.png</a></td><td class='right'>bin</td><td class='graph'>918 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/copy_16_message.xpm?h=GDM_2_2_5_4'>art/copy_16_message.xpm</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/cut.png?h=GDM_2_2_5_4'>art/cut.png</a></td><td class='right'>bin</td><td class='graph'>1063 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/dayview.xpm?h=GDM_2_2_5_4'>art/dayview.xpm</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/delete-message.png?h=GDM_2_2_5_4'>art/delete-message.png</a></td><td class='right'>bin</td><td class='graph'>1210 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/drafts-16.png?h=GDM_2_2_5_4'>art/drafts-16.png</a></td><td class='right'>bin</td><td class='graph'>539 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/edit.xpm?h=GDM_2_2_5_4'>art/edit.xpm</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/empty.gif?h=GDM_2_2_5_4'>art/empty.gif</a></td><td class='right'>bin</td><td class='graph'>104 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/empty.xpm?h=GDM_2_2_5_4'>art/empty.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/encrypt.xpm?h=GDM_2_2_5_4'>art/encrypt.xpm</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/envelope.png?h=GDM_2_2_5_4'>art/envelope.png</a></td><td class='right'>bin</td><td class='graph'>2393 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/es-appointments.png?h=GDM_2_2_5_4'>art/es-appointments.png</a></td><td class='right'>bin</td><td class='graph'>433 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/es-weather.png?h=GDM_2_2_5_4'>art/es-weather.png</a></td><td class='right'>bin</td><td class='graph'>1002 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evo-16-address-conduit.png?h=GDM_2_2_5_4'>art/evo-16-address-conduit.png</a></td><td class='right'>bin</td><td class='graph'>498 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evo-16-calendar-conduit.png?h=GDM_2_2_5_4'>art/evo-16-calendar-conduit.png</a></td><td class='right'>bin</td><td class='graph'>505 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evo-16-todo-conduit.png?h=GDM_2_2_5_4'>art/evo-16-todo-conduit.png</a></td><td class='right'>bin</td><td class='graph'>702 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evo-48-address-conduit.png?h=GDM_2_2_5_4'>art/evo-48-address-conduit.png</a></td><td class='right'>bin</td><td class='graph'>2919 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evo-48-calendar-conduit.png?h=GDM_2_2_5_4'>art/evo-48-calendar-conduit.png</a></td><td class='right'>bin</td><td class='graph'>2889 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evo-48-todo-conduit.png?h=GDM_2_2_5_4'>art/evo-48-todo-conduit.png</a></td><td class='right'>bin</td><td class='graph'>3677 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-calendar-mini.png?h=GDM_2_2_5_4'>art/evolution-calendar-mini.png</a></td><td class='right'>bin</td><td class='graph'>502 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-calendar.png?h=GDM_2_2_5_4'>art/evolution-calendar.png</a></td><td class='right'>bin</td><td class='graph'>2733 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-contacts-mini.png?h=GDM_2_2_5_4'>art/evolution-contacts-mini.png</a></td><td class='right'>bin</td><td class='graph'>452 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-contacts-plain.png?h=GDM_2_2_5_4'>art/evolution-contacts-plain.png</a></td><td class='right'>bin</td><td class='graph'>2341 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-contacts.png?h=GDM_2_2_5_4'>art/evolution-contacts.png</a></td><td class='right'>bin</td><td class='graph'>2288 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-icon.png?h=GDM_2_2_5_4'>art/evolution-icon.png</a></td><td class='right'>bin</td><td class='graph'>4547 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-inbox-mini.png?h=GDM_2_2_5_4'>art/evolution-inbox-mini.png</a></td><td class='right'>bin</td><td class='graph'>478 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-inbox.png?h=GDM_2_2_5_4'>art/evolution-inbox.png</a></td><td class='right'>bin</td><td class='graph'>2937 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-notes-mini.png?h=GDM_2_2_5_4'>art/evolution-notes-mini.png</a></td><td class='right'>bin</td><td class='graph'>516 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-notes.png?h=GDM_2_2_5_4'>art/evolution-notes.png</a></td><td class='right'>bin</td><td class='graph'>3400 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-tasks-mini.png?h=GDM_2_2_5_4'>art/evolution-tasks-mini.png</a></td><td class='right'>bin</td><td class='graph'>708 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-tasks.png?h=GDM_2_2_5_4'>art/evolution-tasks.png</a></td><td class='right'>bin</td><td class='graph'>3601 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-today-mini.png?h=GDM_2_2_5_4'>art/evolution-today-mini.png</a></td><td class='right'>bin</td><td class='graph'>664 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-today.png?h=GDM_2_2_5_4'>art/evolution-today.png</a></td><td class='right'>bin</td><td class='graph'>3713 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-trash-mini.png?h=GDM_2_2_5_4'>art/evolution-trash-mini.png</a></td><td class='right'>bin</td><td class='graph'>723 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution-trash.png?h=GDM_2_2_5_4'>art/evolution-trash.png</a></td><td class='right'>bin</td><td class='graph'>2913 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/evolution.png?h=GDM_2_2_5_4'>art/evolution.png</a></td><td class='right'>bin</td><td class='graph'>4281 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/executive-summary-bg.png?h=GDM_2_2_5_4'>art/executive-summary-bg.png</a></td><td class='right'>bin</td><td class='graph'>86508 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/executive-summary-curve.png?h=GDM_2_2_5_4'>art/executive-summary-curve.png</a></td><td class='right'>bin</td><td class='graph'>1786 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/faq-16.png?h=GDM_2_2_5_4'>art/faq-16.png</a></td><td class='right'>bin</td><td class='graph'>639 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/fetch-mail.png?h=GDM_2_2_5_4'>art/fetch-mail.png</a></td><td class='right'>bin</td><td class='graph'>1027 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/find_contact.xpm?h=GDM_2_2_5_4'>art/find_contact.xpm</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/find_message.xpm?h=GDM_2_2_5_4'>art/find_message.xpm</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/folder-copy-16.png?h=GDM_2_2_5_4'>art/folder-copy-16.png</a></td><td class='right'>bin</td><td class='graph'>376 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/folder-move-16.png?h=GDM_2_2_5_4'>art/folder-move-16.png</a></td><td class='right'>bin</td><td class='graph'>273 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/folder.xpm?h=GDM_2_2_5_4'>art/folder.xpm</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/forget_passwords.xpm?h=GDM_2_2_5_4'>art/forget_passwords.xpm</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/forward.png?h=GDM_2_2_5_4'>art/forward.png</a></td><td class='right'>bin</td><td class='graph'>693 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/forward.xpm?h=GDM_2_2_5_4'>art/forward.xpm</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/globe.png?h=GDM_2_2_5_4'>art/globe.png</a></td><td class='right'>bin</td><td class='graph'>3328 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/goto-16.png?h=GDM_2_2_5_4'>art/goto-16.png</a></td><td class='right'>bin</td><td class='graph'>470 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/goto-24.png?h=GDM_2_2_5_4'>art/goto-24.png</a></td><td class='right'>bin</td><td class='graph'>679 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/hand-16.xpm?h=GDM_2_2_5_4'>art/hand-16.xpm</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/hide_deleted_messages.xpm?h=GDM_2_2_5_4'>art/hide_deleted_messages.xpm</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/hide_read_messages.xpm?h=GDM_2_2_5_4'>art/hide_read_messages.xpm</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/hide_selected_messages.xpm?h=GDM_2_2_5_4'>art/hide_selected_messages.xpm</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/house.png?h=GDM_2_2_5_4'>art/house.png</a></td><td class='right'>bin</td><td class='graph'>4135 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/ico-calendar.png?h=GDM_2_2_5_4'>art/ico-calendar.png</a></td><td class='right'>bin</td><td class='graph'>2677 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/ico-mail.png?h=GDM_2_2_5_4'>art/ico-mail.png</a></td><td class='right'>bin</td><td class='graph'>2937 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/ico-rdf.png?h=GDM_2_2_5_4'>art/ico-rdf.png</a></td><td class='right'>bin</td><td class='graph'>3627 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/ico-weather.png?h=GDM_2_2_5_4'>art/ico-weather.png</a></td><td class='right'>bin</td><td class='graph'>4343 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/imap-16.png?h=GDM_2_2_5_4'>art/imap-16.png</a></td><td class='right'>bin</td><td class='graph'>482 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/import.png?h=GDM_2_2_5_4'>art/import.png</a></td><td class='right'>bin</td><td class='graph'>2309 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/import.xpm?h=GDM_2_2_5_4'>art/import.xpm</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/inbox-16.png?h=GDM_2_2_5_4'>art/inbox-16.png</a></td><td class='right'>bin</td><td class='graph'>587 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/inbox-full-16.png?h=GDM_2_2_5_4'>art/inbox-full-16.png</a></td><td class='right'>bin</td><td class='graph'>549 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/insert-image-24.png?h=GDM_2_2_5_4'>art/insert-image-24.png</a></td><td class='right'>bin</td><td class='graph'>711 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/insert-link-24.png?h=GDM_2_2_5_4'>art/insert-link-24.png</a></td><td class='right'>bin</td><td class='graph'>782 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/insert-table-24.png?h=GDM_2_2_5_4'>art/insert-table-24.png</a></td><td class='right'>bin</td><td class='graph'>430 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/jump.xpm?h=GDM_2_2_5_4'>art/jump.xpm</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/ldap-mini.png?h=GDM_2_2_5_4'>art/ldap-mini.png</a></td><td class='right'>bin</td><td class='graph'>542 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/ldap.png?h=GDM_2_2_5_4'>art/ldap.png</a></td><td class='right'>bin</td><td class='graph'>2614 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/local-16.png?h=GDM_2_2_5_4'>art/local-16.png</a></td><td class='right'>bin</td><td class='graph'>342 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-config-druid-48.png?h=GDM_2_2_5_4'>art/mail-config-druid-48.png</a></td><td class='right'>bin</td><td class='graph'>3529 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-config-druid-account-name.png?h=GDM_2_2_5_4'>art/mail-config-druid-account-name.png</a></td><td class='right'>bin</td><td class='graph'>3150 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-config-druid-identity.png?h=GDM_2_2_5_4'>art/mail-config-druid-identity.png</a></td><td class='right'>bin</td><td class='graph'>2646 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-config-druid-receive.png?h=GDM_2_2_5_4'>art/mail-config-druid-receive.png</a></td><td class='right'>bin</td><td class='graph'>3551 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-config-druid-send.png?h=GDM_2_2_5_4'>art/mail-config-druid-send.png</a></td><td class='right'>bin</td><td class='graph'>3379 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-config-druid.png?h=GDM_2_2_5_4'>art/mail-config-druid.png</a></td><td class='right'>bin</td><td class='graph'>3529 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-new.xpm?h=GDM_2_2_5_4'>art/mail-new.xpm</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-read.xpm?h=GDM_2_2_5_4'>art/mail-read.xpm</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mail-replied.xpm?h=GDM_2_2_5_4'>art/mail-replied.xpm</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/malehead.png?h=GDM_2_2_5_4'>art/malehead.png</a></td><td class='right'>bin</td><td class='graph'>4220 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mark-as-important-16.png?h=GDM_2_2_5_4'>art/mark-as-important-16.png</a></td><td class='right'>bin</td><td class='graph'>235 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/mark.xpm?h=GDM_2_2_5_4'>art/mark.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/meeting-request.png?h=GDM_2_2_5_4'>art/meeting-request.png</a></td><td class='right'>bin</td><td class='graph'>3520 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/meeting.xpm?h=GDM_2_2_5_4'>art/meeting.xpm</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/meeting_widget.png?h=GDM_2_2_5_4'>art/meeting_widget.png</a></td><td class='right'>bin</td><td class='graph'>14168 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/monthview.xpm?h=GDM_2_2_5_4'>art/monthview.xpm</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/move-message.png?h=GDM_2_2_5_4'>art/move-message.png</a></td><td class='right'>bin</td><td class='graph'>777 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/move_message.xpm?h=GDM_2_2_5_4'>art/move_message.xpm</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myevo-appointments.png?h=GDM_2_2_5_4'>art/myevo-appointments.png</a></td><td class='right'>bin</td><td class='graph'>2857 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myevo-mail-summary.png?h=GDM_2_2_5_4'>art/myevo-mail-summary.png</a></td><td class='right'>bin</td><td class='graph'>3278 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myevo-post-it.png?h=GDM_2_2_5_4'>art/myevo-post-it.png</a></td><td class='right'>bin</td><td class='graph'>3715 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myweather-clouds.png?h=GDM_2_2_5_4'>art/myweather-clouds.png</a></td><td class='right'>bin</td><td class='graph'>414 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myweather-fog.png?h=GDM_2_2_5_4'>art/myweather-fog.png</a></td><td class='right'>bin</td><td class='graph'>748 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myweather-rain.png?h=GDM_2_2_5_4'>art/myweather-rain.png</a></td><td class='right'>bin</td><td class='graph'>186 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myweather-snow.png?h=GDM_2_2_5_4'>art/myweather-snow.png</a></td><td class='right'>bin</td><td class='graph'>354 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myweather-storm.png?h=GDM_2_2_5_4'>art/myweather-storm.png</a></td><td class='right'>bin</td><td class='graph'>429 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myweather-sun.png?h=GDM_2_2_5_4'>art/myweather-sun.png</a></td><td class='right'>bin</td><td class='graph'>295 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/myweather-suncloud.png?h=GDM_2_2_5_4'>art/myweather-suncloud.png</a></td><td class='right'>bin</td><td class='graph'>469 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/new-message.xpm?h=GDM_2_2_5_4'>art/new-message.xpm</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/new_appointment.png?h=GDM_2_2_5_4'>art/new_appointment.png</a></td><td class='right'>bin</td><td class='graph'>1542 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/new_appointment.xpm?h=GDM_2_2_5_4'>art/new_appointment.xpm</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/new_contact.xpm?h=GDM_2_2_5_4'>art/new_contact.xpm</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/new_task-16.png?h=GDM_2_2_5_4'>art/new_task-16.png</a></td><td class='right'>bin</td><td class='graph'>427 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/new_task.png?h=GDM_2_2_5_4'>art/new_task.png</a></td><td class='right'>bin</td><td class='graph'>1032 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/next-message.png?h=GDM_2_2_5_4'>art/next-message.png</a></td><td class='right'>bin</td><td class='graph'>1050 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/offline.png?h=GDM_2_2_5_4'>art/offline.png</a></td><td class='right'>bin</td><td class='graph'>640 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/online.png?h=GDM_2_2_5_4'>art/online.png</a></td><td class='right'>bin</td><td class='graph'>547 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/open-in-new-window-16.png?h=GDM_2_2_5_4'>art/open-in-new-window-16.png</a></td><td class='right'>bin</td><td class='graph'>504 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/outbox-16.png?h=GDM_2_2_5_4'>art/outbox-16.png</a></td><td class='right'>bin</td><td class='graph'>575 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/outbox-full-16.png?h=GDM_2_2_5_4'>art/outbox-full-16.png</a></td><td class='right'>bin</td><td class='graph'>551 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/paste.png?h=GDM_2_2_5_4'>art/paste.png</a></td><td class='right'>bin</td><td class='graph'>1053 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/pattern.png?h=GDM_2_2_5_4'>art/pattern.png</a></td><td class='right'>bin</td><td class='graph'>271 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/pgp-signature-bad.png?h=GDM_2_2_5_4'>art/pgp-signature-bad.png</a></td><td class='right'>bin</td><td class='graph'>4233 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/pgp-signature-nokey.png?h=GDM_2_2_5_4'>art/pgp-signature-nokey.png</a></td><td class='right'>bin</td><td class='graph'>2907 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/pgp-signature-ok.png?h=GDM_2_2_5_4'>art/pgp-signature-ok.png</a></td><td class='right'>bin</td><td class='graph'>3140 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/pin.png?h=GDM_2_2_5_4'>art/pin.png</a></td><td class='right'>bin</td><td class='graph'>354 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/previous-message.png?h=GDM_2_2_5_4'>art/previous-message.png</a></td><td class='right'>bin</td><td class='graph'>1053 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/print-preview-24.png?h=GDM_2_2_5_4'>art/print-preview-24.png</a></td><td class='right'>bin</td><td class='graph'>1035 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/print-preview.xpm?h=GDM_2_2_5_4'>art/print-preview.xpm</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/print.png?h=GDM_2_2_5_4'>art/print.png</a></td><td class='right'>bin</td><td class='graph'>867 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/print.xpm?h=GDM_2_2_5_4'>art/print.xpm</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/priority-high.xpm?h=GDM_2_2_5_4'>art/priority-high.xpm</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/priority-low.xpm?h=GDM_2_2_5_4'>art/priority-low.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/properties-16.png?h=GDM_2_2_5_4'>art/properties-16.png</a></td><td class='right'>bin</td><td class='graph'>606 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/rdf.png?h=GDM_2_2_5_4'>art/rdf.png</a></td><td class='right'>bin</td><td class='graph'>4372 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/receive-24.png?h=GDM_2_2_5_4'>art/receive-24.png</a></td><td class='right'>bin</td><td class='graph'>847 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/recur.xpm?h=GDM_2_2_5_4'>art/recur.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/refresh-nntp-folders-24.png?h=GDM_2_2_5_4'>art/refresh-nntp-folders-24.png</a></td><td class='right'>bin</td><td class='graph'>575 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/remove-nntp-folder-24.png?h=GDM_2_2_5_4'>art/remove-nntp-folder-24.png</a></td><td class='right'>bin</td><td class='graph'>878 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/reply-to-all.png?h=GDM_2_2_5_4'>art/reply-to-all.png</a></td><td class='right'>bin</td><td class='graph'>793 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/reply.png?h=GDM_2_2_5_4'>art/reply.png</a></td><td class='right'>bin</td><td class='graph'>721 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/reply.xpm?h=GDM_2_2_5_4'>art/reply.xpm</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/reply_to_all.xpm?h=GDM_2_2_5_4'>art/reply_to_all.xpm</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/save-16.png?h=GDM_2_2_5_4'>art/save-16.png</a></td><td class='right'>bin</td><td class='graph'>540 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/save-24.png?h=GDM_2_2_5_4'>art/save-24.png</a></td><td class='right'>bin</td><td class='graph'>634 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/save-as-16.png?h=GDM_2_2_5_4'>art/save-as-16.png</a></td><td class='right'>bin</td><td class='graph'>667 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/save.xpm?h=GDM_2_2_5_4'>art/save.xpm</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/score-high.xpm?h=GDM_2_2_5_4'>art/score-high.xpm</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/score-higher.xpm?h=GDM_2_2_5_4'>art/score-higher.xpm</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/score-highest.xpm?h=GDM_2_2_5_4'>art/score-highest.xpm</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/score-low.xpm?h=GDM_2_2_5_4'>art/score-low.xpm</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/score-lower.xpm?h=GDM_2_2_5_4'>art/score-lower.xpm</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/score-lowest.xpm?h=GDM_2_2_5_4'>art/score-lowest.xpm</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/score-normal.xpm?h=GDM_2_2_5_4'>art/score-normal.xpm</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/search-16.png?h=GDM_2_2_5_4'>art/search-16.png</a></td><td class='right'>bin</td><td class='graph'>526 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/search-and-replace-16.png?h=GDM_2_2_5_4'>art/search-and-replace-16.png</a></td><td class='right'>bin</td><td class='graph'>638 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/send-16.png?h=GDM_2_2_5_4'>art/send-16.png</a></td><td class='right'>bin</td><td class='graph'>495 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/send-24-receive.png?h=GDM_2_2_5_4'>art/send-24-receive.png</a></td><td class='right'>bin</td><td class='graph'>900 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/send-24.png?h=GDM_2_2_5_4'>art/send-24.png</a></td><td class='right'>bin</td><td class='graph'>803 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/send-48-receive.png?h=GDM_2_2_5_4'>art/send-48-receive.png</a></td><td class='right'>bin</td><td class='graph'>2788 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/send-later-16.png?h=GDM_2_2_5_4'>art/send-later-16.png</a></td><td class='right'>bin</td><td class='graph'>509 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/send-receive.xpm?h=GDM_2_2_5_4'>art/send-receive.xpm</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/send.png?h=GDM_2_2_5_4'>art/send.png</a></td><td class='right'>bin</td><td class='graph'>1041 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-close.png?h=GDM_2_2_5_4'>art/service-close.png</a></td><td class='right'>bin</td><td class='graph'>360 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-configure.png?h=GDM_2_2_5_4'>art/service-configure.png</a></td><td class='right'>bin</td><td class='graph'>341 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-down-disabled.png?h=GDM_2_2_5_4'>art/service-down-disabled.png</a></td><td class='right'>bin</td><td class='graph'>331 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-down.png?h=GDM_2_2_5_4'>art/service-down.png</a></td><td class='right'>bin</td><td class='graph'>249 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-left-disabled.png?h=GDM_2_2_5_4'>art/service-left-disabled.png</a></td><td class='right'>bin</td><td class='graph'>319 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-left.png?h=GDM_2_2_5_4'>art/service-left.png</a></td><td class='right'>bin</td><td class='graph'>268 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-right-disabled.png?h=GDM_2_2_5_4'>art/service-right-disabled.png</a></td><td class='right'>bin</td><td class='graph'>318 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-right.png?h=GDM_2_2_5_4'>art/service-right.png</a></td><td class='right'>bin</td><td class='graph'>270 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-up-disabled.png?h=GDM_2_2_5_4'>art/service-up-disabled.png</a></td><td class='right'>bin</td><td class='graph'>347 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/service-up.png?h=GDM_2_2_5_4'>art/service-up.png</a></td><td class='right'>bin</td><td class='graph'>267 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/show_all_messages.xpm?h=GDM_2_2_5_4'>art/show_all_messages.xpm</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/splash-1-0.png?h=GDM_2_2_5_4'>art/splash-1-0.png</a></td><td class='right'>bin</td><td class='graph'>46629 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/splash.png?h=GDM_2_2_5_4'>art/splash.png</a></td><td class='right'>bin</td><td class='graph'>46745 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/talking-heads.png?h=GDM_2_2_5_4'>art/talking-heads.png</a></td><td class='right'>bin</td><td class='graph'>3643 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/task-assigned-to.xpm?h=GDM_2_2_5_4'>art/task-assigned-to.xpm</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/task-assigned.xpm?h=GDM_2_2_5_4'>art/task-assigned.xpm</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/task-recurring.xpm?h=GDM_2_2_5_4'>art/task-recurring.xpm</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/task.png?h=GDM_2_2_5_4'>art/task.png</a></td><td class='right'>bin</td><td class='graph'>172 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/task.xpm?h=GDM_2_2_5_4'>art/task.xpm</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/thankyou.png?h=GDM_2_2_5_4'>art/thankyou.png</a></td><td class='right'>bin</td><td class='graph'>4090 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/timezone-16.xpm?h=GDM_2_2_5_4'>art/timezone-16.xpm</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/timezone-48.png?h=GDM_2_2_5_4'>art/timezone-48.png</a></td><td class='right'>bin</td><td class='graph'>3613 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/tree-expanded.xpm?h=GDM_2_2_5_4'>art/tree-expanded.xpm</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/tree-unexpanded.xpm?h=GDM_2_2_5_4'>art/tree-unexpanded.xpm</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/undelete_message-16.png?h=GDM_2_2_5_4'>art/undelete_message-16.png</a></td><td class='right'>bin</td><td class='graph'>591 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/wax-seal-broken.png?h=GDM_2_2_5_4'>art/wax-seal-broken.png</a></td><td class='right'>bin</td><td class='graph'>27264 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/wax-seal.png?h=GDM_2_2_5_4'>art/wax-seal.png</a></td><td class='right'>bin</td><td class='graph'>22433 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/weekview.xpm?h=GDM_2_2_5_4'>art/weekview.xpm</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/work_offline.xpm?h=GDM_2_2_5_4'>art/work_offline.xpm</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/work_online-16.png?h=GDM_2_2_5_4'>art/work_online-16.png</a></td><td class='right'>bin</td><td class='graph'>458 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/workweekview.xpm?h=GDM_2_2_5_4'>art/workweekview.xpm</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/world_map-960.png?h=GDM_2_2_5_4'>art/world_map-960.png</a></td><td class='right'>bin</td><td class='graph'>111584 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/art/yearview.xpm?h=GDM_2_2_5_4'>art/yearview.xpm</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/autogen.sh?h=GDM_2_2_5_4'>autogen.sh</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/.cvsignore?h=GDM_2_2_5_4'>calendar/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/AUTHORS?h=GDM_2_2_5_4'>calendar/AUTHORS</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/ChangeLog?h=GDM_2_2_5_4'>calendar/ChangeLog</a></td><td class='right'>14488</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 75.2%;'/><td class='none' style='width: 24.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/Makefile.am?h=GDM_2_2_5_4'>calendar/Makefile.am</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/TODO?h=GDM_2_2_5_4'>calendar/TODO</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/.cvsignore?h=GDM_2_2_5_4'>calendar/cal-client/.cvsignore</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/Makefile.am?h=GDM_2_2_5_4'>calendar/cal-client/Makefile.am</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-client-multi.c?h=GDM_2_2_5_4'>calendar/cal-client/cal-client-multi.c</a></td><td class='right'>707</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.7%;'/><td class='none' style='width: 96.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-client-multi.h?h=GDM_2_2_5_4'>calendar/cal-client/cal-client-multi.h</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-client-types.c?h=GDM_2_2_5_4'>calendar/cal-client/cal-client-types.c</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-client-types.h?h=GDM_2_2_5_4'>calendar/cal-client/cal-client-types.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-client.c?h=GDM_2_2_5_4'>calendar/cal-client/cal-client.c</a></td><td class='right'>2416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.5%;'/><td class='none' style='width: 87.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-client.h?h=GDM_2_2_5_4'>calendar/cal-client/cal-client.h</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-listener.c?h=GDM_2_2_5_4'>calendar/cal-client/cal-listener.c</a></td><td class='right'>365</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-listener.h?h=GDM_2_2_5_4'>calendar/cal-client/cal-listener.h</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-query.c?h=GDM_2_2_5_4'>calendar/cal-client/cal-query.c</a></td><td class='right'>407</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/cal-query.h?h=GDM_2_2_5_4'>calendar/cal-client/cal-query.h</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/client-test.c?h=GDM_2_2_5_4'>calendar/cal-client/client-test.c</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/query-listener.c?h=GDM_2_2_5_4'>calendar/cal-client/query-listener.c</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/query-listener.h?h=GDM_2_2_5_4'>calendar/cal-client/query-listener.h</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-client/test.ics?h=GDM_2_2_5_4'>calendar/cal-client/test.ics</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/.cvsignore?h=GDM_2_2_5_4'>calendar/cal-util/.cvsignore</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/Makefile.am?h=GDM_2_2_5_4'>calendar/cal-util/Makefile.am</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/cal-component.c?h=GDM_2_2_5_4'>calendar/cal-util/cal-component.c</a></td><td class='right'>5138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 26.7%;'/><td class='none' style='width: 73.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/cal-component.h?h=GDM_2_2_5_4'>calendar/cal-util/cal-component.h</a></td><td class='right'>437</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/cal-recur.c?h=GDM_2_2_5_4'>calendar/cal-util/cal-recur.c</a></td><td class='right'>3950</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 20.5%;'/><td class='none' style='width: 79.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/cal-recur.h?h=GDM_2_2_5_4'>calendar/cal-util/cal-recur.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/cal-util.c?h=GDM_2_2_5_4'>calendar/cal-util/cal-util.c</a></td><td class='right'>457</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/cal-util.h?h=GDM_2_2_5_4'>calendar/cal-util/cal-util.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/test-recur.c?h=GDM_2_2_5_4'>calendar/cal-util/test-recur.c</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/timeutil.c?h=GDM_2_2_5_4'>calendar/cal-util/timeutil.c</a></td><td class='right'>602</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.1%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/cal-util/timeutil.h?h=GDM_2_2_5_4'>calendar/cal-util/timeutil.h</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/.cvsignore?h=GDM_2_2_5_4'>calendar/conduits/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/Makefile.am?h=GDM_2_2_5_4'>calendar/conduits/Makefile.am</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/calendar/.cvsignore?h=GDM_2_2_5_4'>calendar/conduits/calendar/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/calendar/Makefile.am?h=GDM_2_2_5_4'>calendar/conduits/calendar/Makefile.am</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/calendar/calendar-conduit-config.h?h=GDM_2_2_5_4'>calendar/conduits/calendar/calendar-conduit-config.h</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/calendar/calendar-conduit.c?h=GDM_2_2_5_4'>calendar/conduits/calendar/calendar-conduit.c</a></td><td class='right'>1422</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.4%;'/><td class='none' style='width: 92.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/calendar/calendar-conduit.h?h=GDM_2_2_5_4'>calendar/conduits/calendar/calendar-conduit.h</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/calendar/e-calendar-conduit-control-applet.desktop.in?h=GDM_2_2_5_4'>calendar/conduits/calendar/e-calendar-conduit-control-applet.desktop.in</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/calendar/e-calendar.conduit.in?h=GDM_2_2_5_4'>calendar/conduits/calendar/e-calendar.conduit.in</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/todo/.cvsignore?h=GDM_2_2_5_4'>calendar/conduits/todo/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/todo/Makefile.am?h=GDM_2_2_5_4'>calendar/conduits/todo/Makefile.am</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/todo/e-todo-conduit-control-applet.desktop.in?h=GDM_2_2_5_4'>calendar/conduits/todo/e-todo-conduit-control-applet.desktop.in</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/todo/e-todo.conduit.in?h=GDM_2_2_5_4'>calendar/conduits/todo/e-todo.conduit.in</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/todo/todo-conduit-config.h?h=GDM_2_2_5_4'>calendar/conduits/todo/todo-conduit-config.h</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/todo/todo-conduit.c?h=GDM_2_2_5_4'>calendar/conduits/todo/todo-conduit.c</a></td><td class='right'>1135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.9%;'/><td class='none' style='width: 94.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/conduits/todo/todo-conduit.h?h=GDM_2_2_5_4'>calendar/conduits/todo/todo-conduit.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/.cvsignore?h=GDM_2_2_5_4'>calendar/gui/.cvsignore</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/Evolution-Composer.h?h=GDM_2_2_5_4'>calendar/gui/Evolution-Composer.h</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/GNOME_Evolution_Calendar.oaf.in?h=GDM_2_2_5_4'>calendar/gui/GNOME_Evolution_Calendar.oaf.in</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/Makefile.am?h=GDM_2_2_5_4'>calendar/gui/Makefile.am</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/.cvsignore?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.oaf.in?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.oaf.in</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/Makefile.am?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/Makefile.am</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm-notify-dialog.c?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm-notify-dialog.c</a></td><td class='right'>413</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm-notify-dialog.h?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm-notify-dialog.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm-notify.c?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm-notify.c</a></td><td class='right'>418</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm-notify.glade?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm-notify.glade</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm-notify.h?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm-notify.h</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm-queue.c?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm-queue.c</a></td><td class='right'>995</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.2%;'/><td class='none' style='width: 94.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm-queue.h?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm-queue.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm.c?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm.c</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/alarm.h?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/alarm.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/config-data.c?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/config-data.c</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/config-data.h?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/config-data.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/notify-main.c?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/notify-main.c</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/save.c?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/save.c</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/alarm-notify/save.h?h=GDM_2_2_5_4'>calendar/gui/alarm-notify/save.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/cal-search-bar.c?h=GDM_2_2_5_4'>calendar/gui/cal-search-bar.c</a></td><td class='right'>574</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/cal-search-bar.h?h=GDM_2_2_5_4'>calendar/gui/cal-search-bar.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-commands.c?h=GDM_2_2_5_4'>calendar/gui/calendar-commands.c</a></td><td class='right'>688</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-commands.h?h=GDM_2_2_5_4'>calendar/gui/calendar-commands.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-component.c?h=GDM_2_2_5_4'>calendar/gui/calendar-component.c</a></td><td class='right'>671</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-component.h?h=GDM_2_2_5_4'>calendar/gui/calendar-component.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-config.c?h=GDM_2_2_5_4'>calendar/gui/calendar-config.c</a></td><td class='right'>923</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.8%;'/><td class='none' style='width: 95.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-config.h?h=GDM_2_2_5_4'>calendar/gui/calendar-config.h</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-model.c?h=GDM_2_2_5_4'>calendar/gui/calendar-model.c</a></td><td class='right'>2492</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.9%;'/><td class='none' style='width: 87.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-model.h?h=GDM_2_2_5_4'>calendar/gui/calendar-model.h</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-offline-handler.c?h=GDM_2_2_5_4'>calendar/gui/calendar-offline-handler.c</a></td><td class='right'>285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-offline-handler.h?h=GDM_2_2_5_4'>calendar/gui/calendar-offline-handler.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-summary.c?h=GDM_2_2_5_4'>calendar/gui/calendar-summary.c</a></td><td class='right'>778</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-summary.h?h=GDM_2_2_5_4'>calendar/gui/calendar-summary.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-view-factory.c?h=GDM_2_2_5_4'>calendar/gui/calendar-view-factory.c</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-view-factory.h?h=GDM_2_2_5_4'>calendar/gui/calendar-view-factory.h</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-view.c?h=GDM_2_2_5_4'>calendar/gui/calendar-view.c</a></td><td class='right'>317</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/calendar-view.h?h=GDM_2_2_5_4'>calendar/gui/calendar-view.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/comp-editor-factory.c?h=GDM_2_2_5_4'>calendar/gui/comp-editor-factory.c</a></td><td class='right'>703</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/comp-editor-factory.h?h=GDM_2_2_5_4'>calendar/gui/comp-editor-factory.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/comp-util.c?h=GDM_2_2_5_4'>calendar/gui/comp-util.c</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/comp-util.h?h=GDM_2_2_5_4'>calendar/gui/comp-util.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/component-factory.c?h=GDM_2_2_5_4'>calendar/gui/component-factory.c</a></td><td class='right'>671</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/component-factory.h?h=GDM_2_2_5_4'>calendar/gui/component-factory.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/control-factory.c?h=GDM_2_2_5_4'>calendar/gui/control-factory.c</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/control-factory.h?h=GDM_2_2_5_4'>calendar/gui/control-factory.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/.cvsignore?h=GDM_2_2_5_4'>calendar/gui/dialogs/.cvsignore</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/Makefile.am?h=GDM_2_2_5_4'>calendar/gui/dialogs/Makefile.am</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/alarm-options.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/alarm-options.c</a></td><td class='right'>585</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/alarm-options.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/alarm-options.glade</a></td><td class='right'>398</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/alarm-options.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/alarm-options.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/alarm-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/alarm-page.c</a></td><td class='right'>859</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/alarm-page.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/alarm-page.glade</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/alarm-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/alarm-page.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/cal-prefs-dialog.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/cal-prefs-dialog.c</a></td><td class='right'>666</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/cal-prefs-dialog.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/cal-prefs-dialog.glade</a></td><td class='right'>976</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.1%;'/><td class='none' style='width: 94.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/cal-prefs-dialog.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/cal-prefs-dialog.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/cancel-comp.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/cancel-comp.c</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/cancel-comp.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/cancel-comp.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/changed-comp.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/changed-comp.c</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/changed-comp.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/changed-comp.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/comp-editor-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/comp-editor-page.c</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/comp-editor-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/comp-editor-page.h</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/comp-editor-util.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/comp-editor-util.c</a></td><td class='right'>573</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/comp-editor-util.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/comp-editor-util.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/comp-editor.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/comp-editor.c</a></td><td class='right'>1261</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.5%;'/><td class='none' style='width: 93.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/comp-editor.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/comp-editor.h</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/delete-comp.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/delete-comp.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/delete-comp.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/delete-comp.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/e-delegate-dialog.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/e-delegate-dialog.c</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/e-delegate-dialog.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/e-delegate-dialog.glade</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/e-delegate-dialog.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/e-delegate-dialog.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/event-editor.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/event-editor.c</a></td><td class='right'>422</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/event-editor.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/event-editor.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/event-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/event-page.c</a></td><td class='right'>1385</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.2%;'/><td class='none' style='width: 92.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/event-page.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/event-page.glade</a></td><td class='right'>544</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/event-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/event-page.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/meeting-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/meeting-page.c</a></td><td class='right'>821</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/meeting-page.etspec?h=GDM_2_2_5_4'>calendar/gui/dialogs/meeting-page.etspec</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/meeting-page.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/meeting-page.glade</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/meeting-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/meeting-page.h</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/recurrence-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/recurrence-page.c</a></td><td class='right'>2227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 11.6%;'/><td class='none' style='width: 88.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/recurrence-page.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/recurrence-page.glade</a></td><td class='right'>602</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.1%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/recurrence-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/recurrence-page.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/save-comp.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/save-comp.c</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/save-comp.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/save-comp.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/schedule-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/schedule-page.c</a></td><td class='right'>487</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/schedule-page.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/schedule-page.glade</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/schedule-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/schedule-page.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/send-comp.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/send-comp.c</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/send-comp.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/send-comp.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-details-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-details-page.c</a></td><td class='right'>755</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.9%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-details-page.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-details-page.glade</a></td><td class='right'>310</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-details-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-details-page.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-editor.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-editor.c</a></td><td class='right'>383</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-editor.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-editor.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-page.c?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-page.c</a></td><td class='right'>947</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.9%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-page.glade?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-page.glade</a></td><td class='right'>487</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/dialogs/task-page.h?h=GDM_2_2_5_4'>calendar/gui/dialogs/task-page.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-calendar-table.c?h=GDM_2_2_5_4'>calendar/gui/e-calendar-table.c</a></td><td class='right'>1220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.3%;'/><td class='none' style='width: 93.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-calendar-table.etspec?h=GDM_2_2_5_4'>calendar/gui/e-calendar-table.etspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-calendar-table.h?h=GDM_2_2_5_4'>calendar/gui/e-calendar-table.h</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-cell-date-edit-text.c?h=GDM_2_2_5_4'>calendar/gui/e-cell-date-edit-text.c</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-cell-date-edit-text.h?h=GDM_2_2_5_4'>calendar/gui/e-cell-date-edit-text.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-layout.c?h=GDM_2_2_5_4'>calendar/gui/e-day-view-layout.c</a></td><td class='right'>353</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-layout.h?h=GDM_2_2_5_4'>calendar/gui/e-day-view-layout.h</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-main-item.c?h=GDM_2_2_5_4'>calendar/gui/e-day-view-main-item.c</a></td><td class='right'>757</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.9%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-main-item.h?h=GDM_2_2_5_4'>calendar/gui/e-day-view-main-item.h</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-time-item.c?h=GDM_2_2_5_4'>calendar/gui/e-day-view-time-item.c</a></td><td class='right'>660</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-time-item.h?h=GDM_2_2_5_4'>calendar/gui/e-day-view-time-item.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-top-item.c?h=GDM_2_2_5_4'>calendar/gui/e-day-view-top-item.c</a></td><td class='right'>696</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view-top-item.h?h=GDM_2_2_5_4'>calendar/gui/e-day-view-top-item.h</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view.c?h=GDM_2_2_5_4'>calendar/gui/e-day-view.c</a></td><td class='right'>7107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 36.9%;'/><td class='none' style='width: 63.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-day-view.h?h=GDM_2_2_5_4'>calendar/gui/e-day-view.h</a></td><td class='right'>671</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-itip-control.c?h=GDM_2_2_5_4'>calendar/gui/e-itip-control.c</a></td><td class='right'>1411</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.3%;'/><td class='none' style='width: 92.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-itip-control.glade?h=GDM_2_2_5_4'>calendar/gui/e-itip-control.glade</a></td><td class='right'>478</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-itip-control.h?h=GDM_2_2_5_4'>calendar/gui/e-itip-control.h</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-attendee.c?h=GDM_2_2_5_4'>calendar/gui/e-meeting-attendee.c</a></td><td class='right'>991</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.1%;'/><td class='none' style='width: 94.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-attendee.h?h=GDM_2_2_5_4'>calendar/gui/e-meeting-attendee.h</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-model.c?h=GDM_2_2_5_4'>calendar/gui/e-meeting-model.c</a></td><td class='right'>1510</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.8%;'/><td class='none' style='width: 92.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-model.h?h=GDM_2_2_5_4'>calendar/gui/e-meeting-model.h</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-time-sel-item.c?h=GDM_2_2_5_4'>calendar/gui/e-meeting-time-sel-item.c</a></td><td class='right'>1011</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.2%;'/><td class='none' style='width: 94.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-time-sel-item.h?h=GDM_2_2_5_4'>calendar/gui/e-meeting-time-sel-item.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-time-sel.c?h=GDM_2_2_5_4'>calendar/gui/e-meeting-time-sel.c</a></td><td class='right'>2710</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 14.1%;'/><td class='none' style='width: 85.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-time-sel.etspec?h=GDM_2_2_5_4'>calendar/gui/e-meeting-time-sel.etspec</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-time-sel.h?h=GDM_2_2_5_4'>calendar/gui/e-meeting-time-sel.h</a></td><td class='right'>378</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-meeting-types.h?h=GDM_2_2_5_4'>calendar/gui/e-meeting-types.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-tasks.c?h=GDM_2_2_5_4'>calendar/gui/e-tasks.c</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-tasks.h?h=GDM_2_2_5_4'>calendar/gui/e-tasks.h</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-timezone-entry.c?h=GDM_2_2_5_4'>calendar/gui/e-timezone-entry.c</a></td><td class='right'>374</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-timezone-entry.h?h=GDM_2_2_5_4'>calendar/gui/e-timezone-entry.h</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-event-item.c?h=GDM_2_2_5_4'>calendar/gui/e-week-view-event-item.c</a></td><td class='right'>902</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.7%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-event-item.h?h=GDM_2_2_5_4'>calendar/gui/e-week-view-event-item.h</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-layout.c?h=GDM_2_2_5_4'>calendar/gui/e-week-view-layout.c</a></td><td class='right'>426</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-layout.h?h=GDM_2_2_5_4'>calendar/gui/e-week-view-layout.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-main-item.c?h=GDM_2_2_5_4'>calendar/gui/e-week-view-main-item.c</a></td><td class='right'>389</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-main-item.h?h=GDM_2_2_5_4'>calendar/gui/e-week-view-main-item.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-titles-item.c?h=GDM_2_2_5_4'>calendar/gui/e-week-view-titles-item.c</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view-titles-item.h?h=GDM_2_2_5_4'>calendar/gui/e-week-view-titles-item.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view.c?h=GDM_2_2_5_4'>calendar/gui/e-week-view.c</a></td><td class='right'>3977</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 20.6%;'/><td class='none' style='width: 79.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/e-week-view.h?h=GDM_2_2_5_4'>calendar/gui/e-week-view.h</a></td><td class='right'>509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/gnome-cal.c?h=GDM_2_2_5_4'>calendar/gui/gnome-cal.c</a></td><td class='right'>2609</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.5%;'/><td class='none' style='width: 86.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/gnome-cal.h?h=GDM_2_2_5_4'>calendar/gui/gnome-cal.h</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/gnome-calendar-conduit.png?h=GDM_2_2_5_4'>calendar/gui/gnome-calendar-conduit.png</a></td><td class='right'>bin</td><td class='graph'>3000 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/goto-dialog.glade?h=GDM_2_2_5_4'>calendar/gui/goto-dialog.glade</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/goto.c?h=GDM_2_2_5_4'>calendar/gui/goto.c</a></td><td class='right'>257</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/goto.h?h=GDM_2_2_5_4'>calendar/gui/goto.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/itip-bonobo-control.c?h=GDM_2_2_5_4'>calendar/gui/itip-bonobo-control.c</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/itip-bonobo-control.h?h=GDM_2_2_5_4'>calendar/gui/itip-bonobo-control.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/itip-control-factory.c?h=GDM_2_2_5_4'>calendar/gui/itip-control-factory.c</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/itip-control-factory.h?h=GDM_2_2_5_4'>calendar/gui/itip-control-factory.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/itip-utils.c?h=GDM_2_2_5_4'>calendar/gui/itip-utils.c</a></td><td class='right'>771</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/itip-utils.h?h=GDM_2_2_5_4'>calendar/gui/itip-utils.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/main.c?h=GDM_2_2_5_4'>calendar/gui/main.c</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/meeting-mockup.glade?h=GDM_2_2_5_4'>calendar/gui/meeting-mockup.glade</a></td><td class='right'>488</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/print.c?h=GDM_2_2_5_4'>calendar/gui/print.c</a></td><td class='right'>2437</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.6%;'/><td class='none' style='width: 87.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/print.h?h=GDM_2_2_5_4'>calendar/gui/print.h</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tag-calendar.c?h=GDM_2_2_5_4'>calendar/gui/tag-calendar.c</a></td><td class='right'>228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tag-calendar.h?h=GDM_2_2_5_4'>calendar/gui/tag-calendar.h</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tasks-control-factory.c?h=GDM_2_2_5_4'>calendar/gui/tasks-control-factory.c</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tasks-control-factory.h?h=GDM_2_2_5_4'>calendar/gui/tasks-control-factory.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tasks-control.c?h=GDM_2_2_5_4'>calendar/gui/tasks-control.c</a></td><td class='right'>406</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tasks-control.h?h=GDM_2_2_5_4'>calendar/gui/tasks-control.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tasks-migrate.c?h=GDM_2_2_5_4'>calendar/gui/tasks-migrate.c</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/tasks-migrate.h?h=GDM_2_2_5_4'>calendar/gui/tasks-migrate.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/topic.dat?h=GDM_2_2_5_4'>calendar/gui/topic.dat</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/weekday-picker.c?h=GDM_2_2_5_4'>calendar/gui/weekday-picker.c</a></td><td class='right'>575</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/gui/weekday-picker.h?h=GDM_2_2_5_4'>calendar/gui/weekday-picker.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/idl/.cvsignore?h=GDM_2_2_5_4'>calendar/idl/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/idl/Makefile.am?h=GDM_2_2_5_4'>calendar/idl/Makefile.am</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/idl/evolution-calendar.idl?h=GDM_2_2_5_4'>calendar/idl/evolution-calendar.idl</a></td><td class='right'>344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/.cvsignore?h=GDM_2_2_5_4'>calendar/pcs/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/Makefile.am?h=GDM_2_2_5_4'>calendar/pcs/Makefile.am</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend-db.c?h=GDM_2_2_5_4'>calendar/pcs/cal-backend-db.c</a></td><td class='right'>1191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.2%;'/><td class='none' style='width: 93.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend-db.h?h=GDM_2_2_5_4'>calendar/pcs/cal-backend-db.h</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend-file.c?h=GDM_2_2_5_4'>calendar/pcs/cal-backend-file.c</a></td><td class='right'>1901</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 9.9%;'/><td class='none' style='width: 90.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend-file.h?h=GDM_2_2_5_4'>calendar/pcs/cal-backend-file.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend-util.c?h=GDM_2_2_5_4'>calendar/pcs/cal-backend-util.c</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend-util.h?h=GDM_2_2_5_4'>calendar/pcs/cal-backend-util.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend.c?h=GDM_2_2_5_4'>calendar/pcs/cal-backend.c</a></td><td class='right'>823</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-backend.h?h=GDM_2_2_5_4'>calendar/pcs/cal-backend.h</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-common.h?h=GDM_2_2_5_4'>calendar/pcs/cal-common.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-factory.c?h=GDM_2_2_5_4'>calendar/pcs/cal-factory.c</a></td><td class='right'>797</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.1%;'/><td class='none' style='width: 95.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal-factory.h?h=GDM_2_2_5_4'>calendar/pcs/cal-factory.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal.c?h=GDM_2_2_5_4'>calendar/pcs/cal.c</a></td><td class='right'>861</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/cal.h?h=GDM_2_2_5_4'>calendar/pcs/cal.h</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/job.c?h=GDM_2_2_5_4'>calendar/pcs/job.c</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/job.h?h=GDM_2_2_5_4'>calendar/pcs/job.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/query.c?h=GDM_2_2_5_4'>calendar/pcs/query.c</a></td><td class='right'>1438</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.5%;'/><td class='none' style='width: 92.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/calendar/pcs/query.h?h=GDM_2_2_5_4'>calendar/pcs/query.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/.cvsignore?h=GDM_2_2_5_4'>camel/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/CODING.STYLE?h=GDM_2_2_5_4'>camel/CODING.STYLE</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/ChangeLog?h=GDM_2_2_5_4'>camel/ChangeLog</a></td><td class='right'>15933</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 82.6%;'/><td class='none' style='width: 17.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/Makefile.am?h=GDM_2_2_5_4'>camel/Makefile.am</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/README?h=GDM_2_2_5_4'>camel/README</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/README.COPYRIGHT?h=GDM_2_2_5_4'>camel/README.COPYRIGHT</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/README.HACKING?h=GDM_2_2_5_4'>camel/README.HACKING</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/README.mt?h=GDM_2_2_5_4'>camel/README.mt</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/broken-date-parser.c?h=GDM_2_2_5_4'>camel/broken-date-parser.c</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/broken-date-parser.h?h=GDM_2_2_5_4'>camel/broken-date-parser.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-address.c?h=GDM_2_2_5_4'>camel/camel-address.c</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-address.h?h=GDM_2_2_5_4'>camel/camel-address.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-charset-map-private.h?h=GDM_2_2_5_4'>camel/camel-charset-map-private.h</a></td><td class='right'>515</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-charset-map.c?h=GDM_2_2_5_4'>camel/camel-charset-map.c</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-charset-map.h?h=GDM_2_2_5_4'>camel/camel-charset-map.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-cipher-context.c?h=GDM_2_2_5_4'>camel/camel-cipher-context.c</a></td><td class='right'>450</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-cipher-context.h?h=GDM_2_2_5_4'>camel/camel-cipher-context.h</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-cms-context.c?h=GDM_2_2_5_4'>camel/camel-cms-context.c</a></td><td class='right'>324</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-cms-context.h?h=GDM_2_2_5_4'>camel/camel-cms-context.h</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-data-wrapper.c?h=GDM_2_2_5_4'>camel/camel-data-wrapper.c</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-data-wrapper.h?h=GDM_2_2_5_4'>camel/camel-data-wrapper.h</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-digest-folder.c?h=GDM_2_2_5_4'>camel/camel-digest-folder.c</a></td><td class='right'>304</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-digest-folder.h?h=GDM_2_2_5_4'>camel/camel-digest-folder.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-disco-diary.c?h=GDM_2_2_5_4'>camel/camel-disco-diary.c</a></td><td class='right'>417</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-disco-diary.h?h=GDM_2_2_5_4'>camel/camel-disco-diary.h</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-disco-folder.c?h=GDM_2_2_5_4'>camel/camel-disco-folder.c</a></td><td class='right'>325</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-disco-folder.h?h=GDM_2_2_5_4'>camel/camel-disco-folder.h</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-disco-store.c?h=GDM_2_2_5_4'>camel/camel-disco-store.c</a></td><td class='right'>342</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-disco-store.h?h=GDM_2_2_5_4'>camel/camel-disco-store.h</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-exception-list.def?h=GDM_2_2_5_4'>camel/camel-exception-list.def</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-exception.c?h=GDM_2_2_5_4'>camel/camel-exception.c</a></td><td class='right'>299</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-exception.h?h=GDM_2_2_5_4'>camel/camel-exception.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-file-utils.c?h=GDM_2_2_5_4'>camel/camel-file-utils.c</a></td><td class='right'>283</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-file-utils.h?h=GDM_2_2_5_4'>camel/camel-file-utils.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-filter-driver.c?h=GDM_2_2_5_4'>camel/camel-filter-driver.c</a></td><td class='right'>977</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.1%;'/><td class='none' style='width: 94.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-filter-driver.h?h=GDM_2_2_5_4'>camel/camel-filter-driver.h</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-filter-search.c?h=GDM_2_2_5_4'>camel/camel-filter-search.c</a></td><td class='right'>523</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-filter-search.h?h=GDM_2_2_5_4'>camel/camel-filter-search.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder-search.c?h=GDM_2_2_5_4'>camel/camel-folder-search.c</a></td><td class='right'>984</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.1%;'/><td class='none' style='width: 94.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder-search.h?h=GDM_2_2_5_4'>camel/camel-folder-search.h</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder-summary.c?h=GDM_2_2_5_4'>camel/camel-folder-summary.c</a></td><td class='right'>2760</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 14.3%;'/><td class='none' style='width: 85.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder-summary.h?h=GDM_2_2_5_4'>camel/camel-folder-summary.h</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder-thread.c?h=GDM_2_2_5_4'>camel/camel-folder-thread.c</a></td><td class='right'>784</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.1%;'/><td class='none' style='width: 95.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder-thread.h?h=GDM_2_2_5_4'>camel/camel-folder-thread.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder.c?h=GDM_2_2_5_4'>camel/camel-folder.c</a></td><td class='right'>2005</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.4%;'/><td class='none' style='width: 89.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-folder.h?h=GDM_2_2_5_4'>camel/camel-folder.h</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-html-parser.c?h=GDM_2_2_5_4'>camel/camel-html-parser.c</a></td><td class='right'>807</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.2%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-html-parser.h?h=GDM_2_2_5_4'>camel/camel-html-parser.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-internet-address.c?h=GDM_2_2_5_4'>camel/camel-internet-address.c</a></td><td class='right'>510</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-internet-address.h?h=GDM_2_2_5_4'>camel/camel-internet-address.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-lock-client.c?h=GDM_2_2_5_4'>camel/camel-lock-client.c</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-lock-client.h?h=GDM_2_2_5_4'>camel/camel-lock-client.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-lock-helper.c?h=GDM_2_2_5_4'>camel/camel-lock-helper.c</a></td><td class='right'>391</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-lock-helper.h?h=GDM_2_2_5_4'>camel/camel-lock-helper.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-lock.c?h=GDM_2_2_5_4'>camel/camel-lock.c</a></td><td class='right'>419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-lock.h?h=GDM_2_2_5_4'>camel/camel-lock.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-medium.c?h=GDM_2_2_5_4'>camel/camel-medium.c</a></td><td class='right'>336</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-medium.h?h=GDM_2_2_5_4'>camel/camel-medium.h</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-basic.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-basic.c</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-basic.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-basic.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-bestenc.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-bestenc.c</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-bestenc.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-bestenc.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-charset.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-charset.c</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-charset.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-charset.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-crlf.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-crlf.c</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-crlf.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-crlf.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-from.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-from.c</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-from.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-from.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-html.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-html.c</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-html.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-html.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-index.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-index.c</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-index.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-index.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-linewrap.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-linewrap.c</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-linewrap.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-linewrap.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-save.c?h=GDM_2_2_5_4'>camel/camel-mime-filter-save.c</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter-save.h?h=GDM_2_2_5_4'>camel/camel-mime-filter-save.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter.c?h=GDM_2_2_5_4'>camel/camel-mime-filter.c</a></td><td class='right'>256</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-filter.h?h=GDM_2_2_5_4'>camel/camel-mime-filter.h</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-message.c?h=GDM_2_2_5_4'>camel/camel-mime-message.c</a></td><td class='right'>886</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.6%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-message.h?h=GDM_2_2_5_4'>camel/camel-mime-message.h</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-parser.c?h=GDM_2_2_5_4'>camel/camel-mime-parser.c</a></td><td class='right'>1953</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.1%;'/><td class='none' style='width: 89.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-parser.h?h=GDM_2_2_5_4'>camel/camel-mime-parser.h</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-part-utils.c?h=GDM_2_2_5_4'>camel/camel-mime-part-utils.c</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-part-utils.h?h=GDM_2_2_5_4'>camel/camel-mime-part-utils.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-part.c?h=GDM_2_2_5_4'>camel/camel-mime-part.c</a></td><td class='right'>826</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-part.h?h=GDM_2_2_5_4'>camel/camel-mime-part.h</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-utils.c?h=GDM_2_2_5_4'>camel/camel-mime-utils.c</a></td><td class='right'>4129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 21.4%;'/><td class='none' style='width: 78.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-mime-utils.h?h=GDM_2_2_5_4'>camel/camel-mime-utils.h</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-movemail.c?h=GDM_2_2_5_4'>camel/camel-movemail.c</a></td><td class='right'>544</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-movemail.h?h=GDM_2_2_5_4'>camel/camel-movemail.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-multipart.c?h=GDM_2_2_5_4'>camel/camel-multipart.c</a></td><td class='right'>542</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-multipart.h?h=GDM_2_2_5_4'>camel/camel-multipart.h</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-news-address.c?h=GDM_2_2_5_4'>camel/camel-news-address.c</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-news-address.h?h=GDM_2_2_5_4'>camel/camel-news-address.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-object.c?h=GDM_2_2_5_4'>camel/camel-object.c</a></td><td class='right'>1106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.7%;'/><td class='none' style='width: 94.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-object.h?h=GDM_2_2_5_4'>camel/camel-object.h</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-operation.c?h=GDM_2_2_5_4'>camel/camel-operation.c</a></td><td class='right'>671</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-operation.h?h=GDM_2_2_5_4'>camel/camel-operation.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-pgp-context.c?h=GDM_2_2_5_4'>camel/camel-pgp-context.c</a></td><td class='right'>1397</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.2%;'/><td class='none' style='width: 92.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-pgp-context.h?h=GDM_2_2_5_4'>camel/camel-pgp-context.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-pgp-mime.c?h=GDM_2_2_5_4'>camel/camel-pgp-mime.c</a></td><td class='right'>578</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-pgp-mime.h?h=GDM_2_2_5_4'>camel/camel-pgp-mime.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-pkcs7-context.c?h=GDM_2_2_5_4'>camel/camel-pkcs7-context.c</a></td><td class='right'>691</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-pkcs7-context.h?h=GDM_2_2_5_4'>camel/camel-pkcs7-context.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-private.h?h=GDM_2_2_5_4'>camel/camel-private.h</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-provider.c?h=GDM_2_2_5_4'>camel/camel-provider.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-provider.h?h=GDM_2_2_5_4'>camel/camel-provider.h</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-remote-store.c?h=GDM_2_2_5_4'>camel/camel-remote-store.c</a></td><td class='right'>576</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-remote-store.h?h=GDM_2_2_5_4'>camel/camel-remote-store.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-anonymous.c?h=GDM_2_2_5_4'>camel/camel-sasl-anonymous.c</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-anonymous.h?h=GDM_2_2_5_4'>camel/camel-sasl-anonymous.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-cram-md5.c?h=GDM_2_2_5_4'>camel/camel-sasl-cram-md5.c</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-cram-md5.h?h=GDM_2_2_5_4'>camel/camel-sasl-cram-md5.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-digest-md5.c?h=GDM_2_2_5_4'>camel/camel-sasl-digest-md5.c</a></td><td class='right'>895</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.6%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-digest-md5.h?h=GDM_2_2_5_4'>camel/camel-sasl-digest-md5.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-kerberos4.c?h=GDM_2_2_5_4'>camel/camel-sasl-kerberos4.c</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-kerberos4.h?h=GDM_2_2_5_4'>camel/camel-sasl-kerberos4.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-login.c?h=GDM_2_2_5_4'>camel/camel-sasl-login.c</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-login.h?h=GDM_2_2_5_4'>camel/camel-sasl-login.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-plain.c?h=GDM_2_2_5_4'>camel/camel-sasl-plain.c</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-plain.h?h=GDM_2_2_5_4'>camel/camel-sasl-plain.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-popb4smtp.c?h=GDM_2_2_5_4'>camel/camel-sasl-popb4smtp.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl-popb4smtp.h?h=GDM_2_2_5_4'>camel/camel-sasl-popb4smtp.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl.c?h=GDM_2_2_5_4'>camel/camel-sasl.c</a></td><td class='right'>263</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-sasl.h?h=GDM_2_2_5_4'>camel/camel-sasl.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-search-private.c?h=GDM_2_2_5_4'>camel/camel-search-private.c</a></td><td class='right'>497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-search-private.h?h=GDM_2_2_5_4'>camel/camel-search-private.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-seekable-stream.c?h=GDM_2_2_5_4'>camel/camel-seekable-stream.c</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-seekable-stream.h?h=GDM_2_2_5_4'>camel/camel-seekable-stream.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-seekable-substream.c?h=GDM_2_2_5_4'>camel/camel-seekable-substream.c</a></td><td class='right'>304</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-seekable-substream.h?h=GDM_2_2_5_4'>camel/camel-seekable-substream.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-service.c?h=GDM_2_2_5_4'>camel/camel-service.c</a></td><td class='right'>688</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-service.h?h=GDM_2_2_5_4'>camel/camel-service.h</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-session.c?h=GDM_2_2_5_4'>camel/camel-session.c</a></td><td class='right'>897</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.7%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-session.h?h=GDM_2_2_5_4'>camel/camel-session.h</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-smime-context.c?h=GDM_2_2_5_4'>camel/camel-smime-context.c</a></td><td class='right'>953</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.9%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-smime-context.h?h=GDM_2_2_5_4'>camel/camel-smime-context.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-smime-utils.c?h=GDM_2_2_5_4'>camel/camel-smime-utils.c</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-smime-utils.h?h=GDM_2_2_5_4'>camel/camel-smime-utils.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-store.c?h=GDM_2_2_5_4'>camel/camel-store.c</a></td><td class='right'>1042</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.4%;'/><td class='none' style='width: 94.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-store.h?h=GDM_2_2_5_4'>camel/camel-store.h</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-buffer.c?h=GDM_2_2_5_4'>camel/camel-stream-buffer.c</a></td><td class='right'>467</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-buffer.h?h=GDM_2_2_5_4'>camel/camel-stream-buffer.h</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-filter.c?h=GDM_2_2_5_4'>camel/camel-stream-filter.c</a></td><td class='right'>382</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-filter.h?h=GDM_2_2_5_4'>camel/camel-stream-filter.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-fs.c?h=GDM_2_2_5_4'>camel/camel-stream-fs.c</a></td><td class='right'>399</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-fs.h?h=GDM_2_2_5_4'>camel/camel-stream-fs.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-mem.c?h=GDM_2_2_5_4'>camel/camel-stream-mem.c</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-mem.h?h=GDM_2_2_5_4'>camel/camel-stream-mem.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-null.c?h=GDM_2_2_5_4'>camel/camel-stream-null.c</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream-null.h?h=GDM_2_2_5_4'>camel/camel-stream-null.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream.c?h=GDM_2_2_5_4'>camel/camel-stream.c</a></td><td class='right'>275</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-stream.h?h=GDM_2_2_5_4'>camel/camel-stream.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream-openssl.c?h=GDM_2_2_5_4'>camel/camel-tcp-stream-openssl.c</a></td><td class='right'>723</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.8%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream-openssl.h?h=GDM_2_2_5_4'>camel/camel-tcp-stream-openssl.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream-raw.c?h=GDM_2_2_5_4'>camel/camel-tcp-stream-raw.c</a></td><td class='right'>497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream-raw.h?h=GDM_2_2_5_4'>camel/camel-tcp-stream-raw.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream-ssl.c?h=GDM_2_2_5_4'>camel/camel-tcp-stream-ssl.c</a></td><td class='right'>527</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream-ssl.h?h=GDM_2_2_5_4'>camel/camel-tcp-stream-ssl.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream.c?h=GDM_2_2_5_4'>camel/camel-tcp-stream.c</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-tcp-stream.h?h=GDM_2_2_5_4'>camel/camel-tcp-stream.h</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-transport.c?h=GDM_2_2_5_4'>camel/camel-transport.c</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-transport.h?h=GDM_2_2_5_4'>camel/camel-transport.h</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-types.h?h=GDM_2_2_5_4'>camel/camel-types.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-uid-cache.c?h=GDM_2_2_5_4'>camel/camel-uid-cache.c</a></td><td class='right'>269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-uid-cache.h?h=GDM_2_2_5_4'>camel/camel-uid-cache.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-url.c?h=GDM_2_2_5_4'>camel/camel-url.c</a></td><td class='right'>554</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-url.h?h=GDM_2_2_5_4'>camel/camel-url.h</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-vee-folder.c?h=GDM_2_2_5_4'>camel/camel-vee-folder.c</a></td><td class='right'>1440</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.5%;'/><td class='none' style='width: 92.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-vee-folder.h?h=GDM_2_2_5_4'>camel/camel-vee-folder.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-vee-store.c?h=GDM_2_2_5_4'>camel/camel-vee-store.c</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-vee-store.h?h=GDM_2_2_5_4'>camel/camel-vee-store.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-vtrash-folder.c?h=GDM_2_2_5_4'>camel/camel-vtrash-folder.c</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel-vtrash-folder.h?h=GDM_2_2_5_4'>camel/camel-vtrash-folder.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel.c?h=GDM_2_2_5_4'>camel/camel.c</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/camel.h?h=GDM_2_2_5_4'>camel/camel.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/devel-docs/camel_data_wrapper.dia?h=GDM_2_2_5_4'>camel/devel-docs/camel_data_wrapper.dia</a></td><td class='right'>bin</td><td class='graph'>3062 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/devel-docs/camel_parser_states.dia?h=GDM_2_2_5_4'>camel/devel-docs/camel_parser_states.dia</a></td><td class='right'>bin</td><td class='graph'>2505 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/devel-docs/camel_stream.dia?h=GDM_2_2_5_4'>camel/devel-docs/camel_stream.dia</a></td><td class='right'>bin</td><td class='graph'>2669 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/gstring-util.c?h=GDM_2_2_5_4'>camel/gstring-util.c</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/gstring-util.h?h=GDM_2_2_5_4'>camel/gstring-util.h</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/hash-table-utils.c?h=GDM_2_2_5_4'>camel/hash-table-utils.c</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/hash-table-utils.h?h=GDM_2_2_5_4'>camel/hash-table-utils.h</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/.cvsignore?h=GDM_2_2_5_4'>camel/providers/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/Makefile.am?h=GDM_2_2_5_4'>camel/providers/Makefile.am</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/.cvsignore?h=GDM_2_2_5_4'>camel/providers/imap/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/Makefile.am?h=GDM_2_2_5_4'>camel/providers/imap/Makefile.am</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-command.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-command.c</a></td><td class='right'>759</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.9%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-command.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-command.h</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-folder.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-folder.c</a></td><td class='right'>2093</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.9%;'/><td class='none' style='width: 89.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-folder.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-folder.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-message-cache.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-message-cache.c</a></td><td class='right'>504</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-message-cache.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-message-cache.h</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-private.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-private.h</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-provider.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-provider.c</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-search.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-search.c</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-search.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-search.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-store.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-store.c</a></td><td class='right'>1720</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.9%;'/><td class='none' style='width: 91.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-store.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-store.h</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-summary.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-summary.c</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-summary.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-summary.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-types.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-types.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-utils.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-utils.c</a></td><td class='right'>831</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-utils.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-utils.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-wrapper.c?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-wrapper.c</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/camel-imap-wrapper.h?h=GDM_2_2_5_4'>camel/providers/imap/camel-imap-wrapper.h</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/imap/libcamelimap.urls?h=GDM_2_2_5_4'>camel/providers/imap/libcamelimap.urls</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/.cvsignore?h=GDM_2_2_5_4'>camel/providers/local/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/Makefile.am?h=GDM_2_2_5_4'>camel/providers/local/Makefile.am</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-folder.c?h=GDM_2_2_5_4'>camel/providers/local/camel-local-folder.c</a></td><td class='right'>393</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-folder.h?h=GDM_2_2_5_4'>camel/providers/local/camel-local-folder.h</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-private.h?h=GDM_2_2_5_4'>camel/providers/local/camel-local-private.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-provider.c?h=GDM_2_2_5_4'>camel/providers/local/camel-local-provider.c</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-store.c?h=GDM_2_2_5_4'>camel/providers/local/camel-local-store.c</a></td><td class='right'>319</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-store.h?h=GDM_2_2_5_4'>camel/providers/local/camel-local-store.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-summary.c?h=GDM_2_2_5_4'>camel/providers/local/camel-local-summary.c</a></td><td class='right'>579</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-local-summary.h?h=GDM_2_2_5_4'>camel/providers/local/camel-local-summary.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-maildir-folder.c?h=GDM_2_2_5_4'>camel/providers/local/camel-maildir-folder.c</a></td><td class='right'>242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-maildir-folder.h?h=GDM_2_2_5_4'>camel/providers/local/camel-maildir-folder.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-maildir-store.c?h=GDM_2_2_5_4'>camel/providers/local/camel-maildir-store.c</a></td><td class='right'>412</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-maildir-store.h?h=GDM_2_2_5_4'>camel/providers/local/camel-maildir-store.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-maildir-summary.c?h=GDM_2_2_5_4'>camel/providers/local/camel-maildir-summary.c</a></td><td class='right'>753</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.9%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-maildir-summary.h?h=GDM_2_2_5_4'>camel/providers/local/camel-maildir-summary.h</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mbox-folder.c?h=GDM_2_2_5_4'>camel/providers/local/camel-mbox-folder.c</a></td><td class='right'>449</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mbox-folder.h?h=GDM_2_2_5_4'>camel/providers/local/camel-mbox-folder.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mbox-store.c?h=GDM_2_2_5_4'>camel/providers/local/camel-mbox-store.c</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mbox-store.h?h=GDM_2_2_5_4'>camel/providers/local/camel-mbox-store.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mbox-summary.c?h=GDM_2_2_5_4'>camel/providers/local/camel-mbox-summary.c</a></td><td class='right'>885</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.6%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mbox-summary.h?h=GDM_2_2_5_4'>camel/providers/local/camel-mbox-summary.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mh-folder.c?h=GDM_2_2_5_4'>camel/providers/local/camel-mh-folder.c</a></td><td class='right'>228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mh-folder.h?h=GDM_2_2_5_4'>camel/providers/local/camel-mh-folder.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mh-store.c?h=GDM_2_2_5_4'>camel/providers/local/camel-mh-store.c</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mh-store.h?h=GDM_2_2_5_4'>camel/providers/local/camel-mh-store.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mh-summary.c?h=GDM_2_2_5_4'>camel/providers/local/camel-mh-summary.c</a></td><td class='right'>388</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-mh-summary.h?h=GDM_2_2_5_4'>camel/providers/local/camel-mh-summary.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-spool-folder.c?h=GDM_2_2_5_4'>camel/providers/local/camel-spool-folder.c</a></td><td class='right'>697</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-spool-folder.h?h=GDM_2_2_5_4'>camel/providers/local/camel-spool-folder.h</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-spool-store.c?h=GDM_2_2_5_4'>camel/providers/local/camel-spool-store.c</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-spool-store.h?h=GDM_2_2_5_4'>camel/providers/local/camel-spool-store.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-spool-summary.c?h=GDM_2_2_5_4'>camel/providers/local/camel-spool-summary.c</a></td><td class='right'>1279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.6%;'/><td class='none' style='width: 93.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/camel-spool-summary.h?h=GDM_2_2_5_4'>camel/providers/local/camel-spool-summary.h</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/local/libcamellocal.urls?h=GDM_2_2_5_4'>camel/providers/local/libcamellocal.urls</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/.cvsignore?h=GDM_2_2_5_4'>camel/providers/nntp/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/Makefile.am?h=GDM_2_2_5_4'>camel/providers/nntp/Makefile.am</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-auth.c?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-auth.c</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-auth.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-auth.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-folder.c?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-folder.c</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-folder.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-folder.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-grouplist.c?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-grouplist.c</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-grouplist.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-grouplist.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-newsrc.c?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-newsrc.c</a></td><td class='right'>645</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-newsrc.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-newsrc.h</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-provider.c?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-provider.c</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-resp-codes.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-resp-codes.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-store.c?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-store.c</a></td><td class='right'>876</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-store.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-store.h</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-types.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-types.h</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-utils.c?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-utils.c</a></td><td class='right'>301</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/camel-nntp-utils.h?h=GDM_2_2_5_4'>camel/providers/nntp/camel-nntp-utils.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/libcamelnntp.urls?h=GDM_2_2_5_4'>camel/providers/nntp/libcamelnntp.urls</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/nntp/test-newsrc.c?h=GDM_2_2_5_4'>camel/providers/nntp/test-newsrc.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/.cvsignore?h=GDM_2_2_5_4'>camel/providers/pop3/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/Makefile.am?h=GDM_2_2_5_4'>camel/providers/pop3/Makefile.am</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/camel-pop3-folder.c?h=GDM_2_2_5_4'>camel/providers/pop3/camel-pop3-folder.c</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/camel-pop3-folder.h?h=GDM_2_2_5_4'>camel/providers/pop3/camel-pop3-folder.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/camel-pop3-provider.c?h=GDM_2_2_5_4'>camel/providers/pop3/camel-pop3-provider.c</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/camel-pop3-store.c?h=GDM_2_2_5_4'>camel/providers/pop3/camel-pop3-store.c</a></td><td class='right'>654</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/camel-pop3-store.h?h=GDM_2_2_5_4'>camel/providers/pop3/camel-pop3-store.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/pop3/libcamelpop3.urls?h=GDM_2_2_5_4'>camel/providers/pop3/libcamelpop3.urls</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/sendmail/.cvsignore?h=GDM_2_2_5_4'>camel/providers/sendmail/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/sendmail/Makefile.am?h=GDM_2_2_5_4'>camel/providers/sendmail/Makefile.am</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/sendmail/camel-sendmail-provider.c?h=GDM_2_2_5_4'>camel/providers/sendmail/camel-sendmail-provider.c</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/sendmail/camel-sendmail-transport.c?h=GDM_2_2_5_4'>camel/providers/sendmail/camel-sendmail-transport.c</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/sendmail/camel-sendmail-transport.h?h=GDM_2_2_5_4'>camel/providers/sendmail/camel-sendmail-transport.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/sendmail/libcamelsendmail.urls?h=GDM_2_2_5_4'>camel/providers/sendmail/libcamelsendmail.urls</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/smtp/.cvsignore?h=GDM_2_2_5_4'>camel/providers/smtp/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/smtp/Makefile.am?h=GDM_2_2_5_4'>camel/providers/smtp/Makefile.am</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/smtp/camel-smtp-provider.c?h=GDM_2_2_5_4'>camel/providers/smtp/camel-smtp-provider.c</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/smtp/camel-smtp-transport.c?h=GDM_2_2_5_4'>camel/providers/smtp/camel-smtp-transport.c</a></td><td class='right'>1161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.0%;'/><td class='none' style='width: 94.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/smtp/camel-smtp-transport.h?h=GDM_2_2_5_4'>camel/providers/smtp/camel-smtp-transport.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/providers/smtp/libcamelsmtp.urls?h=GDM_2_2_5_4'>camel/providers/smtp/libcamelsmtp.urls</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/string-utils.c?h=GDM_2_2_5_4'>camel/string-utils.c</a></td><td class='right'>233</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/string-utils.h?h=GDM_2_2_5_4'>camel/string-utils.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/.cvsignore?h=GDM_2_2_5_4'>camel/tests/.cvsignore</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/Makefile.am?h=GDM_2_2_5_4'>camel/tests/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/README?h=GDM_2_2_5_4'>camel/tests/README</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/data/gendoc.pl?h=GDM_2_2_5_4'>camel/tests/data/gendoc.pl</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/data/genline.pl?h=GDM_2_2_5_4'>camel/tests/data/genline.pl</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/data/getaddr.pl?h=GDM_2_2_5_4'>camel/tests/data/getaddr.pl</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/.cvsignore?h=GDM_2_2_5_4'>camel/tests/folder/.cvsignore</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/Makefile.am?h=GDM_2_2_5_4'>camel/tests/folder/Makefile.am</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/README?h=GDM_2_2_5_4'>camel/tests/folder/README</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test1.c?h=GDM_2_2_5_4'>camel/tests/folder/test1.c</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test2.c?h=GDM_2_2_5_4'>camel/tests/folder/test2.c</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test3.c?h=GDM_2_2_5_4'>camel/tests/folder/test3.c</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test4.c?h=GDM_2_2_5_4'>camel/tests/folder/test4.c</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test5.c?h=GDM_2_2_5_4'>camel/tests/folder/test5.c</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test6.c?h=GDM_2_2_5_4'>camel/tests/folder/test6.c</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test7.c?h=GDM_2_2_5_4'>camel/tests/folder/test7.c</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test8.c?h=GDM_2_2_5_4'>camel/tests/folder/test8.c</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/folder/test9.c?h=GDM_2_2_5_4'>camel/tests/folder/test9.c</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/.cvsignore?h=GDM_2_2_5_4'>camel/tests/lib/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/Makefile.am?h=GDM_2_2_5_4'>camel/tests/lib/Makefile.am</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/address-data.h?h=GDM_2_2_5_4'>camel/tests/lib/address-data.h</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/addresses.c?h=GDM_2_2_5_4'>camel/tests/lib/addresses.c</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/addresses.h?h=GDM_2_2_5_4'>camel/tests/lib/addresses.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/camel-test.c?h=GDM_2_2_5_4'>camel/tests/lib/camel-test.c</a></td><td class='right'>350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/camel-test.h?h=GDM_2_2_5_4'>camel/tests/lib/camel-test.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/folders.c?h=GDM_2_2_5_4'>camel/tests/lib/folders.c</a></td><td class='right'>524</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/folders.h?h=GDM_2_2_5_4'>camel/tests/lib/folders.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/messages.c?h=GDM_2_2_5_4'>camel/tests/lib/messages.c</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/messages.h?h=GDM_2_2_5_4'>camel/tests/lib/messages.h</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/session.c?h=GDM_2_2_5_4'>camel/tests/lib/session.c</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/session.h?h=GDM_2_2_5_4'>camel/tests/lib/session.h</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/streams.c?h=GDM_2_2_5_4'>camel/tests/lib/streams.c</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/lib/streams.h?h=GDM_2_2_5_4'>camel/tests/lib/streams.h</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/message/.cvsignore?h=GDM_2_2_5_4'>camel/tests/message/.cvsignore</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/message/Makefile.am?h=GDM_2_2_5_4'>camel/tests/message/Makefile.am</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/message/README?h=GDM_2_2_5_4'>camel/tests/message/README</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/message/test1.c?h=GDM_2_2_5_4'>camel/tests/message/test1.c</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/message/test2.c?h=GDM_2_2_5_4'>camel/tests/message/test2.c</a></td><td class='right'>326</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/message/test3.c?h=GDM_2_2_5_4'>camel/tests/message/test3.c</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/.cvsignore?h=GDM_2_2_5_4'>camel/tests/mime-filter/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/Makefile.am?h=GDM_2_2_5_4'>camel/tests/mime-filter/Makefile.am</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/crlf-1.in?h=GDM_2_2_5_4'>camel/tests/mime-filter/crlf-1.in</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/crlf-1.out?h=GDM_2_2_5_4'>camel/tests/mime-filter/crlf-1.out</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-1.in?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-1.in</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-1.out?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-1.out</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-2.in?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-2.in</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-2.out?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-2.out</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-3.in?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-3.in</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-3.out?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-3.out</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-4.in?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-4.in</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-4.out?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-4.out</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-5.in?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-5.in</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-5.out?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-5.out</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-6.in?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-6.in</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/stripheader-6.out?h=GDM_2_2_5_4'>camel/tests/mime-filter/stripheader-6.out</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/test-crlf.c?h=GDM_2_2_5_4'>camel/tests/mime-filter/test-crlf.c</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/mime-filter/test-stripheader.c?h=GDM_2_2_5_4'>camel/tests/mime-filter/test-stripheader.c</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/misc/.cvsignore?h=GDM_2_2_5_4'>camel/tests/misc/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/misc/Makefile.am?h=GDM_2_2_5_4'>camel/tests/misc/Makefile.am</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/misc/README?h=GDM_2_2_5_4'>camel/tests/misc/README</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/misc/url.c?h=GDM_2_2_5_4'>camel/tests/misc/url.c</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/smime/.cvsignore?h=GDM_2_2_5_4'>camel/tests/smime/.cvsignore</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/smime/Makefile.am?h=GDM_2_2_5_4'>camel/tests/smime/Makefile.am</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/smime/README?h=GDM_2_2_5_4'>camel/tests/smime/README</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/smime/pgp-mime.c?h=GDM_2_2_5_4'>camel/tests/smime/pgp-mime.c</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/smime/pgp.c?h=GDM_2_2_5_4'>camel/tests/smime/pgp.c</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/smime/pkcs7.c?h=GDM_2_2_5_4'>camel/tests/smime/pkcs7.c</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/stream/.cvsignore?h=GDM_2_2_5_4'>camel/tests/stream/.cvsignore</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/stream/Makefile.am?h=GDM_2_2_5_4'>camel/tests/stream/Makefile.am</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/stream/README?h=GDM_2_2_5_4'>camel/tests/stream/README</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/stream/test1.c?h=GDM_2_2_5_4'>camel/tests/stream/test1.c</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/stream/test2.c?h=GDM_2_2_5_4'>camel/tests/stream/test2.c</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/camel/tests/stream/test3.c?h=GDM_2_2_5_4'>camel/tests/stream/test3.c</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/.cvsignore?h=GDM_2_2_5_4'>composer/.cvsignore</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/ChangeLog?h=GDM_2_2_5_4'>composer/ChangeLog</a></td><td class='right'>2482</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.9%;'/><td class='none' style='width: 87.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/Composer.idl?h=GDM_2_2_5_4'>composer/Composer.idl</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/Evolution-Composer.idl?h=GDM_2_2_5_4'>composer/Evolution-Composer.idl</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/Makefile.am?h=GDM_2_2_5_4'>composer/Makefile.am</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/bad-icon.xpm?h=GDM_2_2_5_4'>composer/bad-icon.xpm</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-icon-list.c?h=GDM_2_2_5_4'>composer/e-icon-list.c</a></td><td class='right'>2675</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.9%;'/><td class='none' style='width: 86.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-icon-list.h?h=GDM_2_2_5_4'>composer/e-icon-list.h</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-attachment-bar.c?h=GDM_2_2_5_4'>composer/e-msg-composer-attachment-bar.c</a></td><td class='right'>818</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.2%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-attachment-bar.h?h=GDM_2_2_5_4'>composer/e-msg-composer-attachment-bar.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-attachment.c?h=GDM_2_2_5_4'>composer/e-msg-composer-attachment.c</a></td><td class='right'>465</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-attachment.glade?h=GDM_2_2_5_4'>composer/e-msg-composer-attachment.glade</a></td><td class='right'>280</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-attachment.h?h=GDM_2_2_5_4'>composer/e-msg-composer-attachment.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-hdrs.c?h=GDM_2_2_5_4'>composer/e-msg-composer-hdrs.c</a></td><td class='right'>1075</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.6%;'/><td class='none' style='width: 94.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-hdrs.h?h=GDM_2_2_5_4'>composer/e-msg-composer-hdrs.h</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-select-file.c?h=GDM_2_2_5_4'>composer/e-msg-composer-select-file.c</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer-select-file.h?h=GDM_2_2_5_4'>composer/e-msg-composer-select-file.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer.c?h=GDM_2_2_5_4'>composer/e-msg-composer.c</a></td><td class='right'>3711</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 19.2%;'/><td class='none' style='width: 80.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/e-msg-composer.h?h=GDM_2_2_5_4'>composer/e-msg-composer.h</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/evolution-composer.c?h=GDM_2_2_5_4'>composer/evolution-composer.c</a></td><td class='right'>370</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/evolution-composer.h?h=GDM_2_2_5_4'>composer/evolution-composer.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/listener.c?h=GDM_2_2_5_4'>composer/listener.c</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/composer/listener.h?h=GDM_2_2_5_4'>composer/listener.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/configure.in?h=GDM_2_2_5_4'>configure.in</a></td><td class='right'>1180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.1%;'/><td class='none' style='width: 93.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/data/.cvsignore?h=GDM_2_2_5_4'>data/.cvsignore</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/data/Makefile.am?h=GDM_2_2_5_4'>data/Makefile.am</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/data/evolution.desktop.in?h=GDM_2_2_5_4'>data/evolution.desktop.in</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/data/evolution.keys.in?h=GDM_2_2_5_4'>data/evolution.keys.in</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/data/evolution.mime?h=GDM_2_2_5_4'>data/evolution.mime</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/.cvsignore?h=GDM_2_2_5_4'>default_user/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/ChangeLog?h=GDM_2_2_5_4'>default_user/ChangeLog</a></td><td class='right'>261</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/Makefile.am?h=GDM_2_2_5_4'>default_user/Makefile.am</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/addressbook-sources.xml?h=GDM_2_2_5_4'>default_user/addressbook-sources.xml</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/.cvsignore?h=GDM_2_2_5_4'>default_user/local/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Calendar/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Calendar/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Calendar/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Calendar/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Calendar/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Calendar/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Contacts/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Contacts/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Contacts/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Contacts/Makefile.am</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Contacts/create-initial?h=GDM_2_2_5_4'>default_user/local/Contacts/create-initial</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Contacts/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Contacts/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Drafts/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Drafts/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Drafts/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Drafts/Makefile.am</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Drafts/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Drafts/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Drafts/mbox?h=GDM_2_2_5_4'>default_user/local/Drafts/mbox</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Inbox/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Inbox/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Inbox/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Inbox/Makefile.am</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Inbox/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Inbox/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Inbox/mbox?h=GDM_2_2_5_4'>default_user/local/Inbox/mbox</a></td><td class='right'>427</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Makefile.am</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Outbox/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Outbox/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Outbox/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Outbox/Makefile.am</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Outbox/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Outbox/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Outbox/mbox?h=GDM_2_2_5_4'>default_user/local/Outbox/mbox</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Sent/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Sent/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Sent/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Sent/Makefile.am</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Sent/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Sent/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Sent/mbox?h=GDM_2_2_5_4'>default_user/local/Sent/mbox</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Tasks/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Tasks/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Tasks/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Tasks/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Tasks/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Tasks/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Trash/.cvsignore?h=GDM_2_2_5_4'>default_user/local/Trash/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Trash/Makefile.am?h=GDM_2_2_5_4'>default_user/local/Trash/Makefile.am</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/local/Trash/folder-metadata.xml?h=GDM_2_2_5_4'>default_user/local/Trash/folder-metadata.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/default_user/searches.xml?h=GDM_2_2_5_4'>default_user/searches.xml</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/.cvsignore?h=GDM_2_2_5_4'>devel-docs/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/Makefile.am?h=GDM_2_2_5_4'>devel-docs/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/.cvsignore?h=GDM_2_2_5_4'>devel-docs/camel/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/Makefile.am?h=GDM_2_2_5_4'>devel-docs/camel/Makefile.am</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/README_AND_TODO.txt?h=GDM_2_2_5_4'>devel-docs/camel/README_AND_TODO.txt</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/camel-docs.sgml?h=GDM_2_2_5_4'>devel-docs/camel/camel-docs.sgml</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/camel-sections.txt?h=GDM_2_2_5_4'>devel-docs/camel/camel-sections.txt</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/camel.types?h=GDM_2_2_5_4'>devel-docs/camel/camel.types</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/.cvsignore?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-data-wrapper.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-data-wrapper.sgml</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-folder.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-folder.sgml</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-mime-message.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-mime-message.sgml</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-mime-part.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-mime-part.sgml</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-recipient.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-recipient.sgml</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-service.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-service.sgml</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-store.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-store.sgml</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/camel/tmpl/camel-stream.sgml?h=GDM_2_2_5_4'>devel-docs/camel/tmpl/camel-stream.sgml</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/misc/ref_and_id_proposition.txt?h=GDM_2_2_5_4'>devel-docs/misc/ref_and_id_proposition.txt</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/query/virtual-folder-in-depth.sgml?h=GDM_2_2_5_4'>devel-docs/query/virtual-folder-in-depth.sgml</a></td><td class='right'>407</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/devel-docs/query/virtual-folder-in-depth.txt?h=GDM_2_2_5_4'>devel-docs/query/virtual-folder-in-depth.txt</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/.cvsignore?h=GDM_2_2_5_4'>doc/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/COPYING-DOCS?h=GDM_2_2_5_4'>doc/COPYING-DOCS</a></td><td class='right'>355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/Camel-Classes?h=GDM_2_2_5_4'>doc/Camel-Classes</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/ChangeLog?h=GDM_2_2_5_4'>doc/ChangeLog</a></td><td class='right'>1146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.9%;'/><td class='none' style='width: 94.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/Design?h=GDM_2_2_5_4'>doc/Design</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/Keybindings?h=GDM_2_2_5_4'>doc/Keybindings</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/Makefile.am?h=GDM_2_2_5_4'>doc/Makefile.am</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/NAMESPACE?h=GDM_2_2_5_4'>doc/NAMESPACE</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/.cvsignore?h=GDM_2_2_5_4'>doc/devel/.cvsignore</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/ChangeLog?h=GDM_2_2_5_4'>doc/devel/ChangeLog</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/Makefile.am?h=GDM_2_2_5_4'>doc/devel/Makefile.am</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/.cvsignore?h=GDM_2_2_5_4'>doc/devel/calendar/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/Makefile.am?h=GDM_2_2_5_4'>doc/devel/calendar/Makefile.am</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/alarm-generation.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/alarm-generation.sgml</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/architecture.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/architecture.sgml</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/.cvsignore?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/Makefile.am?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/Makefile.am</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/evolution-cal-client-decl.txt?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/evolution-cal-client-decl.txt</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/evolution-cal-client-docs.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/evolution-cal-client-docs.sgml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/evolution-cal-client-sections.txt?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/evolution-cal-client-sections.txt</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/evolution-cal-client.args?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/evolution-cal-client.args</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/evolution-cal-client.hierarchy?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/evolution-cal-client.hierarchy</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/evolution-cal-client.types?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/evolution-cal-client.types</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/tmpl/cal-client.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/tmpl/cal-client.sgml</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/.cvsignore?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/Makefile.am?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/Makefile.am</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/evolution-cal-util-decl.txt?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/evolution-cal-util-decl.txt</a></td><td class='right'>977</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.1%;'/><td class='none' style='width: 94.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/evolution-cal-util-docs.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/evolution-cal-util-docs.sgml</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/evolution-cal-util-sections.txt?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/evolution-cal-util-sections.txt</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/evolution-cal-util.args?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/evolution-cal-util.args</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/evolution-cal-util.hierarchy?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/evolution-cal-util.hierarchy</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/evolution-cal-util.signals?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/evolution-cal-util.signals</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/evolution-cal-util.types?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/evolution-cal-util.types</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/tmpl/cal-component.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/tmpl/cal-component.sgml</a></td><td class='right'>993</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.2%;'/><td class='none' style='width: 94.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/tmpl/cal-recur.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/tmpl/cal-recur.sgml</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/tmpl/cal-util.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/tmpl/cal-util.sgml</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml</a></td><td class='right'>288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/cal-util/tmpl/timeutil.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/cal-util/tmpl/timeutil.sgml</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/evolution-calendar.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/evolution-calendar.sgml</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/calendar/public-reference.sgml?h=GDM_2_2_5_4'>doc/devel/calendar/public-reference.sgml</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/evolution-devel-guide.sgml?h=GDM_2_2_5_4'>doc/devel/evolution-devel-guide.sgml</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/.cvsignore?h=GDM_2_2_5_4'>doc/devel/executive-summary/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/Makefile.am?h=GDM_2_2_5_4'>doc/devel/executive-summary/Makefile.am</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/evolution-services-decl.txt?h=GDM_2_2_5_4'>doc/devel/executive-summary/evolution-services-decl.txt</a></td><td class='right'>536</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/evolution-services-sections.txt?h=GDM_2_2_5_4'>doc/devel/executive-summary/evolution-services-sections.txt</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/evolution-services.args?h=GDM_2_2_5_4'>doc/devel/executive-summary/evolution-services.args</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/evolution-services.hierarchy?h=GDM_2_2_5_4'>doc/devel/executive-summary/evolution-services.hierarchy</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/evolution-services.types?h=GDM_2_2_5_4'>doc/devel/executive-summary/evolution-services.types</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/private-reference.sgml?h=GDM_2_2_5_4'>doc/devel/executive-summary/private-reference.sgml</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/public-reference.sgml?h=GDM_2_2_5_4'>doc/devel/executive-summary/public-reference.sgml</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/tmpl/evolution-services-unused.sgml?h=GDM_2_2_5_4'>doc/devel/executive-summary/tmpl/evolution-services-unused.sgml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/tmpl/executive-summary-component-factory-client.sgml?h=GDM_2_2_5_4'>doc/devel/executive-summary/tmpl/executive-summary-component-factory-client.sgml</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/tmpl/executive-summary-component-factory.sgml?h=GDM_2_2_5_4'>doc/devel/executive-summary/tmpl/executive-summary-component-factory.sgml</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/tmpl/executive-summary-component.sgml?h=GDM_2_2_5_4'>doc/devel/executive-summary/tmpl/executive-summary-component.sgml</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/executive-summary/tmpl/executive-summary-html-view.sgml?h=GDM_2_2_5_4'>doc/devel/executive-summary/tmpl/executive-summary-html-view.sgml</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/fdl.sgml?h=GDM_2_2_5_4'>doc/devel/fdl.sgml</a></td><td class='right'>671</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/.cvsignore?h=GDM_2_2_5_4'>doc/devel/importer/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/Makefile.am?h=GDM_2_2_5_4'>doc/devel/importer/Makefile.am</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/evolution-shell-importer-sections.txt?h=GDM_2_2_5_4'>doc/devel/importer/evolution-shell-importer-sections.txt</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/evolution-shell-importer.args?h=GDM_2_2_5_4'>doc/devel/importer/evolution-shell-importer.args</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/evolution-shell-importer.hierarchy?h=GDM_2_2_5_4'>doc/devel/importer/evolution-shell-importer.hierarchy</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/evolution-shell-importer.types?h=GDM_2_2_5_4'>doc/devel/importer/evolution-shell-importer.types</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/private-reference.sgml?h=GDM_2_2_5_4'>doc/devel/importer/private-reference.sgml</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/public-reference.sgml?h=GDM_2_2_5_4'>doc/devel/importer/public-reference.sgml</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/tmpl/evolution-importer-client.sgml?h=GDM_2_2_5_4'>doc/devel/importer/tmpl/evolution-importer-client.sgml</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/tmpl/evolution-importer.sgml?h=GDM_2_2_5_4'>doc/devel/importer/tmpl/evolution-importer.sgml</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/importer/tmpl/evolution-shell-importer-unused.sgml?h=GDM_2_2_5_4'>doc/devel/importer/tmpl/evolution-shell-importer-unused.sgml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/preface.sgml?h=GDM_2_2_5_4'>doc/devel/preface.sgml</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/devel/reference.sgml?h=GDM_2_2_5_4'>doc/devel/reference.sgml</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/white-papers/calendar/calendar.sgml?h=GDM_2_2_5_4'>doc/white-papers/calendar/calendar.sgml</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/white-papers/mail/camel.sgml?h=GDM_2_2_5_4'>doc/white-papers/mail/camel.sgml</a></td><td class='right'>356</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/white-papers/mail/ibex.sgml?h=GDM_2_2_5_4'>doc/white-papers/mail/ibex.sgml</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/doc/white-papers/widgets/e-table.sgml?h=GDM_2_2_5_4'>doc/white-papers/widgets/e-table.sgml</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/.cvsignore?h=GDM_2_2_5_4'>e-util/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ChangeLog?h=GDM_2_2_5_4'>e-util/ChangeLog</a></td><td class='right'>1656</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.6%;'/><td class='none' style='width: 91.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/Makefile.am?h=GDM_2_2_5_4'>e-util/Makefile.am</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-bit-array.c?h=GDM_2_2_5_4'>e-util/e-bit-array.c</a></td><td class='right'>415</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-bit-array.h?h=GDM_2_2_5_4'>e-util/e-bit-array.h</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-bonobo-factory-util.c?h=GDM_2_2_5_4'>e-util/e-bonobo-factory-util.c</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-bonobo-factory-util.h?h=GDM_2_2_5_4'>e-util/e-bonobo-factory-util.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-categories-config.c?h=GDM_2_2_5_4'>e-util/e-categories-config.c</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-categories-config.h?h=GDM_2_2_5_4'>e-util/e-categories-config.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-categories-master-list-wombat.c?h=GDM_2_2_5_4'>e-util/e-categories-master-list-wombat.c</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-categories-master-list-wombat.h?h=GDM_2_2_5_4'>e-util/e-categories-master-list-wombat.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-corba-utils.c?h=GDM_2_2_5_4'>e-util/e-corba-utils.c</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-corba-utils.h?h=GDM_2_2_5_4'>e-util/e-corba-utils.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-db3-utils.c?h=GDM_2_2_5_4'>e-util/e-db3-utils.c</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-db3-utils.h?h=GDM_2_2_5_4'>e-util/e-db3-utils.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-dbhash.c?h=GDM_2_2_5_4'>e-util/e-dbhash.c</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-dbhash.h?h=GDM_2_2_5_4'>e-util/e-dbhash.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-dialog-utils.c?h=GDM_2_2_5_4'>e-util/e-dialog-utils.c</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-dialog-utils.h?h=GDM_2_2_5_4'>e-util/e-dialog-utils.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-dialog-widgets.c?h=GDM_2_2_5_4'>e-util/e-dialog-widgets.c</a></td><td class='right'>832</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-dialog-widgets.h?h=GDM_2_2_5_4'>e-util/e-dialog-widgets.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-gtk-utils.c?h=GDM_2_2_5_4'>e-util/e-gtk-utils.c</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-gtk-utils.h?h=GDM_2_2_5_4'>e-util/e-gtk-utils.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-gui-utils.c?h=GDM_2_2_5_4'>e-util/e-gui-utils.c</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-gui-utils.h?h=GDM_2_2_5_4'>e-util/e-gui-utils.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-host-utils.c?h=GDM_2_2_5_4'>e-util/e-host-utils.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-host-utils.h?h=GDM_2_2_5_4'>e-util/e-host-utils.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-html-utils.c?h=GDM_2_2_5_4'>e-util/e-html-utils.c</a></td><td class='right'>417</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-html-utils.h?h=GDM_2_2_5_4'>e-util/e-html-utils.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-i18n.h?h=GDM_2_2_5_4'>e-util/e-i18n.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-iconv.c?h=GDM_2_2_5_4'>e-util/e-iconv.c</a></td><td class='right'>451</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-iconv.h?h=GDM_2_2_5_4'>e-util/e-iconv.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-iterator.c?h=GDM_2_2_5_4'>e-util/e-iterator.c</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-iterator.h?h=GDM_2_2_5_4'>e-util/e-iterator.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-list-iterator.c?h=GDM_2_2_5_4'>e-util/e-list-iterator.c</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-list-iterator.h?h=GDM_2_2_5_4'>e-util/e-list-iterator.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-list.c?h=GDM_2_2_5_4'>e-util/e-list.c</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-list.h?h=GDM_2_2_5_4'>e-util/e-list.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-memory.c?h=GDM_2_2_5_4'>e-util/e-memory.c</a></td><td class='right'>1280</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.6%;'/><td class='none' style='width: 93.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-memory.h?h=GDM_2_2_5_4'>e-util/e-memory.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-mktemp.c?h=GDM_2_2_5_4'>e-util/e-mktemp.c</a></td><td class='right'>267</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-mktemp.h?h=GDM_2_2_5_4'>e-util/e-mktemp.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-msgport.c?h=GDM_2_2_5_4'>e-util/e-msgport.c</a></td><td class='right'>868</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-msgport.h?h=GDM_2_2_5_4'>e-util/e-msgport.h</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-passwords.c?h=GDM_2_2_5_4'>e-util/e-passwords.c</a></td><td class='right'>585</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-passwords.h?h=GDM_2_2_5_4'>e-util/e-passwords.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-path.c?h=GDM_2_2_5_4'>e-util/e-path.c</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-path.h?h=GDM_2_2_5_4'>e-util/e-path.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-pilot-map.c?h=GDM_2_2_5_4'>e-util/e-pilot-map.c</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-pilot-map.h?h=GDM_2_2_5_4'>e-util/e-pilot-map.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-pilot-util.c?h=GDM_2_2_5_4'>e-util/e-pilot-util.c</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-pilot-util.h?h=GDM_2_2_5_4'>e-util/e-pilot-util.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-request.c?h=GDM_2_2_5_4'>e-util/e-request.c</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-request.h?h=GDM_2_2_5_4'>e-util/e-request.h</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-sexp.c?h=GDM_2_2_5_4'>e-util/e-sexp.c</a></td><td class='right'>1292</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.7%;'/><td class='none' style='width: 93.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-sexp.h?h=GDM_2_2_5_4'>e-util/e-sexp.h</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-sorter-array.c?h=GDM_2_2_5_4'>e-util/e-sorter-array.c</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-sorter-array.h?h=GDM_2_2_5_4'>e-util/e-sorter-array.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-sorter.c?h=GDM_2_2_5_4'>e-util/e-sorter.c</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-sorter.h?h=GDM_2_2_5_4'>e-util/e-sorter.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-text-event-processor-emacs-like.c?h=GDM_2_2_5_4'>e-util/e-text-event-processor-emacs-like.c</a></td><td class='right'>509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-text-event-processor-emacs-like.h?h=GDM_2_2_5_4'>e-util/e-text-event-processor-emacs-like.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-text-event-processor-types.h?h=GDM_2_2_5_4'>e-util/e-text-event-processor-types.h</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-text-event-processor.c?h=GDM_2_2_5_4'>e-util/e-text-event-processor.c</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-text-event-processor.h?h=GDM_2_2_5_4'>e-util/e-text-event-processor.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-time-utils.c?h=GDM_2_2_5_4'>e-util/e-time-utils.c</a></td><td class='right'>406</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-time-utils.h?h=GDM_2_2_5_4'>e-util/e-time-utils.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-unicode-i18n.c?h=GDM_2_2_5_4'>e-util/e-unicode-i18n.c</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-unicode-i18n.h?h=GDM_2_2_5_4'>e-util/e-unicode-i18n.h</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-url.c?h=GDM_2_2_5_4'>e-util/e-url.c</a></td><td class='right'>340</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-url.h?h=GDM_2_2_5_4'>e-util/e-url.h</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-util.c?h=GDM_2_2_5_4'>e-util/e-util.c</a></td><td class='right'>1485</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.7%;'/><td class='none' style='width: 92.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-util.h?h=GDM_2_2_5_4'>e-util/e-util.h</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-xml-utils.c?h=GDM_2_2_5_4'>e-util/e-xml-utils.c</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/e-xml-utils.h?h=GDM_2_2_5_4'>e-util/e-xml-utils.h</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/.cvsignore?h=GDM_2_2_5_4'>e-util/ename/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/Makefile.am?h=GDM_2_2_5_4'>e-util/ename/Makefile.am</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/TODO?h=GDM_2_2_5_4'>e-util/ename/TODO</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/e-address-western.c?h=GDM_2_2_5_4'>e-util/ename/e-address-western.c</a></td><td class='right'>446</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/e-address-western.h?h=GDM_2_2_5_4'>e-util/ename/e-address-western.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/e-name-western-tables.h?h=GDM_2_2_5_4'>e-util/ename/e-name-western-tables.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/e-name-western.c?h=GDM_2_2_5_4'>e-util/ename/e-name-western.c</a></td><td class='right'>870</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/e-name-western.h?h=GDM_2_2_5_4'>e-util/ename/e-name-western.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/test-ename-western-gtk.c?h=GDM_2_2_5_4'>e-util/ename/test-ename-western-gtk.c</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/ename/test-ename-western.c?h=GDM_2_2_5_4'>e-util/ename/test-ename-western.c</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/md5-utils.c?h=GDM_2_2_5_4'>e-util/md5-utils.c</a></td><td class='right'>362</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/e-util/md5-utils.h?h=GDM_2_2_5_4'>e-util/md5-utils.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/.cvsignore?h=GDM_2_2_5_4'>executive-summary/.cvsignore</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/ChangeLog?h=GDM_2_2_5_4'>executive-summary/ChangeLog</a></td><td class='right'>908</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.7%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/GNOME_Evolution_Summary.oaf.in?h=GDM_2_2_5_4'>executive-summary/GNOME_Evolution_Summary.oaf.in</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/Makefile.am?h=GDM_2_2_5_4'>executive-summary/Makefile.am</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/.cvsignore?h=GDM_2_2_5_4'>executive-summary/component/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/Makefile.am?h=GDM_2_2_5_4'>executive-summary/component/Makefile.am</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/component-factory.c?h=GDM_2_2_5_4'>executive-summary/component/component-factory.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/component-factory.h?h=GDM_2_2_5_4'>executive-summary/component/component-factory.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-callbacks.c?h=GDM_2_2_5_4'>executive-summary/component/e-summary-callbacks.c</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-callbacks.h?h=GDM_2_2_5_4'>executive-summary/component/e-summary-callbacks.h</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-factory.c?h=GDM_2_2_5_4'>executive-summary/component/e-summary-factory.c</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-factory.h?h=GDM_2_2_5_4'>executive-summary/component/e-summary-factory.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-prefs.c?h=GDM_2_2_5_4'>executive-summary/component/e-summary-prefs.c</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-prefs.h?h=GDM_2_2_5_4'>executive-summary/component/e-summary-prefs.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-url.c?h=GDM_2_2_5_4'>executive-summary/component/e-summary-url.c</a></td><td class='right'>852</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-url.h?h=GDM_2_2_5_4'>executive-summary/component/e-summary-url.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-util.c?h=GDM_2_2_5_4'>executive-summary/component/e-summary-util.c</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary-util.h?h=GDM_2_2_5_4'>executive-summary/component/e-summary-util.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary.c?h=GDM_2_2_5_4'>executive-summary/component/e-summary.c</a></td><td class='right'>1341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.0%;'/><td class='none' style='width: 93.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/e-summary.h?h=GDM_2_2_5_4'>executive-summary/component/e-summary.h</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/executive-summary-config.glade?h=GDM_2_2_5_4'>executive-summary/component/executive-summary-config.glade</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/executive-summary.png?h=GDM_2_2_5_4'>executive-summary/component/executive-summary.png</a></td><td class='right'>bin</td><td class='graph'>25562 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/component/main.c?h=GDM_2_2_5_4'>executive-summary/component/main.c</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/default-header.html?h=GDM_2_2_5_4'>executive-summary/default-header.html</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/.cvsignore?h=GDM_2_2_5_4'>executive-summary/evolution-services/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/Makefile.am?h=GDM_2_2_5_4'>executive-summary/evolution-services/Makefile.am</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-client.c?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-client.c</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-client.h?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-client.h</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component-client.c?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component-client.c</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component-client.h?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component-client.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component-factory-client.c?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component-factory-client.c</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component-factory-client.h?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component-factory-client.h</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component-view.c?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component-view.c</a></td><td class='right'>401</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component-view.h?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component-view.h</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component.c?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component.c</a></td><td class='right'>354</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-component.h?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-component.h</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-html-view.c?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-html-view.c</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary-html-view.h?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary-html-view.h</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary.c?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary.c</a></td><td class='right'>267</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/evolution-services/executive-summary.h?h=GDM_2_2_5_4'>executive-summary/evolution-services/executive-summary.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/idl/.cvsignore?h=GDM_2_2_5_4'>executive-summary/idl/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/idl/Executive-Summary.idl?h=GDM_2_2_5_4'>executive-summary/idl/Executive-Summary.idl</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/idl/HtmlView.idl?h=GDM_2_2_5_4'>executive-summary/idl/HtmlView.idl</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/idl/Makefile.am?h=GDM_2_2_5_4'>executive-summary/idl/Makefile.am</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/idl/Summary.idl?h=GDM_2_2_5_4'>executive-summary/idl/Summary.idl</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/idl/SummaryComponent.idl?h=GDM_2_2_5_4'>executive-summary/idl/SummaryComponent.idl</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/summary.html?h=GDM_2_2_5_4'>executive-summary/summary.html</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/test-service/.cvsignore?h=GDM_2_2_5_4'>executive-summary/test-service/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/test-service/GNOME_Evolution_Summary_rdf.oaf.in?h=GDM_2_2_5_4'>executive-summary/test-service/GNOME_Evolution_Summary_rdf.oaf.in</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/test-service/GNOME_Evolution_Summary_test.oaf.in?h=GDM_2_2_5_4'>executive-summary/test-service/GNOME_Evolution_Summary_test.oaf.in</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/test-service/Makefile.am?h=GDM_2_2_5_4'>executive-summary/test-service/Makefile.am</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/test-service/main.c?h=GDM_2_2_5_4'>executive-summary/test-service/main.c</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/test-service/rdf-summary.c?h=GDM_2_2_5_4'>executive-summary/test-service/rdf-summary.c</a></td><td class='right'>984</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.1%;'/><td class='none' style='width: 94.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/.cvsignore?h=GDM_2_2_5_4'>executive-summary/widgets/.cvsignore</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/Makefile.am?h=GDM_2_2_5_4'>executive-summary/widgets/Makefile.am</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/e-summary-subwindow.c?h=GDM_2_2_5_4'>executive-summary/widgets/e-summary-subwindow.c</a></td><td class='right'>301</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/e-summary-subwindow.h?h=GDM_2_2_5_4'>executive-summary/widgets/e-summary-subwindow.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/e-summary-title-button.c?h=GDM_2_2_5_4'>executive-summary/widgets/e-summary-title-button.c</a></td><td class='right'>403</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/e-summary-title-button.h?h=GDM_2_2_5_4'>executive-summary/widgets/e-summary-title-button.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/e-summary-titlebar.c?h=GDM_2_2_5_4'>executive-summary/widgets/e-summary-titlebar.c</a></td><td class='right'>412</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/e-summary-titlebar.h?h=GDM_2_2_5_4'>executive-summary/widgets/e-summary-titlebar.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/edit.xpm?h=GDM_2_2_5_4'>executive-summary/widgets/edit.xpm</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/esummary-window-test.c?h=GDM_2_2_5_4'>executive-summary/widgets/esummary-window-test.c</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/shade.xpm?h=GDM_2_2_5_4'>executive-summary/widgets/shade.xpm</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/executive-summary/widgets/x.xpm?h=GDM_2_2_5_4'>executive-summary/widgets/x.xpm</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/.cvsignore?h=GDM_2_2_5_4'>filter/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/ChangeLog?h=GDM_2_2_5_4'>filter/ChangeLog</a></td><td class='right'>2094</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.9%;'/><td class='none' style='width: 89.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/Makefile.am?h=GDM_2_2_5_4'>filter/Makefile.am</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-code.c?h=GDM_2_2_5_4'>filter/filter-code.c</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-code.h?h=GDM_2_2_5_4'>filter/filter-code.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-colour.c?h=GDM_2_2_5_4'>filter/filter-colour.c</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-colour.h?h=GDM_2_2_5_4'>filter/filter-colour.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-context.c?h=GDM_2_2_5_4'>filter/filter-context.c</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-context.h?h=GDM_2_2_5_4'>filter/filter-context.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-datespec.c?h=GDM_2_2_5_4'>filter/filter-datespec.c</a></td><td class='right'>763</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-datespec.h?h=GDM_2_2_5_4'>filter/filter-datespec.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-editor.c?h=GDM_2_2_5_4'>filter/filter-editor.c</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-editor.h?h=GDM_2_2_5_4'>filter/filter-editor.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-element.c?h=GDM_2_2_5_4'>filter/filter-element.c</a></td><td class='right'>312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-element.h?h=GDM_2_2_5_4'>filter/filter-element.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-filter.c?h=GDM_2_2_5_4'>filter/filter-filter.c</a></td><td class='right'>534</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-filter.h?h=GDM_2_2_5_4'>filter/filter-filter.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-folder.c?h=GDM_2_2_5_4'>filter/filter-folder.c</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-folder.h?h=GDM_2_2_5_4'>filter/filter-folder.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-input.c?h=GDM_2_2_5_4'>filter/filter-input.c</a></td><td class='right'>345</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-input.h?h=GDM_2_2_5_4'>filter/filter-input.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-int.c?h=GDM_2_2_5_4'>filter/filter-int.c</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-int.h?h=GDM_2_2_5_4'>filter/filter-int.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-option.c?h=GDM_2_2_5_4'>filter/filter-option.c</a></td><td class='right'>361</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-option.h?h=GDM_2_2_5_4'>filter/filter-option.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-part.c?h=GDM_2_2_5_4'>filter/filter-part.c</a></td><td class='right'>501</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-part.h?h=GDM_2_2_5_4'>filter/filter-part.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-rule.c?h=GDM_2_2_5_4'>filter/filter-rule.c</a></td><td class='right'>842</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-rule.h?h=GDM_2_2_5_4'>filter/filter-rule.h</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-score.c?h=GDM_2_2_5_4'>filter/filter-score.c</a></td><td class='right'>233</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-score.h?h=GDM_2_2_5_4'>filter/filter-score.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-source.c?h=GDM_2_2_5_4'>filter/filter-source.c</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter-source.h?h=GDM_2_2_5_4'>filter/filter-source.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filter.glade?h=GDM_2_2_5_4'>filter/filter.glade</a></td><td class='right'>738</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.8%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/filtertypes.xml?h=GDM_2_2_5_4'>filter/filtertypes.xml</a></td><td class='right'>628</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/libfilter-i18n.h?h=GDM_2_2_5_4'>filter/libfilter-i18n.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/rule-context.c?h=GDM_2_2_5_4'>filter/rule-context.c</a></td><td class='right'>621</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/rule-context.h?h=GDM_2_2_5_4'>filter/rule-context.h</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/rule-editor.c?h=GDM_2_2_5_4'>filter/rule-editor.c</a></td><td class='right'>494</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/rule-editor.h?h=GDM_2_2_5_4'>filter/rule-editor.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/score-context.c?h=GDM_2_2_5_4'>filter/score-context.c</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/score-context.h?h=GDM_2_2_5_4'>filter/score-context.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/score-editor.c?h=GDM_2_2_5_4'>filter/score-editor.c</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/score-editor.h?h=GDM_2_2_5_4'>filter/score-editor.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/score-rule.c?h=GDM_2_2_5_4'>filter/score-rule.c</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/score-rule.h?h=GDM_2_2_5_4'>filter/score-rule.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/vfolder-context.c?h=GDM_2_2_5_4'>filter/vfolder-context.c</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/vfolder-context.h?h=GDM_2_2_5_4'>filter/vfolder-context.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/vfolder-editor.c?h=GDM_2_2_5_4'>filter/vfolder-editor.c</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/vfolder-editor.h?h=GDM_2_2_5_4'>filter/vfolder-editor.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/vfolder-rule.c?h=GDM_2_2_5_4'>filter/vfolder-rule.c</a></td><td class='right'>488</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/vfolder-rule.h?h=GDM_2_2_5_4'>filter/vfolder-rule.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/filter/vfoldertypes.xml?h=GDM_2_2_5_4'>filter/vfoldertypes.xml</a></td><td class='right'>360</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/.cvsignore?h=GDM_2_2_5_4'>help/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/.cvsignore?h=GDM_2_2_5_4'>help/C/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/Makefile.am?h=GDM_2_2_5_4'>help/C/Makefile.am</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/POTFILES.in?h=GDM_2_2_5_4'>help/C/POTFILES.in</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/apx-authors.sgml?h=GDM_2_2_5_4'>help/C/apx-authors.sgml</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/apx-bugs.sgml?h=GDM_2_2_5_4'>help/C/apx-bugs.sgml</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/apx-gloss.sgml?h=GDM_2_2_5_4'>help/C/apx-gloss.sgml</a></td><td class='right'>437</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/config-encryption.sgml?h=GDM_2_2_5_4'>help/C/config-encryption.sgml</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/config-prefs.sgml?h=GDM_2_2_5_4'>help/C/config-prefs.sgml</a></td><td class='right'>769</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/config-sync.sgml?h=GDM_2_2_5_4'>help/C/config-sync.sgml</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/evolution-C.omf?h=GDM_2_2_5_4'>help/C/evolution-C.omf</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/evolution-faq.sgml?h=GDM_2_2_5_4'>help/C/evolution-faq.sgml</a></td><td class='right'>973</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/evolution.sgml?h=GDM_2_2_5_4'>help/C/evolution.sgml</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/calendar.png?h=GDM_2_2_5_4'>help/C/figures/calendar.png</a></td><td class='right'>bin</td><td class='graph'>43924 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/config-cal.png?h=GDM_2_2_5_4'>help/C/figures/config-cal.png</a></td><td class='right'>bin</td><td class='graph'>9151 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/config-mail.png?h=GDM_2_2_5_4'>help/C/figures/config-mail.png</a></td><td class='right'>bin</td><td class='graph'>10885 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/contact-editor.png?h=GDM_2_2_5_4'>help/C/figures/contact-editor.png</a></td><td class='right'>bin</td><td class='graph'>29672 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/contact.png?h=GDM_2_2_5_4'>help/C/figures/contact.png</a></td><td class='right'>bin</td><td class='graph'>39318 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/filter-assist-fig.png?h=GDM_2_2_5_4'>help/C/figures/filter-assist-fig.png</a></td><td class='right'>bin</td><td class='graph'>12495 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/filter-new-fig.png?h=GDM_2_2_5_4'>help/C/figures/filter-new-fig.png</a></td><td class='right'>bin</td><td class='graph'>8802 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/full-1.png?h=GDM_2_2_5_4'>help/C/figures/full-1.png</a></td><td class='right'>bin</td><td class='graph'>1218 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/full-2.png?h=GDM_2_2_5_4'>help/C/figures/full-2.png</a></td><td class='right'>bin</td><td class='graph'>1260 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/full-3.png?h=GDM_2_2_5_4'>help/C/figures/full-3.png</a></td><td class='right'>bin</td><td class='graph'>1290 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/full-4.png?h=GDM_2_2_5_4'>help/C/figures/full-4.png</a></td><td class='right'>bin</td><td class='graph'>1251 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/full-5.png?h=GDM_2_2_5_4'>help/C/figures/full-5.png</a></td><td class='right'>bin</td><td class='graph'>1293 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/full-6.png?h=GDM_2_2_5_4'>help/C/figures/full-6.png</a></td><td class='right'>bin</td><td class='graph'>1284 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/full-7.png?h=GDM_2_2_5_4'>help/C/figures/full-7.png</a></td><td class='right'>bin</td><td class='graph'>818 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/mail-composer.png?h=GDM_2_2_5_4'>help/C/figures/mail-composer.png</a></td><td class='right'>bin</td><td class='graph'>14971 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/mail-druid-pic.png?h=GDM_2_2_5_4'>help/C/figures/mail-druid-pic.png</a></td><td class='right'>bin</td><td class='graph'>8457 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/mail-inbox.png?h=GDM_2_2_5_4'>help/C/figures/mail-inbox.png</a></td><td class='right'>bin</td><td class='graph'>211378 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/mail-threaded.png?h=GDM_2_2_5_4'>help/C/figures/mail-threaded.png</a></td><td class='right'>bin</td><td class='graph'>45997 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/mainwindow-pic.png?h=GDM_2_2_5_4'>help/C/figures/mainwindow-pic.png</a></td><td class='right'>bin</td><td class='graph'>57382 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/newmsg.png?h=GDM_2_2_5_4'>help/C/figures/newmsg.png</a></td><td class='right'>bin</td><td class='graph'>25303 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/print-dest.png?h=GDM_2_2_5_4'>help/C/figures/print-dest.png</a></td><td class='right'>bin</td><td class='graph'>7358 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/print-preview.png?h=GDM_2_2_5_4'>help/C/figures/print-preview.png</a></td><td class='right'>bin</td><td class='graph'>51801 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/replymsg.png?h=GDM_2_2_5_4'>help/C/figures/replymsg.png</a></td><td class='right'>bin</td><td class='graph'>23506 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/figures/vfolder-createrule-fig.png?h=GDM_2_2_5_4'>help/C/figures/vfolder-createrule-fig.png</a></td><td class='right'>bin</td><td class='graph'>11228 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/menuref.sgml?h=GDM_2_2_5_4'>help/C/menuref.sgml</a></td><td class='right'>372</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/preface.sgml?h=GDM_2_2_5_4'>help/C/preface.sgml</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/topic.dat?h=GDM_2_2_5_4'>help/C/topic.dat</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-calendar.sgml?h=GDM_2_2_5_4'>help/C/usage-calendar.sgml</a></td><td class='right'>499</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-contact.sgml?h=GDM_2_2_5_4'>help/C/usage-contact.sgml</a></td><td class='right'>632</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-encryption.sgml?h=GDM_2_2_5_4'>help/C/usage-encryption.sgml</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-exec-summary.sgml?h=GDM_2_2_5_4'>help/C/usage-exec-summary.sgml</a></td><td class='right'>316</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-mail-org.sgml?h=GDM_2_2_5_4'>help/C/usage-mail-org.sgml</a></td><td class='right'>855</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-mail.sgml?h=GDM_2_2_5_4'>help/C/usage-mail.sgml</a></td><td class='right'>2122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 11.0%;'/><td class='none' style='width: 89.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-mainwindow.sgml?h=GDM_2_2_5_4'>help/C/usage-mainwindow.sgml</a></td><td class='right'>1135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.9%;'/><td class='none' style='width: 94.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-notes.sgml?h=GDM_2_2_5_4'>help/C/usage-notes.sgml</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-print.sgml?h=GDM_2_2_5_4'>help/C/usage-print.sgml</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/C/usage-sync.sgml?h=GDM_2_2_5_4'>help/C/usage-sync.sgml</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/COPYING-DOCS?h=GDM_2_2_5_4'>help/COPYING-DOCS</a></td><td class='right'>355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/ChangeLog?h=GDM_2_2_5_4'>help/ChangeLog</a></td><td class='right'>1457</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.6%;'/><td class='none' style='width: 92.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/Makefile.am?h=GDM_2_2_5_4'>help/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/README_Translations?h=GDM_2_2_5_4'>help/README_Translations</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/devel/executive-summary/evolution-services.hierarchy?h=GDM_2_2_5_4'>help/devel/executive-summary/evolution-services.hierarchy</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/devel/importer/evolution-shell-importer.hierarchy?h=GDM_2_2_5_4'>help/devel/importer/evolution-shell-importer.hierarchy</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/apx-authors.sgml.po?h=GDM_2_2_5_4'>help/es.po/apx-authors.sgml.po</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/apx-bugs.sgml.po?h=GDM_2_2_5_4'>help/es.po/apx-bugs.sgml.po</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/apx-gloss.sgml.po?h=GDM_2_2_5_4'>help/es.po/apx-gloss.sgml.po</a></td><td class='right'>745</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.9%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/config-prefs.sgml.po?h=GDM_2_2_5_4'>help/es.po/config-prefs.sgml.po</a></td><td class='right'>1364</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.1%;'/><td class='none' style='width: 92.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/config-setupassist.sgml.po?h=GDM_2_2_5_4'>help/es.po/config-setupassist.sgml.po</a></td><td class='right'>446</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/config-sync.sgml.po?h=GDM_2_2_5_4'>help/es.po/config-sync.sgml.po</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/evolution.sgml.po?h=GDM_2_2_5_4'>help/es.po/evolution.sgml.po</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/menuref.sgml.po?h=GDM_2_2_5_4'>help/es.po/menuref.sgml.po</a></td><td class='right'>3062</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 15.9%;'/><td class='none' style='width: 84.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/preface.sgml.po?h=GDM_2_2_5_4'>help/es.po/preface.sgml.po</a></td><td class='right'>932</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.8%;'/><td class='none' style='width: 95.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/usage-calendar.sgml.po?h=GDM_2_2_5_4'>help/es.po/usage-calendar.sgml.po</a></td><td class='right'>816</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.2%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/usage-contact.sgml.po?h=GDM_2_2_5_4'>help/es.po/usage-contact.sgml.po</a></td><td class='right'>1225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.4%;'/><td class='none' style='width: 93.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/usage-mail.sgml.po?h=GDM_2_2_5_4'>help/es.po/usage-mail.sgml.po</a></td><td class='right'>2322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.0%;'/><td class='none' style='width: 88.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/usage-mainwindow.sgml.po?h=GDM_2_2_5_4'>help/es.po/usage-mainwindow.sgml.po</a></td><td class='right'>788</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.1%;'/><td class='none' style='width: 95.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/usage-notes.sgml.po?h=GDM_2_2_5_4'>help/es.po/usage-notes.sgml.po</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/usage-print.sgml.po?h=GDM_2_2_5_4'>help/es.po/usage-print.sgml.po</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es.po/usage-sync.sgml.po?h=GDM_2_2_5_4'>help/es.po/usage-sync.sgml.po</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/Makefile.in?h=GDM_2_2_5_4'>help/es/Makefile.in</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/apx-authors.sgml?h=GDM_2_2_5_4'>help/es/apx-authors.sgml</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/apx-bugs.sgml?h=GDM_2_2_5_4'>help/es/apx-bugs.sgml</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/apx-gloss.sgml?h=GDM_2_2_5_4'>help/es/apx-gloss.sgml</a></td><td class='right'>462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/config-prefs.sgml?h=GDM_2_2_5_4'>help/es/config-prefs.sgml</a></td><td class='right'>646</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/config-setupassist.sgml?h=GDM_2_2_5_4'>help/es/config-setupassist.sgml</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/config-sync.sgml?h=GDM_2_2_5_4'>help/es/config-sync.sgml</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/evolution.sgml?h=GDM_2_2_5_4'>help/es/evolution.sgml</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/menuref.sgml?h=GDM_2_2_5_4'>help/es/menuref.sgml</a></td><td class='right'>1477</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.7%;'/><td class='none' style='width: 92.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/preface.sgml?h=GDM_2_2_5_4'>help/es/preface.sgml</a></td><td class='right'>444</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/usage-calendar.sgml?h=GDM_2_2_5_4'>help/es/usage-calendar.sgml</a></td><td class='right'>373</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/usage-contact.sgml?h=GDM_2_2_5_4'>help/es/usage-contact.sgml</a></td><td class='right'>619</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/usage-mail.sgml?h=GDM_2_2_5_4'>help/es/usage-mail.sgml</a></td><td class='right'>1526</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.9%;'/><td class='none' style='width: 92.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/usage-mainwindow.sgml?h=GDM_2_2_5_4'>help/es/usage-mainwindow.sgml</a></td><td class='right'>453</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/usage-notes.sgml?h=GDM_2_2_5_4'>help/es/usage-notes.sgml</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/usage-print.sgml?h=GDM_2_2_5_4'>help/es/usage-print.sgml</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/es/usage-sync.sgml?h=GDM_2_2_5_4'>help/es/usage-sync.sgml</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/.cvsignore?h=GDM_2_2_5_4'>help/no/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/ChangeLog?h=GDM_2_2_5_4'>help/no/ChangeLog</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/Makefile.am?h=GDM_2_2_5_4'>help/no/Makefile.am</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/apx-authors.sgml?h=GDM_2_2_5_4'>help/no/apx-authors.sgml</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/apx-bugs.sgml?h=GDM_2_2_5_4'>help/no/apx-bugs.sgml</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/apx-gloss.sgml?h=GDM_2_2_5_4'>help/no/apx-gloss.sgml</a></td><td class='right'>437</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/config-encryption.sgml?h=GDM_2_2_5_4'>help/no/config-encryption.sgml</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/config-prefs.sgml?h=GDM_2_2_5_4'>help/no/config-prefs.sgml</a></td><td class='right'>769</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/config-sync.sgml?h=GDM_2_2_5_4'>help/no/config-sync.sgml</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/evolution-faq.sgml?h=GDM_2_2_5_4'>help/no/evolution-faq.sgml</a></td><td class='right'>973</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/evolution-no.omf?h=GDM_2_2_5_4'>help/no/evolution-no.omf</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/evolution.sgml?h=GDM_2_2_5_4'>help/no/evolution.sgml</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/calendar.png?h=GDM_2_2_5_4'>help/no/figures/calendar.png</a></td><td class='right'>bin</td><td class='graph'>42615 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/config-cal.png?h=GDM_2_2_5_4'>help/no/figures/config-cal.png</a></td><td class='right'>bin</td><td class='graph'>7338 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/config-mail.png?h=GDM_2_2_5_4'>help/no/figures/config-mail.png</a></td><td class='right'>bin</td><td class='graph'>9210 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/contact-editor.png?h=GDM_2_2_5_4'>help/no/figures/contact-editor.png</a></td><td class='right'>bin</td><td class='graph'>37707 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/contact.png?h=GDM_2_2_5_4'>help/no/figures/contact.png</a></td><td class='right'>bin</td><td class='graph'>39742 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/filter-assist-fig.png?h=GDM_2_2_5_4'>help/no/figures/filter-assist-fig.png</a></td><td class='right'>bin</td><td class='graph'>5575 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/filter-new-fig.png?h=GDM_2_2_5_4'>help/no/figures/filter-new-fig.png</a></td><td class='right'>bin</td><td class='graph'>8802 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/full-1.png?h=GDM_2_2_5_4'>help/no/figures/full-1.png</a></td><td class='right'>bin</td><td class='graph'>1218 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/full-2.png?h=GDM_2_2_5_4'>help/no/figures/full-2.png</a></td><td class='right'>bin</td><td class='graph'>1260 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/full-3.png?h=GDM_2_2_5_4'>help/no/figures/full-3.png</a></td><td class='right'>bin</td><td class='graph'>1290 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/full-4.png?h=GDM_2_2_5_4'>help/no/figures/full-4.png</a></td><td class='right'>bin</td><td class='graph'>1251 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/full-5.png?h=GDM_2_2_5_4'>help/no/figures/full-5.png</a></td><td class='right'>bin</td><td class='graph'>1293 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/full-6.png?h=GDM_2_2_5_4'>help/no/figures/full-6.png</a></td><td class='right'>bin</td><td class='graph'>1284 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/full-7.png?h=GDM_2_2_5_4'>help/no/figures/full-7.png</a></td><td class='right'>bin</td><td class='graph'>818 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/mail-composer.png?h=GDM_2_2_5_4'>help/no/figures/mail-composer.png</a></td><td class='right'>bin</td><td class='graph'>14971 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/mail-druid-pic.png?h=GDM_2_2_5_4'>help/no/figures/mail-druid-pic.png</a></td><td class='right'>bin</td><td class='graph'>8457 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/mail-inbox.png?h=GDM_2_2_5_4'>help/no/figures/mail-inbox.png</a></td><td class='right'>bin</td><td class='graph'>127593 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/mainwindow-pic.png?h=GDM_2_2_5_4'>help/no/figures/mainwindow-pic.png</a></td><td class='right'>bin</td><td class='graph'>130739 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/newmsg.png?h=GDM_2_2_5_4'>help/no/figures/newmsg.png</a></td><td class='right'>bin</td><td class='graph'>14798 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/print-dest.png?h=GDM_2_2_5_4'>help/no/figures/print-dest.png</a></td><td class='right'>bin</td><td class='graph'>7358 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/print-preview.png?h=GDM_2_2_5_4'>help/no/figures/print-preview.png</a></td><td class='right'>bin</td><td class='graph'>51801 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/replymsg.png?h=GDM_2_2_5_4'>help/no/figures/replymsg.png</a></td><td class='right'>bin</td><td class='graph'>19338 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/figures/vfolder-createrule-fig.png?h=GDM_2_2_5_4'>help/no/figures/vfolder-createrule-fig.png</a></td><td class='right'>bin</td><td class='graph'>8321 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/menuref.sgml?h=GDM_2_2_5_4'>help/no/menuref.sgml</a></td><td class='right'>372</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/preface.sgml?h=GDM_2_2_5_4'>help/no/preface.sgml</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/topic.dat?h=GDM_2_2_5_4'>help/no/topic.dat</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-calendar.sgml?h=GDM_2_2_5_4'>help/no/usage-calendar.sgml</a></td><td class='right'>499</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-contact.sgml?h=GDM_2_2_5_4'>help/no/usage-contact.sgml</a></td><td class='right'>628</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-encryption.sgml?h=GDM_2_2_5_4'>help/no/usage-encryption.sgml</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-exec-summary.sgml?h=GDM_2_2_5_4'>help/no/usage-exec-summary.sgml</a></td><td class='right'>312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-mail-org.sgml?h=GDM_2_2_5_4'>help/no/usage-mail-org.sgml</a></td><td class='right'>844</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-mail.sgml?h=GDM_2_2_5_4'>help/no/usage-mail.sgml</a></td><td class='right'>2004</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.4%;'/><td class='none' style='width: 89.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-mainwindow.sgml?h=GDM_2_2_5_4'>help/no/usage-mainwindow.sgml</a></td><td class='right'>1106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.7%;'/><td class='none' style='width: 94.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-notes.sgml?h=GDM_2_2_5_4'>help/no/usage-notes.sgml</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-print.sgml?h=GDM_2_2_5_4'>help/no/usage-print.sgml</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/no/usage-sync.sgml?h=GDM_2_2_5_4'>help/no/usage-sync.sgml</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/sgmldocs.make?h=GDM_2_2_5_4'>help/sgmldocs.make</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/update_po.pl?h=GDM_2_2_5_4'>help/update_po.pl</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/help/update_translation.pl?h=GDM_2_2_5_4'>help/update_translation.pl</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/.cvsignore?h=GDM_2_2_5_4'>importers/.cvsignore</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/ChangeLog?h=GDM_2_2_5_4'>importers/ChangeLog</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/GNOME_Evolution_Elm_Intelligent_Importer.oaf.in?h=GDM_2_2_5_4'>importers/GNOME_Evolution_Elm_Intelligent_Importer.oaf.in</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/GNOME_Evolution_GnomeCard_Intelligent_Importer.oaf.in?h=GDM_2_2_5_4'>importers/GNOME_Evolution_GnomeCard_Intelligent_Importer.oaf.in</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/GNOME_Evolution_Netscape_Intelligent_Importer.oaf.in?h=GDM_2_2_5_4'>importers/GNOME_Evolution_Netscape_Intelligent_Importer.oaf.in</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/GNOME_Evolution_Pine_Intelligent_Importer.oaf.in?h=GDM_2_2_5_4'>importers/GNOME_Evolution_Pine_Intelligent_Importer.oaf.in</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/Makefile.am?h=GDM_2_2_5_4'>importers/Makefile.am</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/elm-importer.c?h=GDM_2_2_5_4'>importers/elm-importer.c</a></td><td class='right'>626</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/evolution-gnomecard-importer.c?h=GDM_2_2_5_4'>importers/evolution-gnomecard-importer.c</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/netscape-importer.c?h=GDM_2_2_5_4'>importers/netscape-importer.c</a></td><td class='right'>1075</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.6%;'/><td class='none' style='width: 94.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/importers/pine-importer.c?h=GDM_2_2_5_4'>importers/pine-importer.c</a></td><td class='right'>771</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/.cvsignore?h=GDM_2_2_5_4'>libibex/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/COPYING.LIB?h=GDM_2_2_5_4'>libibex/COPYING.LIB</a></td><td class='right'>481</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/ChangeLog?h=GDM_2_2_5_4'>libibex/ChangeLog</a></td><td class='right'>501</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/Makefile.am?h=GDM_2_2_5_4'>libibex/Makefile.am</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/TODO?h=GDM_2_2_5_4'>libibex/TODO</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/block.c?h=GDM_2_2_5_4'>libibex/block.c</a></td><td class='right'>621</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/block.h?h=GDM_2_2_5_4'>libibex/block.h</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/diskarray.c?h=GDM_2_2_5_4'>libibex/diskarray.c</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/disktail.c?h=GDM_2_2_5_4'>libibex/disktail.c</a></td><td class='right'>820</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/dumpindex.c?h=GDM_2_2_5_4'>libibex/dumpindex.c</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/hash.c?h=GDM_2_2_5_4'>libibex/hash.c</a></td><td class='right'>857</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/ibex.h?h=GDM_2_2_5_4'>libibex/ibex.h</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/ibex_block.c?h=GDM_2_2_5_4'>libibex/ibex_block.c</a></td><td class='right'>618</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/ibex_internal.h?h=GDM_2_2_5_4'>libibex/ibex_internal.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/index.h?h=GDM_2_2_5_4'>libibex/index.h</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/testindex.c?h=GDM_2_2_5_4'>libibex/testindex.c</a></td><td class='right'>320</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/wordindex.c?h=GDM_2_2_5_4'>libibex/wordindex.c</a></td><td class='right'>646</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/wordindex.h?h=GDM_2_2_5_4'>libibex/wordindex.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libibex/wordindexmem.c?h=GDM_2_2_5_4'>libibex/wordindexmem.c</a></td><td class='right'>902</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.7%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/.cvsignore?h=GDM_2_2_5_4'>libical/.cvsignore</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/AUTHORS?h=GDM_2_2_5_4'>libical/AUTHORS</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/COPYING?h=GDM_2_2_5_4'>libical/COPYING</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/ChangeLog?h=GDM_2_2_5_4'>libical/ChangeLog</a></td><td class='right'>1105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.7%;'/><td class='none' style='width: 94.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/INSTALL?h=GDM_2_2_5_4'>libical/INSTALL</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/Makefile.am?h=GDM_2_2_5_4'>libical/Makefile.am</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/NEWS?h=GDM_2_2_5_4'>libical/NEWS</a></td><td class='right'>447</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/README?h=GDM_2_2_5_4'>libical/README</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/TEST?h=GDM_2_2_5_4'>libical/TEST</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/THANKS?h=GDM_2_2_5_4'>libical/THANKS</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/TODO?h=GDM_2_2_5_4'>libical/TODO</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/acconfig.h?h=GDM_2_2_5_4'>libical/acconfig.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/autogen.sh?h=GDM_2_2_5_4'>libical/autogen.sh</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/configure.in?h=GDM_2_2_5_4'>libical/configure.in</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/.cvsignore?h=GDM_2_2_5_4'>libical/design-data/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/Makefile.am?h=GDM_2_2_5_4'>libical/design-data/Makefile.am</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/components.txt?h=GDM_2_2_5_4'>libical/design-data/components.txt</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/param-c-types.txt?h=GDM_2_2_5_4'>libical/design-data/param-c-types.txt</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/parameters.csv?h=GDM_2_2_5_4'>libical/design-data/parameters.csv</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/params-in-prop.txt?h=GDM_2_2_5_4'>libical/design-data/params-in-prop.txt</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/prop-to-value.txt?h=GDM_2_2_5_4'>libical/design-data/prop-to-value.txt</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/properties.csv?h=GDM_2_2_5_4'>libical/design-data/properties.csv</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/property-tokens.txt?h=GDM_2_2_5_4'>libical/design-data/property-tokens.txt</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/restrictions.csv?h=GDM_2_2_5_4'>libical/design-data/restrictions.csv</a></td><td class='right'>1348</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.0%;'/><td class='none' style='width: 93.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/status.txt?h=GDM_2_2_5_4'>libical/design-data/status.txt</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/value-c-types.txt?h=GDM_2_2_5_4'>libical/design-data/value-c-types.txt</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/value-mem-semantics.txt?h=GDM_2_2_5_4'>libical/design-data/value-mem-semantics.txt</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/design-data/value-types.csv?h=GDM_2_2_5_4'>libical/design-data/value-types.csv</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/doc/.cvsignore?h=GDM_2_2_5_4'>libical/doc/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/doc/Makefile.am?h=GDM_2_2_5_4'>libical/doc/Makefile.am</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/doc/UsingLibical.lyx?h=GDM_2_2_5_4'>libical/doc/UsingLibical.lyx</a></td><td class='right'>2578</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.4%;'/><td class='none' style='width: 86.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/doc/UsingLibical.ps?h=GDM_2_2_5_4'>libical/doc/UsingLibical.ps</a></td><td class='right'>2327</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.1%;'/><td class='none' style='width: 87.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/doc/UsingLibical.txt?h=GDM_2_2_5_4'>libical/doc/UsingLibical.txt</a></td><td class='right'>1384</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.2%;'/><td class='none' style='width: 92.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/examples/.cvsignore?h=GDM_2_2_5_4'>libical/examples/.cvsignore</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/examples/Makefile.am?h=GDM_2_2_5_4'>libical/examples/Makefile.am</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/examples/access_components.c?h=GDM_2_2_5_4'>libical/examples/access_components.c</a></td><td class='right'>319</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/examples/access_properties_and_parameters.c?h=GDM_2_2_5_4'>libical/examples/access_properties_and_parameters.c</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/examples/errors.c?h=GDM_2_2_5_4'>libical/examples/errors.c</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/examples/main.c?h=GDM_2_2_5_4'>libical/examples/main.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/examples/parse_text.c?h=GDM_2_2_5_4'>libical/examples/parse_text.c</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/.cvsignore?h=GDM_2_2_5_4'>libical/scripts/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/Makefile.am?h=GDM_2_2_5_4'>libical/scripts/Makefile.am</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/mkderivedcomponents.pl?h=GDM_2_2_5_4'>libical/scripts/mkderivedcomponents.pl</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/mkderivedparameters.pl?h=GDM_2_2_5_4'>libical/scripts/mkderivedparameters.pl</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/mkderivedproperties.pl?h=GDM_2_2_5_4'>libical/scripts/mkderivedproperties.pl</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/mkderivedvalues.pl?h=GDM_2_2_5_4'>libical/scripts/mkderivedvalues.pl</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/mkparameterrestrictions.pl?h=GDM_2_2_5_4'>libical/scripts/mkparameterrestrictions.pl</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/mkrestrictionrecords.pl?h=GDM_2_2_5_4'>libical/scripts/mkrestrictionrecords.pl</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/mkrestrictiontable.pl?h=GDM_2_2_5_4'>libical/scripts/mkrestrictiontable.pl</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/scripts/readvaluesfile.pl?h=GDM_2_2_5_4'>libical/scripts/readvaluesfile.pl</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/.cvsignore?h=GDM_2_2_5_4'>libical/src/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/Makefile.am?h=GDM_2_2_5_4'>libical/src/Makefile.am</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/.cvsignore?h=GDM_2_2_5_4'>libical/src/libical/.cvsignore</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/Makefile.am?h=GDM_2_2_5_4'>libical/src/libical/Makefile.am</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalarray.c?h=GDM_2_2_5_4'>libical/src/libical/icalarray.c</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalarray.h?h=GDM_2_2_5_4'>libical/src/libical/icalarray.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalattendee.c?h=GDM_2_2_5_4'>libical/src/libical/icalattendee.c</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalattendee.h?h=GDM_2_2_5_4'>libical/src/libical/icalattendee.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalcomponent.c?h=GDM_2_2_5_4'>libical/src/libical/icalcomponent.c</a></td><td class='right'>1932</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.0%;'/><td class='none' style='width: 90.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalcomponent.h?h=GDM_2_2_5_4'>libical/src/libical/icalcomponent.h</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalderivedparameter.c.in?h=GDM_2_2_5_4'>libical/src/libical/icalderivedparameter.c.in</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalderivedparameter.h.in?h=GDM_2_2_5_4'>libical/src/libical/icalderivedparameter.h.in</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalderivedproperty.c.in?h=GDM_2_2_5_4'>libical/src/libical/icalderivedproperty.c.in</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalderivedproperty.h.in?h=GDM_2_2_5_4'>libical/src/libical/icalderivedproperty.h.in</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalderivedvalue.c.in?h=GDM_2_2_5_4'>libical/src/libical/icalderivedvalue.c.in</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalderivedvalue.h.in?h=GDM_2_2_5_4'>libical/src/libical/icalderivedvalue.h.in</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalduration.c?h=GDM_2_2_5_4'>libical/src/libical/icalduration.c</a></td><td class='right'>320</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalduration.h?h=GDM_2_2_5_4'>libical/src/libical/icalduration.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalenums.c?h=GDM_2_2_5_4'>libical/src/libical/icalenums.c</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalenums.h?h=GDM_2_2_5_4'>libical/src/libical/icalenums.h</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalerror.c?h=GDM_2_2_5_4'>libical/src/libical/icalerror.c</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalerror.h?h=GDM_2_2_5_4'>libical/src/libical/icalerror.h</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icallangbind.c?h=GDM_2_2_5_4'>libical/src/libical/icallangbind.c</a></td><td class='right'>272</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icallangbind.h?h=GDM_2_2_5_4'>libical/src/libical/icallangbind.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icallexer.l?h=GDM_2_2_5_4'>libical/src/libical/icallexer.l</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalmemory.c?h=GDM_2_2_5_4'>libical/src/libical/icalmemory.c</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalmemory.h?h=GDM_2_2_5_4'>libical/src/libical/icalmemory.h</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalmime.c?h=GDM_2_2_5_4'>libical/src/libical/icalmime.c</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalmime.h?h=GDM_2_2_5_4'>libical/src/libical/icalmime.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalparameter.c?h=GDM_2_2_5_4'>libical/src/libical/icalparameter.c</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalparameter.h?h=GDM_2_2_5_4'>libical/src/libical/icalparameter.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalparameterimpl.h?h=GDM_2_2_5_4'>libical/src/libical/icalparameterimpl.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalparser.c?h=GDM_2_2_5_4'>libical/src/libical/icalparser.c</a></td><td class='right'>1121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.8%;'/><td class='none' style='width: 94.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalparser.h?h=GDM_2_2_5_4'>libical/src/libical/icalparser.h</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalperiod.c?h=GDM_2_2_5_4'>libical/src/libical/icalperiod.c</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalperiod.h?h=GDM_2_2_5_4'>libical/src/libical/icalperiod.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalproperty.c?h=GDM_2_2_5_4'>libical/src/libical/icalproperty.c</a></td><td class='right'>807</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.2%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalproperty.h?h=GDM_2_2_5_4'>libical/src/libical/icalproperty.h</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalrecur.c?h=GDM_2_2_5_4'>libical/src/libical/icalrecur.c</a></td><td class='right'>2373</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.3%;'/><td class='none' style='width: 87.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalrecur.h?h=GDM_2_2_5_4'>libical/src/libical/icalrecur.h</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalrestriction.c.in?h=GDM_2_2_5_4'>libical/src/libical/icalrestriction.c.in</a></td><td class='right'>447</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalrestriction.h?h=GDM_2_2_5_4'>libical/src/libical/icalrestriction.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icaltime.c?h=GDM_2_2_5_4'>libical/src/libical/icaltime.c</a></td><td class='right'>737</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.8%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icaltime.h?h=GDM_2_2_5_4'>libical/src/libical/icaltime.h</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icaltimezone.c?h=GDM_2_2_5_4'>libical/src/libical/icaltimezone.c</a></td><td class='right'>1629</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.5%;'/><td class='none' style='width: 91.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icaltimezone.h?h=GDM_2_2_5_4'>libical/src/libical/icaltimezone.h</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icaltypes.c?h=GDM_2_2_5_4'>libical/src/libical/icaltypes.c</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icaltypes.h?h=GDM_2_2_5_4'>libical/src/libical/icaltypes.h</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalvalue.c?h=GDM_2_2_5_4'>libical/src/libical/icalvalue.c</a></td><td class='right'>1245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.5%;'/><td class='none' style='width: 93.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalvalue.h?h=GDM_2_2_5_4'>libical/src/libical/icalvalue.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalvalueimpl.h?h=GDM_2_2_5_4'>libical/src/libical/icalvalueimpl.h</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalversion.h.in?h=GDM_2_2_5_4'>libical/src/libical/icalversion.h.in</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/icalyacc.y?h=GDM_2_2_5_4'>libical/src/libical/icalyacc.y</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/pvl.c?h=GDM_2_2_5_4'>libical/src/libical/pvl.c</a></td><td class='right'>761</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.9%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/pvl.h?h=GDM_2_2_5_4'>libical/src/libical/pvl.h</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/sspm.c?h=GDM_2_2_5_4'>libical/src/libical/sspm.c</a></td><td class='right'>1613</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.4%;'/><td class='none' style='width: 91.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/sspm.h?h=GDM_2_2_5_4'>libical/src/libical/sspm.h</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libical/vsnprintf.c?h=GDM_2_2_5_4'>libical/src/libical/vsnprintf.c</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/.cvsignore?h=GDM_2_2_5_4'>libical/src/libicalss/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/Makefile.am?h=GDM_2_2_5_4'>libical/src/libicalss/Makefile.am</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcalendar.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalcalendar.c</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcalendar.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalcalendar.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalclassify.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalclassify.c</a></td><td class='right'>696</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalclassify.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalclassify.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcomponent.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalcomponent.h</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcsdb.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalcsdb.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcstp.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalcstp.c</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcstp.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalcstp.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcstpclient.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalcstpclient.c</a></td><td class='right'>343</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcstpclient.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalcstpclient.h</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcstpserver.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalcstpserver.c</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalcstpserver.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalcstpserver.h</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icaldirset.c?h=GDM_2_2_5_4'>libical/src/libicalss/icaldirset.c</a></td><td class='right'>753</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.9%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icaldirset.h?h=GDM_2_2_5_4'>libical/src/libicalss/icaldirset.h</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icaldirsetimpl.h?h=GDM_2_2_5_4'>libical/src/libicalss/icaldirsetimpl.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalfileset.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalfileset.c</a></td><td class='right'>637</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalfileset.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalfileset.h</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalfilesetimpl.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalfilesetimpl.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalgauge.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalgauge.c</a></td><td class='right'>447</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalgauge.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalgauge.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalgaugeimpl.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalgaugeimpl.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalmessage.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalmessage.c</a></td><td class='right'>376</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalmessage.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalmessage.h</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalset.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalset.c</a></td><td class='right'>367</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalset.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalset.h</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalspanlist.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalspanlist.c</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalspanlist.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalspanlist.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalsslexer.l?h=GDM_2_2_5_4'>libical/src/libicalss/icalsslexer.l</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalssutil.c?h=GDM_2_2_5_4'>libical/src/libicalss/icalssutil.c</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalssutil.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalssutil.h</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalssyacc.h?h=GDM_2_2_5_4'>libical/src/libicalss/icalssyacc.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalss/icalssyacc.y?h=GDM_2_2_5_4'>libical/src/libicalss/icalssyacc.y</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/.cvsignore?h=GDM_2_2_5_4'>libical/src/libicalvcal/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/Makefile.am?h=GDM_2_2_5_4'>libical/src/libicalvcal/Makefile.am</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/README.TXT?h=GDM_2_2_5_4'>libical/src/libicalvcal/README.TXT</a></td><td class='right'>951</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.9%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/icalvcal.c?h=GDM_2_2_5_4'>libical/src/libicalvcal/icalvcal.c</a></td><td class='right'>517</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/icalvcal.h?h=GDM_2_2_5_4'>libical/src/libicalvcal/icalvcal.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/port.h?h=GDM_2_2_5_4'>libical/src/libicalvcal/port.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vcaltest.c?h=GDM_2_2_5_4'>libical/src/libicalvcal/vcaltest.c</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vcaltmp.c?h=GDM_2_2_5_4'>libical/src/libicalvcal/vcaltmp.c</a></td><td class='right'>337</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vcaltmp.h?h=GDM_2_2_5_4'>libical/src/libicalvcal/vcaltmp.h</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vcc.h?h=GDM_2_2_5_4'>libical/src/libicalvcal/vcc.h</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vcc.y?h=GDM_2_2_5_4'>libical/src/libicalvcal/vcc.y</a></td><td class='right'>1176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.1%;'/><td class='none' style='width: 93.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vctest.c?h=GDM_2_2_5_4'>libical/src/libicalvcal/vctest.c</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vobject.c?h=GDM_2_2_5_4'>libical/src/libicalvcal/vobject.c</a></td><td class='right'>1452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.5%;'/><td class='none' style='width: 92.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/libicalvcal/vobject.h?h=GDM_2_2_5_4'>libical/src/libicalvcal/vobject.h</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/.cvsignore?h=GDM_2_2_5_4'>libical/src/python/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/ChangeLog?h=GDM_2_2_5_4'>libical/src/python/ChangeLog</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/Collection.py?h=GDM_2_2_5_4'>libical/src/python/Collection.py</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/Component.py?h=GDM_2_2_5_4'>libical/src/python/Component.py</a></td><td class='right'>670</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/DerivedProperties.py?h=GDM_2_2_5_4'>libical/src/python/DerivedProperties.py</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/Libical.py?h=GDM_2_2_5_4'>libical/src/python/Libical.py</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/LibicalWrap.i?h=GDM_2_2_5_4'>libical/src/python/LibicalWrap.i</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/Makefile.am?h=GDM_2_2_5_4'>libical/src/python/Makefile.am</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/Property.py?h=GDM_2_2_5_4'>libical/src/python/Property.py</a></td><td class='right'>839</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/Store.py?h=GDM_2_2_5_4'>libical/src/python/Store.py</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/python-binding.txt?h=GDM_2_2_5_4'>libical/src/python/python-binding.txt</a></td><td class='right'>434</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/python/test.py?h=GDM_2_2_5_4'>libical/src/python/test.py</a></td><td class='right'>373</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/.cvsignore?h=GDM_2_2_5_4'>libical/src/test/.cvsignore</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/Makefile.am?h=GDM_2_2_5_4'>libical/src/test/Makefile.am</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/copycluster.c?h=GDM_2_2_5_4'>libical/src/test/copycluster.c</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/findobj.c?h=GDM_2_2_5_4'>libical/src/test/findobj.c</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/icaltestparser.c?h=GDM_2_2_5_4'>libical/src/test/icaltestparser.c</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/process.c?h=GDM_2_2_5_4'>libical/src/test/process.c</a></td><td class='right'>446</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/recur.c?h=GDM_2_2_5_4'>libical/src/test/recur.c</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/regression.c?h=GDM_2_2_5_4'>libical/src/test/regression.c</a></td><td class='right'>3605</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 18.7%;'/><td class='none' style='width: 81.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/storage.c?h=GDM_2_2_5_4'>libical/src/test/storage.c</a></td><td class='right'>459</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/stow.c?h=GDM_2_2_5_4'>libical/src/test/stow.c</a></td><td class='right'>866</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/testclassify.c?h=GDM_2_2_5_4'>libical/src/test/testclassify.c</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/testmime.c?h=GDM_2_2_5_4'>libical/src/test/testmime.c</a></td><td class='right'>340</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/src/test/testvcal.c?h=GDM_2_2_5_4'>libical/src/test/testvcal.c</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/.cvsignore?h=GDM_2_2_5_4'>libical/test-data/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/0?h=GDM_2_2_5_4'>libical/test-data/0</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/1?h=GDM_2_2_5_4'>libical/test-data/1</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/1.1?h=GDM_2_2_5_4'>libical/test-data/1.1</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/2?h=GDM_2_2_5_4'>libical/test-data/2</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/2445.ics?h=GDM_2_2_5_4'>libical/test-data/2445.ics</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/2446.ics?h=GDM_2_2_5_4'>libical/test-data/2446.ics</a></td><td class='right'>1006</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.2%;'/><td class='none' style='width: 94.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/3?h=GDM_2_2_5_4'>libical/test-data/3</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/4?h=GDM_2_2_5_4'>libical/test-data/4</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/5?h=GDM_2_2_5_4'>libical/test-data/5</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/6?h=GDM_2_2_5_4'>libical/test-data/6</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/7?h=GDM_2_2_5_4'>libical/test-data/7</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/Makefile.am?h=GDM_2_2_5_4'>libical/test-data/Makefile.am</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/calendar.ics?h=GDM_2_2_5_4'>libical/test-data/calendar.ics</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/classify.ics?h=GDM_2_2_5_4'>libical/test-data/classify.ics</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/complex-mime.txt?h=GDM_2_2_5_4'>libical/test-data/complex-mime.txt</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/incoming.ics?h=GDM_2_2_5_4'>libical/test-data/incoming.ics</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/overlaps.ics?h=GDM_2_2_5_4'>libical/test-data/overlaps.ics</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/process-incoming.ics?h=GDM_2_2_5_4'>libical/test-data/process-incoming.ics</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/recur.txt?h=GDM_2_2_5_4'>libical/test-data/recur.txt</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/restriction.ics?h=GDM_2_2_5_4'>libical/test-data/restriction.ics</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/simple-mime.txt?h=GDM_2_2_5_4'>libical/test-data/simple-mime.txt</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/smallcluster.ics?h=GDM_2_2_5_4'>libical/test-data/smallcluster.ics</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/stresstest.ics?h=GDM_2_2_5_4'>libical/test-data/stresstest.ics</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/test-data/user-cal.vcf?h=GDM_2_2_5_4'>libical/test-data/user-cal.vcf</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/.cvsignore?h=GDM_2_2_5_4'>libical/zoneinfo/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Abidjan.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Abidjan.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Accra.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Accra.ics</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Addis_Ababa.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Addis_Ababa.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Algiers.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Algiers.ics</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Asmera.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Asmera.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Bamako.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Bamako.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Bangui.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Bangui.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Banjul.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Banjul.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Bissau.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Bissau.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Blantyre.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Blantyre.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Brazzaville.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Brazzaville.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Bujumbura.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Bujumbura.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Cairo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Cairo.ics</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Casablanca.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Casablanca.ics</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Ceuta.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Ceuta.ics</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Conakry.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Conakry.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Dakar.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Dakar.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Dar_es_Salaam.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Dar_es_Salaam.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Djibouti.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Djibouti.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Douala.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Douala.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/El_Aaiun.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/El_Aaiun.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Freetown.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Freetown.ics</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Gaborone.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Gaborone.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Harare.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Harare.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Johannesburg.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Johannesburg.ics</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Kampala.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Kampala.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Khartoum.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Khartoum.ics</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Kigali.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Kigali.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Kinshasa.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Kinshasa.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Lagos.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Lagos.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Libreville.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Libreville.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Lome.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Lome.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Luanda.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Luanda.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Lubumbashi.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Lubumbashi.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Lusaka.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Lusaka.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Malabo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Malabo.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Maputo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Maputo.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Maseru.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Maseru.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Mbabane.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Mbabane.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Mogadishu.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Mogadishu.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Monrovia.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Monrovia.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Nairobi.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Nairobi.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Ndjamena.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Ndjamena.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Niamey.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Niamey.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Nouakchott.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Nouakchott.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Ouagadougou.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Ouagadougou.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Porto-Novo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Porto-Novo.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Sao_Tome.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Sao_Tome.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Timbuktu.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Timbuktu.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Tripoli.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Tripoli.ics</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Tunis.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Tunis.ics</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Africa/Windhoek.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Africa/Windhoek.ics</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Adak.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Adak.ics</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Anchorage.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Anchorage.ics</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Anguilla.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Anguilla.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Antigua.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Antigua.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Araguaina.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Araguaina.ics</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Aruba.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Aruba.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Asuncion.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Asuncion.ics</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Barbados.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Barbados.ics</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Belem.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Belem.ics</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Belize.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Belize.ics</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Boa_Vista.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Boa_Vista.ics</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Bogota.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Bogota.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Boise.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Boise.ics</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Buenos_Aires.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Buenos_Aires.ics</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Cambridge_Bay.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Cambridge_Bay.ics</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Cancun.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Cancun.ics</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Caracas.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Caracas.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Catamarca.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Catamarca.ics</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Cayenne.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Cayenne.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Cayman.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Cayman.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Chicago.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Chicago.ics</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Chihuahua.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Chihuahua.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Cordoba.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Cordoba.ics</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Costa_Rica.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Costa_Rica.ics</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Cuiaba.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Cuiaba.ics</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Curacao.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Curacao.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Danmarkshavn.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Danmarkshavn.ics</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Dawson.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Dawson.ics</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Dawson_Creek.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Dawson_Creek.ics</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Denver.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Denver.ics</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Detroit.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Detroit.ics</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Dominica.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Dominica.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Edmonton.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Edmonton.ics</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Eirunepe.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Eirunepe.ics</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/El_Salvador.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/El_Salvador.ics</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Fortaleza.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Fortaleza.ics</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Glace_Bay.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Glace_Bay.ics</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Godthab.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Godthab.ics</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Goose_Bay.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Goose_Bay.ics</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Grand_Turk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Grand_Turk.ics</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Grenada.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Grenada.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Guadeloupe.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Guadeloupe.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Guatemala.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Guatemala.ics</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Guayaquil.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Guayaquil.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Guyana.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Guyana.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Halifax.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Halifax.ics</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Havana.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Havana.ics</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Hermosillo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Hermosillo.ics</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Indiana/Indianapolis.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Indiana/Indianapolis.ics</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Indiana/Knox.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Indiana/Knox.ics</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Indiana/Marengo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Indiana/Marengo.ics</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Indiana/Vevay.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Indiana/Vevay.ics</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Indianapolis.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Indianapolis.ics</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Inuvik.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Inuvik.ics</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Iqaluit.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Iqaluit.ics</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Jamaica.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Jamaica.ics</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Jujuy.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Jujuy.ics</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Juneau.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Juneau.ics</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Kentucky/Louisville.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Kentucky/Louisville.ics</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Kentucky/Monticello.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Kentucky/Monticello.ics</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/La_Paz.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/La_Paz.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Lima.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Lima.ics</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Los_Angeles.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Los_Angeles.ics</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Louisville.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Louisville.ics</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Maceio.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Maceio.ics</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Managua.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Managua.ics</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Manaus.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Manaus.ics</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Martinique.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Martinique.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Mazatlan.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Mazatlan.ics</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Mendoza.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Mendoza.ics</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Menominee.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Menominee.ics</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Merida.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Merida.ics</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Mexico_City.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Mexico_City.ics</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Miquelon.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Miquelon.ics</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Monterrey.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Monterrey.ics</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Montevideo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Montevideo.ics</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Montreal.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Montreal.ics</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Montserrat.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Montserrat.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Nassau.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Nassau.ics</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/New_York.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/New_York.ics</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Nipigon.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Nipigon.ics</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Nome.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Nome.ics</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Noronha.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Noronha.ics</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/North_Dakota/Center.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/North_Dakota/Center.ics</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Panama.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Panama.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Pangnirtung.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Pangnirtung.ics</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Paramaribo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Paramaribo.ics</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Phoenix.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Phoenix.ics</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Port-au-Prince.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Port-au-Prince.ics</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Port_of_Spain.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Port_of_Spain.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Porto_Velho.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Porto_Velho.ics</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Puerto_Rico.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Puerto_Rico.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Rainy_River.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Rainy_River.ics</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Rankin_Inlet.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Rankin_Inlet.ics</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Recife.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Recife.ics</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Regina.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Regina.ics</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Rio_Branco.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Rio_Branco.ics</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Rosario.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Rosario.ics</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Santiago.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Santiago.ics</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Santo_Domingo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Santo_Domingo.ics</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Sao_Paulo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Sao_Paulo.ics</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Scoresbysund.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Scoresbysund.ics</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Shiprock.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Shiprock.ics</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/St_Johns.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/St_Johns.ics</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/St_Kitts.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/St_Kitts.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/St_Lucia.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/St_Lucia.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/St_Thomas.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/St_Thomas.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/St_Vincent.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/St_Vincent.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Swift_Current.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Swift_Current.ics</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Tegucigalpa.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Tegucigalpa.ics</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Thule.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Thule.ics</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Thunder_Bay.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Thunder_Bay.ics</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Tijuana.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Tijuana.ics</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Tortola.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Tortola.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Vancouver.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Vancouver.ics</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Whitehorse.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Whitehorse.ics</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Winnipeg.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Winnipeg.ics</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Yakutat.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Yakutat.ics</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/America/Yellowknife.ics?h=GDM_2_2_5_4'>libical/zoneinfo/America/Yellowknife.ics</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/Casey.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/Casey.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/Davis.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/Davis.ics</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/DumontDUrville.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/DumontDUrville.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/Mawson.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/Mawson.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/McMurdo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/McMurdo.ics</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/Palmer.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/Palmer.ics</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/South_Pole.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/South_Pole.ics</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/Syowa.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/Syowa.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Antarctica/Vostok.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Antarctica/Vostok.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Arctic/Longyearbyen.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Arctic/Longyearbyen.ics</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Aden.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Aden.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Almaty.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Almaty.ics</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Amman.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Amman.ics</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Anadyr.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Anadyr.ics</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Aqtau.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Aqtau.ics</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Aqtobe.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Aqtobe.ics</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Ashgabat.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Ashgabat.ics</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Baghdad.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Baghdad.ics</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Bahrain.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Bahrain.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Baku.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Baku.ics</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Bangkok.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Bangkok.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Beirut.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Beirut.ics</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Bishkek.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Bishkek.ics</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Brunei.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Brunei.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Calcutta.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Calcutta.ics</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Choibalsan.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Choibalsan.ics</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Chongqing.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Chongqing.ics</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Chungking.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Chungking.ics</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Colombo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Colombo.ics</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Damascus.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Damascus.ics</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Dhaka.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Dhaka.ics</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Dili.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Dili.ics</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Dubai.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Dubai.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Dushanbe.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Dushanbe.ics</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Gaza.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Gaza.ics</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Harbin.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Harbin.ics</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Hong_Kong.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Hong_Kong.ics</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Hovd.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Hovd.ics</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Irkutsk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Irkutsk.ics</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Istanbul.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Istanbul.ics</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Jakarta.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Jakarta.ics</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Jayapura.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Jayapura.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Jerusalem.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Jerusalem.ics</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Kabul.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Kabul.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Kamchatka.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Kamchatka.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Karachi.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Karachi.ics</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Kashgar.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Kashgar.ics</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Katmandu.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Katmandu.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Krasnoyarsk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Krasnoyarsk.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Kuala_Lumpur.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Kuala_Lumpur.ics</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Kuching.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Kuching.ics</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Kuwait.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Kuwait.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Macao.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Macao.ics</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Magadan.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Magadan.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Manila.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Manila.ics</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Muscat.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Muscat.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Nicosia.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Nicosia.ics</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Novosibirsk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Novosibirsk.ics</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Omsk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Omsk.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Phnom_Penh.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Phnom_Penh.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Pontianak.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Pontianak.ics</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Pyongyang.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Pyongyang.ics</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Qatar.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Qatar.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Rangoon.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Rangoon.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Riyadh.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Riyadh.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Saigon.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Saigon.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Sakhalin.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Sakhalin.ics</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Samarkand.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Samarkand.ics</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Seoul.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Seoul.ics</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Shanghai.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Shanghai.ics</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Singapore.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Singapore.ics</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Taipei.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Taipei.ics</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Tashkent.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Tashkent.ics</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Tbilisi.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Tbilisi.ics</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Tehran.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Tehran.ics</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Thimphu.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Thimphu.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Tokyo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Tokyo.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Ujung_Pandang.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Ujung_Pandang.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Ulaanbaatar.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Ulaanbaatar.ics</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Urumqi.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Urumqi.ics</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Vientiane.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Vientiane.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Vladivostok.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Vladivostok.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Yakutsk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Yakutsk.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Yekaterinburg.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Yekaterinburg.ics</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Asia/Yerevan.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Asia/Yerevan.ics</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Azores.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Azores.ics</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Bermuda.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Bermuda.ics</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Canary.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Canary.ics</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Cape_Verde.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Cape_Verde.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Faeroe.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Faeroe.ics</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Jan_Mayen.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Jan_Mayen.ics</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Madeira.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Madeira.ics</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Reykjavik.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Reykjavik.ics</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/South_Georgia.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/South_Georgia.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/St_Helena.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/St_Helena.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Atlantic/Stanley.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Atlantic/Stanley.ics</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Adelaide.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Adelaide.ics</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Brisbane.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Brisbane.ics</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Broken_Hill.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Broken_Hill.ics</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Darwin.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Darwin.ics</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Hobart.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Hobart.ics</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Lindeman.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Lindeman.ics</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Lord_Howe.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Lord_Howe.ics</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Melbourne.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Melbourne.ics</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Perth.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Perth.ics</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Australia/Sydney.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Australia/Sydney.ics</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Amsterdam.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Amsterdam.ics</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Andorra.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Andorra.ics</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Athens.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Athens.ics</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Belfast.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Belfast.ics</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Belgrade.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Belgrade.ics</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Berlin.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Berlin.ics</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Bratislava.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Bratislava.ics</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Brussels.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Brussels.ics</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Bucharest.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Bucharest.ics</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Budapest.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Budapest.ics</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Chisinau.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Chisinau.ics</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Copenhagen.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Copenhagen.ics</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Dublin.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Dublin.ics</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Gibraltar.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Gibraltar.ics</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Helsinki.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Helsinki.ics</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Istanbul.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Istanbul.ics</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Kaliningrad.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Kaliningrad.ics</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Kiev.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Kiev.ics</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Lisbon.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Lisbon.ics</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Ljubljana.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Ljubljana.ics</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/London.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/London.ics</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Luxembourg.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Luxembourg.ics</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Madrid.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Madrid.ics</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Malta.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Malta.ics</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Minsk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Minsk.ics</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Monaco.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Monaco.ics</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Moscow.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Moscow.ics</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Nicosia.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Nicosia.ics</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Oslo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Oslo.ics</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Paris.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Paris.ics</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Prague.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Prague.ics</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Riga.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Riga.ics</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Rome.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Rome.ics</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Samara.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Samara.ics</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/San_Marino.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/San_Marino.ics</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Sarajevo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Sarajevo.ics</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Simferopol.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Simferopol.ics</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Skopje.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Skopje.ics</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Sofia.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Sofia.ics</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Stockholm.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Stockholm.ics</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Tallinn.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Tallinn.ics</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Tirane.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Tirane.ics</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Uzhgorod.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Uzhgorod.ics</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Vaduz.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Vaduz.ics</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Vatican.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Vatican.ics</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Vienna.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Vienna.ics</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Vilnius.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Vilnius.ics</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Warsaw.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Warsaw.ics</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Zagreb.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Zagreb.ics</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Zaporozhye.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Zaporozhye.ics</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Europe/Zurich.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Europe/Zurich.ics</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Antananarivo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Antananarivo.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Chagos.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Chagos.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Christmas.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Christmas.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Cocos.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Cocos.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Comoro.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Comoro.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Kerguelen.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Kerguelen.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Mahe.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Mahe.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Maldives.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Maldives.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Mauritius.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Mauritius.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Mayotte.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Mayotte.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Indian/Reunion.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Indian/Reunion.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Makefile.am?h=GDM_2_2_5_4'>libical/zoneinfo/Makefile.am</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Apia.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Apia.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Auckland.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Auckland.ics</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Chatham.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Chatham.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Easter.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Easter.ics</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Efate.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Efate.ics</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Enderbury.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Enderbury.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Fakaofo.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Fakaofo.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Fiji.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Fiji.ics</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Funafuti.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Funafuti.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Galapagos.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Galapagos.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Gambier.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Gambier.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Guadalcanal.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Guadalcanal.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Guam.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Guam.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Honolulu.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Honolulu.ics</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Johnston.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Johnston.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Kiritimati.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Kiritimati.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Kosrae.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Kosrae.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Kwajalein.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Kwajalein.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Majuro.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Majuro.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Marquesas.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Marquesas.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Midway.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Midway.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Nauru.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Nauru.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Niue.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Niue.ics</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Norfolk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Norfolk.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Noumea.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Noumea.ics</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Pago_Pago.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Pago_Pago.ics</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Palau.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Palau.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Pitcairn.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Pitcairn.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Ponape.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Ponape.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Port_Moresby.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Port_Moresby.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Rarotonga.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Rarotonga.ics</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Saipan.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Saipan.ics</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Tahiti.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Tahiti.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Tarawa.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Tarawa.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Tongatapu.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Tongatapu.ics</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Truk.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Truk.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Wake.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Wake.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Wallis.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Wallis.ics</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/Pacific/Yap.ics?h=GDM_2_2_5_4'>libical/zoneinfo/Pacific/Yap.ics</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libical/zoneinfo/zones.tab?h=GDM_2_2_5_4'>libical/zoneinfo/zones.tab</a></td><td class='right'>377</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/.cvsignore?h=GDM_2_2_5_4'>libversit/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/Makefile.am?h=GDM_2_2_5_4'>libversit/Makefile.am</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/README.TXT?h=GDM_2_2_5_4'>libversit/README.TXT</a></td><td class='right'>951</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.9%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/port.h?h=GDM_2_2_5_4'>libversit/port.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vcaltest.c?h=GDM_2_2_5_4'>libversit/vcaltest.c</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vcaltmp.c?h=GDM_2_2_5_4'>libversit/vcaltmp.c</a></td><td class='right'>337</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vcaltmp.h?h=GDM_2_2_5_4'>libversit/vcaltmp.h</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vcc.h?h=GDM_2_2_5_4'>libversit/vcc.h</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vcc.y?h=GDM_2_2_5_4'>libversit/vcc.y</a></td><td class='right'>1262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.5%;'/><td class='none' style='width: 93.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vctest.c?h=GDM_2_2_5_4'>libversit/vctest.c</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vobject.c?h=GDM_2_2_5_4'>libversit/vobject.c</a></td><td class='right'>1452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.5%;'/><td class='none' style='width: 92.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libversit/vobject.h?h=GDM_2_2_5_4'>libversit/vobject.h</a></td><td class='right'>367</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libwombat/.cvsignore?h=GDM_2_2_5_4'>libwombat/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libwombat/ChangeLog?h=GDM_2_2_5_4'>libwombat/ChangeLog</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libwombat/Makefile.am?h=GDM_2_2_5_4'>libwombat/Makefile.am</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libwombat/wombat-client.c?h=GDM_2_2_5_4'>libwombat/wombat-client.c</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/libwombat/wombat-client.h?h=GDM_2_2_5_4'>libwombat/wombat-client.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/.cvsignore?h=GDM_2_2_5_4'>mail/.cvsignore</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/ChangeLog?h=GDM_2_2_5_4'>mail/ChangeLog</a></td><td class='right'>16995</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 88.2%;'/><td class='none' style='width: 11.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/GNOME_Evolution_Mail.oaf.in?h=GDM_2_2_5_4'>mail/GNOME_Evolution_Mail.oaf.in</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/Mail.idl?h=GDM_2_2_5_4'>mail/Mail.idl</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/Makefile.am?h=GDM_2_2_5_4'>mail/Makefile.am</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/README.async?h=GDM_2_2_5_4'>mail/README.async</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/component-factory.c?h=GDM_2_2_5_4'>mail/component-factory.c</a></td><td class='right'>1292</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.7%;'/><td class='none' style='width: 93.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/component-factory.h?h=GDM_2_2_5_4'>mail/component-factory.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/e-attchmt.png?h=GDM_2_2_5_4'>mail/e-attchmt.png</a></td><td class='right'>bin</td><td class='graph'>169 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/e-searching-tokenizer.c?h=GDM_2_2_5_4'>mail/e-searching-tokenizer.c</a></td><td class='right'>1036</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.4%;'/><td class='none' style='width: 94.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/e-searching-tokenizer.h?h=GDM_2_2_5_4'>mail/e-searching-tokenizer.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/folder-browser-factory.c?h=GDM_2_2_5_4'>mail/folder-browser-factory.c</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/folder-browser-factory.h?h=GDM_2_2_5_4'>mail/folder-browser-factory.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/folder-browser-ui.c?h=GDM_2_2_5_4'>mail/folder-browser-ui.c</a></td><td class='right'>611</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/folder-browser-ui.h?h=GDM_2_2_5_4'>mail/folder-browser-ui.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/folder-browser.c?h=GDM_2_2_5_4'>mail/folder-browser.c</a></td><td class='right'>2041</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 10.6%;'/><td class='none' style='width: 89.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/folder-browser.h?h=GDM_2_2_5_4'>mail/folder-browser.h</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/folder-info.c?h=GDM_2_2_5_4'>mail/folder-info.c</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/importers/.cvsignore?h=GDM_2_2_5_4'>mail/importers/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/importers/GNOME_Evolution_Mail_Mbox_Importer.oaf.in?h=GDM_2_2_5_4'>mail/importers/GNOME_Evolution_Mail_Mbox_Importer.oaf.in</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/importers/GNOME_Evolution_Mail_Outlook_Importer.oaf.in?h=GDM_2_2_5_4'>mail/importers/GNOME_Evolution_Mail_Outlook_Importer.oaf.in</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/importers/Makefile.am?h=GDM_2_2_5_4'>mail/importers/Makefile.am</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/importers/evolution-mbox-importer.c?h=GDM_2_2_5_4'>mail/importers/evolution-mbox-importer.c</a></td><td class='right'>358</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/importers/evolution-outlook-importer.c?h=GDM_2_2_5_4'>mail/importers/evolution-outlook-importer.c</a></td><td class='right'>319</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/local-config.glade?h=GDM_2_2_5_4'>mail/local-config.glade</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-account-editor-news.c?h=GDM_2_2_5_4'>mail/mail-account-editor-news.c</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-account-editor-news.h?h=GDM_2_2_5_4'>mail/mail-account-editor-news.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-account-editor.c?h=GDM_2_2_5_4'>mail/mail-account-editor.c</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-account-editor.h?h=GDM_2_2_5_4'>mail/mail-account-editor.h</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-account-gui.c?h=GDM_2_2_5_4'>mail/mail-account-gui.c</a></td><td class='right'>1736</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 9.0%;'/><td class='none' style='width: 91.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-account-gui.h?h=GDM_2_2_5_4'>mail/mail-account-gui.h</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-accounts.c?h=GDM_2_2_5_4'>mail/mail-accounts.c</a></td><td class='right'>962</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-accounts.h?h=GDM_2_2_5_4'>mail/mail-accounts.h</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-autofilter.c?h=GDM_2_2_5_4'>mail/mail-autofilter.c</a></td><td class='right'>359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-autofilter.h?h=GDM_2_2_5_4'>mail/mail-autofilter.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-callbacks.c?h=GDM_2_2_5_4'>mail/mail-callbacks.c</a></td><td class='right'>2516</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.1%;'/><td class='none' style='width: 86.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-callbacks.h?h=GDM_2_2_5_4'>mail/mail-callbacks.h</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-config-druid.c?h=GDM_2_2_5_4'>mail/mail-config-druid.c</a></td><td class='right'>940</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.9%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-config-druid.h?h=GDM_2_2_5_4'>mail/mail-config-druid.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-config.c?h=GDM_2_2_5_4'>mail/mail-config.c</a></td><td class='right'>2116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 11.0%;'/><td class='none' style='width: 89.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-config.glade?h=GDM_2_2_5_4'>mail/mail-config.glade</a></td><td class='right'>3145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 16.3%;'/><td class='none' style='width: 83.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-config.h?h=GDM_2_2_5_4'>mail/mail-config.h</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-crypto.c?h=GDM_2_2_5_4'>mail/mail-crypto.c</a></td><td class='right'>300</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-crypto.h?h=GDM_2_2_5_4'>mail/mail-crypto.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-display.c?h=GDM_2_2_5_4'>mail/mail-display.c</a></td><td class='right'>2120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 11.0%;'/><td class='none' style='width: 89.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-display.h?h=GDM_2_2_5_4'>mail/mail-display.h</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-folder-cache.c?h=GDM_2_2_5_4'>mail/mail-folder-cache.c</a></td><td class='right'>555</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-folder-cache.h?h=GDM_2_2_5_4'>mail/mail-folder-cache.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-format.c?h=GDM_2_2_5_4'>mail/mail-format.c</a></td><td class='right'>2334</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.1%;'/><td class='none' style='width: 87.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-identify.c?h=GDM_2_2_5_4'>mail/mail-identify.c</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-importer.c?h=GDM_2_2_5_4'>mail/mail-importer.c</a></td><td class='right'>262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-importer.h?h=GDM_2_2_5_4'>mail/mail-importer.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-local.c?h=GDM_2_2_5_4'>mail/mail-local.c</a></td><td class='right'>1326</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.9%;'/><td class='none' style='width: 93.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-local.h?h=GDM_2_2_5_4'>mail/mail-local.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-mt.c?h=GDM_2_2_5_4'>mail/mail-mt.c</a></td><td class='right'>971</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-mt.h?h=GDM_2_2_5_4'>mail/mail-mt.h</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-offline-handler.c?h=GDM_2_2_5_4'>mail/mail-offline-handler.c</a></td><td class='right'>256</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-offline-handler.h?h=GDM_2_2_5_4'>mail/mail-offline-handler.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-ops.c?h=GDM_2_2_5_4'>mail/mail-ops.c</a></td><td class='right'>2175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 11.3%;'/><td class='none' style='width: 88.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-ops.h?h=GDM_2_2_5_4'>mail/mail-ops.h</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-search-dialogue.c?h=GDM_2_2_5_4'>mail/mail-search-dialogue.c</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-search-dialogue.h?h=GDM_2_2_5_4'>mail/mail-search-dialogue.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-search.c?h=GDM_2_2_5_4'>mail/mail-search.c</a></td><td class='right'>422</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-search.h?h=GDM_2_2_5_4'>mail/mail-search.h</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-send-recv.c?h=GDM_2_2_5_4'>mail/mail-send-recv.c</a></td><td class='right'>837</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-send-recv.h?h=GDM_2_2_5_4'>mail/mail-send-recv.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-session.c?h=GDM_2_2_5_4'>mail/mail-session.c</a></td><td class='right'>971</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-session.h?h=GDM_2_2_5_4'>mail/mail-session.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-stream-gtkhtml.c?h=GDM_2_2_5_4'>mail/mail-stream-gtkhtml.c</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-stream-gtkhtml.h?h=GDM_2_2_5_4'>mail/mail-stream-gtkhtml.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-summary.c?h=GDM_2_2_5_4'>mail/mail-summary.c</a></td><td class='right'>523</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-summary.h?h=GDM_2_2_5_4'>mail/mail-summary.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-tools.c?h=GDM_2_2_5_4'>mail/mail-tools.c</a></td><td class='right'>391</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-tools.h?h=GDM_2_2_5_4'>mail/mail-tools.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-types.h?h=GDM_2_2_5_4'>mail/mail-types.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-vfolder.c?h=GDM_2_2_5_4'>mail/mail-vfolder.c</a></td><td class='right'>868</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail-vfolder.h?h=GDM_2_2_5_4'>mail/mail-vfolder.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/mail.h?h=GDM_2_2_5_4'>mail/mail.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/main.c?h=GDM_2_2_5_4'>mail/main.c</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/message-browser.c?h=GDM_2_2_5_4'>mail/message-browser.c</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/message-browser.h?h=GDM_2_2_5_4'>mail/message-browser.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/message-list.c?h=GDM_2_2_5_4'>mail/message-list.c</a></td><td class='right'>2536</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.2%;'/><td class='none' style='width: 86.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/message-list.etspec?h=GDM_2_2_5_4'>mail/message-list.etspec</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/message-list.h?h=GDM_2_2_5_4'>mail/message-list.h</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/subscribe-dialog.c?h=GDM_2_2_5_4'>mail/subscribe-dialog.c</a></td><td class='right'>1643</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.5%;'/><td class='none' style='width: 91.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/subscribe-dialog.etspec?h=GDM_2_2_5_4'>mail/subscribe-dialog.etspec</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/subscribe-dialog.glade?h=GDM_2_2_5_4'>mail/subscribe-dialog.glade</a></td><td class='right'>326</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/mail/subscribe-dialog.h?h=GDM_2_2_5_4'>mail/subscribe-dialog.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/.cvsignore?h=GDM_2_2_5_4'>my-evolution/.cvsignore</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/ChangeLog?h=GDM_2_2_5_4'>my-evolution/ChangeLog</a></td><td class='right'>996</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.2%;'/><td class='none' style='width: 94.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/GNOME_Evolution_Summary.oaf.in?h=GDM_2_2_5_4'>my-evolution/GNOME_Evolution_Summary.oaf.in</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/Locations?h=GDM_2_2_5_4'>my-evolution/Locations</a></td><td class='right'>3004</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 15.6%;'/><td class='none' style='width: 84.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/Makefile.am?h=GDM_2_2_5_4'>my-evolution/Makefile.am</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/component-factory.c?h=GDM_2_2_5_4'>my-evolution/component-factory.c</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/component-factory.h?h=GDM_2_2_5_4'>my-evolution/component-factory.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-calendar.c?h=GDM_2_2_5_4'>my-evolution/e-summary-calendar.c</a></td><td class='right'>553</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-calendar.h?h=GDM_2_2_5_4'>my-evolution/e-summary-calendar.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-factory.c?h=GDM_2_2_5_4'>my-evolution/e-summary-factory.c</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-factory.h?h=GDM_2_2_5_4'>my-evolution/e-summary-factory.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-mail.c?h=GDM_2_2_5_4'>my-evolution/e-summary-mail.c</a></td><td class='right'>583</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-mail.h?h=GDM_2_2_5_4'>my-evolution/e-summary-mail.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-offline-handler.c?h=GDM_2_2_5_4'>my-evolution/e-summary-offline-handler.c</a></td><td class='right'>236</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-offline-handler.h?h=GDM_2_2_5_4'>my-evolution/e-summary-offline-handler.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-preferences.c?h=GDM_2_2_5_4'>my-evolution/e-summary-preferences.c</a></td><td class='right'>1502</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.8%;'/><td class='none' style='width: 92.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-preferences.h?h=GDM_2_2_5_4'>my-evolution/e-summary-preferences.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-rdf.c?h=GDM_2_2_5_4'>my-evolution/e-summary-rdf.c</a></td><td class='right'>709</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.7%;'/><td class='none' style='width: 96.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-rdf.h?h=GDM_2_2_5_4'>my-evolution/e-summary-rdf.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-tasks.c?h=GDM_2_2_5_4'>my-evolution/e-summary-tasks.c</a></td><td class='right'>423</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-tasks.h?h=GDM_2_2_5_4'>my-evolution/e-summary-tasks.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-type.h?h=GDM_2_2_5_4'>my-evolution/e-summary-type.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-weather.c?h=GDM_2_2_5_4'>my-evolution/e-summary-weather.c</a></td><td class='right'>856</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary-weather.h?h=GDM_2_2_5_4'>my-evolution/e-summary-weather.h</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary.c?h=GDM_2_2_5_4'>my-evolution/e-summary.c</a></td><td class='right'>883</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.6%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/e-summary.h?h=GDM_2_2_5_4'>my-evolution/e-summary.h</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/main.c?h=GDM_2_2_5_4'>my-evolution/main.c</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/metar.c?h=GDM_2_2_5_4'>my-evolution/metar.c</a></td><td class='right'>1016</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.3%;'/><td class='none' style='width: 94.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/metar.h?h=GDM_2_2_5_4'>my-evolution/metar.h</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/my-evolution-html.h?h=GDM_2_2_5_4'>my-evolution/my-evolution-html.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/my-evolution.glade?h=GDM_2_2_5_4'>my-evolution/my-evolution.glade</a></td><td class='right'>1497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.8%;'/><td class='none' style='width: 92.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/my-evolution/weather.h?h=GDM_2_2_5_4'>my-evolution/weather.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/.cvsignore?h=GDM_2_2_5_4'>notes/.cvsignore</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/GNOME_Evolution_Notes.oaf.in?h=GDM_2_2_5_4'>notes/GNOME_Evolution_Notes.oaf.in</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/Makefile.am?h=GDM_2_2_5_4'>notes/Makefile.am</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/component-factory.c?h=GDM_2_2_5_4'>notes/component-factory.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/component-factory.h?h=GDM_2_2_5_4'>notes/component-factory.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/e-bevel-button-util.c?h=GDM_2_2_5_4'>notes/e-bevel-button-util.c</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/e-bevel-button-util.h?h=GDM_2_2_5_4'>notes/e-bevel-button-util.h</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/e-bevel-button.c?h=GDM_2_2_5_4'>notes/e-bevel-button.c</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/e-bevel-button.h?h=GDM_2_2_5_4'>notes/e-bevel-button.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/e-note.c?h=GDM_2_2_5_4'>notes/e-note.c</a></td><td class='right'>382</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/e-note.h?h=GDM_2_2_5_4'>notes/e-note.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/main.c?h=GDM_2_2_5_4'>notes/main.c</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/notes/test-notes.c?h=GDM_2_2_5_4'>notes/test-notes.c</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/omf-install/.cvsignore?h=GDM_2_2_5_4'>omf-install/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/omf-install/Makefile.am?h=GDM_2_2_5_4'>omf-install/Makefile.am</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/.cvsignore?h=GDM_2_2_5_4'>po/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/ChangeLog?h=GDM_2_2_5_4'>po/ChangeLog</a></td><td class='right'>3042</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 15.8%;'/><td class='none' style='width: 84.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/Makefile.i18npatch?h=GDM_2_2_5_4'>po/Makefile.i18npatch</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/POTFILES.in?h=GDM_2_2_5_4'>po/POTFILES.in</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/POTFILES.skip?h=GDM_2_2_5_4'>po/POTFILES.skip</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/az.po?h=GDM_2_2_5_4'>po/az.po</a></td><td class='right'>15747</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 81.7%;'/><td class='none' style='width: 18.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/bg.po?h=GDM_2_2_5_4'>po/bg.po</a></td><td class='right'>14656</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 76.0%;'/><td class='none' style='width: 24.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/ca.po?h=GDM_2_2_5_4'>po/ca.po</a></td><td class='right'>17165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 89.0%;'/><td class='none' style='width: 11.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/da.po?h=GDM_2_2_5_4'>po/da.po</a></td><td class='right'>13851</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 71.8%;'/><td class='none' style='width: 28.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/de.po?h=GDM_2_2_5_4'>po/de.po</a></td><td class='right'>14175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 73.5%;'/><td class='none' style='width: 26.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/el.po?h=GDM_2_2_5_4'>po/el.po</a></td><td class='right'>15050</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 78.1%;'/><td class='none' style='width: 21.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/en_GB.po?h=GDM_2_2_5_4'>po/en_GB.po</a></td><td class='right'>13556</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 70.3%;'/><td class='none' style='width: 29.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/es.po?h=GDM_2_2_5_4'>po/es.po</a></td><td class='right'>13804</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 71.6%;'/><td class='none' style='width: 28.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/fi.po?h=GDM_2_2_5_4'>po/fi.po</a></td><td class='right'>14229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 73.8%;'/><td class='none' style='width: 26.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/flu-danish?h=GDM_2_2_5_4'>po/flu-danish</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/fr.po?h=GDM_2_2_5_4'>po/fr.po</a></td><td class='right'>16462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 85.4%;'/><td class='none' style='width: 14.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/ga.po?h=GDM_2_2_5_4'>po/ga.po</a></td><td class='right'>14240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 73.9%;'/><td class='none' style='width: 26.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/gl.po?h=GDM_2_2_5_4'>po/gl.po</a></td><td class='right'>15003</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 77.8%;'/><td class='none' style='width: 22.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/hu.po?h=GDM_2_2_5_4'>po/hu.po</a></td><td class='right'>16207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 84.1%;'/><td class='none' style='width: 15.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/it.po?h=GDM_2_2_5_4'>po/it.po</a></td><td class='right'>14108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 73.2%;'/><td class='none' style='width: 26.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/ja.po?h=GDM_2_2_5_4'>po/ja.po</a></td><td class='right'>13955</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 72.4%;'/><td class='none' style='width: 27.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/ko.po?h=GDM_2_2_5_4'>po/ko.po</a></td><td class='right'>14871</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 77.1%;'/><td class='none' style='width: 22.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/lt.po?h=GDM_2_2_5_4'>po/lt.po</a></td><td class='right'>15340</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 79.6%;'/><td class='none' style='width: 20.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/nl.po?h=GDM_2_2_5_4'>po/nl.po</a></td><td class='right'>14481</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 75.1%;'/><td class='none' style='width: 24.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/nn.po?h=GDM_2_2_5_4'>po/nn.po</a></td><td class='right'>15887</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 82.4%;'/><td class='none' style='width: 17.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/no.po?h=GDM_2_2_5_4'>po/no.po</a></td><td class='right'>19278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 100.0%;'/><td class='none' style='width: 0.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/pl.po?h=GDM_2_2_5_4'>po/pl.po</a></td><td class='right'>14088</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 73.1%;'/><td class='none' style='width: 26.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/pt.po?h=GDM_2_2_5_4'>po/pt.po</a></td><td class='right'>15311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 79.4%;'/><td class='none' style='width: 20.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/pt_BR.po?h=GDM_2_2_5_4'>po/pt_BR.po</a></td><td class='right'>13856</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 71.9%;'/><td class='none' style='width: 28.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/ro.po?h=GDM_2_2_5_4'>po/ro.po</a></td><td class='right'>15324</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 79.5%;'/><td class='none' style='width: 20.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/ru.po?h=GDM_2_2_5_4'>po/ru.po</a></td><td class='right'>14544</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 75.4%;'/><td class='none' style='width: 24.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/sk.po?h=GDM_2_2_5_4'>po/sk.po</a></td><td class='right'>13980</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 72.5%;'/><td class='none' style='width: 27.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/sl.po?h=GDM_2_2_5_4'>po/sl.po</a></td><td class='right'>16812</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 87.2%;'/><td class='none' style='width: 12.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/sv.po?h=GDM_2_2_5_4'>po/sv.po</a></td><td class='right'>16838</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 87.3%;'/><td class='none' style='width: 12.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/tr.po?h=GDM_2_2_5_4'>po/tr.po</a></td><td class='right'>15129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 78.5%;'/><td class='none' style='width: 21.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/uk.po?h=GDM_2_2_5_4'>po/uk.po</a></td><td class='right'>13745</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 71.3%;'/><td class='none' style='width: 28.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/update.sh?h=GDM_2_2_5_4'>po/update.sh</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/zh_CN.po?h=GDM_2_2_5_4'>po/zh_CN.po</a></td><td class='right'>13336</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 69.2%;'/><td class='none' style='width: 30.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/po/zh_TW.po?h=GDM_2_2_5_4'>po/zh_TW.po</a></td><td class='right'>16283</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 84.5%;'/><td class='none' style='width: 15.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/.cvsignore?h=GDM_2_2_5_4'>shell/.cvsignore</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/ChangeLog?h=GDM_2_2_5_4'>shell/ChangeLog</a></td><td class='right'>8912</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 46.2%;'/><td class='none' style='width: 53.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-Activity.idl?h=GDM_2_2_5_4'>shell/Evolution-Activity.idl</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-Offline.idl?h=GDM_2_2_5_4'>shell/Evolution-Offline.idl</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-Session.idl?h=GDM_2_2_5_4'>shell/Evolution-Session.idl</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-Shell.idl?h=GDM_2_2_5_4'>shell/Evolution-Shell.idl</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-ShellComponent.idl?h=GDM_2_2_5_4'>shell/Evolution-ShellComponent.idl</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-ShellComponentDnd.idl?h=GDM_2_2_5_4'>shell/Evolution-ShellComponentDnd.idl</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-ShellView.idl?h=GDM_2_2_5_4'>shell/Evolution-ShellView.idl</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-Shortcuts.idl?h=GDM_2_2_5_4'>shell/Evolution-Shortcuts.idl</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-Storage.idl?h=GDM_2_2_5_4'>shell/Evolution-Storage.idl</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-StorageSetView.idl?h=GDM_2_2_5_4'>shell/Evolution-StorageSetView.idl</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-Wizard.idl?h=GDM_2_2_5_4'>shell/Evolution-Wizard.idl</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution-common.idl?h=GDM_2_2_5_4'>shell/Evolution-common.idl</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Evolution.idl?h=GDM_2_2_5_4'>shell/Evolution.idl</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/GNOME_Evolution_Shell.oaf.in?h=GDM_2_2_5_4'>shell/GNOME_Evolution_Shell.oaf.in</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/GNOME_Evolution_TestComponent.oaf?h=GDM_2_2_5_4'>shell/GNOME_Evolution_TestComponent.oaf</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/Makefile.am?h=GDM_2_2_5_4'>shell/Makefile.am</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/README?h=GDM_2_2_5_4'>shell/README</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-activity-handler.c?h=GDM_2_2_5_4'>shell/e-activity-handler.c</a></td><td class='right'>619</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-activity-handler.h?h=GDM_2_2_5_4'>shell/e-activity-handler.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-component-registry.c?h=GDM_2_2_5_4'>shell/e-component-registry.c</a></td><td class='right'>476</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-component-registry.h?h=GDM_2_2_5_4'>shell/e-component-registry.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-corba-shortcuts.c?h=GDM_2_2_5_4'>shell/e-corba-shortcuts.c</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-corba-shortcuts.h?h=GDM_2_2_5_4'>shell/e-corba-shortcuts.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-corba-storage-registry.c?h=GDM_2_2_5_4'>shell/e-corba-storage-registry.c</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-corba-storage-registry.h?h=GDM_2_2_5_4'>shell/e-corba-storage-registry.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-corba-storage.c?h=GDM_2_2_5_4'>shell/e-corba-storage.c</a></td><td class='right'>547</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-corba-storage.h?h=GDM_2_2_5_4'>shell/e-corba-storage.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-folder-tree.c?h=GDM_2_2_5_4'>shell/e-folder-tree.c</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-folder-tree.h?h=GDM_2_2_5_4'>shell/e-folder-tree.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-folder-type-registry.c?h=GDM_2_2_5_4'>shell/e-folder-type-registry.c</a></td><td class='right'>562</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-folder-type-registry.h?h=GDM_2_2_5_4'>shell/e-folder-type-registry.h</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-folder.c?h=GDM_2_2_5_4'>shell/e-folder.c</a></td><td class='right'>364</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-folder.h?h=GDM_2_2_5_4'>shell/e-folder.h</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-gray-bar.c?h=GDM_2_2_5_4'>shell/e-gray-bar.c</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-gray-bar.h?h=GDM_2_2_5_4'>shell/e-gray-bar.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-local-folder.c?h=GDM_2_2_5_4'>shell/e-local-folder.c</a></td><td class='right'>558</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-local-folder.h?h=GDM_2_2_5_4'>shell/e-local-folder.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-local-storage.c?h=GDM_2_2_5_4'>shell/e-local-storage.c</a></td><td class='right'>1118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.8%;'/><td class='none' style='width: 94.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-local-storage.h?h=GDM_2_2_5_4'>shell/e-local-storage.h</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-setup.c?h=GDM_2_2_5_4'>shell/e-setup.c</a></td><td class='right'>367</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-setup.h?h=GDM_2_2_5_4'>shell/e-setup.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-about-box.c?h=GDM_2_2_5_4'>shell/e-shell-about-box.c</a></td><td class='right'>372</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-about-box.h?h=GDM_2_2_5_4'>shell/e-shell-about-box.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-constants.h?h=GDM_2_2_5_4'>shell/e-shell-constants.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-commands.c?h=GDM_2_2_5_4'>shell/e-shell-folder-commands.c</a></td><td class='right'>597</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.1%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-commands.h?h=GDM_2_2_5_4'>shell/e-shell-folder-commands.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-creation-dialog.c?h=GDM_2_2_5_4'>shell/e-shell-folder-creation-dialog.c</a></td><td class='right'>555</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-creation-dialog.h?h=GDM_2_2_5_4'>shell/e-shell-folder-creation-dialog.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-selection-dialog.c?h=GDM_2_2_5_4'>shell/e-shell-folder-selection-dialog.c</a></td><td class='right'>533</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-selection-dialog.h?h=GDM_2_2_5_4'>shell/e-shell-folder-selection-dialog.h</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-title-bar.c?h=GDM_2_2_5_4'>shell/e-shell-folder-title-bar.c</a></td><td class='right'>710</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.7%;'/><td class='none' style='width: 96.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-folder-title-bar.h?h=GDM_2_2_5_4'>shell/e-shell-folder-title-bar.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-importer.c?h=GDM_2_2_5_4'>shell/e-shell-importer.c</a></td><td class='right'>1203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.2%;'/><td class='none' style='width: 93.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-importer.h?h=GDM_2_2_5_4'>shell/e-shell-importer.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-offline-handler.c?h=GDM_2_2_5_4'>shell/e-shell-offline-handler.c</a></td><td class='right'>825</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-offline-handler.h?h=GDM_2_2_5_4'>shell/e-shell-offline-handler.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-startup-wizard.c?h=GDM_2_2_5_4'>shell/e-shell-startup-wizard.c</a></td><td class='right'>844</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-startup-wizard.h?h=GDM_2_2_5_4'>shell/e-shell-startup-wizard.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-user-creatable-items-handler.c?h=GDM_2_2_5_4'>shell/e-shell-user-creatable-items-handler.c</a></td><td class='right'>459</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-user-creatable-items-handler.h?h=GDM_2_2_5_4'>shell/e-shell-user-creatable-items-handler.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-utils.c?h=GDM_2_2_5_4'>shell/e-shell-utils.c</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-utils.h?h=GDM_2_2_5_4'>shell/e-shell-utils.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-view-menu.c?h=GDM_2_2_5_4'>shell/e-shell-view-menu.c</a></td><td class='right'>771</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-view-menu.h?h=GDM_2_2_5_4'>shell/e-shell-view-menu.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-view.c?h=GDM_2_2_5_4'>shell/e-shell-view.c</a></td><td class='right'>2541</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.2%;'/><td class='none' style='width: 86.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell-view.h?h=GDM_2_2_5_4'>shell/e-shell-view.h</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell.c?h=GDM_2_2_5_4'>shell/e-shell.c</a></td><td class='right'>1897</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 9.8%;'/><td class='none' style='width: 90.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shell.h?h=GDM_2_2_5_4'>shell/e-shell.h</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shortcuts-view-model.c?h=GDM_2_2_5_4'>shell/e-shortcuts-view-model.c</a></td><td class='right'>350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shortcuts-view-model.h?h=GDM_2_2_5_4'>shell/e-shortcuts-view-model.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shortcuts-view.c?h=GDM_2_2_5_4'>shell/e-shortcuts-view.c</a></td><td class='right'>654</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shortcuts-view.h?h=GDM_2_2_5_4'>shell/e-shortcuts-view.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shortcuts.c?h=GDM_2_2_5_4'>shell/e-shortcuts.c</a></td><td class='right'>1171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.1%;'/><td class='none' style='width: 93.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-shortcuts.h?h=GDM_2_2_5_4'>shell/e-shortcuts.h</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-splash.c?h=GDM_2_2_5_4'>shell/e-splash.c</a></td><td class='right'>428</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-splash.h?h=GDM_2_2_5_4'>shell/e-splash.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-storage-set-view.c?h=GDM_2_2_5_4'>shell/e-storage-set-view.c</a></td><td class='right'>2118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 11.0%;'/><td class='none' style='width: 89.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-storage-set-view.etspec?h=GDM_2_2_5_4'>shell/e-storage-set-view.etspec</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-storage-set-view.h?h=GDM_2_2_5_4'>shell/e-storage-set-view.h</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-storage-set.c?h=GDM_2_2_5_4'>shell/e-storage-set.c</a></td><td class='right'>733</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.8%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-storage-set.h?h=GDM_2_2_5_4'>shell/e-storage-set.h</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-storage.c?h=GDM_2_2_5_4'>shell/e-storage.c</a></td><td class='right'>657</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-storage.h?h=GDM_2_2_5_4'>shell/e-storage.h</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-summary-storage.c?h=GDM_2_2_5_4'>shell/e-summary-storage.c</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-summary-storage.h?h=GDM_2_2_5_4'>shell/e-summary-storage.h</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-task-bar.c?h=GDM_2_2_5_4'>shell/e-task-bar.c</a></td><td class='right'>205</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-task-bar.h?h=GDM_2_2_5_4'>shell/e-task-bar.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-task-widget.c?h=GDM_2_2_5_4'>shell/e-task-widget.c</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-task-widget.h?h=GDM_2_2_5_4'>shell/e-task-widget.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-uri-schema-registry.c?h=GDM_2_2_5_4'>shell/e-uri-schema-registry.c</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/e-uri-schema-registry.h?h=GDM_2_2_5_4'>shell/e-uri-schema-registry.h</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-activity-client.c?h=GDM_2_2_5_4'>shell/evolution-activity-client.c</a></td><td class='right'>495</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-activity-client.h?h=GDM_2_2_5_4'>shell/evolution-activity-client.h</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-session.c?h=GDM_2_2_5_4'>shell/evolution-session.c</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-session.h?h=GDM_2_2_5_4'>shell/evolution-session.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-client.c?h=GDM_2_2_5_4'>shell/evolution-shell-client.c</a></td><td class='right'>510</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-client.h?h=GDM_2_2_5_4'>shell/evolution-shell-client.h</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component-client.c?h=GDM_2_2_5_4'>shell/evolution-shell-component-client.c</a></td><td class='right'>830</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component-client.h?h=GDM_2_2_5_4'>shell/evolution-shell-component-client.h</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component-dnd.c?h=GDM_2_2_5_4'>shell/evolution-shell-component-dnd.c</a></td><td class='right'>447</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component-dnd.h?h=GDM_2_2_5_4'>shell/evolution-shell-component-dnd.h</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component-utils.c?h=GDM_2_2_5_4'>shell/evolution-shell-component-utils.c</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component-utils.h?h=GDM_2_2_5_4'>shell/evolution-shell-component-utils.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component.c?h=GDM_2_2_5_4'>shell/evolution-shell-component.c</a></td><td class='right'>1017</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.3%;'/><td class='none' style='width: 94.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-component.h?h=GDM_2_2_5_4'>shell/evolution-shell-component.h</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-view.c?h=GDM_2_2_5_4'>shell/evolution-shell-view.c</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-shell-view.h?h=GDM_2_2_5_4'>shell/evolution-shell-view.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-listener.c?h=GDM_2_2_5_4'>shell/evolution-storage-listener.c</a></td><td class='right'>354</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-listener.h?h=GDM_2_2_5_4'>shell/evolution-storage-listener.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-set-view-factory.c?h=GDM_2_2_5_4'>shell/evolution-storage-set-view-factory.c</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-set-view-factory.h?h=GDM_2_2_5_4'>shell/evolution-storage-set-view-factory.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-set-view-listener.c?h=GDM_2_2_5_4'>shell/evolution-storage-set-view-listener.c</a></td><td class='right'>288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-set-view-listener.h?h=GDM_2_2_5_4'>shell/evolution-storage-set-view-listener.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-set-view.c?h=GDM_2_2_5_4'>shell/evolution-storage-set-view.c</a></td><td class='right'>403</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage-set-view.h?h=GDM_2_2_5_4'>shell/evolution-storage-set-view.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage.c?h=GDM_2_2_5_4'>shell/evolution-storage.c</a></td><td class='right'>1016</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.3%;'/><td class='none' style='width: 94.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-storage.h?h=GDM_2_2_5_4'>shell/evolution-storage.h</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-test-component.c?h=GDM_2_2_5_4'>shell/evolution-test-component.c</a></td><td class='right'>351</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-wizard.c?h=GDM_2_2_5_4'>shell/evolution-wizard.c</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/evolution-wizard.h?h=GDM_2_2_5_4'>shell/evolution-wizard.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/glade/.cvsignore?h=GDM_2_2_5_4'>shell/glade/.cvsignore</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/glade/Makefile.am?h=GDM_2_2_5_4'>shell/glade/Makefile.am</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/glade/e-active-connection-dialog.glade?h=GDM_2_2_5_4'>shell/glade/e-active-connection-dialog.glade</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/glade/e-shell-folder-creation-dialog.glade?h=GDM_2_2_5_4'>shell/glade/e-shell-folder-creation-dialog.glade</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/glade/evolution-startup-wizard.glade?h=GDM_2_2_5_4'>shell/glade/evolution-startup-wizard.glade</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/.cvsignore?h=GDM_2_2_5_4'>shell/importer/.cvsignore</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/GNOME_Evolution_Importer.idl?h=GDM_2_2_5_4'>shell/importer/GNOME_Evolution_Importer.idl</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/Makefile.am?h=GDM_2_2_5_4'>shell/importer/Makefile.am</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-importer-client.c?h=GDM_2_2_5_4'>shell/importer/evolution-importer-client.c</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-importer-client.h?h=GDM_2_2_5_4'>shell/importer/evolution-importer-client.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-importer-listener.c?h=GDM_2_2_5_4'>shell/importer/evolution-importer-listener.c</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-importer-listener.h?h=GDM_2_2_5_4'>shell/importer/evolution-importer-listener.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-importer.c?h=GDM_2_2_5_4'>shell/importer/evolution-importer.c</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-importer.h?h=GDM_2_2_5_4'>shell/importer/evolution-importer.h</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-intelligent-importer.c?h=GDM_2_2_5_4'>shell/importer/evolution-intelligent-importer.c</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/evolution-intelligent-importer.h?h=GDM_2_2_5_4'>shell/importer/evolution-intelligent-importer.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/import.glade?h=GDM_2_2_5_4'>shell/importer/import.glade</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/intelligent.c?h=GDM_2_2_5_4'>shell/importer/intelligent.c</a></td><td class='right'>487</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/importer/intelligent.h?h=GDM_2_2_5_4'>shell/importer/intelligent.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/shell/main.c?h=GDM_2_2_5_4'>shell/main.c</a></td><td class='right'>412</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/stamp.h.in?h=GDM_2_2_5_4'>stamp.h.in</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/.cvsignore?h=GDM_2_2_5_4'>tests/.cvsignore</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/Makefile.am?h=GDM_2_2_5_4'>tests/Makefile.am</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test-movemail.c?h=GDM_2_2_5_4'>tests/test-movemail.c</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test-url.c?h=GDM_2_2_5_4'>tests/test-url.c</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test1.c?h=GDM_2_2_5_4'>tests/test1.c</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test10.c?h=GDM_2_2_5_4'>tests/test10.c</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test11.c?h=GDM_2_2_5_4'>tests/test11.c</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test12.c?h=GDM_2_2_5_4'>tests/test12.c</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test13.c?h=GDM_2_2_5_4'>tests/test13.c</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test14.c?h=GDM_2_2_5_4'>tests/test14.c</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test2.c?h=GDM_2_2_5_4'>tests/test2.c</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test3.c?h=GDM_2_2_5_4'>tests/test3.c</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test4.c?h=GDM_2_2_5_4'>tests/test4.c</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test5.c?h=GDM_2_2_5_4'>tests/test5.c</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test6.c?h=GDM_2_2_5_4'>tests/test6.c</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test8.c?h=GDM_2_2_5_4'>tests/test8.c</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/test9.c?h=GDM_2_2_5_4'>tests/test9.c</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/.cvsignore?h=GDM_2_2_5_4'>tests/ui-tests/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/Makefile.am?h=GDM_2_2_5_4'>tests/ui-tests/Makefile.am</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/filter.c?h=GDM_2_2_5_4'>tests/ui-tests/filter.c</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/filterdescription.xml?h=GDM_2_2_5_4'>tests/ui-tests/filterdescription.xml</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/mail-atchmt-image.msg?h=GDM_2_2_5_4'>tests/ui-tests/mail-atchmt-image.msg</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/mail-atchmt-postscript.msg?h=GDM_2_2_5_4'>tests/ui-tests/mail-atchmt-postscript.msg</a></td><td class='right'>8069</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 41.9%;'/><td class='none' style='width: 58.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/mail-atchmt-svg.msg?h=GDM_2_2_5_4'>tests/ui-tests/mail-atchmt-svg.msg</a></td><td class='right'>418</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/message-browser.c?h=GDM_2_2_5_4'>tests/ui-tests/message-browser.c</a></td><td class='right'>819</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.2%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/saveoptions.xml?h=GDM_2_2_5_4'>tests/ui-tests/saveoptions.xml</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/store_listing.c?h=GDM_2_2_5_4'>tests/ui-tests/store_listing.c</a></td><td class='right'>424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/store_listing.glade?h=GDM_2_2_5_4'>tests/ui-tests/store_listing.glade</a></td><td class='right'>489</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/test-multipart-alt.msg?h=GDM_2_2_5_4'>tests/ui-tests/test-multipart-alt.msg</a></td><td class='right'>17738</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 92.0%;'/><td class='none' style='width: 8.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tests/ui-tests/test-multipart-mixed.msg?h=GDM_2_2_5_4'>tests/ui-tests/test-multipart-mixed.msg</a></td><td class='right'>377</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/.cvsignore?h=GDM_2_2_5_4'>tools/.cvsignore</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/Makefile.am?h=GDM_2_2_5_4'>tools/Makefile.am</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/evolution-addressbook-clean.in?h=GDM_2_2_5_4'>tools/evolution-addressbook-clean.in</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/evolution-addressbook-export.c?h=GDM_2_2_5_4'>tools/evolution-addressbook-export.c</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/evolution-addressbook-import.c?h=GDM_2_2_5_4'>tools/evolution-addressbook-import.c</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/evolution-move-tasks?h=GDM_2_2_5_4'>tools/evolution-move-tasks</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/killev?h=GDM_2_2_5_4'>tools/killev</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/tools/verify-evolution-install.sh?h=GDM_2_2_5_4'>tools/verify-evolution-install.sh</a></td><td class='right'>640</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/.cvsignore?h=GDM_2_2_5_4'>ui/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/ChangeLog?h=GDM_2_2_5_4'>ui/ChangeLog</a></td><td class='right'>1414</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.3%;'/><td class='none' style='width: 92.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/Makefile.am?h=GDM_2_2_5_4'>ui/Makefile.am</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-addressbook.h?h=GDM_2_2_5_4'>ui/evolution-addressbook.h</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-addressbook.xml?h=GDM_2_2_5_4'>ui/evolution-addressbook.xml</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-calendar.xml?h=GDM_2_2_5_4'>ui/evolution-calendar.xml</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-comp-editor.xml?h=GDM_2_2_5_4'>ui/evolution-comp-editor.xml</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-contact-editor.xml?h=GDM_2_2_5_4'>ui/evolution-contact-editor.xml</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-contact-list-editor.xml?h=GDM_2_2_5_4'>ui/evolution-contact-list-editor.xml</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-event-editor.xml?h=GDM_2_2_5_4'>ui/evolution-event-editor.xml</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-executive-summary.xml?h=GDM_2_2_5_4'>ui/evolution-executive-summary.xml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-mail-global.xml?h=GDM_2_2_5_4'>ui/evolution-mail-global.xml</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-mail-list.xml?h=GDM_2_2_5_4'>ui/evolution-mail-list.xml</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-mail-message.xml?h=GDM_2_2_5_4'>ui/evolution-mail-message.xml</a></td><td class='right'>348</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-mail-messagedisplay.xml?h=GDM_2_2_5_4'>ui/evolution-mail-messagedisplay.xml</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-message-composer.h?h=GDM_2_2_5_4'>ui/evolution-message-composer.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-message-composer.xml?h=GDM_2_2_5_4'>ui/evolution-message-composer.xml</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-signature-editor.xml?h=GDM_2_2_5_4'>ui/evolution-signature-editor.xml</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-subscribe.xml?h=GDM_2_2_5_4'>ui/evolution-subscribe.xml</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-task-editor.xml?h=GDM_2_2_5_4'>ui/evolution-task-editor.xml</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution-tasks.xml?h=GDM_2_2_5_4'>ui/evolution-tasks.xml</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/evolution.xml?h=GDM_2_2_5_4'>ui/evolution.xml</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/ui/my-evolution.xml?h=GDM_2_2_5_4'>ui/my-evolution.xml</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/.cvsignore?h=GDM_2_2_5_4'>views/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/ChangeLog?h=GDM_2_2_5_4'>views/ChangeLog</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/Makefile.am?h=GDM_2_2_5_4'>views/Makefile.am</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/addressbook/.cvsignore?h=GDM_2_2_5_4'>views/addressbook/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/addressbook/By_Company.galview?h=GDM_2_2_5_4'>views/addressbook/By_Company.galview</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/addressbook/Makefile.am?h=GDM_2_2_5_4'>views/addressbook/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/addressbook/Phone_List.galview?h=GDM_2_2_5_4'>views/addressbook/Phone_List.galview</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/addressbook/galview.xml?h=GDM_2_2_5_4'>views/addressbook/galview.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/calendar/.cvsignore?h=GDM_2_2_5_4'>views/calendar/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/calendar/Makefile.am?h=GDM_2_2_5_4'>views/calendar/Makefile.am</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/calendar/galview.xml?h=GDM_2_2_5_4'>views/calendar/galview.xml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/mail/.cvsignore?h=GDM_2_2_5_4'>views/mail/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/mail/By_Sender.galview?h=GDM_2_2_5_4'>views/mail/By_Sender.galview</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/mail/By_Status.galview?h=GDM_2_2_5_4'>views/mail/By_Status.galview</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/mail/By_Subject.galview?h=GDM_2_2_5_4'>views/mail/By_Subject.galview</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/mail/Makefile.am?h=GDM_2_2_5_4'>views/mail/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/mail/Messages.galview?h=GDM_2_2_5_4'>views/mail/Messages.galview</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/mail/galview.xml?h=GDM_2_2_5_4'>views/mail/galview.xml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/tasks/.cvsignore?h=GDM_2_2_5_4'>views/tasks/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/tasks/Makefile.am?h=GDM_2_2_5_4'>views/tasks/Makefile.am</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/tasks/Tasks.galview?h=GDM_2_2_5_4'>views/tasks/Tasks.galview</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/tasks/With_Category.galview?h=GDM_2_2_5_4'>views/tasks/With_Category.galview</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/views/tasks/galview.xml?h=GDM_2_2_5_4'>views/tasks/galview.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/.cvsignore?h=GDM_2_2_5_4'>widgets/.cvsignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/ChangeLog?h=GDM_2_2_5_4'>widgets/ChangeLog</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/LICENSE?h=GDM_2_2_5_4'>widgets/LICENSE</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/Makefile.am?h=GDM_2_2_5_4'>widgets/Makefile.am</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/e-timezone-dialog/.cvsignore?h=GDM_2_2_5_4'>widgets/e-timezone-dialog/.cvsignore</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/e-timezone-dialog/Makefile.am?h=GDM_2_2_5_4'>widgets/e-timezone-dialog/Makefile.am</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/e-timezone-dialog/e-timezone-dialog.c?h=GDM_2_2_5_4'>widgets/e-timezone-dialog/e-timezone-dialog.c</a></td><td class='right'>681</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/e-timezone-dialog/e-timezone-dialog.glade?h=GDM_2_2_5_4'>widgets/e-timezone-dialog/e-timezone-dialog.glade</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/e-timezone-dialog/e-timezone-dialog.h?h=GDM_2_2_5_4'>widgets/e-timezone-dialog/e-timezone-dialog.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/meeting-time-sel/.cvsignore?h=GDM_2_2_5_4'>widgets/meeting-time-sel/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/.cvsignore?h=GDM_2_2_5_4'>widgets/menus/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/Makefile.am?h=GDM_2_2_5_4'>widgets/menus/Makefile.am</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-define-views-dialog.c?h=GDM_2_2_5_4'>widgets/menus/gal-define-views-dialog.c</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-define-views-dialog.h?h=GDM_2_2_5_4'>widgets/menus/gal-define-views-dialog.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-define-views-model.c?h=GDM_2_2_5_4'>widgets/menus/gal-define-views-model.c</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-define-views-model.h?h=GDM_2_2_5_4'>widgets/menus/gal-define-views-model.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-define-views.glade?h=GDM_2_2_5_4'>widgets/menus/gal-define-views.glade</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-collection.c?h=GDM_2_2_5_4'>widgets/menus/gal-view-collection.c</a></td><td class='right'>626</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-collection.h?h=GDM_2_2_5_4'>widgets/menus/gal-view-collection.h</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-etable.c?h=GDM_2_2_5_4'>widgets/menus/gal-view-etable.c</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-etable.h?h=GDM_2_2_5_4'>widgets/menus/gal-view-etable.h</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-factory-etable.c?h=GDM_2_2_5_4'>widgets/menus/gal-view-factory-etable.c</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-factory-etable.h?h=GDM_2_2_5_4'>widgets/menus/gal-view-factory-etable.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-factory.c?h=GDM_2_2_5_4'>widgets/menus/gal-view-factory.c</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-factory.h?h=GDM_2_2_5_4'>widgets/menus/gal-view-factory.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-menus.c?h=GDM_2_2_5_4'>widgets/menus/gal-view-menus.c</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-menus.h?h=GDM_2_2_5_4'>widgets/menus/gal-view-menus.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-new-dialog.c?h=GDM_2_2_5_4'>widgets/menus/gal-view-new-dialog.c</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-new-dialog.glade?h=GDM_2_2_5_4'>widgets/menus/gal-view-new-dialog.glade</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view-new-dialog.h?h=GDM_2_2_5_4'>widgets/menus/gal-view-new-dialog.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view.c?h=GDM_2_2_5_4'>widgets/menus/gal-view.c</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/menus/gal-view.h?h=GDM_2_2_5_4'>widgets/menus/gal-view.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/.cvsignore?h=GDM_2_2_5_4'>widgets/misc/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/ChangeLog?h=GDM_2_2_5_4'>widgets/misc/ChangeLog</a></td><td class='right'>780</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.0%;'/><td class='none' style='width: 96.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/Makefile.am?h=GDM_2_2_5_4'>widgets/misc/Makefile.am</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-bonobo-widget.c?h=GDM_2_2_5_4'>widgets/misc/e-bonobo-widget.c</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-bonobo-widget.h?h=GDM_2_2_5_4'>widgets/misc/e-bonobo-widget.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-calendar-item.c?h=GDM_2_2_5_4'>widgets/misc/e-calendar-item.c</a></td><td class='right'>2927</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 15.2%;'/><td class='none' style='width: 84.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-calendar-item.h?h=GDM_2_2_5_4'>widgets/misc/e-calendar-item.h</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-calendar.c?h=GDM_2_2_5_4'>widgets/misc/e-calendar.c</a></td><td class='right'>604</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.1%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-calendar.h?h=GDM_2_2_5_4'>widgets/misc/e-calendar.h</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-canvas-utils.c?h=GDM_2_2_5_4'>widgets/misc/e-canvas-utils.c</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-canvas-utils.h?h=GDM_2_2_5_4'>widgets/misc/e-canvas-utils.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-canvas-vbox.c?h=GDM_2_2_5_4'>widgets/misc/e-canvas-vbox.c</a></td><td class='right'>375</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-canvas-vbox.h?h=GDM_2_2_5_4'>widgets/misc/e-canvas-vbox.h</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-canvas.c?h=GDM_2_2_5_4'>widgets/misc/e-canvas.c</a></td><td class='right'>1018</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.3%;'/><td class='none' style='width: 94.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-canvas.h?h=GDM_2_2_5_4'>widgets/misc/e-canvas.h</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-cell-date-edit.c?h=GDM_2_2_5_4'>widgets/misc/e-cell-date-edit.c</a></td><td class='right'>924</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.8%;'/><td class='none' style='width: 95.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-cell-date-edit.h?h=GDM_2_2_5_4'>widgets/misc/e-cell-date-edit.h</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-cell-percent.c?h=GDM_2_2_5_4'>widgets/misc/e-cell-percent.c</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-cell-percent.h?h=GDM_2_2_5_4'>widgets/misc/e-cell-percent.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-charset-picker.c?h=GDM_2_2_5_4'>widgets/misc/e-charset-picker.c</a></td><td class='right'>466</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-charset-picker.h?h=GDM_2_2_5_4'>widgets/misc/e-charset-picker.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-clipped-label.c?h=GDM_2_2_5_4'>widgets/misc/e-clipped-label.c</a></td><td class='right'>387</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-clipped-label.h?h=GDM_2_2_5_4'>widgets/misc/e-clipped-label.h</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-colors.c?h=GDM_2_2_5_4'>widgets/misc/e-colors.c</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-colors.h?h=GDM_2_2_5_4'>widgets/misc/e-colors.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-cursors.c?h=GDM_2_2_5_4'>widgets/misc/e-cursors.c</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-cursors.h?h=GDM_2_2_5_4'>widgets/misc/e-cursors.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-dateedit.c?h=GDM_2_2_5_4'>widgets/misc/e-dateedit.c</a></td><td class='right'>1917</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 9.9%;'/><td class='none' style='width: 90.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-dateedit.h?h=GDM_2_2_5_4'>widgets/misc/e-dateedit.h</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-dropdown-button.c?h=GDM_2_2_5_4'>widgets/misc/e-dropdown-button.c</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-dropdown-button.h?h=GDM_2_2_5_4'>widgets/misc/e-dropdown-button.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-filter-bar.c?h=GDM_2_2_5_4'>widgets/misc/e-filter-bar.c</a></td><td class='right'>574</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-filter-bar.h?h=GDM_2_2_5_4'>widgets/misc/e-filter-bar.h</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-gui-utils.c?h=GDM_2_2_5_4'>widgets/misc/e-gui-utils.c</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-gui-utils.h?h=GDM_2_2_5_4'>widgets/misc/e-gui-utils.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-hsv-utils.c?h=GDM_2_2_5_4'>widgets/misc/e-hsv-utils.c</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-hsv-utils.h?h=GDM_2_2_5_4'>widgets/misc/e-hsv-utils.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-map.c?h=GDM_2_2_5_4'>widgets/misc/e-map.c</a></td><td class='right'>1783</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 9.2%;'/><td class='none' style='width: 90.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-map.h?h=GDM_2_2_5_4'>widgets/misc/e-map.h</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-messagebox.c?h=GDM_2_2_5_4'>widgets/misc/e-messagebox.c</a></td><td class='right'>356</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-messagebox.h?h=GDM_2_2_5_4'>widgets/misc/e-messagebox.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-popup-menu.c?h=GDM_2_2_5_4'>widgets/misc/e-popup-menu.c</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-popup-menu.h?h=GDM_2_2_5_4'>widgets/misc/e-popup-menu.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-printable.c?h=GDM_2_2_5_4'>widgets/misc/e-printable.c</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-printable.h?h=GDM_2_2_5_4'>widgets/misc/e-printable.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-reflow-model.c?h=GDM_2_2_5_4'>widgets/misc/e-reflow-model.c</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-reflow-model.h?h=GDM_2_2_5_4'>widgets/misc/e-reflow-model.h</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-reflow.c?h=GDM_2_2_5_4'>widgets/misc/e-reflow.c</a></td><td class='right'>1271</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.6%;'/><td class='none' style='width: 93.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-reflow.h?h=GDM_2_2_5_4'>widgets/misc/e-reflow.h</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-search-bar.c?h=GDM_2_2_5_4'>widgets/misc/e-search-bar.c</a></td><td class='right'>946</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.9%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-search-bar.h?h=GDM_2_2_5_4'>widgets/misc/e-search-bar.h</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-selection-model-array.c?h=GDM_2_2_5_4'>widgets/misc/e-selection-model-array.c</a></td><td class='right'>469</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-selection-model-array.h?h=GDM_2_2_5_4'>widgets/misc/e-selection-model-array.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-selection-model-simple.c?h=GDM_2_2_5_4'>widgets/misc/e-selection-model-simple.c</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-selection-model-simple.h?h=GDM_2_2_5_4'>widgets/misc/e-selection-model-simple.h</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-selection-model.c?h=GDM_2_2_5_4'>widgets/misc/e-selection-model.c</a></td><td class='right'>628</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-selection-model.h?h=GDM_2_2_5_4'>widgets/misc/e-selection-model.h</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-title-bar.c?h=GDM_2_2_5_4'>widgets/misc/e-title-bar.c</a></td><td class='right'>407</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-title-bar.h?h=GDM_2_2_5_4'>widgets/misc/e-title-bar.h</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-unicode.c?h=GDM_2_2_5_4'>widgets/misc/e-unicode.c</a></td><td class='right'>3108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 16.1%;'/><td class='none' style='width: 83.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/e-unicode.h?h=GDM_2_2_5_4'>widgets/misc/e-unicode.h</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/gal-categories.glade?h=GDM_2_2_5_4'>widgets/misc/gal-categories.glade</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/pixmaps/.cvsignore?h=GDM_2_2_5_4'>widgets/misc/pixmaps/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/pixmaps/cursor_cross.xpm?h=GDM_2_2_5_4'>widgets/misc/pixmaps/cursor_cross.xpm</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/pixmaps/cursor_hand_closed.xpm?h=GDM_2_2_5_4'>widgets/misc/pixmaps/cursor_hand_closed.xpm</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/pixmaps/cursor_hand_open.xpm?h=GDM_2_2_5_4'>widgets/misc/pixmaps/cursor_hand_open.xpm</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/pixmaps/cursor_zoom_in.xpm?h=GDM_2_2_5_4'>widgets/misc/pixmaps/cursor_zoom_in.xpm</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/pixmaps/cursor_zoom_out.xpm?h=GDM_2_2_5_4'>widgets/misc/pixmaps/cursor_zoom_out.xpm</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/test-calendar.c?h=GDM_2_2_5_4'>widgets/misc/test-calendar.c</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/test-charset-picker.c?h=GDM_2_2_5_4'>widgets/misc/test-charset-picker.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/test-color.c?h=GDM_2_2_5_4'>widgets/misc/test-color.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/test-dateedit.c?h=GDM_2_2_5_4'>widgets/misc/test-dateedit.c</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/test-dropdown-button.c?h=GDM_2_2_5_4'>widgets/misc/test-dropdown-button.c</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/misc/test-title-bar.c?h=GDM_2_2_5_4'>widgets/misc/test-title-bar.c</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/.cvsignore?h=GDM_2_2_5_4'>widgets/table/.cvsignore</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/add-col.xpm?h=GDM_2_2_5_4'>widgets/table/add-col.xpm</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/arrow-down.xpm?h=GDM_2_2_5_4'>widgets/table/arrow-down.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/arrow-up.xpm?h=GDM_2_2_5_4'>widgets/table/arrow-up.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/check-empty.xpm?h=GDM_2_2_5_4'>widgets/table/check-empty.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/check-filled.xpm?h=GDM_2_2_5_4'>widgets/table/check-filled.xpm</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/clip.png?h=GDM_2_2_5_4'>widgets/table/clip.png</a></td><td class='right'>bin</td><td class='graph'>192 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-checkbox.c?h=GDM_2_2_5_4'>widgets/table/e-cell-checkbox.c</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-checkbox.h?h=GDM_2_2_5_4'>widgets/table/e-cell-checkbox.h</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-combo.c?h=GDM_2_2_5_4'>widgets/table/e-cell-combo.c</a></td><td class='right'>642</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-combo.h?h=GDM_2_2_5_4'>widgets/table/e-cell-combo.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-date.c?h=GDM_2_2_5_4'>widgets/table/e-cell-date.c</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-date.h?h=GDM_2_2_5_4'>widgets/table/e-cell-date.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-float.c?h=GDM_2_2_5_4'>widgets/table/e-cell-float.c</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-float.h?h=GDM_2_2_5_4'>widgets/table/e-cell-float.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-number.c?h=GDM_2_2_5_4'>widgets/table/e-cell-number.c</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-number.h?h=GDM_2_2_5_4'>widgets/table/e-cell-number.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-pixbuf.c?h=GDM_2_2_5_4'>widgets/table/e-cell-pixbuf.c</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-pixbuf.h?h=GDM_2_2_5_4'>widgets/table/e-cell-pixbuf.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-popup.c?h=GDM_2_2_5_4'>widgets/table/e-cell-popup.c</a></td><td class='right'>514</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-popup.h?h=GDM_2_2_5_4'>widgets/table/e-cell-popup.h</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-size.c?h=GDM_2_2_5_4'>widgets/table/e-cell-size.c</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-size.h?h=GDM_2_2_5_4'>widgets/table/e-cell-size.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-spin-button.c?h=GDM_2_2_5_4'>widgets/table/e-cell-spin-button.c</a></td><td class='right'>674</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-spin-button.h?h=GDM_2_2_5_4'>widgets/table/e-cell-spin-button.h</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-string.c?h=GDM_2_2_5_4'>widgets/table/e-cell-string.c</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-text.c?h=GDM_2_2_5_4'>widgets/table/e-cell-text.c</a></td><td class='right'>2496</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.9%;'/><td class='none' style='width: 87.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-text.h?h=GDM_2_2_5_4'>widgets/table/e-cell-text.h</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-toggle.c?h=GDM_2_2_5_4'>widgets/table/e-cell-toggle.c</a></td><td class='right'>338</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-toggle.h?h=GDM_2_2_5_4'>widgets/table/e-cell-toggle.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-tree.c?h=GDM_2_2_5_4'>widgets/table/e-cell-tree.c</a></td><td class='right'>733</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.8%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell-tree.h?h=GDM_2_2_5_4'>widgets/table/e-cell-tree.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell.c?h=GDM_2_2_5_4'>widgets/table/e-cell.c</a></td><td class='right'>364</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-cell.h?h=GDM_2_2_5_4'>widgets/table/e-cell.h</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-click-to-add.c?h=GDM_2_2_5_4'>widgets/table/e-table-click-to-add.c</a></td><td class='right'>545</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-click-to-add.h?h=GDM_2_2_5_4'>widgets/table/e-table-click-to-add.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-col-dnd.h?h=GDM_2_2_5_4'>widgets/table/e-table-col-dnd.h</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-col.c?h=GDM_2_2_5_4'>widgets/table/e-table-col.c</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-col.h?h=GDM_2_2_5_4'>widgets/table/e-table-col.h</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-column-specification.c?h=GDM_2_2_5_4'>widgets/table/e-table-column-specification.c</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-column-specification.h?h=GDM_2_2_5_4'>widgets/table/e-table-column-specification.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-column.c?h=GDM_2_2_5_4'>widgets/table/e-table-column.c</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-config-field.c?h=GDM_2_2_5_4'>widgets/table/e-table-config-field.c</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-config-field.h?h=GDM_2_2_5_4'>widgets/table/e-table-config-field.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-config-no-group.glade?h=GDM_2_2_5_4'>widgets/table/e-table-config-no-group.glade</a></td><td class='right'>1711</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.9%;'/><td class='none' style='width: 91.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-config.c?h=GDM_2_2_5_4'>widgets/table/e-table-config.c</a></td><td class='right'>830</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.3%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-config.glade?h=GDM_2_2_5_4'>widgets/table/e-table-config.glade</a></td><td class='right'>1791</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 9.3%;'/><td class='none' style='width: 90.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-config.h?h=GDM_2_2_5_4'>widgets/table/e-table-config.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-defines.h?h=GDM_2_2_5_4'>widgets/table/e-table-defines.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-example-1.c?h=GDM_2_2_5_4'>widgets/table/e-table-example-1.c</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-example-2.c?h=GDM_2_2_5_4'>widgets/table/e-table-example-2.c</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-extras.c?h=GDM_2_2_5_4'>widgets/table/e-table-extras.c</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-extras.h?h=GDM_2_2_5_4'>widgets/table/e-table-extras.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-field-chooser-dialog.c?h=GDM_2_2_5_4'>widgets/table/e-table-field-chooser-dialog.c</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-field-chooser-dialog.h?h=GDM_2_2_5_4'>widgets/table/e-table-field-chooser-dialog.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-field-chooser-item.c?h=GDM_2_2_5_4'>widgets/table/e-table-field-chooser-item.c</a></td><td class='right'>677</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-field-chooser-item.h?h=GDM_2_2_5_4'>widgets/table/e-table-field-chooser-item.h</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-field-chooser.c?h=GDM_2_2_5_4'>widgets/table/e-table-field-chooser.c</a></td><td class='right'>274</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-field-chooser.glade?h=GDM_2_2_5_4'>widgets/table/e-table-field-chooser.glade</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-field-chooser.h?h=GDM_2_2_5_4'>widgets/table/e-table-field-chooser.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-group-container.c?h=GDM_2_2_5_4'>widgets/table/e-table-group-container.c</a></td><td class='right'>1436</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.4%;'/><td class='none' style='width: 92.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-group-container.h?h=GDM_2_2_5_4'>widgets/table/e-table-group-container.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-group-leaf.c?h=GDM_2_2_5_4'>widgets/table/e-table-group-leaf.c</a></td><td class='right'>620</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-group-leaf.h?h=GDM_2_2_5_4'>widgets/table/e-table-group-leaf.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-group.c?h=GDM_2_2_5_4'>widgets/table/e-table-group.c</a></td><td class='right'>690</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.6%;'/><td class='none' style='width: 96.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-group.glade?h=GDM_2_2_5_4'>widgets/table/e-table-group.glade</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-group.h?h=GDM_2_2_5_4'>widgets/table/e-table-group.h</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-header-item.c?h=GDM_2_2_5_4'>widgets/table/e-table-header-item.c</a></td><td class='right'>1637</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.5%;'/><td class='none' style='width: 91.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-header-item.h?h=GDM_2_2_5_4'>widgets/table/e-table-header-item.h</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-header-utils.c?h=GDM_2_2_5_4'>widgets/table/e-table-header-utils.c</a></td><td class='right'>466</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-header-utils.h?h=GDM_2_2_5_4'>widgets/table/e-table-header-utils.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-header.c?h=GDM_2_2_5_4'>widgets/table/e-table-header.c</a></td><td class='right'>859</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-header.h?h=GDM_2_2_5_4'>widgets/table/e-table-header.h</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-item.c?h=GDM_2_2_5_4'>widgets/table/e-table-item.c</a></td><td class='right'>3189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 16.5%;'/><td class='none' style='width: 83.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-item.h?h=GDM_2_2_5_4'>widgets/table/e-table-item.h</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-memory-callbacks.c?h=GDM_2_2_5_4'>widgets/table/e-table-memory-callbacks.c</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-memory-callbacks.h?h=GDM_2_2_5_4'>widgets/table/e-table-memory-callbacks.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-memory.c?h=GDM_2_2_5_4'>widgets/table/e-table-memory.c</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-memory.h?h=GDM_2_2_5_4'>widgets/table/e-table-memory.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-model.c?h=GDM_2_2_5_4'>widgets/table/e-table-model.c</a></td><td class='right'>542</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-model.h?h=GDM_2_2_5_4'>widgets/table/e-table-model.h</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-one.c?h=GDM_2_2_5_4'>widgets/table/e-table-one.c</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-one.h?h=GDM_2_2_5_4'>widgets/table/e-table-one.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-scrolled.c?h=GDM_2_2_5_4'>widgets/table/e-table-scrolled.c</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-scrolled.h?h=GDM_2_2_5_4'>widgets/table/e-table-scrolled.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-selection-model.c?h=GDM_2_2_5_4'>widgets/table/e-table-selection-model.c</a></td><td class='right'>324</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-selection-model.h?h=GDM_2_2_5_4'>widgets/table/e-table-selection-model.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-simple.c?h=GDM_2_2_5_4'>widgets/table/e-table-simple.c</a></td><td class='right'>271</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-simple.h?h=GDM_2_2_5_4'>widgets/table/e-table-simple.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-size-test.c?h=GDM_2_2_5_4'>widgets/table/e-table-size-test.c</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sort-info.c?h=GDM_2_2_5_4'>widgets/table/e-table-sort-info.c</a></td><td class='right'>475</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sort-info.h?h=GDM_2_2_5_4'>widgets/table/e-table-sort-info.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorted-variable.c?h=GDM_2_2_5_4'>widgets/table/e-table-sorted-variable.c</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorted-variable.h?h=GDM_2_2_5_4'>widgets/table/e-table-sorted-variable.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorted.c?h=GDM_2_2_5_4'>widgets/table/e-table-sorted.c</a></td><td class='right'>274</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorted.h?h=GDM_2_2_5_4'>widgets/table/e-table-sorted.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorter.c?h=GDM_2_2_5_4'>widgets/table/e-table-sorter.c</a></td><td class='right'>395</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorter.h?h=GDM_2_2_5_4'>widgets/table/e-table-sorter.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorting-utils.c?h=GDM_2_2_5_4'>widgets/table/e-table-sorting-utils.c</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-sorting-utils.h?h=GDM_2_2_5_4'>widgets/table/e-table-sorting-utils.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-specification.c?h=GDM_2_2_5_4'>widgets/table/e-table-specification.c</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-specification.h?h=GDM_2_2_5_4'>widgets/table/e-table-specification.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-state.c?h=GDM_2_2_5_4'>widgets/table/e-table-state.c</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-state.h?h=GDM_2_2_5_4'>widgets/table/e-table-state.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-subset-variable.c?h=GDM_2_2_5_4'>widgets/table/e-table-subset-variable.c</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-subset-variable.h?h=GDM_2_2_5_4'>widgets/table/e-table-subset-variable.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-subset.c?h=GDM_2_2_5_4'>widgets/table/e-table-subset.c</a></td><td class='right'>409</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-subset.h?h=GDM_2_2_5_4'>widgets/table/e-table-subset.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-tooltip.h?h=GDM_2_2_5_4'>widgets/table/e-table-tooltip.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-tree.h?h=GDM_2_2_5_4'>widgets/table/e-table-tree.h</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-utils.c?h=GDM_2_2_5_4'>widgets/table/e-table-utils.c</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-utils.h?h=GDM_2_2_5_4'>widgets/table/e-table-utils.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-without.c?h=GDM_2_2_5_4'>widgets/table/e-table-without.c</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table-without.h?h=GDM_2_2_5_4'>widgets/table/e-table-without.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table.c?h=GDM_2_2_5_4'>widgets/table/e-table.c</a></td><td class='right'>2470</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 12.8%;'/><td class='none' style='width: 87.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table.dia?h=GDM_2_2_5_4'>widgets/table/e-table.dia</a></td><td class='right'>bin</td><td class='graph'>4514 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-table.h?h=GDM_2_2_5_4'>widgets/table/e-table.h</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-memory-callbacks.c?h=GDM_2_2_5_4'>widgets/table/e-tree-memory-callbacks.c</a></td><td class='right'>262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-memory-callbacks.h?h=GDM_2_2_5_4'>widgets/table/e-tree-memory-callbacks.h</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-memory.c?h=GDM_2_2_5_4'>widgets/table/e-tree-memory.c</a></td><td class='right'>646</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-memory.h?h=GDM_2_2_5_4'>widgets/table/e-tree-memory.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-model.c?h=GDM_2_2_5_4'>widgets/table/e-tree-model.c</a></td><td class='right'>876</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.5%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-model.h?h=GDM_2_2_5_4'>widgets/table/e-tree-model.h</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-scrolled.c?h=GDM_2_2_5_4'>widgets/table/e-tree-scrolled.c</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-scrolled.h?h=GDM_2_2_5_4'>widgets/table/e-tree-scrolled.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-selection-model.c?h=GDM_2_2_5_4'>widgets/table/e-tree-selection-model.c</a></td><td class='right'>1236</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.4%;'/><td class='none' style='width: 93.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-selection-model.h?h=GDM_2_2_5_4'>widgets/table/e-tree-selection-model.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-simple.c?h=GDM_2_2_5_4'>widgets/table/e-tree-simple.c</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-simple.h?h=GDM_2_2_5_4'>widgets/table/e-tree-simple.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-sorted-variable.c?h=GDM_2_2_5_4'>widgets/table/e-tree-sorted-variable.c</a></td><td class='right'>458</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-sorted-variable.h?h=GDM_2_2_5_4'>widgets/table/e-tree-sorted-variable.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-sorted.c?h=GDM_2_2_5_4'>widgets/table/e-tree-sorted.c</a></td><td class='right'>1330</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.9%;'/><td class='none' style='width: 93.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-sorted.h?h=GDM_2_2_5_4'>widgets/table/e-tree-sorted.h</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-table-adapter.c?h=GDM_2_2_5_4'>widgets/table/e-tree-table-adapter.c</a></td><td class='right'>1070</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.6%;'/><td class='none' style='width: 94.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree-table-adapter.h?h=GDM_2_2_5_4'>widgets/table/e-tree-table-adapter.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree.c?h=GDM_2_2_5_4'>widgets/table/e-tree.c</a></td><td class='right'>2631</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 13.6%;'/><td class='none' style='width: 86.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/e-tree.h?h=GDM_2_2_5_4'>widgets/table/e-tree.h</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/image1.png?h=GDM_2_2_5_4'>widgets/table/image1.png</a></td><td class='right'>bin</td><td class='graph'>1858 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/image2.png?h=GDM_2_2_5_4'>widgets/table/image2.png</a></td><td class='right'>bin</td><td class='graph'>1987 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/image3.png?h=GDM_2_2_5_4'>widgets/table/image3.png</a></td><td class='right'>bin</td><td class='graph'>2051 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/remove-col.xpm?h=GDM_2_2_5_4'>widgets/table/remove-col.xpm</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/sample.table?h=GDM_2_2_5_4'>widgets/table/sample.table</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/spec.xml?h=GDM_2_2_5_4'>widgets/table/spec.xml</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/table-test.c?h=GDM_2_2_5_4'>widgets/table/table-test.c</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/table-test.h?h=GDM_2_2_5_4'>widgets/table/table-test.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/test-check.c?h=GDM_2_2_5_4'>widgets/table/test-check.c</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/test-cols.c?h=GDM_2_2_5_4'>widgets/table/test-cols.c</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/test-table.c?h=GDM_2_2_5_4'>widgets/table/test-table.c</a></td><td class='right'>462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/tree-expanded.xpm?h=GDM_2_2_5_4'>widgets/table/tree-expanded.xpm</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/table/tree-unexpanded.xpm?h=GDM_2_2_5_4'>widgets/table/tree-unexpanded.xpm</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/.cvsignore?h=GDM_2_2_5_4'>widgets/text/.cvsignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-completion-match.c?h=GDM_2_2_5_4'>widgets/text/e-completion-match.c</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-completion-match.h?h=GDM_2_2_5_4'>widgets/text/e-completion-match.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-completion-test.c?h=GDM_2_2_5_4'>widgets/text/e-completion-test.c</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-completion-view.c?h=GDM_2_2_5_4'>widgets/text/e-completion-view.c</a></td><td class='right'>911</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 4.7%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-completion-view.h?h=GDM_2_2_5_4'>widgets/text/e-completion-view.h</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-completion.c?h=GDM_2_2_5_4'>widgets/text/e-completion.c</a></td><td class='right'>648</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.4%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-completion.h?h=GDM_2_2_5_4'>widgets/text/e-completion.h</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-entry-test.c?h=GDM_2_2_5_4'>widgets/text/e-entry-test.c</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-entry.c?h=GDM_2_2_5_4'>widgets/text/e-entry.c</a></td><td class='right'>1253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 6.5%;'/><td class='none' style='width: 93.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-entry.h?h=GDM_2_2_5_4'>widgets/text/e-entry.h</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-table-text-model.c?h=GDM_2_2_5_4'>widgets/text/e-table-text-model.c</a></td><td class='right'>241</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-table-text-model.h?h=GDM_2_2_5_4'>widgets/text/e-table-text-model.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-model-repos.c?h=GDM_2_2_5_4'>widgets/text/e-text-model-repos.c</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-model-repos.h?h=GDM_2_2_5_4'>widgets/text/e-text-model-repos.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-model-test.c?h=GDM_2_2_5_4'>widgets/text/e-text-model-test.c</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-model-uri.c?h=GDM_2_2_5_4'>widgets/text/e-text-model-uri.c</a></td><td class='right'>345</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-model-uri.h?h=GDM_2_2_5_4'>widgets/text/e-text-model-uri.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-model.c?h=GDM_2_2_5_4'>widgets/text/e-text-model.c</a></td><td class='right'>640</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-model.h?h=GDM_2_2_5_4'>widgets/text/e-text-model.h</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text-test.c?h=GDM_2_2_5_4'>widgets/text/e-text-test.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text.c?h=GDM_2_2_5_4'>widgets/text/e-text.c</a></td><td class='right'>4178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 21.7%;'/><td class='none' style='width: 78.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/widgets/text/e-text.h?h=GDM_2_2_5_4'>widgets/text/e-text.h</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/.cvsignore?h=GDM_2_2_5_4'>wombat/.cvsignore</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/ChangeLog?h=GDM_2_2_5_4'>wombat/ChangeLog</a></td><td class='right'>288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/GNOME_Evolution_WombatLDAP.oaf.in?h=GDM_2_2_5_4'>wombat/GNOME_Evolution_WombatLDAP.oaf.in</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/GNOME_Evolution_WombatNOLDAP.oaf.in?h=GDM_2_2_5_4'>wombat/GNOME_Evolution_WombatNOLDAP.oaf.in</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/Makefile.am?h=GDM_2_2_5_4'>wombat/Makefile.am</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/wombat-moniker.c?h=GDM_2_2_5_4'>wombat/wombat-moniker.c</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/wombat-moniker.h?h=GDM_2_2_5_4'>wombat/wombat-moniker.h</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/wombat-private-moniker.c?h=GDM_2_2_5_4'>wombat/wombat-private-moniker.c</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/wombat-private-moniker.h?h=GDM_2_2_5_4'>wombat/wombat-private-moniker.h</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/wombat.c?h=GDM_2_2_5_4'>wombat/wombat.c</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/~lantw44/cgit/gsoc2013-evolution/diff/wombat/wombat.idl?h=GDM_2_2_5_4'>wombat/wombat.idl</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
</table><div class='diffstat-summary'>2855 files changed, 0 insertions, 1234379 deletions</div><table summary='diff' class='diff'><tr><td><div class='head'>diff --git a/.cvsignore b/.cvsignore<br/>deleted file mode 100644<br/>index 5d4ce997d6..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,26 +0,0 @@</div><div class='del'>-ABOUT-NLS</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-aclocal.m4</div><div class='del'>-config.cache</div><div class='del'>-config.guess</div><div class='del'>-config.h</div><div class='del'>-config.h.in</div><div class='del'>-config.log</div><div class='del'>-config.status</div><div class='del'>-config.sub</div><div class='del'>-configure</div><div class='del'>-install-sh</div><div class='del'>-intl</div><div class='del'>-libtool</div><div class='del'>-ltconfig</div><div class='del'>-ltmain.sh</div><div class='del'>-missing</div><div class='del'>-mkinstalldirs</div><div class='del'>-stamp-h</div><div class='del'>-stamp-h.in</div><div class='del'>-stamp.h</div><div class='del'>-xlibtool</div><div class='del'>-xltmain.sh</div><div class='del'>-evolution.spec</div><div class='del'>-xml-i18n-*</div><div class='head'>diff --git a/AUTHORS b/AUTHORS<br/>deleted file mode 100644<br/>index 15eeea1e99..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/AUTHORS?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>AUTHORS</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,82 +0,0 @@</div><div class='del'>-Evolution was written by:</div><div class='del'>-</div><div class='del'>-Addressbook</div><div class='del'>-	Arturo Esponosa &lt;arturo@nuclecu.unam.mx&gt; (Original Gnomecard author)</div><div class='del'>-	Nat Friedman &lt;nat@ximian.com&gt;</div><div class='del'>-	Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>-	Chris Toshok &lt;toshok@ximian.com&gt;</div><div class='del'>-	Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-Artwork</div><div class='del'>-	Tuomas Kuosmanen &lt;tigert@ximian.com&gt;</div><div class='del'>-	Jakub Steiner &lt;jimmac@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-Calendar</div><div class='del'>-	Seth Alves &lt;seth@ximian.com&gt;</div><div class='del'>-	Eric Busboom &lt;eric@softwarestudio.org&gt; (libical author)</div><div class='del'>-	Arturo Esponosa &lt;arturo@nuclecu.unam.mx&gt; (Gnomecal contributor)</div><div class='del'>-	Damon Chaplin &lt;damon@ximian.com&gt;</div><div class='del'>-	Federico Mena-Quintero &lt;federico@ximian.com&gt;</div><div class='del'>-	Rodrigo Moya &lt;rodrigo@ximian.com&gt;</div><div class='del'>-	Jesse Pavel &lt;jesse@ximian.com&gt;</div><div class='del'>-	JP Rosevear &lt;jpr@ximian.com&gt;</div><div class='del'>-	Russell Steinthal &lt;rms39@columbia.edu&gt; (Gnomecal maintainer)</div><div class='del'>-</div><div class='del'>-Documentation</div><div class='del'>-	Kevin Breit &lt;battery841@mypad.com&gt;</div><div class='del'>-	Aaron Weber &lt;aaron@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-Mailer</div><div class='del'>-	Bertrand Guiheneuf &lt;bertrand@ximian.com&gt;</div><div class='del'>-	Jason Leach &lt;jleach@ximian.com&gt;</div><div class='del'>-	Matt Loper &lt;matt@ximian.com&gt;</div><div class='del'>-	Ettore Perazzoli &lt;ettore@ximian.com&gt;</div><div class='del'>-	Jeff Stedfast &lt;fejj@ximian.com&gt;</div><div class='del'>-	Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>-	Peter Williams &lt;peterw@ximian.com&gt;</div><div class='del'>-	Dan Winship &lt;danw@ximian.com&gt;</div><div class='del'>-	Michael Zucchi &lt;notzed@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-Notes</div><div class='del'>-	Anders Carlsson &lt;andersca@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-Pilot</div><div class='del'>-	JP Rosevear &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-Shell</div><div class='del'>-	Miguel de Icaza &lt;miguel@ximian.com&gt;</div><div class='del'>-	Jason Leach &lt;jleach@ximian.com&gt;</div><div class='del'>-	Ettore Perazzoli &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-Translations</div><div class='del'>-	Akira TAGOH &lt;tagoh@gnome.gr.jp&gt;</div><div class='del'>-	Andraz Tori &lt;andraz.tori1@guest.arnes.si&gt;</div><div class='del'>-	Andreas Hyden &lt;a.hyden@cyberpoint.se&gt;</div><div class='del'>-	Arjan Scherpenisse &lt;acscherp@wins.uva.nl&gt;</div><div class='del'>-	Clara Tattoni &lt;clara.tattoni@libero.it&gt;</div><div class='del'>-	Fatih Demir &lt;kabalak@gmx.net&gt;</div><div class='del'>-	Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-	GNOME PL Team &lt;gnomepl@pandora.info.bielsko.pl&gt;</div><div class='del'>-	Gustavo Maciel Dias Vieira &lt;gdvieira@zaz.com.br&gt;</div><div class='del'>-	H�ctor Garc�a Alvarez &lt;hector@scouts-es.org&gt;</div><div class='del'>-	Jes�s Bravo �lvarez &lt;jba@pobox.com&gt;</div><div class='del'>-	Keld Simonsen &lt;keld@dkuug.dk&gt;</div><div class='del'>-	Kjartan Maraas &lt;kmaraas@gnome.org&gt;</div><div class='del'>-	Matthias Warkus &lt;mawa@iname.com&gt;</div><div class='del'>-	Spiros Papadimitriou &lt;spapadim+@cs.cmu.edu&gt;</div><div class='del'>-	Sung-Hyun Nam &lt;namsh@kldp.org&gt;</div><div class='del'>-	Szabolcs BAN &lt;shooby@gnome.hu&gt;</div><div class='del'>-	Tiago Ant�o &lt;tiagoantao@bigfoot.com&gt;</div><div class='del'>-	Valek Filippov &lt;frob@df.ru&gt;</div><div class='del'>-	Vincent Renardias &lt;vincent@redhat.com&gt;</div><div class='del'>-	Yuri Syrota &lt;rasta@renome.rovno.ua&gt;</div><div class='del'>-</div><div class='del'>-UI</div><div class='del'>-	Anna Dirks &lt;anna@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-Widgets</div><div class='del'>-	Damon Chaplin &lt;damon@ximian.com&gt;</div><div class='del'>-	Miguel de Icaza &lt;miguel@ximian.com&gt;</div><div class='del'>-	Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>-	Federico Mena-Quintero &lt;federico@ximian.com&gt;</div><div class='del'>-	Chris Toshok &lt;toshok@ximian.com&gt;</div><div class='head'>diff --git a/COPYING b/COPYING<br/>deleted file mode 100644<br/>index d60c31a97a..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/COPYING?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>COPYING</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,340 +0,0 @@</div><div class='del'>-		    GNU GENERAL PUBLIC LICENSE</div><div class='del'>-		       Version 2, June 1991</div><div class='del'>-</div><div class='del'>- Copyright (C) 1989, 1991 Free Software Foundation, Inc.</div><div class='del'>-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='del'>- Everyone is permitted to copy and distribute verbatim copies</div><div class='del'>- of this license document, but changing it is not allowed.</div><div class='del'>-</div><div class='del'>-			    Preamble</div><div class='del'>-</div><div class='del'>-  The licenses for most software are designed to take away your</div><div class='del'>-freedom to share and change it.  By contrast, the GNU General Public</div><div class='del'>-License is intended to guarantee your freedom to share and change free</div><div class='del'>-software--to make sure the software is free for all its users.  This</div><div class='del'>-General Public License applies to most of the Free Software</div><div class='del'>-Foundation's software and to any other program whose authors commit to</div><div class='del'>-using it.  (Some other Free Software Foundation software is covered by</div><div class='del'>-the GNU Library General Public License instead.)  You can apply it to</div><div class='del'>-your programs, too.</div><div class='del'>-</div><div class='del'>-  When we speak of free software, we are referring to freedom, not</div><div class='del'>-price.  Our General Public Licenses are designed to make sure that you</div><div class='del'>-have the freedom to distribute copies of free software (and charge for</div><div class='del'>-this service if you wish), that you receive source code or can get it</div><div class='del'>-if you want it, that you can change the software or use pieces of it</div><div class='del'>-in new free programs; and that you know you can do these things.</div><div class='del'>-</div><div class='del'>-  To protect your rights, we need to make restrictions that forbid</div><div class='del'>-anyone to deny you these rights or to ask you to surrender the rights.</div><div class='del'>-These restrictions translate to certain responsibilities for you if you</div><div class='del'>-distribute copies of the software, or if you modify it.</div><div class='del'>-</div><div class='del'>-  For example, if you distribute copies of such a program, whether</div><div class='del'>-gratis or for a fee, you must give the recipients all the rights that</div><div class='del'>-you have.  You must make sure that they, too, receive or can get the</div><div class='del'>-source code.  And you must show them these terms so they know their</div><div class='del'>-rights.</div><div class='del'>-</div><div class='del'>-  We protect your rights with two steps: (1) copyright the software, and</div><div class='del'>-(2) offer you this license which gives you legal permission to copy,</div><div class='del'>-distribute and/or modify the software.</div><div class='del'>-</div><div class='del'>-  Also, for each author's protection and ours, we want to make certain</div><div class='del'>-that everyone understands that there is no warranty for this free</div><div class='del'>-software.  If the software is modified by someone else and passed on, we</div><div class='del'>-want its recipients to know that what they have is not the original, so</div><div class='del'>-that any problems introduced by others will not reflect on the original</div><div class='del'>-authors' reputations.</div><div class='del'>-</div><div class='del'>-  Finally, any free program is threatened constantly by software</div><div class='del'>-patents.  We wish to avoid the danger that redistributors of a free</div><div class='del'>-program will individually obtain patent licenses, in effect making the</div><div class='del'>-program proprietary.  To prevent this, we have made it clear that any</div><div class='del'>-patent must be licensed for everyone's free use or not licensed at all.</div><div class='del'>-</div><div class='del'>-  The precise terms and conditions for copying, distribution and</div><div class='del'>-modification follow.</div><div class='del'>-</div><div class='del'>-		    GNU GENERAL PUBLIC LICENSE</div><div class='del'>-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</div><div class='del'>-</div><div class='del'>-  0. This License applies to any program or other work which contains</div><div class='del'>-a notice placed by the copyright holder saying it may be distributed</div><div class='del'>-under the terms of this General Public License.  The "Program", below,</div><div class='del'>-refers to any such program or work, and a "work based on the Program"</div><div class='del'>-means either the Program or any derivative work under copyright law:</div><div class='del'>-that is to say, a work containing the Program or a portion of it,</div><div class='del'>-either verbatim or with modifications and/or translated into another</div><div class='del'>-language.  (Hereinafter, translation is included without limitation in</div><div class='del'>-the term "modification".)  Each licensee is addressed as "you".</div><div class='del'>-</div><div class='del'>-Activities other than copying, distribution and modification are not</div><div class='del'>-covered by this License; they are outside its scope.  The act of</div><div class='del'>-running the Program is not restricted, and the output from the Program</div><div class='del'>-is covered only if its contents constitute a work based on the</div><div class='del'>-Program (independent of having been made by running the Program).</div><div class='del'>-Whether that is true depends on what the Program does.</div><div class='del'>-</div><div class='del'>-  1. You may copy and distribute verbatim copies of the Program's</div><div class='del'>-source code as you receive it, in any medium, provided that you</div><div class='del'>-conspicuously and appropriately publish on each copy an appropriate</div><div class='del'>-copyright notice and disclaimer of warranty; keep intact all the</div><div class='del'>-notices that refer to this License and to the absence of any warranty;</div><div class='del'>-and give any other recipients of the Program a copy of this License</div><div class='del'>-along with the Program.</div><div class='del'>-</div><div class='del'>-You may charge a fee for the physical act of transferring a copy, and</div><div class='del'>-you may at your option offer warranty protection in exchange for a fee.</div><div class='del'>-</div><div class='del'>-  2. You may modify your copy or copies of the Program or any portion</div><div class='del'>-of it, thus forming a work based on the Program, and copy and</div><div class='del'>-distribute such modifications or work under the terms of Section 1</div><div class='del'>-above, provided that you also meet all of these conditions:</div><div class='del'>-</div><div class='del'>-    a) You must cause the modified files to carry prominent notices</div><div class='del'>-    stating that you changed the files and the date of any change.</div><div class='del'>-</div><div class='del'>-    b) You must cause any work that you distribute or publish, that in</div><div class='del'>-    whole or in part contains or is derived from the Program or any</div><div class='del'>-    part thereof, to be licensed as a whole at no charge to all third</div><div class='del'>-    parties under the terms of this License.</div><div class='del'>-</div><div class='del'>-    c) If the modified program normally reads commands interactively</div><div class='del'>-    when run, you must cause it, when started running for such</div><div class='del'>-    interactive use in the most ordinary way, to print or display an</div><div class='del'>-    announcement including an appropriate copyright notice and a</div><div class='del'>-    notice that there is no warranty (or else, saying that you provide</div><div class='del'>-    a warranty) and that users may redistribute the program under</div><div class='del'>-    these conditions, and telling the user how to view a copy of this</div><div class='del'>-    License.  (Exception: if the Program itself is interactive but</div><div class='del'>-    does not normally print such an announcement, your work based on</div><div class='del'>-    the Program is not required to print an announcement.)</div><div class='del'>-</div><div class='del'>-These requirements apply to the modified work as a whole.  If</div><div class='del'>-identifiable sections of that work are not derived from the Program,</div><div class='del'>-and can be reasonably considered independent and separate works in</div><div class='del'>-themselves, then this License, and its terms, do not apply to those</div><div class='del'>-sections when you distribute them as separate works.  But when you</div><div class='del'>-distribute the same sections as part of a whole which is a work based</div><div class='del'>-on the Program, the distribution of the whole must be on the terms of</div><div class='del'>-this License, whose permissions for other licensees extend to the</div><div class='del'>-entire whole, and thus to each and every part regardless of who wrote it.</div><div class='del'>-</div><div class='del'>-Thus, it is not the intent of this section to claim rights or contest</div><div class='del'>-your rights to work written entirely by you; rather, the intent is to</div><div class='del'>-exercise the right to control the distribution of derivative or</div><div class='del'>-collective works based on the Program.</div><div class='del'>-</div><div class='del'>-In addition, mere aggregation of another work not based on the Program</div><div class='del'>-with the Program (or with a work based on the Program) on a volume of</div><div class='del'>-a storage or distribution medium does not bring the other work under</div><div class='del'>-the scope of this License.</div><div class='del'>-</div><div class='del'>-  3. You may copy and distribute the Program (or a work based on it,</div><div class='del'>-under Section 2) in object code or executable form under the terms of</div><div class='del'>-Sections 1 and 2 above provided that you also do one of the following:</div><div class='del'>-</div><div class='del'>-    a) Accompany it with the complete corresponding machine-readable</div><div class='del'>-    source code, which must be distributed under the terms of Sections</div><div class='del'>-    1 and 2 above on a medium customarily used for software interchange; or,</div><div class='del'>-</div><div class='del'>-    b) Accompany it with a written offer, valid for at least three</div><div class='del'>-    years, to give any third party, for a charge no more than your</div><div class='del'>-    cost of physically performing source distribution, a complete</div><div class='del'>-    machine-readable copy of the corresponding source code, to be</div><div class='del'>-    distributed under the terms of Sections 1 and 2 above on a medium</div><div class='del'>-    customarily used for software interchange; or,</div><div class='del'>-</div><div class='del'>-    c) Accompany it with the information you received as to the offer</div><div class='del'>-    to distribute corresponding source code.  (This alternative is</div><div class='del'>-    allowed only for noncommercial distribution and only if you</div><div class='del'>-    received the program in object code or executable form with such</div><div class='del'>-    an offer, in accord with Subsection b above.)</div><div class='del'>-</div><div class='del'>-The source code for a work means the preferred form of the work for</div><div class='del'>-making modifications to it.  For an executable work, complete source</div><div class='del'>-code means all the source code for all modules it contains, plus any</div><div class='del'>-associated interface definition files, plus the scripts used to</div><div class='del'>-control compilation and installation of the executable.  However, as a</div><div class='del'>-special exception, the source code distributed need not include</div><div class='del'>-anything that is normally distributed (in either source or binary</div><div class='del'>-form) with the major components (compiler, kernel, and so on) of the</div><div class='del'>-operating system on which the executable runs, unless that component</div><div class='del'>-itself accompanies the executable.</div><div class='del'>-</div><div class='del'>-If distribution of executable or object code is made by offering</div><div class='del'>-access to copy from a designated place, then offering equivalent</div><div class='del'>-access to copy the source code from the same place counts as</div><div class='del'>-distribution of the source code, even though third parties are not</div><div class='del'>-compelled to copy the source along with the object code.</div><div class='del'>-</div><div class='del'>-  4. You may not copy, modify, sublicense, or distribute the Program</div><div class='del'>-except as expressly provided under this License.  Any attempt</div><div class='del'>-otherwise to copy, modify, sublicense or distribute the Program is</div><div class='del'>-void, and will automatically terminate your rights under this License.</div><div class='del'>-However, parties who have received copies, or rights, from you under</div><div class='del'>-this License will not have their licenses terminated so long as such</div><div class='del'>-parties remain in full compliance.</div><div class='del'>-</div><div class='del'>-  5. You are not required to accept this License, since you have not</div><div class='del'>-signed it.  However, nothing else grants you permission to modify or</div><div class='del'>-distribute the Program or its derivative works.  These actions are</div><div class='del'>-prohibited by law if you do not accept this License.  Therefore, by</div><div class='del'>-modifying or distributing the Program (or any work based on the</div><div class='del'>-Program), you indicate your acceptance of this License to do so, and</div><div class='del'>-all its terms and conditions for copying, distributing or modifying</div><div class='del'>-the Program or works based on it.</div><div class='del'>-</div><div class='del'>-  6. Each time you redistribute the Program (or any work based on the</div><div class='del'>-Program), the recipient automatically receives a license from the</div><div class='del'>-original licensor to copy, distribute or modify the Program subject to</div><div class='del'>-these terms and conditions.  You may not impose any further</div><div class='del'>-restrictions on the recipients' exercise of the rights granted herein.</div><div class='del'>-You are not responsible for enforcing compliance by third parties to</div><div class='del'>-this License.</div><div class='del'>-</div><div class='del'>-  7. If, as a consequence of a court judgment or allegation of patent</div><div class='del'>-infringement or for any other reason (not limited to patent issues),</div><div class='del'>-conditions are imposed on you (whether by court order, agreement or</div><div class='del'>-otherwise) that contradict the conditions of this License, they do not</div><div class='del'>-excuse you from the conditions of this License.  If you cannot</div><div class='del'>-distribute so as to satisfy simultaneously your obligations under this</div><div class='del'>-License and any other pertinent obligations, then as a consequence you</div><div class='del'>-may not distribute the Program at all.  For example, if a patent</div><div class='del'>-license would not permit royalty-free redistribution of the Program by</div><div class='del'>-all those who receive copies directly or indirectly through you, then</div><div class='del'>-the only way you could satisfy both it and this License would be to</div><div class='del'>-refrain entirely from distribution of the Program.</div><div class='del'>-</div><div class='del'>-If any portion of this section is held invalid or unenforceable under</div><div class='del'>-any particular circumstance, the balance of the section is intended to</div><div class='del'>-apply and the section as a whole is intended to apply in other</div><div class='del'>-circumstances.</div><div class='del'>-</div><div class='del'>-It is not the purpose of this section to induce you to infringe any</div><div class='del'>-patents or other property right claims or to contest validity of any</div><div class='del'>-such claims; this section has the sole purpose of protecting the</div><div class='del'>-integrity of the free software distribution system, which is</div><div class='del'>-implemented by public license practices.  Many people have made</div><div class='del'>-generous contributions to the wide range of software distributed</div><div class='del'>-through that system in reliance on consistent application of that</div><div class='del'>-system; it is up to the author/donor to decide if he or she is willing</div><div class='del'>-to distribute software through any other system and a licensee cannot</div><div class='del'>-impose that choice.</div><div class='del'>-</div><div class='del'>-This section is intended to make thoroughly clear what is believed to</div><div class='del'>-be a consequence of the rest of this License.</div><div class='del'>-</div><div class='del'>-  8. If the distribution and/or use of the Program is restricted in</div><div class='del'>-certain countries either by patents or by copyrighted interfaces, the</div><div class='del'>-original copyright holder who places the Program under this License</div><div class='del'>-may add an explicit geographical distribution limitation excluding</div><div class='del'>-those countries, so that distribution is permitted only in or among</div><div class='del'>-countries not thus excluded.  In such case, this License incorporates</div><div class='del'>-the limitation as if written in the body of this License.</div><div class='del'>-</div><div class='del'>-  9. The Free Software Foundation may publish revised and/or new versions</div><div class='del'>-of the General Public License from time to time.  Such new versions will</div><div class='del'>-be similar in spirit to the present version, but may differ in detail to</div><div class='del'>-address new problems or concerns.</div><div class='del'>-</div><div class='del'>-Each version is given a distinguishing version number.  If the Program</div><div class='del'>-specifies a version number of this License which applies to it and "any</div><div class='del'>-later version", you have the option of following the terms and conditions</div><div class='del'>-either of that version or of any later version published by the Free</div><div class='del'>-Software Foundation.  If the Program does not specify a version number of</div><div class='del'>-this License, you may choose any version ever published by the Free Software</div><div class='del'>-Foundation.</div><div class='del'>-</div><div class='del'>-  10. If you wish to incorporate parts of the Program into other free</div><div class='del'>-programs whose distribution conditions are different, write to the author</div><div class='del'>-to ask for permission.  For software which is copyrighted by the Free</div><div class='del'>-Software Foundation, write to the Free Software Foundation; we sometimes</div><div class='del'>-make exceptions for this.  Our decision will be guided by the two goals</div><div class='del'>-of preserving the free status of all derivatives of our free software and</div><div class='del'>-of promoting the sharing and reuse of software generally.</div><div class='del'>-</div><div class='del'>-			    NO WARRANTY</div><div class='del'>-</div><div class='del'>-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</div><div class='del'>-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN</div><div class='del'>-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES</div><div class='del'>-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED</div><div class='del'>-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</div><div class='del'>-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS</div><div class='del'>-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE</div><div class='del'>-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,</div><div class='del'>-REPAIR OR CORRECTION.</div><div class='del'>-</div><div class='del'>-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</div><div class='del'>-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR</div><div class='del'>-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,</div><div class='del'>-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING</div><div class='del'>-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED</div><div class='del'>-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY</div><div class='del'>-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</div><div class='del'>-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</div><div class='del'>-POSSIBILITY OF SUCH DAMAGES.</div><div class='del'>-</div><div class='del'>-		     END OF TERMS AND CONDITIONS</div><div class='del'>-</div><div class='del'>-	    How to Apply These Terms to Your New Programs</div><div class='del'>-</div><div class='del'>-  If you develop a new program, and you want it to be of the greatest</div><div class='del'>-possible use to the public, the best way to achieve this is to make it</div><div class='del'>-free software which everyone can redistribute and change under these terms.</div><div class='del'>-</div><div class='del'>-  To do so, attach the following notices to the program.  It is safest</div><div class='del'>-to attach them to the start of each source file to most effectively</div><div class='del'>-convey the exclusion of warranty; and each file should have at least</div><div class='del'>-the "copyright" line and a pointer to where the full notice is found.</div><div class='del'>-</div><div class='del'>-    &lt;one line to give the program's name and a brief idea of what it does.&gt;</div><div class='del'>-    Copyright (C) &lt;year&gt;  &lt;name of author&gt;</div><div class='del'>-</div><div class='del'>-    This program is free software; you can redistribute it and/or modify</div><div class='del'>-    it under the terms of the GNU General Public License as published by</div><div class='del'>-    the Free Software Foundation; either version 2 of the License, or</div><div class='del'>-    (at your option) any later version.</div><div class='del'>-</div><div class='del'>-    This program is distributed in the hope that it will be useful,</div><div class='del'>-    but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>-    GNU General Public License for more details.</div><div class='del'>-</div><div class='del'>-    You should have received a copy of the GNU General Public License</div><div class='del'>-    along with this program; if not, write to the Free Software</div><div class='del'>-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Also add information on how to contact you by electronic and paper mail.</div><div class='del'>-</div><div class='del'>-If the program is interactive, make it output a short notice like this</div><div class='del'>-when it starts in an interactive mode:</div><div class='del'>-</div><div class='del'>-    Gnomovision version 69, Copyright (C) year  name of author</div><div class='del'>-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</div><div class='del'>-    This is free software, and you are welcome to redistribute it</div><div class='del'>-    under certain conditions; type `show c' for details.</div><div class='del'>-</div><div class='del'>-The hypothetical commands `show w' and `show c' should show the appropriate</div><div class='del'>-parts of the General Public License.  Of course, the commands you use may</div><div class='del'>-be called something other than `show w' and `show c'; they could even be</div><div class='del'>-mouse-clicks or menu items--whatever suits your program.</div><div class='del'>-</div><div class='del'>-You should also get your employer (if you work as a programmer) or your</div><div class='del'>-school, if any, to sign a "copyright disclaimer" for the program, if</div><div class='del'>-necessary.  Here is a sample; alter the names:</div><div class='del'>-</div><div class='del'>-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program</div><div class='del'>-  `Gnomovision' (which makes passes at compilers) written by James Hacker.</div><div class='del'>-</div><div class='del'>-  &lt;signature of Ty Coon&gt;, 1 April 1989</div><div class='del'>-  Ty Coon, President of Vice</div><div class='del'>-</div><div class='del'>-This General Public License does not permit incorporating your program into</div><div class='del'>-proprietary programs.  If your program is a subroutine library, you may</div><div class='del'>-consider it more useful to permit linking proprietary applications with the</div><div class='del'>-library.  If this is what you want to do, use the GNU Library General</div><div class='del'>-Public License instead of this License.</div><div class='head'>diff --git a/COPYING-DOCS b/COPYING-DOCS<br/>deleted file mode 100644<br/>index b42936beb3..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/COPYING-DOCS?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>COPYING-DOCS</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,355 +0,0 @@</div><div class='del'>-		GNU Free Documentation License</div><div class='del'>-		   Version 1.1, March 2000</div><div class='del'>-</div><div class='del'>- Copyright (C) 2000  Free Software Foundation, Inc.</div><div class='del'>-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='del'>- Everyone is permitted to copy and distribute verbatim copies</div><div class='del'>- of this license document, but changing it is not allowed.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-0. PREAMBLE</div><div class='del'>-</div><div class='del'>-The purpose of this License is to make a manual, textbook, or other</div><div class='del'>-written document "free" in the sense of freedom: to assure everyone</div><div class='del'>-the effective freedom to copy and redistribute it, with or without</div><div class='del'>-modifying it, either commercially or noncommercially.  Secondarily,</div><div class='del'>-this License preserves for the author and publisher a way to get</div><div class='del'>-credit for their work, while not being considered responsible for</div><div class='del'>-modifications made by others.</div><div class='del'>-</div><div class='del'>-This License is a kind of "copyleft", which means that derivative</div><div class='del'>-works of the document must themselves be free in the same sense.  It</div><div class='del'>-complements the GNU General Public License, which is a copyleft</div><div class='del'>-license designed for free software.</div><div class='del'>-</div><div class='del'>-We have designed this License in order to use it for manuals for free</div><div class='del'>-software, because free software needs free documentation: a free</div><div class='del'>-program should come with manuals providing the same freedoms that the</div><div class='del'>-software does.  But this License is not limited to software manuals;</div><div class='del'>-it can be used for any textual work, regardless of subject matter or</div><div class='del'>-whether it is published as a printed book.  We recommend this License</div><div class='del'>-principally for works whose purpose is instruction or reference.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1. APPLICABILITY AND DEFINITIONS</div><div class='del'>-</div><div class='del'>-This License applies to any manual or other work that contains a</div><div class='del'>-notice placed by the copyright holder saying it can be distributed</div><div class='del'>-under the terms of this License.  The "Document", below, refers to any</div><div class='del'>-such manual or work.  Any member of the public is a licensee, and is</div><div class='del'>-addressed as "you".</div><div class='del'>-</div><div class='del'>-A "Modified Version" of the Document means any work containing the</div><div class='del'>-Document or a portion of it, either copied verbatim, or with</div><div class='del'>-modifications and/or translated into another language.</div><div class='del'>-</div><div class='del'>-A "Secondary Section" is a named appendix or a front-matter section of</div><div class='del'>-the Document that deals exclusively with the relationship of the</div><div class='del'>-publishers or authors of the Document to the Document's overall subject</div><div class='del'>-(or to related matters) and contains nothing that could fall directly</div><div class='del'>-within that overall subject.  (For example, if the Document is in part a</div><div class='del'>-textbook of mathematics, a Secondary Section may not explain any</div><div class='del'>-mathematics.)  The relationship could be a matter of historical</div><div class='del'>-connection with the subject or with related matters, or of legal,</div><div class='del'>-commercial, philosophical, ethical or political position regarding</div><div class='del'>-them.</div><div class='del'>-</div><div class='del'>-The "Invariant Sections" are certain Secondary Sections whose titles</div><div class='del'>-are designated, as being those of Invariant Sections, in the notice</div><div class='del'>-that says that the Document is released under this License.</div><div class='del'>-</div><div class='del'>-The "Cover Texts" are certain short passages of text that are listed,</div><div class='del'>-as Front-Cover Texts or Back-Cover Texts, in the notice that says that</div><div class='del'>-the Document is released under this License.</div><div class='del'>-</div><div class='del'>-A "Transparent" copy of the Document means a machine-readable copy,</div><div class='del'>-represented in a format whose specification is available to the</div><div class='del'>-general public, whose contents can be viewed and edited directly and</div><div class='del'>-straightforwardly with generic text editors or (for images composed of</div><div class='del'>-pixels) generic paint programs or (for drawings) some widely available</div><div class='del'>-drawing editor, and that is suitable for input to text formatters or</div><div class='del'>-for automatic translation to a variety of formats suitable for input</div><div class='del'>-to text formatters.  A copy made in an otherwise Transparent file</div><div class='del'>-format whose markup has been designed to thwart or discourage</div><div class='del'>-subsequent modification by readers is not Transparent.  A copy that is</div><div class='del'>-not "Transparent" is called "Opaque".</div><div class='del'>-</div><div class='del'>-Examples of suitable formats for Transparent copies include plain</div><div class='del'>-ASCII without markup, Texinfo input format, LaTeX input format, SGML</div><div class='del'>-or XML using a publicly available DTD, and standard-conforming simple</div><div class='del'>-HTML designed for human modification.  Opaque formats include</div><div class='del'>-PostScript, PDF, proprietary formats that can be read and edited only</div><div class='del'>-by proprietary word processors, SGML or XML for which the DTD and/or</div><div class='del'>-processing tools are not generally available, and the</div><div class='del'>-machine-generated HTML produced by some word processors for output</div><div class='del'>-purposes only.</div><div class='del'>-</div><div class='del'>-The "Title Page" means, for a printed book, the title page itself,</div><div class='del'>-plus such following pages as are needed to hold, legibly, the material</div><div class='del'>-this License requires to appear in the title page.  For works in</div><div class='del'>-formats which do not have any title page as such, "Title Page" means</div><div class='del'>-the text near the most prominent appearance of the work's title,</div><div class='del'>-preceding the beginning of the body of the text.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2. VERBATIM COPYING</div><div class='del'>-</div><div class='del'>-You may copy and distribute the Document in any medium, either</div><div class='del'>-commercially or noncommercially, provided that this License, the</div><div class='del'>-copyright notices, and the license notice saying this License applies</div><div class='del'>-to the Document are reproduced in all copies, and that you add no other</div><div class='del'>-conditions whatsoever to those of this License.  You may not use</div><div class='del'>-technical measures to obstruct or control the reading or further</div><div class='del'>-copying of the copies you make or distribute.  However, you may accept</div><div class='del'>-compensation in exchange for copies.  If you distribute a large enough</div><div class='del'>-number of copies you must also follow the conditions in section 3.</div><div class='del'>-</div><div class='del'>-You may also lend copies, under the same conditions stated above, and</div><div class='del'>-you may publicly display copies.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-3. COPYING IN QUANTITY</div><div class='del'>-</div><div class='del'>-If you publish printed copies of the Document numbering more than 100,</div><div class='del'>-and the Document's license notice requires Cover Texts, you must enclose</div><div class='del'>-the copies in covers that carry, clearly and legibly, all these Cover</div><div class='del'>-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on</div><div class='del'>-the back cover.  Both covers must also clearly and legibly identify</div><div class='del'>-you as the publisher of these copies.  The front cover must present</div><div class='del'>-the full title with all words of the title equally prominent and</div><div class='del'>-visible.  You may add other material on the covers in addition.</div><div class='del'>-Copying with changes limited to the covers, as long as they preserve</div><div class='del'>-the title of the Document and satisfy these conditions, can be treated</div><div class='del'>-as verbatim copying in other respects.</div><div class='del'>-</div><div class='del'>-If the required texts for either cover are too voluminous to fit</div><div class='del'>-legibly, you should put the first ones listed (as many as fit</div><div class='del'>-reasonably) on the actual cover, and continue the rest onto adjacent</div><div class='del'>-pages.</div><div class='del'>-</div><div class='del'>-If you publish or distribute Opaque copies of the Document numbering</div><div class='del'>-more than 100, you must either include a machine-readable Transparent</div><div class='del'>-copy along with each Opaque copy, or state in or with each Opaque copy</div><div class='del'>-a publicly-accessible computer-network location containing a complete</div><div class='del'>-Transparent copy of the Document, free of added material, which the</div><div class='del'>-general network-using public has access to download anonymously at no</div><div class='del'>-charge using public-standard network protocols.  If you use the latter</div><div class='del'>-option, you must take reasonably prudent steps, when you begin</div><div class='del'>-distribution of Opaque copies in quantity, to ensure that this</div><div class='del'>-Transparent copy will remain thus accessible at the stated location</div><div class='del'>-until at least one year after the last time you distribute an Opaque</div><div class='del'>-copy (directly or through your agents or retailers) of that edition to</div><div class='del'>-the public.</div><div class='del'>-</div><div class='del'>-It is requested, but not required, that you contact the authors of the</div><div class='del'>-Document well before redistributing any large number of copies, to give</div><div class='del'>-them a chance to provide you with an updated version of the Document.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-4. MODIFICATIONS</div><div class='del'>-</div><div class='del'>-You may copy and distribute a Modified Version of the Document under</div><div class='del'>-the conditions of sections 2 and 3 above, provided that you release</div><div class='del'>-the Modified Version under precisely this License, with the Modified</div><div class='del'>-Version filling the role of the Document, thus licensing distribution</div><div class='del'>-and modification of the Modified Version to whoever possesses a copy</div><div class='del'>-of it.  In addition, you must do these things in the Modified Version:</div><div class='del'>-</div><div class='del'>-A. Use in the Title Page (and on the covers, if any) a title distinct</div><div class='del'>-   from that of the Document, and from those of previous versions</div><div class='del'>-   (which should, if there were any, be listed in the History section</div><div class='del'>-   of the Document).  You may use the same title as a previous version</div><div class='del'>-   if the original publisher of that version gives permission.</div><div class='del'>-B. List on the Title Page, as authors, one or more persons or entities</div><div class='del'>-   responsible for authorship of the modifications in the Modified</div><div class='del'>-   Version, together with at least five of the principal authors of the</div><div class='del'>-   Document (all of its principal authors, if it has less than five).</div><div class='del'>-C. State on the Title page the name of the publisher of the</div><div class='del'>-   Modified Version, as the publisher.</div><div class='del'>-D. Preserve all the copyright notices of the Document.</div><div class='del'>-E. Add an appropriate copyright notice for your modifications</div><div class='del'>-   adjacent to the other copyright notices.</div><div class='del'>-F. Include, immediately after the copyright notices, a license notice</div><div class='del'>-   giving the public permission to use the Modified Version under the</div><div class='del'>-   terms of this License, in the form shown in the Addendum below.</div><div class='del'>-G. Preserve in that license notice the full lists of Invariant Sections</div><div class='del'>-   and required Cover Texts given in the Document's license notice.</div><div class='del'>-H. Include an unaltered copy of this License.</div><div class='del'>-I. Preserve the section entitled "History", and its title, and add to</div><div class='del'>-   it an item stating at least the title, year, new authors, and</div><div class='del'>-   publisher of the Modified Version as given on the Title Page.  If</div><div class='del'>-   there is no section entitled "History" in the Document, create one</div><div class='del'>-   stating the title, year, authors, and publisher of the Document as</div><div class='del'>-   given on its Title Page, then add an item describing the Modified</div><div class='del'>-   Version as stated in the previous sentence.</div><div class='del'>-J. Preserve the network location, if any, given in the Document for</div><div class='del'>-   public access to a Transparent copy of the Document, and likewise</div><div class='del'>-   the network locations given in the Document for previous versions</div><div class='del'>-   it was based on.  These may be placed in the "History" section.</div><div class='del'>-   You may omit a network location for a work that was published at</div><div class='del'>-   least four years before the Document itself, or if the original</div><div class='del'>-   publisher of the version it refers to gives permission.</div><div class='del'>-K. In any section entitled "Acknowledgements" or "Dedications",</div><div class='del'>-   preserve the section's title, and preserve in the section all the</div><div class='del'>-   substance and tone of each of the contributor acknowledgements</div><div class='del'>-   and/or dedications given therein.</div><div class='del'>-L. Preserve all the Invariant Sections of the Document,</div><div class='del'>-   unaltered in their text and in their titles.  Section numbers</div><div class='del'>-   or the equivalent are not considered part of the section titles.</div><div class='del'>-M. Delete any section entitled "Endorsements".  Such a section</div><div class='del'>-   may not be included in the Modified Version.</div><div class='del'>-N. Do not retitle any existing section as "Endorsements"</div><div class='del'>-   or to conflict in title with any Invariant Section.</div><div class='del'>-</div><div class='del'>-If the Modified Version includes new front-matter sections or</div><div class='del'>-appendices that qualify as Secondary Sections and contain no material</div><div class='del'>-copied from the Document, you may at your option designate some or all</div><div class='del'>-of these sections as invariant.  To do this, add their titles to the</div><div class='del'>-list of Invariant Sections in the Modified Version's license notice.</div><div class='del'>-These titles must be distinct from any other section titles.</div><div class='del'>-</div><div class='del'>-You may add a section entitled "Endorsements", provided it contains</div><div class='del'>-nothing but endorsements of your Modified Version by various</div><div class='del'>-parties--for example, statements of peer review or that the text has</div><div class='del'>-been approved by an organization as the authoritative definition of a</div><div class='del'>-standard.</div><div class='del'>-</div><div class='del'>-You may add a passage of up to five words as a Front-Cover Text, and a</div><div class='del'>-passage of up to 25 words as a Back-Cover Text, to the end of the list</div><div class='del'>-of Cover Texts in the Modified Version.  Only one passage of</div><div class='del'>-Front-Cover Text and one of Back-Cover Text may be added by (or</div><div class='del'>-through arrangements made by) any one entity.  If the Document already</div><div class='del'>-includes a cover text for the same cover, previously added by you or</div><div class='del'>-by arrangement made by the same entity you are acting on behalf of,</div><div class='del'>-you may not add another; but you may replace the old one, on explicit</div><div class='del'>-permission from the previous publisher that added the old one.</div><div class='del'>-</div><div class='del'>-The author(s) and publisher(s) of the Document do not by this License</div><div class='del'>-give permission to use their names for publicity for or to assert or</div><div class='del'>-imply endorsement of any Modified Version.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-5. COMBINING DOCUMENTS</div><div class='del'>-</div><div class='del'>-You may combine the Document with other documents released under this</div><div class='del'>-License, under the terms defined in section 4 above for modified</div><div class='del'>-versions, provided that you include in the combination all of the</div><div class='del'>-Invariant Sections of all of the original documents, unmodified, and</div><div class='del'>-list them all as Invariant Sections of your combined work in its</div><div class='del'>-license notice.</div><div class='del'>-</div><div class='del'>-The combined work need only contain one copy of this License, and</div><div class='del'>-multiple identical Invariant Sections may be replaced with a single</div><div class='del'>-copy.  If there are multiple Invariant Sections with the same name but</div><div class='del'>-different contents, make the title of each such section unique by</div><div class='del'>-adding at the end of it, in parentheses, the name of the original</div><div class='del'>-author or publisher of that section if known, or else a unique number.</div><div class='del'>-Make the same adjustment to the section titles in the list of</div><div class='del'>-Invariant Sections in the license notice of the combined work.</div><div class='del'>-</div><div class='del'>-In the combination, you must combine any sections entitled "History"</div><div class='del'>-in the various original documents, forming one section entitled</div><div class='del'>-"History"; likewise combine any sections entitled "Acknowledgements",</div><div class='del'>-and any sections entitled "Dedications".  You must delete all sections</div><div class='del'>-entitled "Endorsements."</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-6. COLLECTIONS OF DOCUMENTS</div><div class='del'>-</div><div class='del'>-You may make a collection consisting of the Document and other documents</div><div class='del'>-released under this License, and replace the individual copies of this</div><div class='del'>-License in the various documents with a single copy that is included in</div><div class='del'>-the collection, provided that you follow the rules of this License for</div><div class='del'>-verbatim copying of each of the documents in all other respects.</div><div class='del'>-</div><div class='del'>-You may extract a single document from such a collection, and distribute</div><div class='del'>-it individually under this License, provided you insert a copy of this</div><div class='del'>-License into the extracted document, and follow this License in all</div><div class='del'>-other respects regarding verbatim copying of that document.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-7. AGGREGATION WITH INDEPENDENT WORKS</div><div class='del'>-</div><div class='del'>-A compilation of the Document or its derivatives with other separate</div><div class='del'>-and independent documents or works, in or on a volume of a storage or</div><div class='del'>-distribution medium, does not as a whole count as a Modified Version</div><div class='del'>-of the Document, provided no compilation copyright is claimed for the</div><div class='del'>-compilation.  Such a compilation is called an "aggregate", and this</div><div class='del'>-License does not apply to the other self-contained works thus compiled</div><div class='del'>-with the Document, on account of their being thus compiled, if they</div><div class='del'>-are not themselves derivative works of the Document.</div><div class='del'>-</div><div class='del'>-If the Cover Text requirement of section 3 is applicable to these</div><div class='del'>-copies of the Document, then if the Document is less than one quarter</div><div class='del'>-of the entire aggregate, the Document's Cover Texts may be placed on</div><div class='del'>-covers that surround only the Document within the aggregate.</div><div class='del'>-Otherwise they must appear on covers around the whole aggregate.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-8. TRANSLATION</div><div class='del'>-</div><div class='del'>-Translation is considered a kind of modification, so you may</div><div class='del'>-distribute translations of the Document under the terms of section 4.</div><div class='del'>-Replacing Invariant Sections with translations requires special</div><div class='del'>-permission from their copyright holders, but you may include</div><div class='del'>-translations of some or all Invariant Sections in addition to the</div><div class='del'>-original versions of these Invariant Sections.  You may include a</div><div class='del'>-translation of this License provided that you also include the</div><div class='del'>-original English version of this License.  In case of a disagreement</div><div class='del'>-between the translation and the original English version of this</div><div class='del'>-License, the original English version will prevail.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-9. TERMINATION</div><div class='del'>-</div><div class='del'>-You may not copy, modify, sublicense, or distribute the Document except</div><div class='del'>-as expressly provided for under this License.  Any other attempt to</div><div class='del'>-copy, modify, sublicense or distribute the Document is void, and will</div><div class='del'>-automatically terminate your rights under this License.  However,</div><div class='del'>-parties who have received copies, or rights, from you under this</div><div class='del'>-License will not have their licenses terminated so long as such</div><div class='del'>-parties remain in full compliance.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-10. FUTURE REVISIONS OF THIS LICENSE</div><div class='del'>-</div><div class='del'>-The Free Software Foundation may publish new, revised versions</div><div class='del'>-of the GNU Free Documentation License from time to time.  Such new</div><div class='del'>-versions will be similar in spirit to the present version, but may</div><div class='del'>-differ in detail to address new problems or concerns.  See</div><div class='del'>-http://www.gnu.org/copyleft/.</div><div class='del'>-</div><div class='del'>-Each version of the License is given a distinguishing version number.</div><div class='del'>-If the Document specifies that a particular numbered version of this</div><div class='del'>-License "or any later version" applies to it, you have the option of</div><div class='del'>-following the terms and conditions either of that specified version or</div><div class='del'>-of any later version that has been published (not as a draft) by the</div><div class='del'>-Free Software Foundation.  If the Document does not specify a version</div><div class='del'>-number of this License, you may choose any version ever published (not</div><div class='del'>-as a draft) by the Free Software Foundation.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-ADDENDUM: How to use this License for your documents</div><div class='del'>-</div><div class='del'>-To use this License in a document you have written, include a copy of</div><div class='del'>-the License in the document and put the following copyright and</div><div class='del'>-license notices just after the title page:</div><div class='del'>-</div><div class='del'>-      Copyright (c)  YEAR  YOUR NAME.</div><div class='del'>-      Permission is granted to copy, distribute and/or modify this document</div><div class='del'>-      under the terms of the GNU Free Documentation License, Version 1.1</div><div class='del'>-      or any later version published by the Free Software Foundation;</div><div class='del'>-      with the Invariant Sections being LIST THEIR TITLES, with the</div><div class='del'>-      Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.</div><div class='del'>-      A copy of the license is included in the section entitled "GNU</div><div class='del'>-      Free Documentation License".</div><div class='del'>-</div><div class='del'>-If you have no Invariant Sections, write "with no Invariant Sections"</div><div class='del'>-instead of saying which ones are invariant.  If you have no</div><div class='del'>-Front-Cover Texts, write "no Front-Cover Texts" instead of</div><div class='del'>-"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.</div><div class='del'>-</div><div class='del'>-If your document contains nontrivial examples of program code, we</div><div class='del'>-recommend releasing these examples in parallel under your choice of</div><div class='del'>-free software license, such as the GNU General Public License,</div><div class='del'>-to permit their use in free software.</div><div class='head'>diff --git a/ChangeLog b/ChangeLog<br/>deleted file mode 100644<br/>index 32bcc58d0b..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/ChangeLog?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>ChangeLog</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7213 +0,0 @@</div><div class='del'>-2001-10-23  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: and add a way to get some more spew about the</div><div class='del'>-	commands we're executing.</div><div class='del'>-</div><div class='del'>-2001-10-23  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: use eq instead of ==.</div><div class='del'>-</div><div class='del'>-2001-10-23  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped required GAL to 0.15.99.3 so EEntry's</div><div class='del'>-	"draw_button" argument can be used in</div><div class='del'>-	addressbook/gui/component/select-names/e-select-names.c.</div><div class='del'>-</div><div class='del'>-2001-10-22  Damon Chaplin  &lt;damon@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: bumped required GAL to 0.15.99.2.</div><div class='del'>-</div><div class='del'>-2001-10-22  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h: HAVE_KDE_APPLNK.</div><div class='del'>-</div><div class='del'>-	* configure.in (EVO_CHECK_LIB): AC_DEFINE `HAVE_KDE_APPLNK' in the</div><div class='del'>-	case in which the kde applnk dir is found.  Also fix the logic</div><div class='del'>-	with the checking so it doesn't get fooled.</div><div class='del'>-</div><div class='del'>-2001-10-22  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* data/Makefile.am: include destdir in the path of the kde desktop</div><div class='del'>-	installation dir</div><div class='del'>-</div><div class='del'>-2001-10-20  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* data/Makefile.am [HAVE_KDE_APPLNK]: Install `evolution.desktop'</div><div class='del'>-	in the `KDE_APPLNK_DIR'.</div><div class='del'>-</div><div class='del'>-	* configure.in: New option `--with-kde-applnk-path'.  Define the</div><div class='del'>-	`HAVE_KDE_APPLNK' Automake conditional, and the `KDE_APPLNK_DIR'</div><div class='del'>-	value.</div><div class='del'>-</div><div class='del'>-2001-10-19  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/Makefile.am (EXTRA_DIST): Merge the two EXTRA_DIST</div><div class='del'>-	declarations together so they both happen.</div><div class='del'>-</div><div class='del'>-2001-10-18  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: use a new fangled perl script that queries oaf for</div><div class='del'>-	interfaces we want to kill.</div><div class='del'>-</div><div class='del'>-2001-10-18  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped the required version of gal to 0.15.99.1</div><div class='del'>-	for use in evolution-addressbook-export.</div><div class='del'>-</div><div class='del'>-	* tools/.cvsignore: Added evolution-addressbook-clean,</div><div class='del'>-	evolution-addressbook-export, evolution-addressbook-import, and</div><div class='del'>-	.libs.</div><div class='del'>-</div><div class='del'>-	* tools/Makefile.am: Added evolution-addressbook-clean,</div><div class='del'>-	evolution-addressbook-export, and evolution-addressbook-import.</div><div class='del'>-</div><div class='del'>-	* tools/evolution-addressbook-clean.in: Main script to clean up</div><div class='del'>-	the local contact database.</div><div class='del'>-</div><div class='del'>-	* tools/evolution-addressbook-export.c: Exports the local</div><div class='del'>-	addressbook to the specified file</div><div class='del'>-	(--output-file).  If no --output-file is given, writes out to a</div><div class='del'>-	unique file in the /tmp directory.  In either case, prints the</div><div class='del'>-	filename to stdout.</div><div class='del'>-</div><div class='del'>-	* tools/evolution-addressbook-import.c: Imports the specified file</div><div class='del'>-	(--input-file) to the local addressbook.</div><div class='del'>-</div><div class='del'>-2001-10-18  Wang Jian  &lt;lark@linux.net.cn&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in(ALL_LINGUAS): Added zh_CN for Simplified Chinese.</div><div class='del'>-</div><div class='del'>-2001-10-17  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Addressbook): Wrote Addressbook news.</div><div class='del'>-</div><div class='del'>-2001-10-12  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: kill evolution-ldif-importer.</div><div class='del'>-</div><div class='del'>-2001-10-11  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Fix the order of the help/ subdirs.</div><div class='del'>-	These must be sorted as a preorder walk for a tree!</div><div class='del'>-</div><div class='del'>-2001-10-10  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: 0.16.99.</div><div class='del'>-</div><div class='del'>-2001-10-10  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: 0.16.  Require GtkHTML 0.15 or later and GAL 0.14</div><div class='del'>-	or later.  Also, make $with_nspr_includes default to</div><div class='del'>-	`/usr/include/nspr' instead of `/usr/include/mozilla' and</div><div class='del'>-	$with_nss_includes to `/usr/include/moznss' instead of</div><div class='del'>-	`/usr/include/mozilla'.</div><div class='del'>-</div><div class='del'>-2001-10-10  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Added info about the shell, plus some minor fixes for</div><div class='del'>-	consistency.</div><div class='del'>-</div><div class='del'>-2001-10-10  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Addressbook): Updated.</div><div class='del'>-</div><div class='del'>-2001-10-09  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Calendar): Calendar NEWS.</div><div class='del'>-</div><div class='del'>-2001-10-09    &lt;NotZed@Ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Mailer): Updated for beta 6.</div><div class='del'>-</div><div class='del'>-2001-10-09  Rodrigo Moya &lt;rodrigo@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add libart to list of libraries to use in</div><div class='del'>-	EXTRA_GNOME_CFLAGS/LIBS, which is needed for latest libart versions</div><div class='del'>-</div><div class='del'>-2001-10-09  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: AC_OUTPUT(default_user/local/Makefile) before</div><div class='del'>-	AC_OUTPUT()ing the other subdirs of `default_user/local'.  Fix</div><div class='del'>-	pointed out by Dmitry G. Mastrukov &lt;dmitry@fitmark.net&gt;.</div><div class='del'>-</div><div class='del'>-2001-10-07  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove movemail check, since it's not relevant any</div><div class='del'>-	more.</div><div class='del'>-</div><div class='del'>-2001-10-05  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped required version of gtkhtml to 0.14.99.1</div><div class='del'>-</div><div class='del'>-2001-10-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped required version of gal to 0.13.99.1.</div><div class='del'>-</div><div class='del'>-2001-10-01  Aaron Weber &lt;aaron@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* help/C/Makefile.am: removed an extraneous tab.</div><div class='del'>-	</div><div class='del'>-2001-10-01  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: 0.15.99.</div><div class='del'>-</div><div class='del'>-2001-10-01  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: 0.15.  Require gal 0.13 and gtkhtml 0.14.</div><div class='del'>-</div><div class='del'>-2001-10-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Addressbook): Added more news.</div><div class='del'>-</div><div class='del'>-2001-09-30  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (nspr_libs): Order the linkline to be the same as</div><div class='del'>-	the order in Mozilla (it is suggested that they be in this order).</div><div class='del'>-	(nss_libs): Same.</div><div class='del'>-</div><div class='del'>-2001-09-27  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove references to the "compose" program, since</div><div class='del'>-	that functionality went into the shell.</div><div class='del'>-	(AC_OUTPUT): Sort and remove duplicates.</div><div class='del'>-</div><div class='del'>-	* cmdline/*: gone</div><div class='del'>-</div><div class='del'>-2001-09-26  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added a flag to enable pedantic PGP/MIME - this is</div><div class='del'>-	not recommended for end-users. It is mostly meant for testing</div><div class='del'>-	purposes.</div><div class='del'>-</div><div class='del'>-2001-09-26  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: make sure the solaris network libs get added to</div><div class='del'>-	the LDAP link line before we test for openldap.  Thanks to Frank</div><div class='del'>-	Belew for finding this.</div><div class='del'>-</div><div class='del'>-2001-09-22  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped the required version of gal to 0.12.99.0.</div><div class='del'>-</div><div class='del'>-2001-09-21  Nat Friedman  &lt;nat@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_MICRO_VERSION): Changed to 99.</div><div class='del'>-	(VERSION): Added ".$EVOLUTION_MICRO_VERSION" suffix.</div><div class='del'>-</div><div class='del'>-2001-09-21  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump version to 0.14.  Depend on gal &gt;= 0.12,</div><div class='del'>-	gtkhtml &gt;= 0.13.</div><div class='del'>-</div><div class='del'>-2001-09-21  Michael Zucchi  &lt;NotZed@Ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Mail): Updated.</div><div class='del'>-</div><div class='del'>-2001-09-21  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Addressbook): Added more NEWS items here.</div><div class='del'>-</div><div class='del'>-2001-09-19  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove dead directory from AC_OUTPUT</div><div class='del'>-</div><div class='del'>-2001-09-16  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated required version of gal to 0.11.99.4.</div><div class='del'>-</div><div class='del'>-2001-09-14  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: remove unneeded conditionals</div><div class='del'>-</div><div class='del'>-2001-09-13  Yanko Kaneti  &lt;yaneti@declera.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ALL_LINGUAS): Added bg to ALL_LINGUAS.</div><div class='del'>-</div><div class='del'>-2001-09-13  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* data/evolution.mime: override the gnome-vfs.mime to match .vcf</div><div class='del'>-	as text/x-vcard.</div><div class='del'>-</div><div class='del'>-2001-09-11  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: temporarily disable zh_TW</div><div class='del'>-</div><div class='del'>-2001-09-10  Abel Cheung  &lt;maddog@linux.org.hk&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added "zh_TW" to ALL_LINGUAS.</div><div class='del'>-</div><div class='del'>-2001-09-07  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: one-line OpenSSL fix from Yanko Kaneti</div><div class='del'>-	&lt;yaneti@declera.com&gt;</div><div class='del'>-</div><div class='del'>-2001-09-05  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Updated slightly.</div><div class='del'>-</div><div class='del'>-2001-09-04  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[Fixes by Neil Conway &lt;neilconway@home.com, as per #8090.]</div><div class='del'>-</div><div class='del'>-	* configure.in: Fix the error message if scrollkeeper is not found.</div><div class='del'>-</div><div class='del'>-	* README: A bunch of minor fixes, tweaks and cleanups.</div><div class='del'>-</div><div class='del'>-2001-09-04  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[Fix #8089, Undocumented Scrollkeeper dependency.]</div><div class='del'>-</div><div class='del'>-	* README: Add scrollkeeper 0.1.4 to the list of dependencies.</div><div class='del'>-</div><div class='del'>-2001-09-04  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Only check for OpenSSL if we were not able to find</div><div class='del'>-	Mozilla's NSS libraries.</div><div class='del'>-</div><div class='del'>-2001-09-04  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* omf-install/Makefile.am (install-data-local): Don't put</div><div class='del'>-	$(srcdir) in the file path twice.</div><div class='del'>-</div><div class='del'>-2001-09-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped the required version of gal to 0.11.99.2.</div><div class='del'>-</div><div class='del'>-2001-08-31  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped required version of GAL to 0.11.3</div><div class='del'>-	(for g_utf8_collate)</div><div class='del'>-</div><div class='del'>-2001-08-24  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[Patch from Nike Gerdts &lt;michael.gerdts@usa.alcatel.com&gt; for</div><div class='del'>-	#6882, DB3_CFLAGS and DB3_LDFLAGS order messes up CPPFLAGS and</div><div class='del'>-	LDFLAGS.]</div><div class='del'>-</div><div class='del'>-	* configure.in: Put DB3_CFLAGS before the already-defined CPPFLAGS</div><div class='del'>-	instead of after them; likewise, put DB3_LDADD before the already</div><div class='del'>-	defined LDADD.</div><div class='del'>-</div><div class='del'>-2001-08-24  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: We don't need to check for both bonobo-conf 0.11</div><div class='del'>-	AND bonobo-conf 0.2.</div><div class='del'>-</div><div class='del'>-2001-08-22  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: 0.13.99.</div><div class='del'>-</div><div class='del'>-2001-08-22  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump requirements to GAL 0.11, bonobo-conf 0.11,</div><div class='del'>-	GtkHTML 0.12.  Don't autogen</div><div class='del'>-	`doc/devel/executive-summary/Makefile'.  Bump version number to</div><div class='del'>-	0.13.</div><div class='del'>-</div><div class='del'>-2001-08-21  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Global): Added.</div><div class='del'>-</div><div class='del'>-2001-08-21  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Addressbook): Updated NEWS for addressbook.</div><div class='del'>-</div><div class='del'>-2001-08-21  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Mail): Updated some more.</div><div class='del'>-</div><div class='del'>-2001-08-21  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Updated.</div><div class='del'>-</div><div class='del'>-2001-08-20  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require gal 0.10.99.5.</div><div class='del'>-</div><div class='del'>-2001-08-19  Aaron Weber  &lt;aaron@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	*Makefile.am: added "help" to subdirs.</div><div class='del'>-	</div><div class='del'>-2001-08-19  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* omf-install/Makefile.am (scrollkeeper_localstate_dir) use</div><div class='del'>-	$(SCROLLKEEPER_LOCALSTATE_DIR), and not something based on</div><div class='del'>-	evolution's local state dir.  this should fix the core dumps</div><div class='del'>-	during install on freebsd and solaris.</div><div class='del'>-</div><div class='del'>-	* configure.in (GLIB_CONFIG): use $GLIB_CONFIG if it's set,</div><div class='del'>-	otherwise default to glib-config.  a cheap solution to get this</div><div class='del'>-	working on freebsd (where they have glib12-config, but not</div><div class='del'>-	glib-config.)  also, switch all `glib-config`s to `$GLIB_CONFIG`.</div><div class='del'>-	(SCROLLKEEPER_LOCALSTATE_DIR): use scrollkeeper-config to figure</div><div class='del'>-	this out, and AC_SUBST so omf-install/Makefile.am can use it.</div><div class='del'>-</div><div class='del'>-2001-08-17  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Move the libical compile order.</div><div class='del'>-</div><div class='del'>-2001-08-16  "Big Iain" Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add widgets/e-timezone-dialog/Makefile</div><div class='del'>-</div><div class='del'>-2001-08-16  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* AUTHORS: I know what you did last summer!</div><div class='del'>-</div><div class='del'>-2001-08-16  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require gal 0.10.99.3.</div><div class='del'>-</div><div class='del'>-2001-08-16  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* README: Some info on adding --localstatedir to the configure</div><div class='del'>-	options.</div><div class='del'>-	* Makefile.am: Added omf-install to the build.</div><div class='del'>-	* configure.in: Adjust for the move of the user docs.</div><div class='del'>-	</div><div class='del'>-2001-08-15  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Addded missing dirs to the build. Add checks for</div><div class='del'>-	scrollkeeper and jw to get the docs building on later Red Hat's.</div><div class='del'>-	* omf-install/*: Added this for integration with scrollkeeper.</div><div class='del'>-	</div><div class='del'>-2001-08-14  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (LDAP_LIBS): Remove an obvious typo reported by</div><div class='del'>-	Miles</div><div class='del'>-</div><div class='del'>-2001-08-11  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* README: Be truthful about the versions of libs we need.</div><div class='del'>-	</div><div class='del'>-2001-08-10  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: if libldap.la is there, default to static linking</div><div class='del'>-	of openldap.  if it's not, default to dynamic.  also, provide</div><div class='del'>-	--with-static-ldap for users that want to override these defaults.</div><div class='del'>-</div><div class='del'>-2001-08-09  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: link statically with OpenLDAP.</div><div class='del'>-</div><div class='del'>-2001-08-09  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require GAL 0.10.99.2.</div><div class='del'>-</div><div class='del'>-2001-08-09  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: Added #!/bin/sh</div><div class='del'>-</div><div class='del'>-2001-08-08  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Don't link to libnssckbi3 when linking to nss.</div><div class='del'>-</div><div class='del'>-2001-08-08  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update pilot information</div><div class='del'>-</div><div class='del'>-2001-08-07  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require gal 0.10.99.1 or greater.</div><div class='del'>-</div><div class='del'>-2001-08-05  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[Fixes #5594, "killev doesn't kill all evolution processes".]</div><div class='del'>-</div><div class='del'>-	* tools/killev: Added bonobo-moniker-xmldb, gnome-gtkhtml-editor</div><div class='del'>-	and gnome-spell-component.</div><div class='del'>-</div><div class='del'>-2001-07-31  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump version number to 0.12.99.</div><div class='del'>-</div><div class='del'>-2001-07-31  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Ooops.  We want GAL &gt;= 0.10.0 and GtkHTML &gt;=</div><div class='del'>-	0.11.0.</div><div class='del'>-</div><div class='del'>-2001-07-31  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove `$EVOLUTION_MICRO_VERSION' from `VERSION'.</div><div class='del'>-	(EVO_CHECK_LIB): </div><div class='del'>-</div><div class='del'>-2001-07-31  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump version number to 0.12.0.</div><div class='del'>-</div><div class='del'>-2001-07-31  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Added info about the shell changes and slightly changed</div><div class='del'>-	the formatting for the addressbook ones.</div><div class='del'>-</div><div class='del'>-	* configure.in: Require GtkHTML 0.10.0 and GAL 0.9.0.</div><div class='del'>-</div><div class='del'>-2001-07-31  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Addressbook): Updated NEWS for addressbook.</div><div class='del'>-</div><div class='del'>-2001-07-31  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: bump required version of gtkhtml to 0.10.99.</div><div class='del'>-</div><div class='del'>-2001-07-20  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump to 0.11.99</div><div class='del'>-</div><div class='del'>-2001-07-17  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Fix up the "exactly version N" case of EVO_CHECK_LIB</div><div class='del'>-</div><div class='del'>-2001-07-16  Not Zed  &lt;NotZed@Ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Changed to use test -h instead of -L for checking</div><div class='del'>-	/var/mail vs /var/spool/mail</div><div class='del'>-</div><div class='del'>-2001-07-13  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: more updates</div><div class='del'>-</div><div class='del'>-2001-07-13  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Mail): Merged mine and Peter's entries.</div><div class='del'>-</div><div class='del'>-2001-07-12  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Start new entry</div><div class='del'>-</div><div class='del'>-2001-07-11  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Add HAVE_BROKEN_SPOOL here.</div><div class='del'>-</div><div class='del'>-2001-07-10  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (have_nss_includes): Fix nss include check to work.</div><div class='del'>-</div><div class='del'>-2001-07-11  Not Zed  &lt;NotZed@Ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added option --with-broken-spool for solaris mbox</div><div class='del'>-	spool format.</div><div class='del'>-</div><div class='del'>-2001-07-10  Marius Andreiana  &lt;mandreiana@yahoo.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added ro (Romanian) to ALL_LINGUAS</div><div class='del'>-</div><div class='del'>-2001-07-05  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (SYSTEM_MAIL_DIR): Make sure /var/mail</div><div class='del'>-	isn't a symbolic link such as on Red Hat 7.</div><div class='del'>-</div><div class='del'>-2001-07-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Upped the required version of gal.</div><div class='del'>-</div><div class='del'>-2001-07-03  Dietmar Maurer  &lt;dietmar@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* *: use bonobo-conf everywhere</div><div class='del'>-	</div><div class='del'>-2001-07-03  Damon Chaplin  &lt;damon@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (MAILER_LIBS):</div><div class='del'>-	(MAILER_CFLAGS): added bonobo_conf.</div><div class='del'>-</div><div class='del'>-2001-07-02  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Made evolution depend on bonobo-conf 0.2.</div><div class='del'>-</div><div class='del'>-2001-07-02  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gtkhtml 0.9.99.1. </div><div class='del'>-</div><div class='del'>-2001-07-02  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for libGal 0.8.99.7.</div><div class='del'>-</div><div class='del'>-2001-07-02  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (evolution_db_version): s,AC_DEFINE,AC_DEFINE_UNQUOTED</div><div class='del'>-	to make these not totally useless.</div><div class='del'>-</div><div class='del'>-2001-07-01  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Build the composer after the addressbook,</div><div class='del'>-	as it needs some CORBA stuff from the latter.</div><div class='del'>-</div><div class='del'>-2001-06-30  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: Added evolution-alarm-notify.</div><div class='del'>-</div><div class='del'>-2001-06-29  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require GAL 0.8.99.6.</div><div class='del'>-</div><div class='del'>-2001-06-29  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add `camel/tests/mime-filter/Makefile' to the</div><div class='del'>-	`AC_OUTPUT()' list.</div><div class='del'>-</div><div class='del'>-2001-06-27  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (gal): Bump required gal version for new accessors</div><div class='del'>-	in ETree.</div><div class='del'>-</div><div class='del'>-2001-06-24  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add addressbook/gui/contact-list-editor, and</div><div class='del'>-	correct path of contact-editor.</div><div class='del'>-</div><div class='del'>-2001-06-21  Rodrigo Moya &lt;rodrigo@gnome-db.org&gt;</div><div class='del'>-</div><div class='del'>-	* libwombat/: added new directory for the libwombat library, which</div><div class='del'>-	will contain the implementation of all CORBA interfaces defined</div><div class='del'>-	in the wombat.idl file</div><div class='del'>-</div><div class='del'>-2001-06-21  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Fix the OpenLDAP check to default to "no" if you</div><div class='del'>-	don't specify anything.</div><div class='del'>-</div><div class='del'>-2001-06-20  Kevin Breit  &lt;battery841@mediaone.net&gt;</div><div class='del'>-</div><div class='del'>-	* docs/C/usage-sync: Reworded a little bit for more descrip.</div><div class='del'>-</div><div class='del'>-2001-06-20  Kevin Breit  &lt;battery841@mediaone.net&gt;</div><div class='del'>-</div><div class='del'>-	* doc/C/usage-calendar.sgml: Documented categorizing an event.</div><div class='del'>-</div><div class='del'>-2001-06-20  Kevin Breit  &lt;battery841@mediaone.net&gt;</div><div class='del'>-</div><div class='del'>-	* doc/C/usage-mail.sgml: Updated Bcc: example</div><div class='del'>-</div><div class='del'>-2001-06-20  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Change --enable-ldap to --with-openldap, allow a</div><div class='del'>-	path prefix as an argument. Add some libtooly goodness to the</div><div class='del'>-	libldap check in case it depends on ssl libraries.</div><div class='del'>-</div><div class='del'>-2001-06-19  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Tweak the db3 header check to like our RH7 build</div><div class='del'>-	machine again.</div><div class='del'>-</div><div class='del'>-2001-06-19  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* libversit/vcc.y (LexBuf): Changed buf to an int here.</div><div class='del'>-	(lexGetQuotedPrintable): Changed cur to an int here.</div><div class='del'>-</div><div class='del'>-2001-06-18  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add "--with-db3" to fill in both</div><div class='del'>-	--with-db3-includes and --with-db3-libs. Make them get cached</div><div class='del'>-	properly so you don't need to specify it every time. Simplify some</div><div class='del'>-	code.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Add #defines for the current supported db3 version</div><div class='del'>-	so that when we change it we don't have to hunt all of them down</div><div class='del'>-</div><div class='del'>-2001-06-18  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check the modes on $system_mail_dir and set up</div><div class='del'>-	variables for camel/Makefile to make camel-lock-helper</div><div class='del'>-	setuid/setgid.</div><div class='del'>-</div><div class='del'>-2001-06-11  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: One slight db3 check correction</div><div class='del'>-</div><div class='del'>-2001-06-11  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: fix typo in -ldb3 check.</div><div class='del'>-</div><div class='del'>-2001-06-11  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Update db3 configure checks for RedHat. /me beats</div><div class='del'>-	a sleeping cat to death</div><div class='del'>-</div><div class='del'>-2001-06-09  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped required version of gal to 0.8.99.2.</div><div class='del'>-</div><div class='del'>-2001-06-09  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added addressbook/gui/merging/Makefile.</div><div class='del'>-</div><div class='del'>-2001-06-08  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* my-evolution/Makefile.am (INCLUDES): builddir != srcdir fix.</div><div class='del'>-</div><div class='del'>-2001-06-08  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Byebye executive-summary, hello my-evolution</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove all the executive-summary Makefiles. Add the</div><div class='del'>-	my-evolution.</div><div class='del'>-</div><div class='del'>-2001-06-08  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* AUTHORS: Vanity, thy name is trow.</div><div class='del'>-</div><div class='del'>-2001-06-05  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* config.log: Bump version to 0.10.99</div><div class='del'>-</div><div class='del'>-2001-05-31  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Included information about db3.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Added HAVE_DB_H and HAVE_DB3_DB_H.</div><div class='del'>-</div><div class='del'>-	* configure.in: Added various checks for db3 libraries and</div><div class='del'>-	includes.  Of note are the new configure options</div><div class='del'>-	--with-db3-includes=PREFIX and --with-db3-libs=PREFIX to specify</div><div class='del'>-	the location for your db3 library.</div><div class='del'>-</div><div class='del'>-2001-05-31  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (GTKHTML_DATADIR): Use --moddatadir to derive this.</div><div class='del'>-</div><div class='del'>-2001-05-30  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump gal dependency to 0.8.99.1</div><div class='del'>-</div><div class='del'>-2001-05-29  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: update version requirements</div><div class='del'>-</div><div class='del'>-2001-05-23  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Remove reference to verify-evolution-install.sh since it</div><div class='del'>-	doesn't work any more.</div><div class='del'>-</div><div class='del'>-	* configure.in (EVO_CHECK_LIB): allow this to take a max version</div><div class='del'>-	too, mostly so we can bound the allowable gal versions for</div><div class='del'>-	releases, but also to require libxml &lt; 2.0.</div><div class='del'>-	(OpenSSL): Fixicate to work on NetBSD (OpenSSL in /usr, no libdl).</div><div class='del'>-</div><div class='del'>-2001-05-23  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: s/evolution-vcard-import/evolution-vcard-importer</div><div class='del'>-	</div><div class='del'>-2001-05-22  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Create MAILER_CFLAGS and MAILER_LIBS so that we</div><div class='del'>-	don't have the same libs multiple times in the libtool</div><div class='del'>-	command-line.</div><div class='del'>-</div><div class='del'>-2001-05-20  Duncan Mak  &lt;duncan@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev (sysname): Add in evolution-vcard-importer as part</div><div class='del'>-	of the list of processes to kill in killev.</div><div class='del'>-</div><div class='del'>-2001-05-18  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Changed build order.  Now addressbook</div><div class='del'>-	gets built before mail.</div><div class='del'>-</div><div class='del'>-2001-05-15  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Create CAMEL_CFLAGS and CAMEL_LIBS so that we</div><div class='del'>-	don't have to link in all sorts of unnecessary garbage from GNOME</div><div class='del'>-	that we don't need.</div><div class='del'>-</div><div class='del'>-2001-05-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: add the importers.</div><div class='del'>-</div><div class='del'>-2001-05-14  Kevin Breit  &lt;battery841@mediaone.net&gt;</div><div class='del'>-</div><div class='del'>-	* doc/C/evolution-C.omf: added file for Scrollkeeper</div><div class='del'>-</div><div class='del'>-2001-05-09  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add the nspr includes to the list of includes used</div><div class='del'>-	to test for NSS headers, and don't assume -lpthread in the</div><div class='del'>-	nss/nspr libs - use PTHREAD_LIB.</div><div class='del'>-</div><div class='del'>-2001-05-09  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: Added rdf-summary killing stuff from R Burton</div><div class='del'>-	(r.burton@180sw.com)</div><div class='del'>-</div><div class='del'>-2001-05-09  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: OpenSSL LDFLAGS also needs to include -lcrypt</div><div class='del'>-</div><div class='del'>-2001-05-08  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Add the importers subdir.</div><div class='del'>-</div><div class='del'>-	* configure.in: Make the importers/Makefile</div><div class='del'>-</div><div class='del'>-2001-05-08  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped check for gal to 0.7.99.3.</div><div class='del'>-</div><div class='del'>-2001-05-04  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h: undef HAVE_SSL and HAVE_OPENSSL</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for OpenSSL.</div><div class='del'>-</div><div class='del'>-2001-05-05  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: upped required gtkhtml version to 0.9.3, even that is</div><div class='del'>-	not enough for idl changes.</div><div class='del'>-	* README: you need LIB_XML_1_BRANCH. updated all version requirements</div><div class='del'>-	from configure.in</div><div class='del'>-</div><div class='del'>-2001-04-26  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Don't autogen</div><div class='del'>-	`executive-summary/widgets/Makefile', as that subdir doesn't get</div><div class='del'>-	distributed anymore.</div><div class='del'>-</div><div class='del'>-2001-04-26  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: We no longer depend on libunicode.</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove check for libunicode. Remove unicode cflags</div><div class='del'>-	and libs from all CFLAGS and LIBS variables. Add GAL_LIBS for</div><div class='del'>-	things that need to depend on just gal (for gunicode).</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gethostbyname_r so e_gethostbyname_r</div><div class='del'>-	will DTRT.</div><div class='del'>-	</div><div class='del'>-2001-04-24  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump up the gal requirement</div><div class='del'>-</div><div class='del'>-2001-04-23  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Don't autogen the the Makefile for the importer</div><div class='del'>-	docs.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Build the docs last.</div><div class='del'>-</div><div class='del'>-2001-04-21  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (have_nspr_libs): We need to link in more than just</div><div class='del'>-	libnspr4, we also need libpthread.</div><div class='del'>-	(have_nss_libs): Don't forget to add nsprlibs to the LDFLAGS.</div><div class='del'>-</div><div class='del'>-2001-04-21  Duncan Mak  &lt;duncan@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (images_DATA): Added in composer-message.png.</div><div class='del'>-</div><div class='del'>-2001-04-16  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: `mail/importers/Makefile' must come after</div><div class='del'>-	`mail/Makefile'.</div><div class='del'>-</div><div class='del'>-2001-04-16  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Add `doc'.</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for Editor.idl using `$GNOME_PATH' as well.</div><div class='del'>-</div><div class='del'>-2001-04-12  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated the required version of gal to 0.6.99.0.</div><div class='del'>-</div><div class='del'>-2001-04-11  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check if gethostbyname_r take five params</div><div class='del'>-</div><div class='del'>-	* acconfig.h: add GETHOSTBYNAME_R_FIVE_ARGS </div><div class='del'>-</div><div class='del'>-2001-04-10  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* AUTHORS: /me is a translator.</div><div class='del'>-	* configure.in (EVO_CHECK_LIB): fail with AC_MSG_ERROR, not echo &amp;&amp;</div><div class='del'>-	exit 1.</div><div class='del'>-</div><div class='del'>-2001-04-10  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_DIR): create the makefile in</div><div class='del'>-	camel/tests/smime</div><div class='del'>-</div><div class='del'>-2001-04-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev (sysname): add some more 16 character versions for</div><div class='del'>-	freebsd.</div><div class='del'>-</div><div class='del'>-2001-04-04  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* AUTHORS: Brag.</div><div class='del'>-	</div><div class='del'>-2001-04-04  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* art/evolution-today-mini.png: converted from exec-16-summary.xpm,</div><div class='del'>-	removed the latter.</div><div class='del'>-	* art/evolution-trash.png, art/evolution-trash-mini.png: images for</div><div class='del'>-	trash folder, one converted from deleted_message.xpm, another from mc.</div><div class='del'>-	* art/Makefile.am: install.</div><div class='del'>-</div><div class='del'>-2001-04-02  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README (SSL): Remind users that they will currently have to copy</div><div class='del'>-	their cert database from their mozilla directory into ~/evolution.</div><div class='del'>-</div><div class='del'>-2001-04-01  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: added missing (new) files.</div><div class='del'>-</div><div class='del'>-2001-03-30  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_MICRO_VERSION): Bump this to 10. (We</div><div class='del'>-	forgot to do this before branching *again*...)</div><div class='del'>-</div><div class='del'>-2001-03-28  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: add a bit mentioning that if configure claims you don't</div><div class='del'>-	have something installed when you think you do, that it's probably</div><div class='del'>-	because you installed it in the wrong prefix, or because you need</div><div class='del'>-	a -devel package.</div><div class='del'>-</div><div class='del'>-	* configure.in: Add a new macro EVO_CHECK_LIB that checks for a</div><div class='del'>-	gnome-config-based library of a given version or later, correctly,</div><div class='del'>-	and if doesn't find it, suggests that you consult the README. Fix</div><div class='del'>-	the various library checks to use this. Meanwhile, remove a bunch</div><div class='del'>-	of old cruft and reorganize a little.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Remove cruft</div><div class='del'>-</div><div class='del'>-2001-03-28  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* AUTHORS: In a burst of egomania, added myself.</div><div class='del'>-</div><div class='del'>-2001-03-26  Radek Doulik  &lt;rodo@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: create camel/misc/Makefile</div><div class='del'>-</div><div class='del'>-2001-03-22  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update xml-i18n-tools version</div><div class='del'>-</div><div class='del'>-2001-03-22  Jakub Steiner &lt;jimmac@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/new-message.xpm: file-&gt;new-&gt;mail message</div><div class='del'>-	* art/folder.xpm: file-&gt;new-&gt;folder</div><div class='del'>-	* art/new_appointment.xpm: file-&gt;new-&gt;appontment</div><div class='del'>-	* art/print-preview.xpm: file-&gt;print preview</div><div class='del'>-	* art/configure_16_calendar.xpm: for the tools menu</div><div class='del'>-</div><div class='del'>-2001-03-22  Jakub Steiner &lt;jimmac@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/splash.png: move it a bit up so the icons fit better</div><div class='del'>-</div><div class='del'>-2001-03-22  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped gal requirement to 0.5.99.11.</div><div class='del'>-</div><div class='del'>-2001-03-22  Jakub Steiner &lt;jimmac@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/configure_16_folder.xpm, configure_16_mail.xpm,</div><div class='del'>-	copy_16_message.xpm, edit.xpm, encrypt.xpm,</div><div class='del'>-	evo-16-address-conduit.png, evo-16-calendar-conduit.png,</div><div class='del'>-	evo-16-todo-conduit.png, exec-16-summary.xpm, import.xpm,</div><div class='del'>-	print.xpm, reply_to_all.xpm, reply.xpm, save.xpm,</div><div class='del'>-	send-receive.xpm, work_offline.xpm, find_contact.xpm,</div><div class='del'>-	send-24-receive.png, evo-48-calendar-conduit.png,</div><div class='del'>-	evo-48-todo-conduit.png, import.png, send-48-receive.png,</div><div class='del'>-	move_message.xpm, all_contacts.xpm, forward.xpm,</div><div class='del'>-	configure_16_addressbook.xpm, Makefile.am,</div><div class='del'>-	evo-48-address-conduit.png: renamed icons to make Miguel's</div><div class='del'>-	speedups possible</div><div class='del'>-	* art/evolution-inbox.png: color coded one</div><div class='del'>-	* art/envelope.png: reverted back to the non-color coded one</div><div class='del'>-	* art/evolution-contacts-plain.png: non-color coded one for</div><div class='del'>-	the "new contact" dialogue</div><div class='del'>-	</div><div class='del'>-2001-03-21  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require bison, not yacc (for vcc.y)</div><div class='del'>-</div><div class='del'>-2001-03-20  Miguel de Icaza  &lt;miguel@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (images_DATA): Added all the new icons to the</div><div class='del'>-	distribution.</div><div class='del'>-</div><div class='del'>-2001-03-20  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: More fixes for NSPR and NSS checks - use fixed it</div><div class='del'>-	to use AC_CHECK_HEADERS instead of AC_CHECK_FILES. Also made it</div><div class='del'>-	not default the nspr lib path to /usr/lib/mozilla which may not be</div><div class='del'>-	in the user's library path when checking for nspr libs.</div><div class='del'>-</div><div class='del'>-2001-03-20  Jakub Steiner &lt;jimmac@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/48_send-receive.png: send-receive for the s/r dialog</div><div class='del'>-	* art/24_send-receive.png: send-receive to replace the</div><div class='del'>-	fetch-mail-doggie</div><div class='del'>-	* art/16_send-receive.xpm: send-receive for (future) menu</div><div class='del'>-	item</div><div class='del'>-	* art/16_import.xpm: for the file menu</div><div class='del'>-	* art/16_work_offline.xpm: for the file menu</div><div class='del'>-	* AUTHORS: so I can show off</div><div class='del'>-	* art/splash.png: making radek famous ;)</div><div class='del'>-	* art/envelope.png, evolution-calendar.png, evolution-contacts.png, </div><div class='del'>-	evolution-tasks.png, evolution-today.png: </div><div class='del'>-	 new concept of color coded apps:</div><div class='del'>-	    - mailer: 		#efb43e</div><div class='del'>-	    - calendar:		#bab5ab</div><div class='del'>-	    - contacts: 	#9794ab</div><div class='del'>-	    - tasks:		#6e9e6e</div><div class='del'>-	    - exec. summary:	#c4757e</div><div class='del'>-	</div><div class='del'>-2001-03-19  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Fix ettore's fix ;-)</div><div class='del'>-</div><div class='del'>-2001-03-19  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped gal requirement to 0.5.99.8.</div><div class='del'>-</div><div class='del'>-2001-03-19  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Make sure we never define `NSPR_CFLAGS' or</div><div class='del'>-	`NSS_CFLAGS' as just "-I".</div><div class='del'>-</div><div class='del'>-2001-03-19  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: pulled from the 0.9 release.</div><div class='del'>-</div><div class='del'>-2001-03-18  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated the checks for NSS and NSPR</div><div class='del'>-</div><div class='del'>-2001-03-16  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Added directions on how to build with SSL support.</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated the checks for NSS and NSPR</div><div class='del'>-</div><div class='del'>-2001-03-16  Jakub Steiner &lt;jimmac@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/48_import.png: for the import druid</div><div class='del'>-</div><div class='del'>-2001-03-15  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump gal requirement to 0.5.99.7</div><div class='del'>-</div><div class='del'>-2001-03-15  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: create doc/devel/executive-summary/Makefile</div><div class='del'>-	* evolution.png: moved to art/.</div><div class='del'>-	* evolution.desktop: moved to data/.</div><div class='del'>-	* Makefile.am: reflect those moves.</div><div class='del'>-	* art/*.xpm: moved 8 files from calendar/gui here.</div><div class='del'>-	* art/Makefile.am: added moved files.</div><div class='del'>-	distribute *.xpm, install *.png and *view.xpm.</div><div class='del'>-</div><div class='del'>-2001-03-12  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated to AC_SUBST the NSPR/NSS flags.</div><div class='del'>-</div><div class='del'>-2001-03-14  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Pull up some of the clarifications from the 0.9 branch</div><div class='del'>-</div><div class='del'>-2001-03-13  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add -lresolv to LDAP_LIBS if it's there.</div><div class='del'>-</div><div class='del'>-2001-03-13  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added the mail/importers dir.</div><div class='del'>-</div><div class='del'>-2001-03-12  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Rearranged some of the dependencies to try to get them</div><div class='del'>-	into a more correct order (needed for people building all of these</div><div class='del'>-	packages by hand).</div><div class='del'>-</div><div class='del'>-2001-03-12  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update</div><div class='del'>-</div><div class='del'>-2001-03-09  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_MICRO_VERSION): Hm... probably would be</div><div class='del'>-	clever to be calling this 0.9 rather than 0.8, since it's almost</div><div class='del'>-	0.10.</div><div class='del'>-</div><div class='del'>-2001-03-09  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* libversit/vcc.y: Changed int to char when returning a character</div><div class='del'>-	from a stream (since it needs to be able to hold EOF.)</div><div class='del'>-</div><div class='del'>-2001-03-07  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Removed --enable-assbarn-security and replaced it</div><div class='del'>-	with the real options:</div><div class='del'>-	--with-nspr-includes=PREFIX</div><div class='del'>-	--with-nspr-libs=PREFIX</div><div class='del'>-	--with-nss=PREFIX</div><div class='del'>-</div><div class='del'>-	* acconfig.h: #undef HAVE_NSS</div><div class='del'>-</div><div class='del'>-2001-03-07  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require GAL 0.5.99.6 or later.</div><div class='del'>-</div><div class='del'>-2001-03-07  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* shell/main: /* xgettext:no-c-format */ before the welcome</div><div class='del'>-	message.</div><div class='del'>-	* configure.in: Don't try to generate a Makefile in</div><div class='del'>-	camel/providers/vee as it's empty.</div><div class='del'>-	</div><div class='del'>-2001-03-05  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update pilot instructions</div><div class='del'>-</div><div class='del'>-2001-03-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gal 0.5.99.4.</div><div class='del'>-</div><div class='del'>-2001-03-04  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Reorganize a bit to get rid of warnings about</div><div class='del'>-	AC_TRY_COMPILE being used before AC_ISC_POSIX</div><div class='del'>-</div><div class='del'>-2001-03-04  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added views/addressbook/Makefile.</div><div class='del'>-</div><div class='del'>-2001-03-02  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: install conduit icons</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add logic to make sure we're building against OpenLDAP &gt;= 2</div><div class='del'>-</div><div class='del'>-2001-03-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS), configure.in: Added views stuff.</div><div class='del'>-</div><div class='del'>-2001-03-01  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Redo the Kerberos stuff again to deal with the</div><div class='del'>-	stuff currently on my machine. I think it should deal with both</div><div class='del'>-	the MIT and KTH versions of both krb4 and krb5 now.</div><div class='del'>-</div><div class='del'>-2001-03-01  Jakub Steiner &lt;jimmac@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/48_evo-address-conduit.png: 48^2 version of the</div><div class='del'>-	addressbook pilot conduit. (for the new control center)</div><div class='del'>-	* art/16_evo-address-conduit.png: 16x16 version for current</div><div class='del'>-	gnomecc</div><div class='del'>-	* art/48_evo-todo-conduit.png: for new gnomecc</div><div class='del'>-	* art/16_evo-todo-conduit.png: for old gnomecc</div><div class='del'>-	* art/48_evo-calendar-conduit.png: for new gnomecc</div><div class='del'>-	* art/16_evo-calendar-conduit.png: for old gnomecc</div><div class='del'>-</div><div class='del'>-2001-03-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gal 0.5.99.2.</div><div class='del'>-</div><div class='del'>-2001-02-19  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gal 0.5.99.1.</div><div class='del'>-</div><div class='del'>-2001-02-15  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gal 0.5.99.0.</div><div class='del'>-</div><div class='del'>-2001-02-14  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* various .cvsignore files: Ignore generated .oaf files</div><div class='del'>-</div><div class='del'>-2001-02-13  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: install new files</div><div class='del'>-</div><div class='del'>-	* art/*view.xpm: add files from calendar/gui</div><div class='del'>-</div><div class='del'>-2001-02-11  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: rework ldap check logic so it'll work to</div><div class='del'>-	--disable-ldap if you've previously configured with --enable-ldap.</div><div class='del'>-</div><div class='del'>-2001-02-11  Gediminas Paulauskas &lt;menesis@delfi.lt&gt; </div><div class='del'>-</div><div class='del'>-	* data/evolution.keys, evolution.desktop: removed, they are generated.</div><div class='del'>-	* data/evolution.keys.in, evolution.desktop.in: new untranslated files.</div><div class='del'>-	* data/evolution.desktop: removed, it duplicates above. </div><div class='del'>-	* Makefile.am, data/Makefile.am: reflect above changes, merge </div><div class='del'>-	translations. </div><div class='del'>-</div><div class='del'>-2001-02-09  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added hacks to check for Mozilla libs like nspr</div><div class='del'>-	and nss that we will need for SSL and S/MIME.</div><div class='del'>-</div><div class='del'>-2001-02-09  Michael Meeks  &lt;michael@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: depend on bonobo &gt;= 0.36</div><div class='del'>-</div><div class='del'>-2001-02-08  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Upped the version number of gal required to 0.5.</div><div class='del'>-</div><div class='del'>-2001-02-07  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update to latest requirements</div><div class='del'>-</div><div class='del'>-2001-02-05  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* .cvsignore: Added xml-* files.</div><div class='del'>-</div><div class='del'>-2001-02-05  Gustavo Maciel Dias Vieira  &lt;gdvieira@zaz.com.br&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ALL_LINGUAS): Added pt_BR to ALL_LINGUAS.</div><div class='del'>-</div><div class='del'>-2001-02-04  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require version 0.4.99.8 of gal.</div><div class='del'>-</div><div class='del'>-2001-02-03  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Make sure we have gnome-libs 1.2.9 or higher.</div><div class='del'>-</div><div class='del'>-2001-02-01  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: allow --enable/disable-ldap.</div><div class='del'>-</div><div class='del'>-2001-02-01  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: Fix this script to make it work with Solaris.</div><div class='del'>-	Patch from Louise Miller.</div><div class='del'>-</div><div class='del'>-2001-01-29  Eskil Heyn Olsen  &lt;eskil@eazel.com&gt;</div><div class='del'>-</div><div class='del'>-	reviewed by: JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h:</div><div class='del'>-	Added the ENABLE_NNTP define</div><div class='del'>-	</div><div class='del'>-	* configure.in:</div><div class='del'>-	Fixed the NNTP m4 section.</div><div class='del'>-</div><div class='del'>-2001-01-29  Stanislav Visnovsky  &lt;visnovsky@nenya.ms.mff.cuni.cz&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: added sk to ALL_LINGUAS.</div><div class='del'>-	* evolution.desktop: added Slovak messages.</div><div class='del'>-</div><div class='del'>-2001-01-27  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): remove</div><div class='del'>-	widgets/shortcut-bar/Makefile from here.</div><div class='del'>-</div><div class='del'>-2001-01-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Upped the required version of gal in evolution.</div><div class='del'>-</div><div class='del'>-2001-01-25  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (images_DATA): Add the missing .xpm files.</div><div class='del'>-</div><div class='del'>-2001-01-25  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (images_DATA): Add `24_find_contacts.xpm',</div><div class='del'>-	`16_print_xpm', `16_configure_addressbook'.</div><div class='del'>-</div><div class='del'>-2001-01-25  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (images_DATA): Add `24_all_contacts.xpm'.</div><div class='del'>-</div><div class='del'>-2001-01-24  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Upped the required version of gal in evolution.</div><div class='del'>-</div><div class='del'>-2001-01-22  Tuomas Kuosmanen  &lt;tigert@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/splash.png: From the "Ideas from the shower" department:</div><div class='del'>-	new splash screen.</div><div class='del'>-</div><div class='del'>-2001-01-17  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update package requirements</div><div class='del'>-</div><div class='del'>-2001-01-19  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Changed a leftover $with_x_mailer to</div><div class='del'>-	$with_sub_version.  Made it so that if $with_sub_version isn't</div><div class='del'>-	specified, we don't try to output it, and also corrected the way</div><div class='del'>-	SUB_VERSION is defined.</div><div class='del'>-</div><div class='del'>-2001-01-18  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Um, why was the doc directory removed from SUBDIRS?</div><div class='del'>-</div><div class='del'>-2001-01-17  Larry Ewing  &lt;lewing@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_DIR): add the</div><div class='del'>-	doc/devel/importer/Makefile as a target.</div><div class='del'>-</div><div class='del'>-2001-01-17  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Add `SUB_VERSION', remove `XMAILER_VERSION'.</div><div class='del'>-</div><div class='del'>-	* configure.in: Removed `--with-x-mailer' option; replaced with a</div><div class='del'>-	more generic `--with-sub-version' option.  So, don't define</div><div class='del'>-	`X_MAILER'; instead, define `SUB_VERSION'.</div><div class='del'>-</div><div class='del'>-2001-01-16  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add --enable-nntp switch.  default is no.</div><div class='del'>-</div><div class='del'>-2001-01-16  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, acconfig.h: Add --with-x-mailer to set the version</div><div class='del'>-	string that appears in the X-Mailer header.</div><div class='del'>-</div><div class='del'>-2001-01-15  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Changed the required version of gal.</div><div class='del'>-</div><div class='del'>-2001-01-15  Tuomas Kuosmanen  &lt;tigert@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/16_copy_message.xpm, art/16_move_message.xpm: icons for the </div><div class='del'>-	Message-&gt;Move/Copy to folder -menu entries.</div><div class='del'>-</div><div class='del'>-2001-01-15  Tuomas Kuosmanen  &lt;tigert@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/evolution-calendar-mini.png: New version of calendar icon that</div><div class='del'>-	looks more like a calendar and not a dictionary or something :)</div><div class='del'>-</div><div class='del'>-	Btw, the icons get scaled for some reason, even though that is</div><div class='del'>-	not necessary as all of those should be 16x16 pixels. Can anyone look </div><div class='del'>-	into this? </div><div class='del'>-</div><div class='del'>-2001-01-15  Dietmar Maurer  &lt;dietmar@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* *.c: changed the signature of the property_bag get/set</div><div class='del'>-	functions.</div><div class='del'>-</div><div class='del'>-2001-01-14  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: remove old config message</div><div class='del'>-</div><div class='del'>-2001-01-14  Damon Chaplin  &lt;damon@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/evolution-move-tasks: new script to move tasks from the</div><div class='del'>-	Calendar folder to the new Tasks folder, so people won't lose tasks.</div><div class='del'>-	This can be deleted after a few releases.</div><div class='del'>-</div><div class='del'>-	* tools/Makefile.am (bin_SCRIPTS): added above.</div><div class='del'>-</div><div class='del'>-	* configure.in: added default_user/local/Tasks/Makefile to AC_OUTPUT.</div><div class='del'>-</div><div class='del'>-2001-01-12  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* config.h.in: Removed GPG stuff.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Take out all refs to PGP and GPG stuff.</div><div class='del'>-</div><div class='del'>-	* configure.in: Take out the PGP/GPG detection stuff.</div><div class='del'>-</div><div class='del'>-2001-01-12  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Suggest what to do if gtk-doc is not found.</div><div class='del'>-</div><div class='del'>-2001-01-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Make evolution depend on the new version of gal.</div><div class='del'>-</div><div class='del'>-2001-01-12  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* MAINTAINERS, AUTHORS, README: Ximianize. Also update the README</div><div class='del'>-	a bit and mention the OAF stable branch.</div><div class='del'>-</div><div class='del'>-2001-01-11  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/priority-high.xpm: Add a white outline around the "!" so it</div><div class='del'>-	still shows up clearly in selected rows when your theme selection</div><div class='del'>-	color is reddish. (Problem pointed out by Federico.)</div><div class='del'>-</div><div class='del'>-2001-01-11  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: At the end of the configure process, report</div><div class='del'>-	whether the documentation files will be built or not.</div><div class='del'>-</div><div class='del'>-2001-01-10  Tuomas Kuosmanen  &lt;tigert@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/move-message.png, art/move-message.png: New versions.</div><div class='del'>-</div><div class='del'>-2001-01-09  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Added calendar/gui/alarm-notify/Makefile.</div><div class='del'>-</div><div class='del'>-2001-01-05  Tuomas Kuosmanen  &lt;tigert@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/evolution-contacts-mini.png: This looks more pretty.</div><div class='del'>-</div><div class='del'>-2001-01-03  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Removed camel/providers/mbox/Makefile and</div><div class='del'>-	camel/providers/mh/Makefile.</div><div class='del'>-</div><div class='del'>-2001-01-01  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require bonobo 0.31</div><div class='del'>-</div><div class='del'>-2000-12-24  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: If we find threads ok, then always turn on</div><div class='del'>-	ENABLE_THREADS.</div><div class='del'>-</div><div class='del'>-2000-12-14  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Addressbook): Added a bit of addressbook NEWS.</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated the gal check to require gal 0.4.</div><div class='del'>-</div><div class='del'>-2000-12-14  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/mail-new.xpm, art/mail-read.xpm, art/mail-replied.xpm: Moved</div><div class='del'>-	these images each up one pixel.</div><div class='del'>-</div><div class='del'>-2000-12-14  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Update.</div><div class='del'>-</div><div class='del'>-2000-12-14  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Update</div><div class='del'>-</div><div class='del'>-2000-12-14  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/splash.png: New splash from Jimmac.</div><div class='del'>-</div><div class='del'>-2000-12-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Removed mention of ETable and EText in widgets</div><div class='del'>-	directory.</div><div class='del'>-</div><div class='del'>-2000-12-12  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Mention the gconf stable branch.</div><div class='del'>-</div><div class='del'>-2000-12-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated the required version of gal.</div><div class='del'>-</div><div class='del'>-2000-12-07  Radek Doulik  &lt;rodo@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (GTKHTML_LIBS): renamed HTMLEditor.idl to</div><div class='del'>-	Editor.idl</div><div class='del'>-</div><div class='del'>-2000-12-06  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* data/evolution.keys: Added some Norwegian translations.</div><div class='del'>-	</div><div class='del'>-2000-12-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Increased the required version of gal.</div><div class='del'>-</div><div class='del'>-2000-12-05  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: minor tweak</div><div class='del'>-</div><div class='del'>-2000-12-05  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added camel/tests/stream/Makefile.am.</div><div class='del'>-</div><div class='del'>-2000-12-01  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: gnome-vfs depends on gconf, so add that.</div><div class='del'>-</div><div class='del'>-2000-11-30  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bumped required gal version to 0.2.99.4 for</div><div class='del'>-	e_str_make_safe.</div><div class='del'>-</div><div class='del'>-	* README: Added some necessary :'s in the pilot-link cvs stuff.</div><div class='del'>-</div><div class='del'>-2000-11-30  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* calendar/gui/main.c, executive-summary/component/main.c, mail/main.c,</div><div class='del'>-	shell/main.c, notes/main.c,</div><div class='del'>-	addressbook/gui/component/addressbook-factory.c:</div><div class='del'>-	removed #ifdef ENABLE_NLS/#endif on Miguel's request.</div><div class='del'>-</div><div class='del'>-2000-11-29  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update pilot info</div><div class='del'>-</div><div class='del'>-2000-11-29  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump required gal version to 0.2.99.3 for iconv</div><div class='del'>-	changes</div><div class='del'>-</div><div class='del'>-2000-11-29  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* COPYING-DOCS: Added a copy of the GNU Free Documentation</div><div class='del'>-	License.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (EXTRA_DIST): Added COPYING-DOCS.</div><div class='del'>-</div><div class='del'>-2000-11-28  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Add USE_FLOCK, USE_FCNTL, USE_FLOCK</div><div class='del'>-</div><div class='del'>-	* configure.in: Auto* magic for various camel locking types</div><div class='del'>-</div><div class='del'>-2000-11-28  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Added camel/tests/folder/Makefile</div><div class='del'>-</div><div class='del'>-2000-11-27  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* AUTHORS: Update - hopefully I assigned blame correctly :-)</div><div class='del'>-</div><div class='del'>-	* MAINTAINERS: ditto</div><div class='del'>-</div><div class='del'>-2000-11-27  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Correct the bonobo version error message</div><div class='del'>-</div><div class='del'>-	* README: Update</div><div class='del'>-</div><div class='del'>-2000-11-24  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added camel/tests stuff to output macro.</div><div class='del'>-</div><div class='del'>-2000-11-14  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added local provider dir to output macro.</div><div class='del'>-</div><div class='del'>-2000-11-21  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for libgpgme. (Support not added to mail</div><div class='del'>-	yet.)</div><div class='del'>-</div><div class='del'>-2000-11-21  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_DIR): Removed the</div><div class='del'>-	default_user/local/Tasks/Makefile until the relevant files are on</div><div class='del'>-	CVS.</div><div class='del'>-</div><div class='del'>-2000-11-18  Miguel de Icaza  &lt;miguel@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Added widgets/menus that contains the gal-view-menus.c code from</div><div class='del'>-	Gal that depended on Bonobo.</div><div class='del'>-</div><div class='del'>-	* configure.in: Update list of Makefiles;  </div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Update.</div><div class='del'>-</div><div class='del'>-2000-11-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Update the gal reqiurement version.</div><div class='del'>-</div><div class='del'>-2000-11-10  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require Bonobo &gt;= 0.29, due to the XSync</div><div class='del'>-	fix.</div><div class='del'>-</div><div class='del'>-2000-11-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require gal 0.2.99.1.</div><div class='del'>-</div><div class='del'>-2000-11-06  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require gal 0.2.1.3</div><div class='del'>-</div><div class='del'>-2000-11-06  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (GTKHTML_LIBS): ${prefix} doesn't get defaulted</div><div class='del'>-	until the end of configure, so check if it's "NONE" and use</div><div class='del'>-	${ac_default_prefix} if so.</div><div class='del'>-</div><div class='del'>-2000-11-06  Radek Doulik  &lt;rodo@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (GTKHTML_LIBS): also look for HTMLEditor.idl in</div><div class='del'>-	${prefix}/share/gtkhtml</div><div class='del'>-</div><div class='del'>-2000-11-03  Radek Doulik  &lt;rodo@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (BONOBO_HTML_GNOME_CFLAGS): raise required version</div><div class='del'>-	number to 0.8</div><div class='del'>-	added check for HTMLEditor.idl file</div><div class='del'>-</div><div class='del'>-2000-11-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require gal 0.2.1.2.</div><div class='del'>-</div><div class='del'>-2000-11-02  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require Bonobo-0.27+</div><div class='del'>-</div><div class='del'>-2000-11-01  Gediminas Paulauskas  &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/ename/.cvsignore, addressbook/gui/minicard/.cvsignore,</div><div class='del'>-	calendar/doc/.cvsignore, widgets/e-paned/.cvsignore,</div><div class='del'>-	widgets/e-table/.cvsignore, widgets/e-text/.cvsignore: added these</div><div class='del'>-	files.</div><div class='del'>-	* calendar/gui/.cvsignore, composer/.cvsignore,</div><div class='del'>-	executive-summary/.cvsignore, executive-summary/component/.cvsignore,</div><div class='del'>-	po/.cvsignore: added some files to ignore.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook-factory.c, mail/main.c,</div><div class='del'>-	shell/main.c, calendar/gui/main.c, notes/main.c,</div><div class='del'>-	executive-summary/component/main.c: call *textdomain() only if</div><div class='del'>-	ENABLE_NLS is defined.</div><div class='del'>-</div><div class='del'>-2000-11-01  Gediminas Paulauskas  &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: added lt to ALL_LINGUAS.</div><div class='del'>-	</div><div class='del'>-2000-10-30  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: fix up printing of kerberos configuration status</div><div class='del'>-</div><div class='del'>-2000-10-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require gal cvs version.</div><div class='del'>-</div><div class='del'>-2000-10-27    &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/killev: Kill executive summary components</div><div class='del'>-</div><div class='del'>-2000-10-25  Iain Holmes  &lt;iain@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added executive-summary stuff</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Added the executive-summary subdirs.</div><div class='del'>-</div><div class='del'>-2000-10-23  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* notes/Makefile.am (INCLUDES): Update EVOLUTION_LOCALEDIR</div><div class='del'>-</div><div class='del'>-	* configure.in: set localedir here to use in Makefiles.</div><div class='del'>-	(AM_GNOME_GETTEXT doesn't actually always set it to</div><div class='del'>-	$(datadir)/locale).</div><div class='del'>-</div><div class='del'>-2000-10-23  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated the gal check to check for gal 0.2.1.</div><div class='del'>-</div><div class='del'>-2000-10-22  Robert Brady  &lt;rwb197@zepler.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added "en_GB" to ALL_LINGUAS.</div><div class='del'>-</div><div class='del'>-2000-10-20  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* notes/component-factory.c (control_activate_cb): </div><div class='del'>-</div><div class='del'>-2000-10-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (General, Addressbook): Updated NEWS for addressbook and</div><div class='del'>-	ETable.</div><div class='del'>-</div><div class='del'>-2000-10-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated the gal check to check for gal 0.2.</div><div class='del'>-</div><div class='del'>-2000-10-19  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_MICRO_VERSION): 6.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (EXTRA_DIST): Remove `evolution.spec.in'.</div><div class='del'>-	(dist-hook:): Removed.</div><div class='del'>-</div><div class='del'>-2000-10-18  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* notes/component-factory.c (control_activate, control_deactivate),</div><div class='del'>-	(create_view): cripple, not worth updating to new UI code.</div><div class='del'>-</div><div class='del'>-2000-10-17  Tuomas Kuosmanen  &lt;tigert@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/splash.png: This looks happier than the dark piece of rusty</div><div class='del'>-	metal. And the Big Dig in Boston is ugly looking too. Finnish</div><div class='del'>-	road poles are much more cool!</div><div class='del'>-</div><div class='del'>-2000-10-15  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/verify-evolution-install.sh (libcamelvee): Check</div><div class='del'>-	for linkage against version 0.5 libcamelvee, not version 0.3.</div><div class='del'>-	This should track with the version of Evolution itself.</div><div class='del'>-	(rm -f $ldddfile): Remove a temporary file.</div><div class='del'>-</div><div class='del'>-2000-10-15  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added "nn" to ALL_LINGUAS.</div><div class='del'>-	</div><div class='del'>-2000-10-14  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (images_DATA): Add `splash.png'.</div><div class='del'>-</div><div class='del'>-2000-10-14  Tuomas Kuosmanen  &lt;tigert@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/splash.png: umm.. it's a splash screen image.</div><div class='del'>-</div><div class='del'>-2000-10-11  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Fix bonobo error message</div><div class='del'>-</div><div class='del'>-2000-10-11  Jesse Pavel		&lt;jpavel@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* data/evolution.keys: Added support for the text/calendar and</div><div class='del'>-	text/x-calendar MIME types.</div><div class='del'>-</div><div class='del'>-2000-10-10  Gediminas Paulauskas  &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added lt to ALL_LINGUAS.</div><div class='del'>-</div><div class='del'>-2000-10-10  Tuomas Kuosmanen  &lt;tigert@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* calendar/gui/recur.xpm: Updated round-we-go-thingy icon..</div><div class='del'>-</div><div class='del'>-2000-10-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/empty.xpm: make it transparent instead of white.</div><div class='del'>-</div><div class='del'>-2000-10-06  Christophe Merlet  &lt;christophe@merlet.net&gt;</div><div class='del'>-</div><div class='del'>-	* *.desktop: Added french strings.</div><div class='del'>-</div><div class='del'>-2000-10-05  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/Makefile.am (EXTRA_DIST): Add verify-evolution-install.sh</div><div class='del'>-	to EXTRA_DIST</div><div class='del'>-</div><div class='del'>-2000-10-05  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for isblank</div><div class='del'>-</div><div class='del'>-	* config.h.in: </div><div class='del'>-	* acconfig.h: #undef HAVE_ISBLANK</div><div class='del'>-</div><div class='del'>-2000-10-05  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump Bonobo requirement to &gt;= 0.20</div><div class='del'>-</div><div class='del'>-2000-10-05  Iain Holmes  &lt;iain@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* executive-summary/*: Added the executive summary stuff.</div><div class='del'>-</div><div class='del'>-	* ui/evolution-executive-summary.xml: New.</div><div class='del'>-</div><div class='del'>-	* art/add-service.png: New icon.</div><div class='del'>-</div><div class='del'>-2000-10-03  Matt Bissiri  &lt;bissiri@eecs.umich.edu&gt;</div><div class='del'>-</div><div class='del'>-	* ui/evolution-addressbook-ldap.xml,</div><div class='del'>-	* ui/evolution-addressbook.xml,</div><div class='del'>-	* ui/evolution-calendar.xml,</div><div class='del'>-	* ui/evolution-contact-editor.xml:</div><div class='del'>-	Fixed typo `_decr' -&gt; `_descr', so some missing tooltips will appear.</div><div class='del'>-	Also fixed some typos in descr values.</div><div class='del'>-</div><div class='del'>-2000-09-29  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/Makefile.am (XML_FILES): Install the new evolution-subscribe.xml</div><div class='del'>-	file.</div><div class='del'>-</div><div class='del'>-2000-09-29  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/evolution-mail.xml: add a Settings/Manage Subscriptions...</div><div class='del'>-	menu item.</div><div class='del'>-</div><div class='del'>-	* ui/evolution-subscribe.xml: add a File/Close menu item.</div><div class='del'>-</div><div class='del'>-2000-09-28  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/evolution-subscribe.xml: add a FolderSearch control, and</div><div class='del'>-	change "Refresh" to "RefreshList".</div><div class='del'>-</div><div class='del'>-2000-09-27  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/evolution-subscribe.xml: add an Refresh List button..</div><div class='del'>-</div><div class='del'>-2000-09-27  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/Makefile.am (XML_FILES): add evolution-subscribe.xml.</div><div class='del'>-</div><div class='del'>-	* ui/evolution-subscribe.xml: new file.</div><div class='del'>-</div><div class='del'>-2000-09-25  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/evolution-mail.xml: Moved the (un)select all menu items over</div><div class='del'>-	to the Edit menu - this looks nicer.</div><div class='del'>-</div><div class='del'>-2000-09-25  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/evolution-mail.xml: Added some new menu items to the Message</div><div class='del'>-	menu like (un)select all and moved "mark as read" to the Message</div><div class='del'>-	menu.</div><div class='del'>-</div><div class='del'>-2000-09-25  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Moved addressbook/ename to e-util/ename so</div><div class='del'>-	generate e-util/ename/Makefile and don't generate</div><div class='del'>-	addressbook/ename/Makefile</div><div class='del'>-</div><div class='del'>-2000-09-23  Tuomas Kuosmanen  &lt;tigert@localhost&gt;</div><div class='del'>-</div><div class='del'>-	* art/attachment.xpm</div><div class='del'>-	* art/add-attachment.png: OOPS. The attachment.xpm was not the one </div><div class='del'>-	I thought, so I accidentally replaced the paperclip icon in the mail</div><div class='del'>-	list column, which wasnt my intention. I hope this works now. The old </div><div class='del'>-	one is back, instead the toolbar icon to add attachment is now called</div><div class='del'>-	"add-attachment.png" as you can see also from above. Bummer. Sorry :)</div><div class='del'>-</div><div class='del'>-2000-09-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* libversit/vcc.y: Fixed some warnings.  Fixed a bug where quoted</div><div class='del'>-	printable fields were reading in semi-colons that should have been</div><div class='del'>-	field separators.</div><div class='del'>-</div><div class='del'>-2000-09-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/Makefile.am: Added evolution-addressbook-ldap.xml.</div><div class='del'>-</div><div class='del'>-	* ui/evolution-addressbook-ldap.xml: New file.  (A Variation on</div><div class='del'>-	evolution-addressbook.xml)</div><div class='del'>-</div><div class='del'>-	* ui/evolution-addressbook.xml: Added View All and Stop buttons.</div><div class='del'>-</div><div class='del'>-2000-09-21  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/evolution-calendar.xml: Removed the AboutCalendar stuff.</div><div class='del'>-</div><div class='del'>-	* ui/evolution.xml: Fix mis-spelling of "calendar".</div><div class='del'>-</div><div class='del'>-2000-09-21  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* notes/component-factory.c (control_activate): upd.</div><div class='del'>-</div><div class='del'>-2000-09-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/.cvsignore: Added a cvsignore file here.</div><div class='del'>-</div><div class='del'>-2000-09-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ui/Makefile.am (XML_FILES): Added evolution-contact-editor.xml.</div><div class='del'>-</div><div class='del'>-	* ui/evolution-contact-editor.xml: New file for the UI for the</div><div class='del'>-	evolution contact editor.</div><div class='del'>-</div><div class='del'>-2000-09-20  Tuomas Kuosmanen  &lt;tigert@gimp.org&gt;</div><div class='del'>-</div><div class='del'>-	* art/attachment.xpm</div><div class='del'>-	* art/send.png: new icons for "compose mail" dialog...</div><div class='del'>-</div><div class='del'>-2000-09-19  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: alter the krb4 check a bit to deal with configure</div><div class='del'>-	cache suckage. (If you do AC_CHECK_LIB with the same library and</div><div class='del'>-	function name but different LDFLAGS, it will still use the result</div><div class='del'>-	of the previous check. So use a different function the second</div><div class='del'>-	time.)</div><div class='del'>-</div><div class='del'>-2000-09-18  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: add gal as a dependency</div><div class='del'>-</div><div class='del'>-2000-09-18  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/score-*.xpm: stupid looking icons for use with displaying</div><div class='del'>-	scores in the message-list view. These need a makeover BADLY ;-)</div><div class='del'>-</div><div class='del'>-2000-09-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added check for gnome-app-lib.  Removed</div><div class='del'>-	directories that have been moved to gal.</div><div class='del'>-</div><div class='del'>-2000-09-15  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, evolution.spec.in: remove spec file. We haven't</div><div class='del'>-	been keeping it up to date, and it's only good for RH anyway, and</div><div class='del'>-	if people really want a spec file they can get it from our SRPMs.</div><div class='del'>-</div><div class='del'>-2000-09-07  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require Bonobo 0.19</div><div class='del'>-</div><div class='del'>-2000-09-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added widgets/e-reflow/Makefile.  Replaced</div><div class='del'>-	addressbook/gui/minicard/Makefile with</div><div class='del'>-	addressbook/gui/widgets/Makefile.</div><div class='del'>-</div><div class='del'>-2000-09-13  Tuomas Kuosmanen  &lt;tigert@localhost&gt;</div><div class='del'>-</div><div class='del'>-	* art/pin.png: added icon for the folder tree "pin down" button</div><div class='del'>-</div><div class='del'>-2000-09-12  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Calendar): Pilot stuff</div><div class='del'>-</div><div class='del'>-2000-09-12  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: The notes subdir isn't actually used, so remove</div><div class='del'>-	it.</div><div class='del'>-</div><div class='del'>-2000-09-12  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: 0.5.</div><div class='del'>-</div><div class='del'>-2000-09-12  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Mailer): Added Sent/Outbox feature descriptions</div><div class='del'>-</div><div class='del'>-2000-09-12  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS (Mailer): add most (but not all) 0.5 Mailer features</div><div class='del'>-</div><div class='del'>-	* configure.in: s/Sentbox/Sent/</div><div class='del'>-</div><div class='del'>-2000-09-12  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (buttonsdir): Install the new button icons into</div><div class='del'>-	`$(datadir)/images/evolution/buttons'.</div><div class='del'>-</div><div class='del'>-2000-09-11  Tuomas Kuosmanen  &lt;tigert@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/fetch-mail.png</div><div class='del'>-	* art/compose-message.png</div><div class='del'>-	* art/reply.png</div><div class='del'>-	* art/reply-to-all.png</div><div class='del'>-	* art/forward.png</div><div class='del'>-	* art/move-message.png</div><div class='del'>-	* art/copy-message.png: New icons for the main window toolbar</div><div class='del'>-</div><div class='del'>-2000-09-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Added 0.5 changes for ETable and Addressbook.</div><div class='del'>-</div><div class='del'>-2000-09-07  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Add a mention of the verify-evolution-install.sh script</div><div class='del'>-	in tools/.</div><div class='del'>-</div><div class='del'>-2000-09-03  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	Reversed my last change as it broke configure, how do I get it so</div><div class='del'>-	that we can do folders with spaces in the name!?</div><div class='del'>-</div><div class='del'>-2000-09-03  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Renamed default_user/local/Sentbox to</div><div class='del'>-	default_user/local/Sent\ Mail as Ettore and Danw are picky about</div><div class='del'>-	folder names </div><div class='del'>-</div><div class='del'>-2000-09-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added calendar/conduits/Makefile,</div><div class='del'>-	calendar/conduits/calendar/Makefile and</div><div class='del'>-	calendar/conduits/todo/Makefile to the list of makefiles to</div><div class='del'>-	output.</div><div class='del'>-</div><div class='del'>-2000-09-01  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add default_user/local/Sentbox/Makefile to the</div><div class='del'>-	list of makefiles to output</div><div class='del'>-</div><div class='del'>-2000-08-31  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (kerberos): Check and see if krb_sendauth needs</div><div class='del'>-	prototyping. (#define NEED_KRB_SENDAUTH_PROTO). Also check</div><div class='del'>-	for a libkrb that doesn't need -ldes.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: #undef it</div><div class='del'>-</div><div class='del'>-2000-08-30  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: AC_DEFINE(USING_GNOME_PRINT_0_20)</div><div class='del'>-</div><div class='del'>-	* acconfig.h: #undef that</div><div class='del'>-</div><div class='del'>-2000-08-30  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Robustify the kerberos checks.</div><div class='del'>-</div><div class='del'>-2000-08-29  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, acconfig.h: decruft</div><div class='del'>-</div><div class='del'>-2000-08-28  Jesus Bravo Alvarez  &lt;jba@pobox.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added Portuguese (pt) to ALL_LINGUAS</div><div class='del'>-</div><div class='del'>-2000-08-26  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Require oafized bonobo</div><div class='del'>-</div><div class='del'>-2000-08-24  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Ahem.  If you add dependencies on libraries, make</div><div class='del'>-	sure things still build.  Fixed the libunicode foo.</div><div class='del'>-</div><div class='del'>-2000-08-22  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c (_get_position_from_xy): Don't crash on illegal string</div><div class='del'>-</div><div class='del'>-2000-08-22  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c (e_text_event): Use e_utf8_from_gtk_event_key</div><div class='del'>-	to translate GDK_KEY_PRESS to insertable UTF-8 string</div><div class='del'>-</div><div class='del'>-2000-08-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* announcement-0.4.1.txt: Updated dependency list.</div><div class='del'>-</div><div class='del'>-2000-08-22  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Use byte based UTF-8 syntax</div><div class='del'>-	</div><div class='del'>-2000-08-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* announcement-0.4.1.txt: Announcement message</div><div class='del'>-</div><div class='del'>-2000-08-19  Mathieu Lacage &lt;mathieu@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	Fixes compile for non-standard prefixes. Mainly in idl</div><div class='del'>-	compilation where -I`gnome-config --datadir`/idl is replaced</div><div class='del'>-	by `gnome-config --cflags idl` (ugly but it works at least)</div><div class='del'>-	and add some random _CFLAGS here and there and _LIBS for linking.</div><div class='del'>-	* addressbook/gui/component/select-names/Makefile.am</div><div class='del'>-	* composer/Makefile.am</div><div class='del'>-	* e-util/Makefile.am</div><div class='del'>-	* filter/Makefile.am</div><div class='del'>-	* mail/Makefile.am</div><div class='del'>-	* shell/Makefile.am</div><div class='del'>-	* widgets/e-text/Makefile.am</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-2000-08-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-paned/e-hpaned.c, widgets/e-paned/e-paned.c,</div><div class='del'>-	widgets/e-paned/e-paned.h, widgets/e-paned/e-vpaned.c: Added code</div><div class='del'>-	to make handle position persist across resizes.</div><div class='del'>-</div><div class='del'>-2000-08-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-2000-08-20  arik devens  &lt;arik@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/Makefile.am (INCLUDES): added UNICODE_CFLAGS</div><div class='del'>-	support so that compiling in an alternate prefix works.</div><div class='del'>-</div><div class='del'>-2000-08-19  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.h: Commented out Suckfont, added EFont</div><div class='del'>-	* widgets/e-text/e-text.c: Ported to UTF-8</div><div class='del'>-</div><div class='del'>-2000-08-18  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (gnome-vfs): Check for new enough gnome-vfs</div><div class='del'>-	(needs gnome_vfs_mime_get_default_action_without_fallback)</div><div class='del'>-</div><div class='del'>-2000-08-14  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Generate</div><div class='del'>-	doc/devel/calendar/cal-util/Makefile.</div><div class='del'>-</div><div class='del'>-2000-08-14  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for db1/db.h too, which is what</div><div class='del'>-	RH 7.0 uses for the old db headers. Patch from Kenny Graunke</div><div class='del'>-	&lt;kwg@teleport.com&gt;</div><div class='del'>-</div><div class='del'>-2000-08-13  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: offer --enable-pilot-conduits to add pilot</div><div class='del'>-	conduits if the user wants them.</div><div class='del'>-</div><div class='del'>-2000-08-13  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Fix the name of the binary to look for for PGP5</div><div class='del'>-</div><div class='del'>-2000-08-12  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for Bonobo 0.17</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added addressbook/gui/search/Makefile.</div><div class='del'>-</div><div class='del'>-2000-08-12  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, README: Depend on gnome-vfs 0.3</div><div class='del'>-</div><div class='del'>-2000-08-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/.cvsignore, widgets/e-text/Makefile.am,</div><div class='del'>-	widgets/e-text/e-entry-test.c: Added a test for the EEntry widget.</div><div class='del'>-</div><div class='del'>-2000-08-09  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* data/evolution.keys: New file containing MIME keys for</div><div class='del'>-	Evolution. Currently just the addressbook minicard display.</div><div class='del'>-</div><div class='del'>-	* data/Makefile.am (mime_DATA): add evolution.keys</div><div class='del'>-</div><div class='del'>-2000-08-09  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_DIR): Remove the warning about camel-async.</div><div class='del'>-</div><div class='del'>-2000-08-08  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Reenable the calendar. Oops.</div><div class='del'>-</div><div class='del'>-2000-08-05  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tools/verify-evolution-install.sh: Look for oafinfo files in</div><div class='del'>-	oaf's prefix, not gnome-libs's. Allow binaries to be installed</div><div class='del'>-	anywhere in $PATH.</div><div class='del'>-</div><div class='del'>-	* configure.in, README: Update the README and the text of the</div><div class='del'>-	Bonobo configure check to match reality. Remove the 0.15 vs</div><div class='del'>-	0.15-and-a-half check since we require post-0.16 now.</div><div class='del'>-</div><div class='del'>-2000-08-03  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove gconf check</div><div class='del'>-</div><div class='del'>-2000-08-03 Alastair McKinstry &lt;mckinstry@computer.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ALL_LINGUAS): Add Irish translation</div><div class='del'>-</div><div class='del'>-2000-08-02  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: update for BonoboX</div><div class='del'>-</div><div class='del'>-2000-08-02  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Add camel/providers/nntp</div><div class='del'>-</div><div class='del'>-2000-08-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Made clicking choose the right</div><div class='del'>-	character even if show_borders is on.</div><div class='del'>-</div><div class='del'>-2000-08-01  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, acconfig.h: Add checks for GPG, PGP 5 and PGP 2.</div><div class='del'>-	Only record the first one found.</div><div class='del'>-</div><div class='del'>-2000-08-01  Damon Chaplin  &lt;damon@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): removed calendar/doc/*</div><div class='del'>-</div><div class='del'>-2000-08-01  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added mh provider.</div><div class='del'>-</div><div class='del'>-2000-07-27  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gconf_client_get_default (gconf 0.5 vs</div><div class='del'>-	newer)</div><div class='del'>-</div><div class='del'>-2000-07-26  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Bump version number to 0.3.</div><div class='del'>-</div><div class='del'>-2000-07-26  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-table/e-table-scrolled.c (right_click_proxy): Default</div><div class='del'>-	the return value to 0.</div><div class='del'>-</div><div class='del'>-2000-07-25  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: some unrelated changes: check for mkdtemp,</div><div class='del'>-	gnome_vfs_mime_get_default_action_without_fallback, and a</div><div class='del'>-	setuid/setgid movemail binary.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: add MOVEMAIL_PATH</div><div class='del'>-</div><div class='del'>-2000-07-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added addressbook/conduit/Makefile.</div><div class='del'>-</div><div class='del'>-2000-07-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Made focus in not change your selection</div><div class='del'>-	position.</div><div class='del'>-</div><div class='del'>-2000-07-21  Szabolcs BAN &lt;shooby@gnome.hu&gt;</div><div class='del'>-</div><div class='del'>-	* calendar/gui/event-editor.c: Typo fix</div><div class='del'>-</div><div class='del'>-2000-07-20  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (THREADS_CFLAGS): Make threads mandatory</div><div class='del'>-	again.</div><div class='del'>-</div><div class='del'>-2000-07-19  Fatih Demir	&lt;kabalak@gmx.net&gt;</div><div class='del'>-	</div><div class='del'>-	* evolution.desktop &amp; data/evolution.desktop: Added</div><div class='del'>-		the Turkish desktop entries.</div><div class='del'>-</div><div class='del'>-2000-07-17  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EVOLUTION_DIR): Typo fix.</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Added the doc/devel Makefiles.</div><div class='del'>-	(EVOLUTION_DIR): Substitute EVOLUTION_DIR for the top_srcdir.</div><div class='del'>-	Added checks for gtk-doc.</div><div class='del'>-</div><div class='del'>-2000-07-13  Peter Williams  &lt;peterw@curious-george.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (end): Bigass warnings for camel-async branch</div><div class='del'>-	(remove them later).</div><div class='del'>-</div><div class='del'>-2000-07-12  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Make gnome-print-0.20 mandatory.  We will bail out</div><div class='del'>-	with CVS HEAD versions to avoid breakage.</div><div class='del'>-</div><div class='del'>-2000-07-10  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Version 0.2.</div><div class='del'>-</div><div class='del'>-	* configure.in: Reverse the GtkHTML check.</div><div class='del'>-</div><div class='del'>-2000-07-10  Jeffrey Stedfast &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated to check for required GtkHTML and</div><div class='del'>-	gnome-print</div><div class='del'>-</div><div class='del'>-2000-07-10  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove the conduits stuff for now.  They depend on</div><div class='del'>-	CVS gnome-pilot, and this is not good for the release.</div><div class='del'>-</div><div class='del'>-2000-07-10  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: updates</div><div class='del'>-</div><div class='del'>-2000-07-10  Seth Alves  &lt;alves@hungry.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: added makefiles for calendar conduits</div><div class='del'>-</div><div class='del'>-2000-07-10  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add a check for Bonobo 0.15 vs Bonobo post-0.15</div><div class='del'>-</div><div class='del'>-2000-07-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Don't draw quite as large a "flat_box".</div><div class='del'>-	If draw_borders is TRUE, cause the cursor to change even if not</div><div class='del'>-	editing.</div><div class='del'>-</div><div class='del'>-2000-07-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-entry.c: Removed some border padding and set</div><div class='del'>-	the "draw_borders" argument of the contained GtkText.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widget/e-text/e-text.h: Added a</div><div class='del'>-	"draw_borders" argument which, if set, makes the EText look more</div><div class='del'>-	like a GtkEntry.</div><div class='del'>-</div><div class='del'>-2000-07-09  Tuomas Kuosmanen  &lt;tigert@gimp.org&gt;</div><div class='del'>-</div><div class='del'>-	* art/evolution-contacts.png: updated so it has better contrast</div><div class='del'>-	against the background.</div><div class='del'>-</div><div class='del'>-	* art/evolution-contacts-small.png: Fits the style of the new contacts</div><div class='del'>-	icon, this is a sigle card.</div><div class='del'>-</div><div class='del'>-2000-07-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text-model.c (e_text_model_real_get_text):</div><div class='del'>-	Return "" instead of NULL.</div><div class='del'>-</div><div class='del'>-2000-07-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: Fixed EXTRA_DIST for make distcheck.</div><div class='del'>-</div><div class='del'>-2000-07-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-entry.c: Set "anchor" and "fill_clip_rectangle"</div><div class='del'>-	arguments.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Added</div><div class='del'>-	"fill_clip_rectangle" argument which describes whether to accept</div><div class='del'>-	clicks throughout the clipping rectangle.</div><div class='del'>-</div><div class='del'>-2000-07-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-entry.c: Fixed some typos.</div><div class='del'>-</div><div class='del'>-2000-07-07  Tuomas Kuosmanen  &lt;tigert@gimp.org&gt;</div><div class='del'>-</div><div class='del'>-	* art/evolution-contacts.png: Changed icon (hi ettore)</div><div class='del'>-	The old handshake one was a little too firm handshake..</div><div class='del'>-	this is a rolodex icon..</div><div class='del'>-</div><div class='del'>-2000-07-07  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: make pthreads not required again, since they</div><div class='del'>-	aren't, and remove widgets/e-toolbar/Makefile from AC_OUTPUT since</div><div class='del'>-	that dir doesn't exist any more.</div><div class='del'>-</div><div class='del'>-2000-07-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): remove the default_user Directories</div><div class='del'>-	dir.</div><div class='del'>-</div><div class='del'>-2000-07-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am, libical/configure.in: Fixed some make distcheck</div><div class='del'>-	errors.</div><div class='del'>-</div><div class='del'>-2000-07-05  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (GNOME_VFS_CFLAGS): Define.</div><div class='del'>-	(GNOME_VFS_LIBS): Define.</div><div class='del'>-</div><div class='del'>-2000-07-03  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add</div><div class='del'>-	`addressbook/gui/component/select-names/Makefile' to the</div><div class='del'>-	`AC_OUTPUT()' list.</div><div class='del'>-</div><div class='del'>-2000-07-03  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/Makefile.am: Added e-entry.c and e-entry.h.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-entry.c, widgets/e-text/e-entry.h: New files to</div><div class='del'>-	be a widget containing a text item.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Fixed some spacing.</div><div class='del'>-</div><div class='del'>-2000-06-29  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* notes/component-factory.c (owner_set_cb): Get an</div><div class='del'>-	EvolutionShellClient instead of an Evolution_Shell to match the</div><div class='del'>-	changes in libeshell.</div><div class='del'>-</div><div class='del'>-2000-06-29  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in:  Re-enable GNOME_PILOT_CHECK.</div><div class='del'>-	Change AC_MSG_CHECKING([For...]) to [for...]. It's the little</div><div class='del'>-	things that matter.</div><div class='del'>-</div><div class='del'>-2000-06-28  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: `AM_PATH_GCONF'.</div><div class='del'>-</div><div class='del'>-2000-06-27  Peter Williams  &lt;peterw@curious-george.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ctime_r): Check for whether ctime_r takes</div><div class='del'>-	two (Linux) or three (Solaris) arguments.</div><div class='del'>-	(AC_OUTPUT): Don't create notes/Makefile twice.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Add CTIME_R_THREE_ARGS to the list.</div><div class='del'>-	</div><div class='del'>-2000-06-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Calculate height including if</div><div class='del'>-	clip_height is set to -1.</div><div class='del'>-	</div><div class='del'>-2000-06-26  Peter Williams  &lt;peterw@curious-george.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (THREADS_CFLAGS): Add option --enable-broken-threads</div><div class='del'>-	to turn on the threading stuff in evolution-mail. Defaults to no.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Add USE_BROKEN_THREADS to the list.</div><div class='del'>-	</div><div class='del'>-2000-06-25  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Use `glib-config' instead of `$GLIB_CONFIG' as the</div><div class='del'>-	latter is not actually defined anywhere.</div><div class='del'>-</div><div class='del'>-2000-06-25  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (pthread stuff): Make threads required due</div><div class='del'>-	to threaded evolution-mail. Subst in the THREADS_LIBS et</div><div class='del'>-	al.</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am: Remove USE_THREADS conditional as we</div><div class='del'>-	always use threads now.</div><div class='del'>-</div><div class='del'>-2000-06-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Fixed some vertical scroll bugs.</div><div class='del'>-</div><div class='del'>-2000-06-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Fix a bug with intial vertical scroll.</div><div class='del'>-</div><div class='del'>-2000-06-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* notes/e-note.c, widgets/meeting-time-sel/e-meeting-time-sel.c,</div><div class='del'>-	widgets/shortcut-bar/e-icon-bar.c: Removed the usage of "x" and</div><div class='del'>-	"y" arguments to EText.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Removed the</div><div class='del'>-	"x" and "y" arguments to EText.   Added vertical scrolling.</div><div class='del'>-</div><div class='del'>-2000-06-20  Damon Chaplin  &lt;damon@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/meeting-time-sel/e-meeting-time-sel-item.c: </div><div class='del'>-	* widgets/meeting-time-sel/e-meeting-time-sel.c: fixed a few warnings.</div><div class='del'>-</div><div class='del'>-2000-06-17  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Made EText use the font from the</div><div class='del'>-	canvas's style if one isn't set.</div><div class='del'>-</div><div class='del'>-2000-06-17  Damon Chaplin  &lt;damon@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/meeting-time-sel/*: updated to use EText items rather than</div><div class='del'>-	GtkEntry widgets and added support for adding new rows.</div><div class='del'>-</div><div class='del'>-2000-06-15  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: bye bye goad</div><div class='del'>-</div><div class='del'>-2000-06-14  Damon Chaplin  &lt;damon@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README (http): added command to co ORBit.</div><div class='del'>-</div><div class='del'>-2000-06-13  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added IMAP into the build</div><div class='del'>-</div><div class='del'>-2000-06-13  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* notes/Makefile.am (SHELL_OBJS): Removed.</div><div class='del'>-	(evolution_notes_LDADD): Link with</div><div class='del'>-	`$(top_builddir)/shell/libeshell.a'.</div><div class='del'>-</div><div class='del'>-2000-06-12  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am (SUBDIRS): build `misc' before everything</div><div class='del'>-	else.</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Install `evolution.png' and `evolution.desktop'</div><div class='del'>-	where appropriate.</div><div class='del'>-</div><div class='del'>-	* evolution.png: New.  For now, it's just a copy of</div><div class='del'>-	`art/evolution-inbox.png'.</div><div class='del'>-</div><div class='del'>-	* evolution.desktop: New.</div><div class='del'>-</div><div class='del'>-2000-06-10  Zbigniew Chyla  &lt;chyla@buy.pl&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added pl (Polish) to ALL_LINGUAS</div><div class='del'>-</div><div class='del'>-2000-06-09  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added new directory `shell/glade'.</div><div class='del'>-</div><div class='del'>-2000-06-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-paned/e-hpaned.c, widgets/e-paned/e-paned.c,</div><div class='del'>-	widgets/e-paned/e-paned.h, widgets/e-paned/e-vpaned.c: Added a</div><div class='del'>-	"quantum" argument for making the panes move in jumps.</div><div class='del'>-</div><div class='del'>-2000-06-07  Anders Carlsson  &lt;andersca@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in:  Create notes/Makefile</div><div class='del'>-</div><div class='del'>-	* notes/*: Add preliminary yellow sticky notes.</div><div class='del'>-</div><div class='del'>-2000-06-05	Mathieu Lacage	&lt;mathieu@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/Makefile.am: make it </div><div class='del'>-	compile: add proper bonobo linking params.</div><div class='del'>-	* addressbook/gui/minicard/Makefile.am: idem.</div><div class='del'>-	* wombat/Makefile.am: add BONOBO_VFS_GNOME_CFLAGS.</div><div class='del'>-	cleanup some useless includes and libs.</div><div class='del'>-</div><div class='del'>-2000-06-02  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ALL_LINGUAS): Add `it' and `de'.</div><div class='del'>-</div><div class='del'>-2000-06-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Released Evolution 0.1.</div><div class='del'>-</div><div class='del'>-2000-06-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test-movemail.c: Reverted removal of e_setup_base_dir.</div><div class='del'>-</div><div class='del'>-2000-06-02  Jesus Bravo Alvarez  &lt;jba@pobox.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added pt (Portuguese) to ALL_LINGUAS</div><div class='del'>-</div><div class='del'>-2000-06-02  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Update dependencies. Rewrite the GOAD vs OAF thing some</div><div class='del'>-	more to reflect OAF's new ascendency. Make the fact that you don't</div><div class='del'>-	need pilot stuff clearer. Add some new directories to the</div><div class='del'>-	directory layout section.</div><div class='del'>-</div><div class='del'>-2000-06-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/misc/e-clipped-label.c: Free the finish data.</div><div class='del'>-</div><div class='del'>-2000-06-01  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test-movemail.c (main): Don't call e_setup_base_dir.</div><div class='del'>-</div><div class='del'>-2000-06-01  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): add doc, doc/C</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): add doc</div><div class='del'>-</div><div class='del'>-2000-05-31  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/misc/e-scroll-frame.[ch]: Imported GtkScrollFrame from</div><div class='del'>-	EOG and renamed it to EScrollFrame.</div><div class='del'>-</div><div class='del'>-	* widgets/misc/Makefile.am (libemiscwidgets_a_SOURCES): Added</div><div class='del'>-	e-scroll-frame.[ch].</div><div class='del'>-</div><div class='del'>-2000-05-30  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-paned/e-vpaned.c (e_vpaned_handle_shown): Show the</div><div class='del'>-	handle even if the requisition for the child is zero.</div><div class='del'>-	* widgets/e-paned/e-hpaned.c (e_hpaned_handle_shown): Likewise.</div><div class='del'>-</div><div class='del'>-2000-05-26  H�ctor Garc�a Alvarez &lt;hector@scouts-es.org&gt;</div><div class='del'>-</div><div class='del'>-        * configure.in: Added Spanish language</div><div class='del'>-</div><div class='del'>-2000-05-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-paned/e-hpaned.c, widgets/e-paned/e-vpaned.c: Fixed a</div><div class='del'>-	bug where we were resizing a non-existent window.</div><div class='del'>-</div><div class='del'>-2000-05-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-paned/e-hpaned.c, widgets/e-paned/e-paned.c,</div><div class='del'>-	widgets/e-paned/e-paned.h, widgets/e-paned/e-vpaned.c: Made</div><div class='del'>-	the handlebar disappear if either side is empty, hidden, or</div><div class='del'>-	requests 0 size.</div><div class='del'>-</div><div class='del'>-2000-05-24  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added widgets/e-paned/Makefile.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c: Switched from GtkPaned to</div><div class='del'>-	EPaned.</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Added e-paned directory.</div><div class='del'>-</div><div class='del'>-	* widgets/e-paned/, widgets/e-paned/.cvsignore,</div><div class='del'>-	widgets/e-paned/Makefile.am, widgets/e-paned/e-hpaned.c,</div><div class='del'>-	widgets/e-paned/e-hpaned.h, widgets/e-paned/e-paned.c,</div><div class='del'>-	widgets/e-paned/e-paned.h, widgets/e-paned/e-vpaned.c,</div><div class='del'>-	widgets/e-paned/e-vpaned.h: New widget based completely on</div><div class='del'>-	GtkPaned from 1.4.  This will be more advanced soon.</div><div class='del'>-</div><div class='del'>-2000-05-22  Jeff Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Readded camel/providers/smtp </div><div class='del'>-</div><div class='del'>-2000-05-22  Szabolcs BAN &lt;shooby@gnome.hu&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added Hungarian language</div><div class='del'>-</div><div class='del'>-2000-05-18  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): add camel/providers/vee</div><div class='del'>-</div><div class='del'>-2000-05-16  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: Install the mini icons.</div><div class='del'>-</div><div class='del'>-2000-05-16  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add --with-purify-options support, and default it</div><div class='del'>-	to what we at helix need</div><div class='del'>-</div><div class='del'>-Tue May 16 06:11:40 2000  Tuomas Kuosmanen  &lt;tigert@gimp.org&gt;</div><div class='del'>-</div><div class='del'>-	* art/evolution-calendar-mini.png art/evolution-inbox-mini.png</div><div class='del'>- 	art/evolution-tasks-mini.png art/evolution-contacts-mini.png</div><div class='del'>- 	art/evolution-notes-mini.png: new mini-icons for the tree view</div><div class='del'>-	of folders and stuff.</div><div class='del'>-</div><div class='del'>-2000-05-14  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Added calendar/gui/dialogs/Makefile.am.</div><div class='del'>-</div><div class='del'>-2000-05-10  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Added version and availability of required libunicode</div><div class='del'>-	library.</div><div class='del'>-</div><div class='del'>-2000-05-10  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Update versions needed for gnome-print, bonobo,</div><div class='del'>-	and gtkhtml.</div><div class='del'>-</div><div class='del'>-2000-05-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* HACKING: We need a HACKING file.</div><div class='del'>-</div><div class='del'>-2000-05-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Removed dist-hook section.</div><div class='del'>-</div><div class='del'>-	* configure.in: Set the version number.  Added a check for gnome</div><div class='del'>-	window icons.  Removed a bunch of unused Makefiles.</div><div class='del'>-</div><div class='del'>-	* tools/Makefile.am: Created a proper EXTRA_DIST section.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/Makefile.am: Added</div><div class='del'>-	e-text-event-processor-types.h.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: Added briefcase.png to get installed.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Remove the tooltip callback when</div><div class='del'>-	destroyed.</div><div class='del'>-</div><div class='del'>-2000-05-09  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* calendar/pcs/cal-backend.c (cal_backend_add_cal): Return nothing</div><div class='del'>-	for a 'void' function.</div><div class='del'>-</div><div class='del'>-2000-05-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widget/e-text/e-text.c, widgets/e-text/e-text.h: Added an</div><div class='del'>-	activate signal.</div><div class='del'>-</div><div class='del'>-2000-05-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-	</div><div class='del'>-	* configure.in: Added new Directories section for the default_user.</div><div class='del'>-</div><div class='del'>-2000-05-06  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Updated for the new `default_user' directory</div><div class='del'>-	setup.</div><div class='del'>-</div><div class='del'>-2000-05-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check for purify.</div><div class='del'>-</div><div class='del'>-2000-05-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Added a</div><div class='del'>-	"changed" signal that gets sent whenever the text changes.</div><div class='del'>-</div><div class='del'>-2000-05-05  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Added `--enable-purify' flag.</div><div class='del'>-</div><div class='del'>-2000-05-05  Chris Toshok &lt;toshok@helixcode.com&gt;</div><div class='del'>-	</div><div class='del'>-	* shell/Makefile.am: add support for building purified evolution.</div><div class='del'>-</div><div class='del'>-	* shell/.cvsignore: ignore evolution.pure</div><div class='del'>-</div><div class='del'>-2000-05-05  Chris Toshok &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/.cvsignore,</div><div class='del'>-	addressbook/contact-editor/.cvsignore,</div><div class='del'>-	addressbook/gui/component/.cvsignore,</div><div class='del'>-	addressbook/gui/minicard/.cvsignore,</div><div class='del'>-	addressbook/printing/.cvsignore,</div><div class='del'>-	calendar/cal-client/.cvsignore,</div><div class='del'>-	calendar/gui/.cvsignore,</div><div class='del'>-	calendar/pcs/.cvsignore,</div><div class='del'>-	filter/.cvsignore,</div><div class='del'>-	mail/.cvsignore,</div><div class='del'>-	shell/.cvsignore,</div><div class='del'>-	tests/.cvsignore,</div><div class='del'>-	widgets/e-table/.cvsignore,</div><div class='del'>-	widgets/e-text/.cvsignore,</div><div class='del'>-	widgets/meeting-time-sel/.cvsignore,</div><div class='del'>-	widgets/shortcut-bar/.cvsignore,</div><div class='del'>-	wombat/.cvsignore: ignore the .pure directory</div><div class='del'>-</div><div class='del'>-2000-05-04  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Oops. The Kerberos check was succeeding when it</div><div class='del'>-	shouldn't have (and thus breaking the pop3 build for "normal"</div><div class='del'>-	people). Fix.</div><div class='del'>-</div><div class='del'>-2000-05-03  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (xmlversion): Fix to remove older 'libxml' prefix.</div><div class='del'>-</div><div class='del'>-2000-05-02  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Do not output `doc/Makefile' because there is</div><div class='del'>-	nothing to generate it from.</div><div class='del'>-</div><div class='del'>-2000-05-02  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, acconfig.h: add some minimal Kerberos checking.</div><div class='del'>-	This isn't intended to be generically useful at this point, it's</div><div class='del'>-	just there to give me a second POP auth mechanism to play with.</div><div class='del'>-</div><div class='del'>-	Also remove a bit of cruft, and reorganize configure.in a bit.</div><div class='del'>-</div><div class='del'>-2000-05-02  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test13.c: And here too.</div><div class='del'>-</div><div class='del'>-	* tests/test2.c (main): REmoved gmime-utils.h</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am (LDADD): Add libeutil to default link line.</div><div class='del'>-	(test_movemail_LDADD): Fixed order for libutil linking.</div><div class='del'>-</div><div class='del'>-2000-05-02  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am: set G_LOG_DOMAIN.</div><div class='del'>-	* tests/ui-tests/Makefile.am: same.</div><div class='del'>-	* widgets/e-text/Makefile.am: same.</div><div class='del'>-	* widgets/meeting-time-sel/Makefile.am: same.</div><div class='del'>-</div><div class='del'>-2000-05-01  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test11.c (main): *sigh* moved back to sync api.</div><div class='del'>-</div><div class='del'>-2000-05-01  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test11.c (search_cb): Try deleting messages ...</div><div class='del'>-	(main): Fix for provider api changes.</div><div class='del'>-</div><div class='del'>-2000-05-01  Anders Carlsson  &lt;andersca@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check if bonobo uses oaf, so you don't</div><div class='del'>-	need to specify --enable-oaf.</div><div class='del'>-</div><div class='del'>-2000-04-27  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h: New configured #define `USING_OAF'.</div><div class='del'>-</div><div class='del'>-	* configure.in: Added `--enable-oaf' option and corresponding</div><div class='del'>-	`OAF_LIBS' and `OAF_FLAGS' variables.  Code friendly provided by</div><div class='del'>-	Maciej Stachowiak &lt;mjs@eazel.com&gt;.</div><div class='del'>-</div><div class='del'>-2000-04-27  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test10.c: Fix for removal of camelmimebodypart, and changes</div><div class='del'>-	to recipient stuff.</div><div class='del'>-</div><div class='del'>-	* tests/test1.c: Fix for removal of camelmimebodypart, and changes</div><div class='del'>-	to recipient stuff.</div><div class='del'>-</div><div class='del'>-2000-04-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added addressbook/ename/Makefile.</div><div class='del'>-</div><div class='del'>-2000-04-27  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: added tools/Makefile.</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Added tools.</div><div class='del'>-</div><div class='del'>-	* tools/: New directory for tools relating to evolution.</div><div class='del'>-</div><div class='del'>-	* tools/killev: New script for killing all evolution-related</div><div class='del'>-	stuff.</div><div class='del'>-</div><div class='del'>-        * tools/Makefile.am: New file.</div><div class='del'>-	</div><div class='del'>-	* tools/.cvsignore: New file.</div><div class='del'>-</div><div class='del'>-2000-04-26  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test13.c (main): And here too.</div><div class='del'>-</div><div class='del'>-	* tests/test2.c (main): Same here.</div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): Change for removed simpledatawrapper.</div><div class='del'>-</div><div class='del'>-2000-04-26  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/.cvsignore: Added test13.</div><div class='del'>-</div><div class='del'>-	* default_user/.cvsignore: New file.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c (e_text_destroy): Kill text-&gt;timer and</div><div class='del'>-	text-&gt;timeout on destroy.</div><div class='del'>-</div><div class='del'>-2000-04-26  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests: Update for the camel changes.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Remove tests. They aren't terribly</div><div class='del'>-	useful/interesting any more for the most part, and they frequently</div><div class='del'>-	don't compile.</div><div class='del'>-</div><div class='del'>-2000-04-24  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Made the tooltip show up in the correct</div><div class='del'>-	place and configuration when using the "max_lines", "anchor"</div><div class='del'>-	(untested), or "justification" arguments.</div><div class='del'>-</div><div class='del'>-From a patch by Iain Holmes &lt;ih@csd.abdn.ac.uk&gt;</div><div class='del'>-	</div><div class='del'>-	* widgets/e-text/e-text-event-processor-emacs-like.c,</div><div class='del'>-	widget/e-text/e-text-event-processor-types.h,</div><div class='del'>-	widgets/e-text/e-text.c, widgets/e-text/e-text.h: Changed C-w and</div><div class='del'>-	C-y to control the X clipboard.  Added double and triple click</div><div class='del'>-	events.</div><div class='del'>-</div><div class='del'>-2000-04-24  Fatih Demir	&lt;kabalak@gmx.net&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in : Added tr to ALL_LINGUAS .</div><div class='del'>-</div><div class='del'>-2000-04-24  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test13.c (main): Fixed for method movements.</div><div class='del'>-</div><div class='del'>-	* tests/test3.c (main): Removed from build, data-wrapper-repository removed.</div><div class='del'>-</div><div class='del'>-2000-04-23  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test2.c (main): Changed to use construct_from_stream.</div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): Chagned to use construct_from_stream.</div><div class='del'>-</div><div class='del'>-2000-04-24  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* default_user/Makefile.am: new file.</div><div class='del'>-</div><div class='del'>-	* default_user/Main_Shortcuts.xml: New file; is used to fill the</div><div class='del'>-	shortcut bar's "main shortcuts" pane.</div><div class='del'>-</div><div class='del'>-	* default_user/Other_Shortcuts.xml: New file, used to fill the</div><div class='del'>-	shortcut bar's "other shortcuts" pane.</div><div class='del'>-</div><div class='del'>-	* default_user/Inbox.mbox: New file. This is the first message a</div><div class='del'>-	new user will see when they fire up Evolution. Needs work.</div><div class='del'>-</div><div class='del'>-	* Makefile.am: added default_user directory.</div><div class='del'>-	* configure.in: same.</div><div class='del'>-</div><div class='del'>-2000-04-23  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test10.c: Removed some unecessary includes.  From</div><div class='del'>-	Ali Abdin &lt;aliabdin@aucegypt.edu&gt;</div><div class='del'>-	(create_sample_mime_message): Changed for date api change.</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am (noinst_PROGRAMS): Put test10 back.</div><div class='del'>-</div><div class='del'>-2000-04-22  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): Changed for date api change.</div><div class='del'>-</div><div class='del'>-2000-04-20  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test11.c: Fixed some headers.</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am (noinst_PROGRAMS): Removed test9.</div><div class='del'>-	(noinst_PROGRAMS): Removed test12, temporarirly (nntp not being</div><div class='del'>-	built).</div><div class='del'>-	Removed test10.</div><div class='del'>-</div><div class='del'>-2000-04-20  Yukihiro Nakai &lt;nakai@gnome.gr.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add Japanese to ALL_LINGUAS</div><div class='del'>-</div><div class='del'>-2000-04-19  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: More detail on exactly what versions of what libraries</div><div class='del'>-	are needed.</div><div class='del'>-</div><div class='del'>-2000-04-18  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/*: remove camel-log references</div><div class='del'>-</div><div class='del'>-2000-04-17  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (xmlpatch): Require gnome-xml 1.8.7 (or later,</div><div class='del'>-	but not 2.0). xmlParseMemory's behavior in 1.8.7 is incompatible</div><div class='del'>-	with its behavior in 1.8.6 and earlier.</div><div class='del'>-</div><div class='del'>-	* tests/test-url.c: New program to test CamelURL</div><div class='del'>-</div><div class='del'>-2000-04-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h,</div><div class='del'>-	addressbook/backend/ebook/test-card.c,</div><div class='del'>-	addressbook/backend/pas/pas-backend-file.c,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor.c: Added</div><div class='del'>-	orginizational unit, nickname, and internet free-busy fields.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/contact-editor.glade: Renamed some</div><div class='del'>-	incorrectly named fields.</div><div class='del'>-</div><div class='del'>-2000-04-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h,</div><div class='del'>-	addressbook/backend/ebook/test-card.c,</div><div class='del'>-	addressbook/backend/pas/pas-backend-file.c,</div><div class='del'>-	addressbook/gui/minicard/e-minicard.c: Added orginization and role</div><div class='del'>-	fields.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/contact-editor.glade,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor-strings.h: Renamed</div><div class='del'>-	some incorrectly named fields.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c: Added</div><div class='del'>-	orginization and role fields as well as hooking up the birth date</div><div class='del'>-	field.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c: Added a missing include.</div><div class='del'>-</div><div class='del'>-2000-04-15  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c</div><div class='del'>-	(search_entry_activated): New function. Gets called when the quick</div><div class='del'>-	search entry is called on to perform a search.</div><div class='del'>-	(make_quick_search_widget): New function; returns a "quick search"</div><div class='del'>-	widget.</div><div class='del'>-	(control_activate): During the construction of the toolbar, a</div><div class='del'>-	"quick search" widget is included.</div><div class='del'>-</div><div class='del'>-2000-04-14  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/.cvsignore: add test12</div><div class='del'>-</div><div class='del'>-	* tests/test12.c (main): add test for nntp stuff.</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am (noinst_PROGRAMS): same.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-04-14  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h,</div><div class='del'>-	addressbook/backend/pas/pas-backend-file.c,</div><div class='del'>-	addressbook/backend/pas/pas-backend-ldap.c,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor.c: Added a note field.</div><div class='del'>-</div><div class='del'>-2000-04-15  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-cursor.h: #include</div><div class='del'>-	"addressbook/backend/ebook" to make sure we pick up the right</div><div class='del'>-	addressbook.h.  Butt ugly, but at least it makes it possible for</div><div class='del'>-	me to build Evolution.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/Makefile.am (INCLUDES): Use</div><div class='del'>-	`$(builddir)' so that we pick up the IDL-generated includes</div><div class='del'>-	correctly.</div><div class='del'>-	* addressbook/backend/pas/Makefile.am: Likewise.  Also use</div><div class='del'>-	`$(srcdir)'.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/Makefile.am: Use `$(srcdir)' so that</div><div class='del'>-	it works with builddir != srcdir.</div><div class='del'>-	* addressbook/backend/pas/Makefile.am: Likewise.</div><div class='del'>-</div><div class='del'>-2000-04-14  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_ensure_connected): don't ldap_simple_bind_s if</div><div class='del'>-	the ldap_open failed, and fix warnings.</div><div class='del'>-	(pas_backend_ldap_build_all_cards_list): don't do search if the</div><div class='del'>-	ensure_connected failed, and fix warnings.</div><div class='del'>-	(pas_backend_ldap_search): same.</div><div class='del'>-	(poll_ldap): fix warnings.</div><div class='del'>-	(pas_backend_ldap_process_get_book_view): same.</div><div class='del'>-	(pas_backend_ldap_get_vcard): same.</div><div class='del'>-	(pas_backend_ldap_load_uri): same.</div><div class='del'>-</div><div class='del'>-	* configure.in: quiet configure in the case where it can't find</div><div class='del'>-	ldap libs.</div><div class='del'>-</div><div class='del'>-2000-04-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c (extract_info):</div><div class='del'>-	Check for 0 length fields when building the outgoing ECard.</div><div class='del'>-</div><div class='del'>-2000-04-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-book-view.c: Give correct warnings.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c (e_card_set_arg): g_strdup</div><div class='del'>-	url and title.</div><div class='del'>-</div><div class='del'>-2000-04-13  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c</div><div class='del'>-	(fill_in_info): reflect the title attribute in the contact editor.</div><div class='del'>-	(extract_info): same.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.c: add the title attribute.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/test-reflow.c: add a title.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard.c (remodel): add support for</div><div class='del'>-	the title attribute.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c (e_card_get_vcard): save out</div><div class='del'>-	the title to the vcard.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-card.c: add title field foo to</div><div class='del'>-	the test.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c: reflect the title field.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.h: un-#if 0 the title field.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.c (poll_ldap): new</div><div class='del'>-	function that polls ldap for more search responses.</div><div class='del'>-	(pas_backend_ldap_search): use the async search interface and</div><div class='del'>-	register an idle call to poll for the responses.</div><div class='del'>-	(view_destroy): make sure to g_source_remove the idle id.</div><div class='del'>-</div><div class='del'>-2000-04-12  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c (entry_compare):</div><div class='del'>-	rework this function to use a table mapping search field names to</div><div class='del'>-	vcard properties and extra information (such as whether or not the</div><div class='del'>-	property is a list.)</div><div class='del'>-	</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.c</div><div class='del'>-	(construct_email_list): new function, to build the ECardList for</div><div class='del'>-	email addresses.</div><div class='del'>-	(construct_phone_list): new function, to build the ECardList for</div><div class='del'>-	phone numbers.</div><div class='del'>-	(pas_backend_ldap_search): use a table mapping ldap attributes to</div><div class='del'>-	ecard properties, and use the special list construction functions</div><div class='del'>-	if the property calls for it.  general cleanup.  added a comment</div><div class='del'>-	about not calling ber_free if there was a decoding error.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-04-12  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: Add tigert's contact-dlg-related images.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c (_add_images): Add</div><div class='del'>-	tigert's images.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/Makefile.am: add EVOLUTION_IMAGES.</div><div class='del'>-</div><div class='del'>-2000-04-12  Tuomas Kuosmanen  &lt;tigert@gimp.org&gt;</div><div class='del'>-</div><div class='del'>-	* art/house.png, art/malehead.png, art/cellphone.png, </div><div class='del'>-	art/briefcase.png, art/envelope.png, art/globe.png:</div><div class='del'>-	New icons for the contact manager.. more to follow once I get </div><div class='del'>-	around to do more artist work..</div><div class='del'>-</div><div class='del'>-2000-04-12  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_build_all_cards_list): delay the setting of the</div><div class='del'>-	ldap variable until we've ensured we were connected.  Also, set</div><div class='del'>-	the search limit to LDAP_MAX_SEARCH_RESPONSES (we'll eventually</div><div class='del'>-	want a user setting here i assume.)</div><div class='del'>-	(pas_backend_ldap_search): same here, and also send back lists of</div><div class='del'>-	CARDS_PER_VIEW_NOTIFICATION length in each</div><div class='del'>-	pas_book_view_notify_add call.  also, don't call ber_free if there</div><div class='del'>-	was a decoding error, since the ldap library frees it for us.</div><div class='del'>-</div><div class='del'>-2000-04-11  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (have_pthread): Properly use AC_ARG_WITH</div><div class='del'>-</div><div class='del'>-2000-04-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* wombat/Makefile.am (wombat_LDADD): add LDAP_LIBS here.</div><div class='del'>-</div><div class='del'>-	* configure.in: check for -lldap and -llber and if both are</div><div class='del'>-	present include ldap support in the pas/wombat.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/Makefile.am (libpas_la_SOURCES): include</div><div class='del'>-	pas-backend.ldap.c if ENABLE_LDAP.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.c: get searching</div><div class='del'>-	working (converting between the sexp and ldap stuff.)</div><div class='del'>-</div><div class='del'>-	* wombat/wombat.c (setup_pas): register the ldap pas backend if</div><div class='del'>-	HAVE_LDAP is defined.</div><div class='del'>-</div><div class='del'>-2000-04-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Changed AC_DEFUN to AC_DEFINE.</div><div class='del'>-</div><div class='del'>-	* acconfig.h: Added HAVE_TIMEZONE and HAVE_TM_GMTOFF.</div><div class='del'>-</div><div class='del'>-2000-04-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check for timezone as a variable (as it is in</div><div class='del'>-	linux, but not in freebsd or netbsd.)</div><div class='del'>-</div><div class='del'>-2000-04-11  Larry Ewing  &lt;lewing@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-table/e-cell-toggle.c (etog_draw): update for new</div><div class='del'>-	gdk-pixbuf.  Added a disabled chuck of code to do alpha blending</div><div class='del'>-	on pixmaps.</div><div class='del'>-</div><div class='del'>-2000-04-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Moved some logic a bit.  Minor changes.</div><div class='del'>-</div><div class='del'>-00-04-11  Iain Holmes  &lt;ih@csd.abdn.ac.uk&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c</div><div class='del'>-	(e_text_set_args): Recalculate bounds when width or clip_width changes.</div><div class='del'>-	(tooltip_event): Forward clicks on the tooltip onto the text item.</div><div class='del'>-	(_do_tooltip): Correct the origin co-ordinates to the items co-ords.</div><div class='del'>-	(e_text_point): Return 0 when the mouse is on the item.</div><div class='del'>-	(_do_tooltip): Make the tooltip obey the parent items</div><div class='del'>-	line_wrap and max_lines.</div><div class='del'>-</div><div class='del'>-00-04-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(get_e_card_prop): new function, taking code from func_contains to</div><div class='del'>-	get string properties.</div><div class='del'>-	(entry_compare): new function generic, taking strstr-like function</div><div class='del'>-	as a parameter.</div><div class='del'>-	(func_contains): rewrite function to use entry_compare.</div><div class='del'>-	(is_helper): new helper function to map strcmp to a strstr-like</div><div class='del'>-	function.</div><div class='del'>-	(func_is): new function, implementing "is" for searches.</div><div class='del'>-	(endswith_helper): new function.</div><div class='del'>-	(func_endswith) new function, implementing "endswith" for</div><div class='del'>-	searches.</div><div class='del'>-	(beginswith_helper): new function.</div><div class='del'>-	(func_beginswith): new function, implementing "beginswith" for</div><div class='del'>-	searches.</div><div class='del'>-	(compare_email): new function for searching all email addresses of</div><div class='del'>-	a contact.</div><div class='del'>-	(compare_phone): new function for searching all phone numbers of a</div><div class='del'>-	contact.</div><div class='del'>-	(compare_address): new function for searching all addresses of a</div><div class='del'>-	contact (unimplemented as yet).</div><div class='del'>-	(entry_compare): add support for searching the list items "email",</div><div class='del'>-	"phone" and "address".</div><div class='del'>-	(vcard_matches_search): free the esexp_result.</div><div class='del'>-	(entry_compare): we want comparison functions to take 2 args.</div><div class='del'>-</div><div class='del'>-2000-04-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c: This was setting</div><div class='del'>-	E_REFLOW(view)-&gt;items to NULL too soon.  Fixed now.</div><div class='del'>-</div><div class='del'>-2000-04-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_search): remove spew.</div><div class='del'>-	(pas_backend_file_process_create_card): move the sync to the</div><div class='del'>-	earliest possible point after the db operation.</div><div class='del'>-	(pas_backend_file_process_remove_card): same.</div><div class='del'>-	(pas_backend_file_process_modify_card): same, and call</div><div class='del'>-	pas_book_respond_modify, not pas_book_respond_remove, here.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c (card_deleted_cb): new</div><div class='del'>-	function.</div><div class='del'>-	(delete_contact_cb): wire up button to call</div><div class='del'>-	e_minicard_view_remove_selection.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c</div><div class='del'>-	(e_minicard_view_remove_selection): fix warning, and stick "view"</div><div class='del'>-	in the name.</div><div class='del'>-</div><div class='del'>-2000-04-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book-view.c,</div><div class='del'>-	addressbook/backend/ebook/e-book.c: Changed some incorrect</div><div class='del'>-	gtk_object_refs and gtk_object_unrefs into bonobo_object_refs and</div><div class='del'>-	bonobo_object_unrefs.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-card-cursor.c: Changed a</div><div class='del'>-	gtk_object_destroy to a gtk_object_unref.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c,</div><div class='del'>-	addressbook/gui/minicard/e-minicard-view.h: Set a list pointer to</div><div class='del'>-	NULL after freeing its contents.  Added</div><div class='del'>-	e_minicard_view_remove_selection function.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-reflow.c: Set a list pointer to NULL</div><div class='del'>-	after freeing its contents.</div><div class='del'>-</div><div class='del'>-2000-04-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c (find_contact_cb):</div><div class='del'>-	implement braindead dialog to input the query string for the view.</div><div class='del'>-</div><div class='del'>-	also, change all callbacks to get the EMinicardView instead of the</div><div class='del'>-	EBook.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c</div><div class='del'>-	(e_minicard_view_get_arg): add missing break.</div><div class='del'>-</div><div class='del'>-2000-04-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c,</div><div class='del'>-	addressbook/gui/minicard/e-minicard-view.h: Added a "query"</div><div class='del'>-	argument to the e-minicard-view.  Documented all the arguments to</div><div class='del'>-	the e-minicard-view.</div><div class='del'>-</div><div class='del'>-2000-04-10  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c (get_view): change</div><div class='del'>-	the empty search string ("") to the valid (contains "full_name" "").</div><div class='del'>-</div><div class='del'>-	* wombat/Makefile.am (wombat_LDADD): reorder so libeutil.la comes</div><div class='del'>-	after libpas (since it uses the sexp stuff now.)</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/Makefile.am (INCLUDES): add</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend/ebook</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(view_destroy): free the search context and unref the sexp.</div><div class='del'>-	(string_to_dbt): save the zero byte of strings, so we don't have</div><div class='del'>-	to g_strndup everywhere.</div><div class='del'>-	(func_contains): new function, implementing the (contains) search</div><div class='del'>-	function.</div><div class='del'>-	(vcard_matches_search): generic predicate to tell whether or not a</div><div class='del'>-	vcard entry matches the current book view.</div><div class='del'>-	(pas_backend_file_search): rip some of this code out of</div><div class='del'>-	get_book_view (the portion building the list of cards) and make it</div><div class='del'>-	use the e-sexp stuff.</div><div class='del'>-	(pas_backend_file_process_create_card): use vcard_matches_search</div><div class='del'>-	to only notify if the card will appear in the view.</div><div class='del'>-	(pas_backend_file_process_remove_card): use vcard_matches_search</div><div class='del'>-	to only notify if the card will be removed from the view.</div><div class='del'>-	(pas_backend_file_process_modify_card): use vcard_matches_search</div><div class='del'>-	to notify if the modified card was added, removed, or changed in</div><div class='del'>-	the view.</div><div class='del'>-	</div><div class='del'>-2000-04-10  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (GNOME_PRINT_CFLAGS): Update to support</div><div class='del'>-	--disable-threads correctly.</div><div class='del'>-</div><div class='del'>-2000-04-10  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_book_view): use view != NULL instead</div><div class='del'>-	of checking db_error when we call pas_book_respond_get_book_view)</div><div class='del'>-</div><div class='del'>-2000-04-10  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check for mkstemp</div><div class='del'>-</div><div class='del'>-2000-04-10  Damon Chaplin  &lt;damon@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): removed libical stuff since it has its</div><div class='del'>-	own configure.in.</div><div class='del'>-</div><div class='del'>-2000-04-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book-view.c: Fixed a bug where I was</div><div class='del'>-	sending the wrong information to some callbacks.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h: Added an e_card_duplicate</div><div class='del'>-	function.  Made ids get stored in vcards.  Made sure to delete the</div><div class='del'>-	url if it exists.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/Makefile.am: Made pas include</div><div class='del'>-	addressbook/backend/ebook/ in the search path.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c: Fixed some bugs and</div><div class='del'>-	made the create card function store the generated id in the card</div><div class='del'>-	being saved.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-book-view.c: Fixed a double free</div><div class='del'>-	bug.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c: Fixed some bugs.</div><div class='del'>-	Made the contact editor actually return a valid card when</div><div class='del'>-	gtk_object_get(editor, "card", ...) is called.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.h: Fixed a copy and</div><div class='del'>-	paste error.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c: Made this get the card</div><div class='del'>-	properly.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/Makefile.am: Made this include</div><div class='del'>-	contact-editor directory in the search path and link against</div><div class='del'>-	libecontacteditor so that double clicking can open a dialog.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard.c: Fixed some small bugs.</div><div class='del'>-	Made double clicking open a contact editor dialog if this minicard</div><div class='del'>-	is contained in a minicard view.  (It needs the minicard view to</div><div class='del'>-	get the EBook to save to.</div><div class='del'>-</div><div class='del'>-	* wombat/Makefile.am: Link wombat against libebook, since</div><div class='del'>-	pas-backend-file now uses ECard.</div><div class='del'>-</div><div class='del'>-2000-04-09  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c (control_activate): Make</div><div class='del'>-	"New Contact" menuitem add a card with new_contact_cb().</div><div class='del'>-	</div><div class='del'>-	* addressbook/Makefile.am: Compile contact-editor, _then_ gui,</div><div class='del'>-	since the gui now depends on the contact editor (shouldn't the</div><div class='del'>-	contact-editor directory be moved into 'gui'?).</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c (card_added_cb): New</div><div class='del'>-	function. Gets called when a card is successfully added via the</div><div class='del'>-	contact-editor.</div><div class='del'>-	(new_contact_cb): New function. Gets called when a user clicks the</div><div class='del'>-	"new contact" button on the toolbar, and creates a contact-editor</div><div class='del'>-	to edit a new contact entry.</div><div class='del'>-	(control_activate): Call gnome_app_fill_toolbar_with_data()</div><div class='del'>-	instead of gnome_app_fill_toolbar(), so that our toolbar can find</div><div class='del'>-	the right book to add a new card to.</div><div class='del'>-	(addressbook_factory): On an "activate" signal, send the book up</div><div class='del'>-	to control_activate_cb.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook-factory.c (init_bonobo):</div><div class='del'>-	Call glade_gnome_init(), so that our contact-editor (which</div><div class='del'>-	requires glade) doesn't barf.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/Makefile.am: added the contact-editor</div><div class='del'>-	to our libraries and include files.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c</div><div class='del'>-	(e_contact_editor_new): Set "card" gtk property to the passed-in</div><div class='del'>-	card property.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c (addressbook_factory):</div><div class='del'>-	Added gtk_widget_push/pop_colormap/visual, which I assume is</div><div class='del'>-	necessary for canvas use.</div><div class='del'>-</div><div class='del'>-2000-04-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/Makefile.am,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor.c,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor.h,</div><div class='del'>-	addressbook/contact-editor/test-editor.c: Made the contact editor</div><div class='del'>-	load from an ECard.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h,</div><div class='del'>-	addressbook/gui/minicard/e-minicard.c: Added support for the URL</div><div class='del'>-	field.</div><div class='del'>-</div><div class='del'>-2000-04-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c (e_card_get_vcard): Fixed a</div><div class='del'>-	small typo.</div><div class='del'>-</div><div class='del'>-2000-04-08  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: pixmap_DATA should have been images_DATA (after</div><div class='del'>-	pixmapdir was renamed to imagesdir)</div><div class='del'>-</div><div class='del'>-2000-04-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/.cvsignore,</div><div class='del'>-	addressbook/gui/minicard/Makefile.am,</div><div class='del'>-	addressbook/gui/minicard/e-minicard-view.c,</div><div class='del'>-	addressbook/gui/minicard/e-minicard-view.h,</div><div class='del'>-	addressbook/gui/minicard/e-minicard.c,</div><div class='del'>-	addressbook/gui/minicard/e-minicard.h,</div><div class='del'>-	addressbook/gui/minicard/e-reflow-sorted.c,</div><div class='del'>-	addressbook/gui/minicard/e-reflow-sorted.h,</div><div class='del'>-	addressbook/gui/minicard/e-reflow.c,</div><div class='del'>-	addressbook/gui/minicard/e-reflow.h,</div><div class='del'>-	addressbook/gui/minicard/test-minicard-view.c,</div><div class='del'>-	addressbook/gui/minicard/test-reflow.c,</div><div class='del'>-	widgets/e-minicard/.cvsignore, widgets/e-minicard/Makefile.am,</div><div class='del'>-	widgets/e-minicard/e-minicard-label.c,</div><div class='del'>-	widgets/e-minicard/e-minicard-label.h,</div><div class='del'>-	widgets/e-minicard/e-minicard-view.c,</div><div class='del'>-	widgets/e-minicard/e-minicard-view.h,</div><div class='del'>-	widgets/e-minicard/e-minicard.c, widgets/e-minicard/e-minicard.h,</div><div class='del'>-	widgets/e-minicard/e-reflow-sorted.c,</div><div class='del'>-	widgets/e-minicard/e-reflow-sorted.h,</div><div class='del'>-	widgets/e-minicard/e-reflow.c, widgets/e-minicard/e-reflow.h,</div><div class='del'>-	widgets/e-minicard/test-minicard-label.c,</div><div class='del'>-	widgets/e-minicard/test-minicard-view.c,</div><div class='del'>-	widgets/e-minicard/test-minicard.c,</div><div class='del'>-	widgets/e-minicard/test-reflow.c: CVS move mistake.  Fixed the</div><div class='del'>-	correct changes in the correct places.</div><div class='del'>-</div><div class='del'>-2000-04-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am: pixmap_DATA isn't defined so don't use it as a variable.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/,</div><div class='del'>-	addressbook/gui/component/.cvsignore, addressbook/gui/Makefile.am,</div><div class='del'>-	addressbook/gui/component/addressbook-factory.c,</div><div class='del'>-	addressbook/gui/component/addressbook.c,</div><div class='del'>-	addressbook/gui/component/addressbook.gnorba,</div><div class='del'>-	addressbook/gui/component/addressbook.h: New directory to proivde</div><div class='del'>-	the component for contact management.  Simply uses an e-minicard-view.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard-view.c,</div><div class='del'>-	addressbook/gui/minicard/e-minicard-view.h: New subclass of</div><div class='del'>-	e-reflow-sorted that takes an EBook and uses it to compute the</div><div class='del'>-	card data to display.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard.c,</div><div class='del'>-	addressbook/gui/minicard/e-minicard.h: This now backends to a</div><div class='del'>-	ECard instead of a ETableModel.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-reflow.c,</div><div class='del'>-	addressbook/gui/minicard/e-reflow.h: This now has a virtualized</div><div class='del'>-	add method.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-reflow-sorted.c,</div><div class='del'>-	addressbook/gui/minicard/e-reflow-sorted.h: New subclass of</div><div class='del'>-	e-reflow that allows the data to be sorted on the fly.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/test-minicard-view.c: New test to test</div><div class='del'>-	the new minicard view.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/test-reflow.c: Uses the new ECard</div><div class='del'>-	backend of the e-minicard.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/.cvsignore,</div><div class='del'>-	addressbook/gui/minicard/Makefile.am: Added new test.  Fixed</div><div class='del'>-	dependencies.  Added new files.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/, addressbook/gui/Makefile.am,</div><div class='del'>-	addressbook/gui/.cvsignore: New directory for addressbook gui</div><div class='del'>-	bits.  Added subdirectories.  Created an initial .cvsignore.</div><div class='del'>-</div><div class='del'>-	* addressbook/Makefile.am (SUBDIRS): Removed demo and added gui.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c: Added code to do</div><div class='del'>-	notification on bookviews when changes in the backend are made.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-book-view.c,</div><div class='del'>-	addressbook/backend/pas/pas-book-view.h: Added helper functions to</div><div class='del'>-	notify the view about the addition or modification of a single</div><div class='del'>-	card.  Fixed a mistaken extra free.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-list-iterator.h: Fixed</div><div class='del'>-	incorrect parent class.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client.c: Made this accept an</div><div class='del'>-	optional parameter that specifies the vcard to add.</div><div class='del'>-</div><div class='del'>-	* configure.in: Replaced widgets/e-minicard/Makefile and</div><div class='del'>-	addressbook/demo/Makefile with addressbook/gui/minicard/Makefile</div><div class='del'>-	and addressbook/gui/component/Makefile respectively.</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Removed e-minicard since it's being moved</div><div class='del'>-	to addressbook/gui/minicard.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Fixed the border width around tooltips</div><div class='del'>-	and made the main tooltip area yellow.</div><div class='del'>-</div><div class='del'>-2000-04-08  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, acconfig.h: add SYSTEM_MAIL_DIR</div><div class='del'>-</div><div class='del'>-2000-04-08  Jesus Bravo Alvarez  &lt;jba@pobox.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ALL_LINGUAS): Added Galician (gl).</div><div class='del'>-</div><div class='del'>-2000-04-07  Jeffrey Stedfast  &lt;fejj@stampede.org&gt;</div><div class='del'>-	* configure.in: Modified to create camel/providers/smtp/Makefile</div><div class='del'>-</div><div class='del'>-2000-04-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Made text tooltips appear in place.</div><div class='del'>-	Iain figured out that to get them to not appear, we hide the</div><div class='del'>-	tooltip when the mouse leaves the tooltip window, not the canvas</div><div class='del'>-	item (this works because the tooltip window always covers the</div><div class='del'>-	canvas item completely.)</div><div class='del'>-</div><div class='del'>-2000-04-07  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/addressbook.c (control_activate_cb): New</div><div class='del'>-	function. Called when the control is (de)activated.</div><div class='del'>-	(control_activate): New function; called when the control is</div><div class='del'>-	activated, and sets up toolbar/menu times.</div><div class='del'>-	(control_deactivate): New function; removes those toolbar/menu</div><div class='del'>-	items.</div><div class='del'>-	(do_nothing_cb): Does nothing :-)</div><div class='del'>-	(addressbook_factory): Hook up to control_activate_cb().</div><div class='del'>-</div><div class='del'>-2000-04-07  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_book_view): correctly (well,</div><div class='del'>-	untested) implement.</div><div class='del'>-	(view_destroy): new function.</div><div class='del'>-</div><div class='del'>-2000-04-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/demo.c, addressbook/demo/addressbook-widget.c:</div><div class='del'>-	Changed calls to e_cell_text_new to match new function signature.</div><div class='del'>-</div><div class='del'>-2000-04-06  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* art/Makefile.am (images_DATA): Renamed from pixmaps to images. </div><div class='del'>-</div><div class='del'>-2000-04-05  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* README: Added wombat.</div><div class='del'>-</div><div class='del'>-2000-04-04  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text-test.c: Got rid of some runtime errors.</div><div class='del'>-	Changed to "fixed" font so that it will work on everyone's</div><div class='del'>-	machine.  Added a white background rectangle.  Made resizing the</div><div class='del'>-	window resize the contained text item.  Changed to using affines</div><div class='del'>-	(e_canvas_item_move_absolute) instead of "x" and "y" attributes.</div><div class='del'>-	Set the text in the entries so that they match the original values</div><div class='del'>-	of the displayed text object.</div><div class='del'>-</div><div class='del'>-2000-04-04  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard.c: Fixed some referencing and</div><div class='del'>-	lifetime issues.</div><div class='del'>-</div><div class='del'>-2000-04-04  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Removed an unnecessary get_bounds call.</div><div class='del'>-</div><div class='del'>-	(From a patch by Iain Holmes &lt;ih@csd.abdn.ac.uk&gt;)</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Made tooltips look more like the</div><div class='del'>-	underlying text.  Made tooltips show up more consistently.</div><div class='del'>-</div><div class='del'>-2000-04-04  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/Makefile.am, addressbook/demo/e-test-model.c,</div><div class='del'>-	addressbook/demo/e-test-model.h: Changed this to backend to an</div><div class='del'>-	ebook.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-iterator.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-iterator.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-list-iterator.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-list.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-list.h,</div><div class='del'>-	addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h: Fixed const correctness and</div><div class='del'>-	changed a couple of functions to be external.</div><div class='del'>-	</div><div class='del'>-	* addressbook/Makefile.am: Fixed subdir ordering.</div><div class='del'>-</div><div class='del'>-2000-04-04  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book-view.c: Fixed an incorrect</div><div class='del'>-	function.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book-view.h,</div><div class='del'>-	addressbook/backend/ebook/e-book.h: Fixed some incorrect function</div><div class='del'>-	pointer declarations.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-iterator.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-iterator.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-list-iterator.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-list-iterator.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-list.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-list.h,</div><div class='del'>-	addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h,</div><div class='del'>-	addressbook/backend/ebook/test-card.c: Built new iterator system</div><div class='del'>-	for getting fields with multiple entries.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/Makefile.am: Added new files</div><div class='del'>-	addressbook/backend/ebook/e-card-iterator.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-iterator.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-list-iterator.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-list-iterator.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-list.c, and</div><div class='del'>-	addressbook/backend/ebook/e-card-list.h.</div><div class='del'>-</div><div class='del'>-2000-04-04  Yuri Syrota  &lt;rasta@renome.rovno.ua&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added uk to ALL_LINGUAS.</div><div class='del'>-</div><div class='del'>-2000-04-04  Andreas Hyden  &lt;a.hyden@cyberpoint.se&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added no and sv to ALL_LINGUAS.</div><div class='del'>-</div><div class='del'>-2000-04-03  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-cursor.h,</div><div class='del'>-	addressbook/backend/ebook/e-card.c: A bit of clean up.</div><div class='del'>-	</div><div class='del'>-	* addressbook/backend/ebook/e-book-types.h,</div><div class='del'>-	addressbook/backend/ebook/e-book-view-listener.c,</div><div class='del'>-	addressbook/backend/ebook/e-book-view-listener.h,</div><div class='del'>-	addressbook/backend/ebook/e-book-view.c,</div><div class='del'>-	addressbook/backend/ebook/e-book-view.h,</div><div class='del'>-	addressbook/backend/pas/pas-book-view.c,</div><div class='del'>-	addressbook/backend/pas/pas-book-view.h: New files for live views.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/Makefile.am,</div><div class='del'>-	addressbook/backend/ebook/e-book-listener.c,</div><div class='del'>-	addressbook/backend/ebook/e-book-listener.h,</div><div class='del'>-	addressbook/backend/ebook/e-book.c,</div><div class='del'>-	addressbook/backend/ebook/e-book.h,</div><div class='del'>-	addressbook/backend/ebook/test-client-list.c,</div><div class='del'>-	addressbook/backend/ebook/test-client.c,</div><div class='del'>-	addressbook/backend/pas/pas-backend-file.c,</div><div class='del'>-	addressbook/backend/pas/pas-book.c,</div><div class='del'>-	addressbook/backend/pas/pas-book.h,</div><div class='del'>-	addressbook/backend/idl/addressbook.idl: Added live views and</div><div class='del'>-	searching to the interface (neither is working yet.)</div><div class='del'>-</div><div class='del'>-2000-04-01  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/.cvsignore: Added test-movemail.</div><div class='del'>-</div><div class='del'>-	* art/.cvsignore: New file.</div><div class='del'>-</div><div class='del'>-2000-03-31  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/demo.c, addressbook/demo/addressbook-widget.c:</div><div class='del'>-	Added some missing gtk_object_refs.</div><div class='del'>-</div><div class='del'>-2000-03-30  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_build_all_cards_list): Get first card (with</div><div class='del'>-	R_FIRST) on first seq().</div><div class='del'>-</div><div class='del'>-2000-03-30  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.h: new-file</div><div class='del'>-	* addressbook/backend/pas/pas-backend-ldap.c: new file</div><div class='del'>-</div><div class='del'>-2000-03-30  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-	</div><div class='del'>-	* configure.in:</div><div class='del'>-	* Makefile.am:</div><div class='del'>-	* art/Makefile.am: install new shortcut bar pixmaps.</div><div class='del'>-</div><div class='del'>-2000-03-30  Tuomas Kuosmanen  &lt;tigert@gimp.org&gt;</div><div class='del'>-</div><div class='del'>-	* art/evolution-calendar.png art/evolution-inbox.png </div><div class='del'>-	art/evolution-tasks.png	art/evolution-contacts.png </div><div class='del'>-	art/evolution-notes.png evolution-today.png:</div><div class='del'>-	added some artwork for the main shortcutbar.. someone</div><div class='del'>-	could stick them in it.</div><div class='del'>-</div><div class='del'>-2000-03-29  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-cursor.c: Fixed management of</div><div class='del'>-	the corba-cursor object by calling CORBA_Object_duplicate on it on</div><div class='del'>-	e-card-cursor creation and calling CORBA_Object_release on</div><div class='del'>-	e-card-cursor destruction.  Also, properly free string returned</div><div class='del'>-	from Evolution_CardCursor_get_nth function.</div><div class='del'>-</div><div class='del'>-2000-03-29  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client.c (get_cursor_cb): Added</div><div class='del'>-	some debugging.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book-listener.c: Added inline</div><div class='del'>-	documentation for exposed functions.</div><div class='del'>-	* addressbook/backend/ebook/e-card-cursor.c: same.</div><div class='del'>-	* addressbook/backend/ebook/e-card.c: same.</div><div class='del'>-</div><div class='del'>-	* Makefile.am: add calendar compilation back in.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-book-factory.c</div><div class='del'>-	(PAS_BOOK_FACTORY_GOAD_ID): changed to</div><div class='del'>-	"evolution:addressbook-server".</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/Makefile.am: no need to install a</div><div class='del'>-	.gnorba file from here, as the wombat.gnorba file in</div><div class='del'>-	evolution/wombat will do its job.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client.c (ebook_create): if</div><div class='del'>-	ebook_new fails, print a warning and return.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book.c (CARDSERVER_GOAD_ID): changed</div><div class='del'>-	to "evolution:addressbook-server".</div><div class='del'>-</div><div class='del'>-	* wombat/wombat.c: Changed headerfile path.</div><div class='del'>-</div><div class='del'>-	* wombat/Makefile.am: Use relative paths to libraries in the build</div><div class='del'>-	tree, rather than requiring libraries (such as libpcs) to already</div><div class='del'>-	be installed.</div><div class='del'>-</div><div class='del'>-2000-03-28  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* wombat/Makefile.am: new file.</div><div class='del'>-</div><div class='del'>-	* wombat/wombat.gnorba: Cleaned up.</div><div class='del'>-</div><div class='del'>-	* wombat/wombat.c (setup_pcs): filled in the rest.</div><div class='del'>-	</div><div class='del'>-	* Makefile.am: added wombat.</div><div class='del'>-</div><div class='del'>-	* wombat/wombat.gnorba: new file.</div><div class='del'>-</div><div class='del'>-	* wombat/.cvsignore: new file.</div><div class='del'>-</div><div class='del'>-	* wombat/wombat.c (setup_pcs): fill out this function some.</div><div class='del'>-</div><div class='del'>-	* configure.in: added wombat.</div><div class='del'>-</div><div class='del'>-2000-03-28  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-card-cursor.c (create_cursor): use</div><div class='del'>-	g_new0 to allocate the BonoboObjectServant.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_build_all_cards_list): remove unnecessary</div><div class='del'>-	strdup/free.</div><div class='del'>-</div><div class='del'>-2000-03-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c: Removed an infinite</div><div class='del'>-	loop.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client-list.c: New test that</div><div class='del'>-	doesn't add an extra database item.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/Makefile.am,</div><div class='del'>-	addressbook/backend/ebook/.cvsignore: Added test-client-list.</div><div class='del'>-</div><div class='del'>-2000-03-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-card-cursor.c: Fixed memory</div><div class='del'>-	allocation.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c: Fixed memory</div><div class='del'>-	allocation.  Made database stuff not do an extra entry.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client.c: Add test for</div><div class='del'>-	get_all_cards functionality.  Changed database name to test.db.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-cursor.c: Changed bonobo_object</div><div class='del'>-	to gtk_object in a couple of places.</div><div class='del'>-</div><div class='del'>-2000-03-28  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_create_unique_id): create id's for entries using</div><div class='del'>-	the following format: ("pas-id-%08lX%08X", time(NULL), c++).</div><div class='del'>-	</div><div class='del'>-2000-03-27  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test-movemail.c: new test program. Can be used to copy POP</div><div class='del'>-	mail into your evolution inbox.</div><div class='del'>-</div><div class='del'>-2000-03-27  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_get_vcard): remove unneeded g_strdup;</div><div class='del'>-	(get_length): implement function.</div><div class='del'>-	(get_nth): implement function.</div><div class='del'>-	(cursor_destroy): free up the internal glist of vcards, and fix</div><div class='del'>-	warning.</div><div class='del'>-	(pas_backend_file_build_all_cards_list): new function, to build up</div><div class='del'>-	the list of cards in the db.</div><div class='del'>-	(pas_backend_file_process_get_all_cards): call</div><div class='del'>-	pas_backend_file_build_+all_cards_list, and fix warning.</div><div class='del'>-</div><div class='del'>-2000-03-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-card.c: Fixed some warnings.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client.c: Added a section to test</div><div class='del'>-	cursors and returning an id when adding.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-pairs.h: Removed the address</div><div class='del'>-	pairs since they were added to e-card.c.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h: Made the set_id function take</div><div class='del'>-	a const char *.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book-listener.c,</div><div class='del'>-	addressbook/backend/ebook/e-book-listener.h,</div><div class='del'>-	addressbook/backend/ebook/e-book.c,</div><div class='del'>-	addressbook/backend/ebook/e-book.h,</div><div class='del'>-	addressbook/backend/idl/addressbook.idl,</div><div class='del'>-	addressbook/backend/pas/pas-backend-file.c,</div><div class='del'>-	addressbook/backend/pas/pas-book.c,</div><div class='del'>-	addressbook/backend/pas/pas-book.h: Added a get_all_cards function</div><div class='del'>-	and made the response to the create_card function include the card</div><div class='del'>-	id.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/Makefile.am: Added e-card-cursor.c and</div><div class='del'>-	e-card-cursor.h.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-cursor.c,</div><div class='del'>-	addressbook/backend/ebook/e-card-cursor.h: New class for proxying</div><div class='del'>-	to an Evolution_CardCursor.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/Makefile.am: Added pas-card-cursor.c and</div><div class='del'>-	pas-card-cursor.h.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-card-cursor.c,</div><div class='del'>-	addressbook/backend/pas/pas-card-cursor.h: New bonobo class for</div><div class='del'>-	making an Evolution_CardCursor server.</div><div class='del'>-</div><div class='del'>-2000-03-27  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test9.c (main): This test is basically now invalid.</div><div class='del'>-	* tests/test11.c (main): Fix for async search api.  Probably works.</div><div class='del'>-	Removed camel-mbox-*.h headers, should be private.</div><div class='del'>-</div><div class='del'>-2000-03-27  Tuomas Kuosmanen  &lt;tigert@gimp.org&gt;</div><div class='del'>-	* art/attachment.xpm art/mail-new.xpm art/mail-read.xpm</div><div class='del'>-	art/mail-replied.xpm art/mark.xpm art/meeting.xpm</div><div class='del'>-	art/priority-high.xpm art/priority-low.xpm</div><div class='del'>-</div><div class='del'>-	Added some new icons for the message-list view..</div><div class='del'>-</div><div class='del'>-2000-03-26  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check for db_185.h (present in newer db</div><div class='del'>-	distributions.)</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_create_unique_id): new function.</div><div class='del'>-	(pas_backend_file_process_create_card): call</div><div class='del'>-	pas_backend_file_create_unique_id and pas_book_notify_add (if the</div><div class='del'>-	db-&gt;put was successful).  also, sync out db.</div><div class='del'>-	(pas_backend_file_process_remove_card): call</div><div class='del'>-	pas_book_notify_remove if the db-&gt;del was successful, and sync out</div><div class='del'>-	db.</div><div class='del'>-	(pas_backend_file_process_modify_card): call</div><div class='del'>-	pas_book_notify_change if db-&gt;put was successful, and sync out db.</div><div class='del'>-	(string_to_dbt): new function.</div><div class='del'>-	(pas_backend_file_process_create_card): use string_to_dbt</div><div class='del'>-	(pas_backend_file_process_remove_card): likewise</div><div class='del'>-	(pas_backend_file_process_modify_card): likewise</div><div class='del'>-	(pas_backend_file_get_vcard): likewise</div><div class='del'>-	(pas_backend_file_upgrade_db): new function, to upgrade a db file</div><div class='del'>-	if we change the data format.</div><div class='del'>-	(pas_backend_file_maybe_upgrade_db): check db version vs. current</div><div class='del'>-	code version, and upgrade it necessary.</div><div class='del'>-	(pas_backend_file_load_uri): call pas_backend_file_maybe_upgrade.</div><div class='del'>-</div><div class='del'>-2000-03-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client.c: Load an ECard instead</div><div class='del'>-	of a VCard and then get the VCard from that ECard.  Just tests</div><div class='del'>-	ECard and the client stuff at the same time.  Also, replaces</div><div class='del'>-	carriage returns with newlines.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book.c: Fixed a small parity error.</div><div class='del'>-</div><div class='del'>-2000-03-25  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-client.c: create a card and then</div><div class='del'>-	look it up.</div><div class='del'>-</div><div class='del'>-2000-03-26  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_create_card): add db calls to flesh out</div><div class='del'>-	the interface.  hardcoded id that needs to change, once we decide</div><div class='del'>-	how we're going to create it.</div><div class='del'>-	(pas_backend_file_process_remove_card): add db calls to flesh out</div><div class='del'>-	the interface.</div><div class='del'>-	(pas_backend_file_process_modify_card): likewise</div><div class='del'>-	(pas_backend_file_process_check_connection): likewise</div><div class='del'>-	(pas_backend_file_get_vcard): likewise</div><div class='del'>-	(pas_backend_file_load_uri): likewise</div><div class='del'>-</div><div class='del'>-2000-03-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book.c: Set the card id properly</div><div class='del'>-	when retrieving a card.</div><div class='del'>-</div><div class='del'>-2000-03-22  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* e-util/e-sexp.h: Formatting cleanup.</div><div class='del'>-</div><div class='del'>-2000-03-07  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* e-util/Makefile.am (libeutil_la_SOURCES): s-sexp.h -&gt; e-sexp.h.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h: Added the ability to set the</div><div class='del'>-	card's id (and made getting it work correctly also.)</div><div class='del'>-</div><div class='del'>-2000-03-25  Chris Toshok  &lt;toshok@laptoph.xtoph.org&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book.c (e_book_pop_op): pass GList*</div><div class='del'>-	as second parameter to g_list_remove_link, not the data pointer.</div><div class='del'>-</div><div class='del'>-2000-03-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-types.h: Removed the</div><div class='del'>-	address-&gt;description field.</div><div class='del'>-	</div><div class='del'>-	* addressbook/backend/ebook/e-card.c: Added VCard output and</div><div class='del'>-	the use of GtkArguments.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/test-card.c: Updated this to use the</div><div class='del'>-	GtkArguments.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book.c: Fixed a memory leak.</div><div class='del'>-</div><div class='del'>-2000-03-25  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ebook/e-book.c,</div><div class='del'>-	ebook/e-book.h,	</div><div class='del'>-	ebook/e-book.h,		</div><div class='del'>-	ebook/e-card-fields.h,</div><div class='del'>-	ebook/e-card.h,</div><div class='del'>-	ebook/e-commerce.h: old, removed. Up-to-date EBook stuff is kept</div><div class='del'>-	in addressbook/backend/ebook.</div><div class='del'>-</div><div class='del'>-2000-03-23  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-types.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-pairs.h,</div><div class='del'>-	addressbook/backend/ebook/test-card.c: Added parsing and testing</div><div class='del'>-	for name, full name, birthday, telephone, email, and street</div><div class='del'>-	address properties.</div><div class='del'>-</div><div class='del'>-2000-03-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/.cvsignore,</div><div class='del'>-	addressbook/backend/pas/.cvsignore,</div><div class='del'>-	addressbook/backend/idl/.cvsignore,</div><div class='del'>-	addressbook/backend/.cvsignore: Updated .cvsignore files.</div><div class='del'>-</div><div class='del'>-2000-03-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/Makefile.am, configure.in: Added the</div><div class='del'>-	addressbook/backend directory.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/Makefile.am: Removed the libversit directory</div><div class='del'>-	as it's now included in the base evolution directory.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-pairs.h,</div><div class='del'>-	addressbook/backend/ebook/Makefile.am: Changed the place where</div><div class='del'>-	libversit is looked for.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-book-listener.c: Fixed some</div><div class='del'>-	indentation.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card-pairs.h,</div><div class='del'>-	addressbook/backend/ebook/e-card-types.h: Commented out some code</div><div class='del'>-	to get this to compile.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/ebook/e-card.c,</div><div class='del'>-	addressbook/backend/ebook/e-card.h: Turned this into a GTK+</div><div class='del'>-	object.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas.c,</div><div class='del'>-	addressbook/backend/ebook/test-client.c: Include gnome.h and</div><div class='del'>-	gnorba.h.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/idl/addressbook.idl: Include Bonobo.idl</div><div class='del'>-	instead of bonobo-unknown.idl.</div><div class='del'>-</div><div class='del'>-	* addressbook/backend/pas/pas-backend-file.c,</div><div class='del'>-	addressbook/backend/pas/pas-book.c,</div><div class='del'>-	addressbook/contact-editor/test-editor.c,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor.c,</div><div class='del'>-	addressbook/printing/e-contact-print.c,</div><div class='del'>-	addressbook/printing/test-contact-print-style-editor.c,</div><div class='del'>-	addressbook/printing/test-print.c: Killed some warnings.</div><div class='del'>-</div><div class='del'>-2000-03-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Changed gnome_canvas_item_grab_focus to</div><div class='del'>-	e_canvas_item_grab_focus.</div><div class='del'>-</div><div class='del'>-2000-03-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/addressbook-widget.c: Make background pixmap</div><div class='del'>-	get properly set to NULL.</div><div class='del'>-</div><div class='del'>-2000-03-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Added the</div><div class='del'>-	ability to access the text event processor.</div><div class='del'>-</div><div class='del'>-2000-03-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/addressbook-widget.c: Made the addressbook</div><div class='del'>-	component look in the users home directory for the addressbook.xml</div><div class='del'>-	file.</div><div class='del'>-</div><div class='del'>-2000-03-20  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/.cvsignore: added filter.</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/.cvsignore: added test-addressbook.</div><div class='del'>-</div><div class='del'>-2000-03-17 Elliot Lee &lt;sopwith@redhat.com&gt;</div><div class='del'>-	* calendar/cal-client/Makefile.am,</div><div class='del'>-	calendar/cal-util/Makefile.am, calendar/gui/Makefile.am,</div><div class='del'>-	calendar/pcs/Makefile.am, mail/Makefile.am,</div><div class='del'>-	widgets/e-text/Makefile.am: Fix for srcdir != builddir.</div><div class='del'>-</div><div class='del'>-2000-03-14  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): build shell before mail, since mail</div><div class='del'>-	relies on the shell idl files being compiled.</div><div class='del'>-</div><div class='del'>-2000-03-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/Makefile.am: Added files for addressbook bonobo</div><div class='del'>-	component.  Changed non bonobo version to compile as</div><div class='del'>-	test-addressbook.</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/addressbook.c,</div><div class='del'>-	addressbook/demo/addressbook.gnorba,</div><div class='del'>-	addressbook/demo/addressbook.h,</div><div class='del'>-	addressbook/demo/addressbook-factory.c,</div><div class='del'>-	addressbook/demo/addressbook-widget.c,</div><div class='del'>-	addressbook/demo/addressbook-widget.h: New factory to create an</div><div class='del'>-	addressbook bonobo component.</div><div class='del'>-</div><div class='del'>-2000-03-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/.cvsignore: Added e-text-test.</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/e-test-model.c,</div><div class='del'>-	addressbook/demo/e-test-model.h: A model storing data in an array</div><div class='del'>-	of Address objects.</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/demo.c: Changed to use</div><div class='del'>-	addressbook/demo/e-test-model.c and</div><div class='del'>-	addressbook/demo/e-test-model.h.</div><div class='del'>-</div><div class='del'>-	* addressbook/demo/Makefile.am: Added e-test-model.c and</div><div class='del'>-	e-test-model.h.</div><div class='del'>-</div><div class='del'>-2000-03-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Rearranged SUBDIRS for dependencies.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text-model.c, widgets/e-text-model.h: New</div><div class='del'>-	object which stores a piece of text data.  All methods are</div><div class='del'>-	virtual.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Modified this</div><div class='del'>-	to use an ETextModel for its data.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/Makefile.am: Added e-text-model.c and e-text-model.h.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/test-minicard-label.c: Made this work again.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard.c,</div><div class='del'>-	widgets/e-minicard/e-minicard.h: Made this use an ETableModel to</div><div class='del'>-	get its data.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard-label.c,</div><div class='del'>-	widgets/e-minicard/e-minicard-label.h: Added the ability to set</div><div class='del'>-	the text model used for the contained text widget.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/Makefile.am: Added e-table since e-minicard</div><div class='del'>-	is now dependent on an e-table-model for its data.</div><div class='del'>-</div><div class='del'>-	* addressbook/demo, addressbook/demo/.cvsignore,</div><div class='del'>-	addressbook/demo/Makefile.am, addressbook/demo/demo.c,</div><div class='del'>-	addressbook/demo/spec: A new program to test ETable and EMinicard</div><div class='del'>-	integration.</div><div class='del'>-</div><div class='del'>-	* configure.in: Added addressbook/demo/Makefile.</div><div class='del'>-</div><div class='del'>-	* addressbook/Makefile.am: Added the demo/ subdirectory.</div><div class='del'>-</div><div class='del'>-2000-03-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard.c,</div><div class='del'>-	widgets/e-minicard/e-minicard-label.c,</div><div class='del'>-	widgets/e-minicard/e-minicard-label.h,</div><div class='del'>-	widgets/e-minicard/e-reflow.c, widgets/e-minicard/test-reflow.c,</div><div class='del'>-	widgets/e-text/e-text.c, widgets/e-text/e-text.h: Adapted to use</div><div class='del'>-	the new e-canvas reflow system.</div><div class='del'>-</div><div class='del'>-2000-03-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Added a</div><div class='del'>-	"break_characters" argument.  It lets you define a set of</div><div class='del'>-	characters which should cause optional linebreaks to occur.  Made</div><div class='del'>-	setting the "clip_height" argument to -1 mean no height clipping.</div><div class='del'>-	Moved calling the "resize" signal into an idle handler to avoid</div><div class='del'>-	reentering the canvas update loop.  Made EText recalc bounds if</div><div class='del'>-	the affine has changed.  Fixed up tooltip_count (this counts the</div><div class='del'>-	number of ENTER and LEAVE events.)</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text-test.c: Got rid of a few warnings.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard-label.h: Reindent a few lines.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard.c,</div><div class='del'>-	widgets/e-minicard/e-minicard-label.c: Switch from using "x" and</div><div class='del'>-	"y" to set the children's position to using</div><div class='del'>-	e_canvas_item_move_absolute.</div><div class='del'>-</div><div class='del'>-2000-03-05  Matt Loper  &lt;matt.loper@splashtech.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c: Commenting added.</div><div class='del'>-	(on_url_data_requested): renamed from "on_url_requested", to</div><div class='del'>-	reflect that a stream of data is what's actually being asked for.</div><div class='del'>-	(hydrate_persist_stream_from_gstring): New function.</div><div class='del'>-	(camel_stream_to_gstring): New function.</div><div class='del'>-	(on_object_requested): Cleaned up.</div><div class='del'>-</div><div class='del'>-2000-03-04  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/Makefile.am: add bonobo to the build </div><div class='del'>-	process.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (main): </div><div class='del'>-	initialize Bonobo. Use bonobo_main.</div><div class='del'>-	(get_gtk_html_contents_window): set signal handlers</div><div class='del'>-	for url requests and objects requests.</div><div class='del'>-	(on_object_requested): answer to object requests.</div><div class='del'>-</div><div class='del'>-2000-03-03  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (main): initialize</div><div class='del'>-	gdkrgb. Push visual/colormap.</div><div class='del'>-	(on_url_requested): in the case where a camel url is requested, </div><div class='del'>-	write the camel stream to gtkhtml. </div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/Makefile.am (filter_LDADD): add</div><div class='del'>-	gnomeprint in the lib list. </div><div class='del'>-</div><div class='del'>-2000-03-01  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-	</div><div class='del'>-	* configure.in: Build `filter/Makefile'.  Added check for GtkHTML.</div><div class='del'>-	Set `GTKHTML_CFLAGS' and `GTKHTML_LIBS' to the appropriate values</div><div class='del'>-	for linking with GtkHTML.</div><div class='del'>-</div><div class='del'>-2000-03-01  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Added calendar/idl/Makefile,</div><div class='del'>-	calendar/cal-client/Makefile, and calendar/pcs/Makefile to the</div><div class='del'>-	list of files to generate.</div><div class='del'>-</div><div class='del'>-2000-02-29  Iain Holmes  &lt;ih@csd.abdn.ac.uk&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Don't show the tooltip if the text is being</div><div class='del'>-	editted or isn't clipped. Remove the tooltip when editting starts.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/Makefile.am: Build the test program</div><div class='del'>-</div><div class='del'>-2000-02-29  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/Makefile.am (filter_LDADD): Added test program.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/filterdescription.xml, saveoptions.xml: Data</div><div class='del'>-	files for test program.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/filter.c (main): Test program for filter ui.</div><div class='del'>-</div><div class='del'>-2000-02-28  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/Makefile.am (INCLUDES): Fixed references to</div><div class='del'>-	eutil.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Build e-util before other stuff.</div><div class='del'>-	(SUBDIRS): Build filter after camel.</div><div class='del'>-</div><div class='del'>-2000-02-28  Chris Lahey  &lt;clahey@umich.edu&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c: Compilation error.</div><div class='del'>-</div><div class='del'>-2000-02-28  Chris Lahey  &lt;clahey@umich.edu&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Updated these</div><div class='del'>-	to use the canvas ::update system properly.</div><div class='del'>-</div><div class='del'>-2000-02-24  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* acconfig.h:</div><div class='del'>-	* configure.in: define SENDMAIL_PATH with the path to sendmail.</div><div class='del'>-</div><div class='del'>-2000-02-24  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.c, widgets/e-text.h, e-text-event-processor.c,</div><div class='del'>-	e-text-event-processor.h, e-text-event-processor-emacs-like.c,</div><div class='del'>-	e-text-event-processor-emacs-like.h,</div><div class='del'>-	e-text-event-processor-types.h: This were moved to widgets/e-text/</div><div class='del'>-	a while ago but never removed.  They have now been removed.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Removed some</div><div class='del'>-	warnings from this file.  Made tooltips disappear when you're</div><div class='del'>-	finished with them.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/test-reflow.c,</div><div class='del'>-	widgets/e-minicard/test-minicard.c,</div><div class='del'>-	widgets/e-minicard/test-minicard-label.c: Commented out unused</div><div class='del'>-	about_callback functions.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-reflow.c: Made e-reflow pass an EFocus to</div><div class='del'>-	its e-minicard children.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard.c: Made e-minicard take and return</div><div class='del'>-	an EFocus for its "has_focus" argument.  This makes shift-tab work properly.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/e-minicard-label.c: Made e-minicard-label take and return</div><div class='del'>-	an EFocus for its "has_focus" argument.  Made the font that</div><div class='del'>-	e-minicard-label uses only be allocated once.</div><div class='del'>-	</div><div class='del'>-2000-02-21  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (on_link_clicked): stop</div><div class='del'>-	sscanf() abuse.</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am: changed references to libibex.a to</div><div class='del'>-	libibex.la.</div><div class='del'>-</div><div class='del'>-	* libical/src/libical/.cvsignore: Added *.lo, *.la, and .libs.</div><div class='del'>-	* libical/src/libicalss/.cvsignore: same.</div><div class='del'>-</div><div class='del'>-	* tests/.cvsignore: Added test11.</div><div class='del'>-</div><div class='del'>-	* libical/Makefile.in: autogenerated file removed from cvs, and</div><div class='del'>-	added to .cvsignore.</div><div class='del'>-	* libical/src/Makefile.in: same.</div><div class='del'>-	* libical/src/libical/Makefile.in: same.</div><div class='del'>-	* libical/src/libicalss/Makefile.in: same.</div><div class='del'>-</div><div class='del'>-2000-02-22  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (on_link_clicked): </div><div class='del'>-	uggly hack to test part saving and</div><div class='del'>-	b64 streams.</div><div class='del'>-</div><div class='del'>-2000-02-21  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test10.c:</div><div class='del'>-	* tests/test11.c: update for camel changes</div><div class='del'>-</div><div class='del'>-2000-02-20  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am: Changed dependencies on libibex.la to</div><div class='del'>-	libibex.a. In test9_LDADD, placed libcamelmbox.la before</div><div class='del'>-	libibex.la, as the former requires the latter.</div><div class='del'>-</div><div class='del'>-2000-02-20  Iain Holmes  &lt;ih@csd.abdn.ac.uk&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.[ch] (_do_tooltip): Show the text of the item,</div><div class='del'>-	in a tooltip style.</div><div class='del'>-	(e_text_event): Add a timeout on the Enter and remove it on the Leave</div><div class='del'>-	events.</div><div class='del'>-</div><div class='del'>-	* e-text-test.c: New file to test e-text items.</div><div class='del'>-	</div><div class='del'>-2000-02-20  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* .cvsignore: added ABOUT-NLS.  </div><div class='del'>-	* ABOUT-NLS: removed.</div><div class='del'>-	</div><div class='del'>-2000-02-19  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (on_link_clicked): When a link</div><div class='del'>-	is clicked, indicate the link with a dialog.</div><div class='del'>-</div><div class='del'>-	* libical/src/test/.cvsignore: Added Makefile.</div><div class='del'>-</div><div class='del'>-	* libical/.cvsignore: Added Makefile, configure, config.status.</div><div class='del'>-</div><div class='del'>-	* libical/src/.cvsignore: New file.</div><div class='del'>-</div><div class='del'>-	* libical/Makefile: autogenerated file removed from cvs.</div><div class='del'>-	* libical/configure: same. </div><div class='del'>-	* libical/config.status: same.</div><div class='del'>-	* libical/src/Makefile: same.</div><div class='del'>-	* libical/src/test/Makefile: same.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/.cvsignore: Added minicard-label-test,</div><div class='del'>-	minicard-test, and reflow-test.</div><div class='del'>-</div><div class='del'>-	* shell/.cvsignore: added files autogenerated from Evolution.idl.</div><div class='del'>-</div><div class='del'>-	* libversit/.cvsignore: Added .libs, vcc.c, vcc.lo, vobject.lo,</div><div class='del'>-	vcaltmp.lo, libversit.la</div><div class='del'>-</div><div class='del'>-	* libical/src/test/.cvsignore: New file.</div><div class='del'>-</div><div class='del'>-	* libical/src/libical/.cvsignore: New file.</div><div class='del'>-</div><div class='del'>-	* libical/src/libicalss/.cvsignore: New file.</div><div class='del'>-</div><div class='del'>-	* libical/.cvsignore: New file, with config.log in it.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c: minor cleanup.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/.cvsignore: added message-browser.</div><div class='del'>-</div><div class='del'>-2000-02-18  NotZed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test11.c (main): Use a relative path to the mbox provider</div><div class='del'>-	module.</div><div class='del'>-</div><div class='del'>-2000-02-18  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (filename_to_camel_msg): Call</div><div class='del'>-	camel_data_wrapper_set_input_stream, rather than</div><div class='del'>-	camel_data_wrapper_construct_from_stream.  For the whole message,</div><div class='del'>-	allow someone to see the header ("to", "from", etc.).  Clicking on</div><div class='del'>-	tree items to see their elements, now works also.</div><div class='del'>-</div><div class='del'>-2000-02-18  Miguel de Icaza  &lt;miguel@nuclecu.unam.mx&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Make gnomeui the last library on the command line,</div><div class='del'>-	as its path is the one most likely to hold other old libraries</div><div class='del'>-	(libxml) and we need newer versions.</div><div class='del'>-	</div><div class='del'>-	(BONOBO_VFS_GNOME_CFLAGS): Add libical to the</div><div class='del'>-	AC_CONFIG_SUBDIRS </div><div class='del'>-</div><div class='del'>-	(BONOBO_HTML_GNOME_CFLAGS): VFS checking needs to</div><div class='del'>-	go before we rquery them. </div><div class='del'>-</div><div class='del'>-	Use the new method for gnome-print</div><div class='del'>-	checking instead of the old crufty gtk+ based one that nobody can</div><div class='del'>-	debug.  ever.</div><div class='del'>-	</div><div class='del'>-2000-02-16  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (tree_selection_changed): New</div><div class='del'>-	callback function, which will later change the main html window to</div><div class='del'>-	reflect the newly-selected tree item.</div><div class='del'>-	(get_gtk_html_contents_window): New function. Gets the content</div><div class='del'>-	part of a message.</div><div class='del'>-	(get_gtk_html_header_window): New function. Will get the header</div><div class='del'>-	part of a message, when applicable.</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c (str_tolower): Now returns a new string,</div><div class='del'>-	rather than changing it in place.</div><div class='del'>-	(initialize_camel_formatter): New function; gives a root</div><div class='del'>-	CamelDataWrapper and a stream to a CamelFormatter.</div><div class='del'>-	(camel_formatter_wrapper_to_html): New function. Translates any</div><div class='del'>-	CamelDataWrapper into html.</div><div class='del'>-	(lookup_unique_id): Allows the root object to be a</div><div class='del'>-	CamelDataWrapper, which is more general than the previously</div><div class='del'>-	required CamelMimeMessage.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-02-14  NotZed  &lt;notzed@zedzone.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EXTRA_GNOME_CFLAGS): Add libunicode to CFLAGS/LIBS.</div><div class='del'>-</div><div class='del'>-2000-02-13  NotZed  &lt;notzed@zedzone.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added check for libunicode.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Added libibex.</div><div class='del'>-</div><div class='del'>-	* tests/test11.c (main): New test, tests search api.</div><div class='del'>-</div><div class='del'>-2000-02-13  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/test-multipart-mixed.msg: New rfc822 file, which</div><div class='del'>-	crashes message-browser.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (get_gtk_html_window): Takes a</div><div class='del'>-	CamelMimeMessage as a param, rather than a filename.</div><div class='del'>-	(main): Puts our windows in an hpane rather than a vbox. Also</div><div class='del'>-	opens a file dlg box if a filename wasn't given as a first param.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.c (_init_with_name): Set stream_fs-&gt;fd to</div><div class='del'>-	-1 if we fail to load the file.</div><div class='del'>-	(camel_stream_fs_new_with_name): If stream_fs-&gt;fd is -1, return</div><div class='del'>-	NULL. These changes make it so that a CamelStreamFs won't be</div><div class='del'>-	created if you give it a bogus filename; they may be replaced once</div><div class='del'>-	exception handling is in place.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (handle_tree_item): Expand tree</div><div class='del'>-	items.</div><div class='del'>-	(mime_message_to_html): New function; translates a</div><div class='del'>-	CamelMimeMessage into two strings (one for the header, and one for</div><div class='del'>-	the body).</div><div class='del'>-	(get_gtk_html_window): New function; fills out a window with</div><div class='del'>-	html. The html is taken from a processed rfc822 file, via a</div><div class='del'>-	CamelFormatter.</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c: Added assertions.</div><div class='del'>-	(handle_text_html): Don't call text_to_html on something that's</div><div class='del'>-	already html.</div><div class='del'>-	(multipart_foreach): function deleted.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c: Added preliminary support for</div><div class='del'>-	the viewing of messages via gtkhtml. Lots of commenting. </div><div class='del'>-</div><div class='del'>-2000-02-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c: Fixed the</div><div class='del'>-	location the first time you see the drop down menus for changing</div><div class='del'>-	which phone, email, or snail mail address you see.</div><div class='del'>-</div><div class='del'>-2000-02-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.c (e_text_event): Made a click on a text</div><div class='del'>-	widget set the cursor properly.</div><div class='del'>-</div><div class='del'>-2000-02-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/e-text.h: Removed some arguments from the .h that</div><div class='del'>-	will never be implemented.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-02-10  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/data-wrapper-repository.c (data_wrapper_repository_init): </div><div class='del'>-	default the text/* mime types to CamelSimpleDataWrapper so</div><div class='del'>-	that Michael can use get_stream. </div><div class='del'>-</div><div class='del'>-2000-02-10  NotZed  &lt;notzed@zedzone.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.h: The superclass is</div><div class='del'>-	actually a seekable stream, not just a stream.</div><div class='del'>-</div><div class='del'>-2000-02-10  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am (THREAD_RELATED_TESTS): don't </div><div class='del'>-	build thread related tests if evolution has been</div><div class='del'>-	compiled with no thread support.</div><div class='del'>-</div><div class='del'>-	* configure.in (have_pthread): allow user to enable/disable</div><div class='del'>-	thread support at configure time</div><div class='del'>-	(EXTRA_GNOME_CFLAGS): </div><div class='del'>-	(EXTRA_GNOME_LIBS): thread support is directly </div><div class='del'>-	included in this variable if enabled. No more</div><div class='del'>-	EXTRA_GNOME_CFLAGS_THREADS</div><div class='del'>-	Other special support should be added in </div><div class='del'>-	EXTRA_GNOME_LIBS and EXTRA_GNOME_CFLAGS</div><div class='del'>-	instead of redefining a new variable </div><div class='del'>-	each time we want to add a new lib. </div><div class='del'>-	(bonobo, ....)</div><div class='del'>-</div><div class='del'>-	* camel/camel.c (camel_init): only try to initialize threads if</div><div class='del'>-	we enabled threads support. </div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/Makefile.am (message_browser_LDADD): use</div><div class='del'>-	EXTRA_GNOME_LIBS</div><div class='del'>-</div><div class='del'>-	* configure.in (have_pthread): remove HAVE_PTHREADS</div><div class='del'>-	variable. Define ENABLE_THREADS instead.</div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am: use ENABLE_THREADS not HAVE_PTHREADS</div><div class='del'>-	to test if we build thread relateed code. </div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am: use EXTRA_GNOME_LIBS, </div><div class='del'>-	not EXTRA_GNOME_LIBS_THREADS</div><div class='del'>-</div><div class='del'>-2000-02-10  NotZed  &lt;notzed@zedzone.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/hash-table-utils.c (g_strcase_hash): Removed a bizarre</div><div class='del'>-	comparison construct for converting case.</div><div class='del'>-</div><div class='del'>-2000-02-09  NotZed  &lt;notzed@zedzone.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/data-wrapper-repository.c (data_wrapper_repository_init):</div><div class='del'>-	Uses case-insensitive compares.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_new): Uses</div><div class='del'>-	case-insensitive compares.</div><div class='del'>-</div><div class='del'>-	* camel/data-wrapper-repository.c (data_wrapper_repository_init):</div><div class='del'>-	Use case-insensitive mime types.</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.c (read): Increment the</div><div class='del'>-	copy source address to match the data read offset.</div><div class='del'>-	(seek): Actually implement the seek.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part-utils.c</div><div class='del'>-	(camel_mime_part_store_stream_in_buffer): If we get a -1 read,</div><div class='del'>-	DONT update the total bytes, and try and truncate the array in</div><div class='del'>-	reverse.  Eek.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (camel_mime_part_encoding_from_string):</div><div class='del'>-	This was DEFINETLEY not the right way to do it. strncmp!=strcmp</div><div class='del'>-	(camel_mime_part_encoding_to_string): Handle the default case.</div><div class='del'>-	: include string.h for strcmp() etc.</div><div class='del'>-</div><div class='del'>-2000-02-09  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/test-multipart-alt.msg: New test file; run</div><div class='del'>-	message-browser on it, and it will crash.</div><div class='del'>-</div><div class='del'>-2000-02-09  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (handle_tree_item): </div><div class='del'>-	show the item. </div><div class='del'>-	(handle_tree_item): show the containers and the containees</div><div class='del'>-	(get_message_tree_ctrl): call handle_tree_item</div><div class='del'>-	on the message itself</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (camel_mime_message_init): </div><div class='del'>-	set the mime type to "mime/message".</div><div class='del'>-	--- THIS IS NOT THE CONTENT TYPE ---</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-body-part.c (camel_mime_body_part_init): </div><div class='del'>-	set the mime type to "body-part". </div><div class='del'>-	--- THIS IS NOT THE CONTENT TYPE ---</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.c (camel_data_wrapper_set_mime_type): </div><div class='del'>-	mime_type is const. </div><div class='del'>-	(_set_input_stream): really set the input stream</div><div class='del'>-	(_set_output_stream): really set the output stream</div><div class='del'>-	various other typo fixes.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c: various typo</div><div class='del'>-	fixes in the ctree construction. </div><div class='del'>-</div><div class='del'>-	* camel/string-utils.c (string_trim): fix braindead</div><div class='del'>-	trailing trim bug.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_construct_from_string): </div><div class='del'>-	strip the leading and trailing quotes when constructing the </div><div class='del'>-	content field. This should be done in a more generic </div><div class='del'>-	RFC822 approach, but this fixes a bug that prevent</div><div class='del'>-	matt from analysing some multipart messages.</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.h: reorganize the </div><div class='del'>-	deprecated and new methods. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c </div><div class='del'>-	(_check_get_or_maybe_generate_summary_file): </div><div class='del'>-	Use "From " as the message separating string. </div><div class='del'>-	</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_append_message): </div><div class='del'>-	set the mode when creating the mbox file. 	</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev): </div><div class='del'>-	ditto</div><div class='del'>-	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary): </div><div class='del'>-	ditto</div><div class='del'>-</div><div class='del'>-2000-02-09  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c (print_usage_and_quit): Minor</div><div class='del'>-	cleanup.</div><div class='del'>-</div><div class='del'>-2000-02-09  NotZed  &lt;notzed@zedzone.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.c (class_init): Actually</div><div class='del'>-	initialise the class.  It simple couldn't have worked before.</div><div class='del'>-	(camel_simple_data_wrapper_stream_construct): Commented out code</div><div class='del'>-	which crashes just to get something working, memory corruption??</div><div class='del'>-</div><div class='del'>-2000-02-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add new Makefiles to Makefile list.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text/Makefile.am: Build libetext.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard/Makefile.am: Build libeminicard and test</div><div class='del'>-	programs.</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Remove all e-text and e-minicard code and</div><div class='del'>-	add them to the SUBDIRS list.</div><div class='del'>-</div><div class='del'>-2000-02-08  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/message-browser.c: New file; shows a message in</div><div class='del'>-	tree format, where multipart's have multiple leaves.</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c: Changed references from</div><div class='del'>-	'multipart/alternate' to 'multipart/alternative'.</div><div class='del'>-</div><div class='del'>-	* tests/test-formatter.c (convert_to_html_and_print): Use the</div><div class='del'>-	buffer length of the stream to create strings which are then</div><div class='del'>-	printed, rather than printing the stream (which might not have a</div><div class='del'>-	trailing \0) directly.</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c (str_tolower): New function; makes a</div><div class='del'>-	string lowercase.</div><div class='del'>-</div><div class='del'>-	* tests/test-formatter.c (convert_to_html_and_print): Fixed call</div><div class='del'>-	to 'camel_formatter_mime_message_to_html' to contain correct</div><div class='del'>-	params.</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c: New member to 'CamelFormatterPrivate',</div><div class='del'>-	'attachments', will be used to let the caller know which items</div><div class='del'>-	should be treated as attachments (as opposed to objects which are</div><div class='del'>-	inline to the body).</div><div class='del'>-	(text_to_html): name changed from 'encode_entities'. Also now</div><div class='del'>-	converts newlines to &lt;br&gt; tags.</div><div class='del'>-	(camel_formatter_mime_message_to_html): Now takes two output</div><div class='del'>-	streams -- one for the header, and one for the body.</div><div class='del'>-	(get_bonobo_tag_for_object): New function; tries to make a tag out</div><div class='del'>-	of (1) the leaf of a mime message and (2) a bonobo object that can</div><div class='del'>-	handle its mime type, but can return NULL if it fails to find the</div><div class='del'>-	mime type.</div><div class='del'>-	(handle_vcard): New function; will write out a vcard as html.</div><div class='del'>-</div><div class='del'>-2000-02-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.h, widgets/e-text.c: Added line wrap and a max</div><div class='del'>-	number of lines (max number of lines is only obeyed if text is not</div><div class='del'>-	being edited).</div><div class='del'>-</div><div class='del'>-2000-02-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/e-contact-print.c: Removed an unneccessary</div><div class='del'>-	include of libhnj.  All uses of libhnj are commented out.</div><div class='del'>-</div><div class='del'>-2000-02-07  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c (mime_part_to_html): function deleted.</div><div class='del'>-</div><div class='del'>-	* tests/test-formatter.c (print_usage_and_quit): New function,</div><div class='del'>-	which gives usage information.</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c: made the 'stream' a member of the</div><div class='del'>-	CamelFormatter class, so that streams don't have to be explicitly</div><div class='del'>-	sent as a param where a CamelFormatter is also sent..</div><div class='del'>-	(handle_text_plain): Use 'encode_entities' to change '&lt;' to</div><div class='del'>-	'&amp;gt;', etc.</div><div class='del'>-</div><div class='del'>-2000-02-03  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c (find_preferred_displayable_body_part_in_multipart_alternative): </div><div class='del'>-	(mime_part_to_html): typo fix : </div><div class='del'>-	use find_preferred_displayable_body_part_in_multipart_alternative</div><div class='del'>-	instead of the other names. Allows camel to have no undefined symbols. </div><div class='del'>-</div><div class='del'>-2000-02-02  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test-formatter.c: New file; intended to test the</div><div class='del'>-	CamelFormatter class.</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c: Lots of cleanup, commenting, some new</div><div class='del'>-	functions, and a really basic skeleton for getting bonobo objects</div><div class='del'>-	into the html.</div><div class='del'>-	(encode_entities): New function, stolen from Daniel Velliard.</div><div class='del'>-</div><div class='del'>-2000-01-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/e-contact-print-style-editor.h,</div><div class='del'>-	addressbook/printing/e-contact-print-style-editor.c,</div><div class='del'>-	addressbook/printing/test-contact-print-style-editor.c: Files to</div><div class='del'>-	load the contact print style editor from the glade file.  Doesn't</div><div class='del'>-	really do anything yet.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/Makefile.am: Added style editor stuff.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/e-contact-print.glade: Changed a bit.</div><div class='del'>-	Fixed an out of place widget.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/.cvsignore: Added</div><div class='del'>-	contact-print-style-editor-test.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/smallbook.ecps: Fixed up the values to</div><div class='del'>-	match the new types.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/medbook.ecps,</div><div class='del'>-	addressbook/printing/phonelist.ecps: Added two new printing</div><div class='del'>-	styles.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/e-contact-print.h: Fixed an incorrect</div><div class='del'>-	comment.</div><div class='del'>-	</div><div class='del'>-	* addressbook/printing/e-contact-print.c: Added columns and letter</div><div class='del'>-	tabs.  Tweaked spacing all over the place.  Fixed card height</div><div class='del'>-	function so that column wrapping is always done correctly.  Added</div><div class='del'>-	pulling of style information from a file.  Added line wrapping</div><div class='del'>-	within each text field.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/e-contact-print-types.h: Added a type field</div><div class='del'>-	for different types of print styles.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-01-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.c (e_text_command): Handle the grab and ungrab</div><div class='del'>-	command instead of doing focus by hand.  This fixes a problem</div><div class='del'>-	related to the scroll wheel.</div><div class='del'>-	(e_text_command): Reset the blink timer in many more command</div><div class='del'>-	situations so that the cursor blinks less when you're interacting</div><div class='del'>-	with it.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text-event-processor-emacs-like.c: Send the grab focus</div><div class='del'>-	command when starting a selection and the ungrab focus command</div><div class='del'>-	when ending it.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text-event-processor-types.h: Added grab command type</div><div class='del'>-	so that the event processor can tell the widget to grab the focus.</div><div class='del'>-</div><div class='del'>-	* widgets/e-reflow.c: Redefined all sizes using #defines so that</div><div class='del'>-	they can be tweaked later.  Added scroll wheel handling and set up</div><div class='del'>-	adjustment increments so that the scroll bars will work correctly.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard.h: Added minicard focus type enum.  This</div><div class='del'>-	doesn't mean anything yet, but it will later be used to say which</div><div class='del'>-	direction the focus is coming from (below for shift-tab, above for</div><div class='del'>-	tab.)</div><div class='del'>-</div><div class='del'>-2000-01-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard-label.c, widgets/e-minicard.c: Use</div><div class='del'>-	e_canvas_item_grab_focus so that it will work with old versions of</div><div class='del'>-	gnome-canvas.</div><div class='del'>-</div><div class='del'>-	* widgets/e-canvas.c, widgets/e-canvas.h: Finished working around</div><div class='del'>-	focus bugs.</div><div class='del'>-</div><div class='del'>-2000-01-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/test-reflow.c: Set the minimum_width.</div><div class='del'>-</div><div class='del'>-	* widgets/e-reflow.h, widgets/e-reflow.c: Added one more column</div><div class='del'>-	line so that the right edge of the reflow will have a line.  Also</div><div class='del'>-	added a minimum_width so that even if the reflow is thinner than</div><div class='del'>-	the window, when you resize it larger all the lines are drawn.</div><div class='del'>-</div><div class='del'>-2000-01-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-reflow.h, widgets/e-reflow.c: Added an arrow cursor</div><div class='del'>-	for the draggable columns.  Made the clickable column area</div><div class='del'>-	larger.  </div><div class='del'>-</div><div class='del'>-	* widgets/e-text.h, widgets/e-text.c: Added an I beam cursor for</div><div class='del'>-	the text item when it is editable.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard-label.c: Forward enter and leave</div><div class='del'>-	notifications to the contained editable text item.</div><div class='del'>-</div><div class='del'>-2000-01-26  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c: By looking up a mimetype in a</div><div class='del'>-	hashtable, we can now get a handler function for an arbitrary</div><div class='del'>-	mimetype.</div><div class='del'>-</div><div class='del'>-2000-01-25  Mathieu Lacage &lt;mathieu@advogato.org&gt;</div><div class='del'>-</div><div class='del'>-	* .cvsignore s: cvs shutup. </div><div class='del'>-</div><div class='del'>-2000-01-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-reflow.c, widgets/e-minicard.c: Handle shift-tab</div><div class='del'>-	properly now.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard-label.c: Reindented some areas.</div><div class='del'>-</div><div class='del'>-	* widgets/test-reflow.c: Use e-canvas.  Set the back pixmap to</div><div class='del'>-	NULL for the canvas so that scrolling won't flash grey.</div><div class='del'>-</div><div class='del'>-	* widgets/e-canvas.c, widgets/e-canvas.h: These subclass</div><div class='del'>-	GnomeCanvas to work around a few bugs so that evolution will work</div><div class='del'>-	well with old versions of gnome-libs.</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Added e-canvas.c and e-canvas.h.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/contact-editor.glade: Not much</div><div class='del'>-	change.  Mostly internal reorganization by glade itself.</div><div class='del'>-</div><div class='del'>-2000-01-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/smallbook.ecps: Example contact printing</div><div class='del'>-	style.  Not used yet.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/e-contact-print.glade: A glade file for</div><div class='del'>-	editing contact printing styles.  Not used yet.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/test-print.c: Test file for printing.</div><div class='del'>-</div><div class='del'>-	* addressbook/printing/e-contact-print.c,</div><div class='del'>-	addressbook/printing/e-contact-print.h,</div><div class='del'>-	addressbook/printing/e-contact-print-types.h,</div><div class='del'>-	addressbook/printing/Makefile.am, addressbook/printing/.cvsignore:</div><div class='del'>-	New files for contact printing support.</div><div class='del'>-</div><div class='del'>-	* addressbook/Makefile.am (SUBDIRS): Add printing.</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for gnome-print.  Build the</div><div class='del'>-	addressbook/printing Makefile.</div><div class='del'>-</div><div class='del'>-2000-01-24  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.h: </div><div class='del'>-	* camel/camel-data-wrapper.c </div><div class='del'>-	(_set_input_stream): </div><div class='del'>-	(_get_input_stream): </div><div class='del'>-	(_set_output_stream): </div><div class='del'>-	(_get_output_stream): </div><div class='del'>-	The CamelDataWrapper can now be provided with input and</div><div class='del'>-	output streams, so that nothing has to be kept in memory. </div><div class='del'>-	</div><div class='del'>-	* camel/camel-stream.c (camel_stream_class_init): </div><div class='del'>-	added the "data_available" signal.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-2000-01-24  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Added the gnome-pilot and capplet checks; they</div><div class='del'>-	will likely be reworked for the Evolution framework, but for now</div><div class='del'>-	the calendar/ directory needs them.</div><div class='del'>-</div><div class='del'>-	* configure.in: Added checks for gnome-vfs.</div><div class='del'>-</div><div class='del'>-2000-01-24  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-seekable-stream.c: </div><div class='del'>-	* camel/camel-seekable-stream.h: </div><div class='del'>-	new files. </div><div class='del'>-	</div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.h:  parent class is now</div><div class='del'>-	CamelSeekableStream</div><div class='del'>-	* camel/camel-stream-buffered-fs.h: idem</div><div class='del'>-	* camel/camel-stream-buffered-fs.c: idem</div><div class='del'>-	* camel/camel-stream-mem.h: idem</div><div class='del'>-	* camel/camel-stream-mem.c: idem</div><div class='del'>-	(_seek): change declaration</div><div class='del'>-	* camel/camel-stream-fs.c: parent class is now</div><div class='del'>-	CamelSeekableStream</div><div class='del'>-	(_seek): change declaration</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.h: parent class is now</div><div class='del'>-	CamelSeekableStream</div><div class='del'>-	</div><div class='del'>-	* camel/camel-stream-fs.[ch]: converted all </div><div class='del'>-	gint64 variables into guint32. </div><div class='del'>-	</div><div class='del'>-	</div><div class='del'>-	* camel/camel-stream-fs.c (_read): fix stupid bug.</div><div class='del'>-	(_write): ditto. </div><div class='del'>-</div><div class='del'>-	* camel/camel-exception.c (camel_exception_new): don't</div><div class='del'>-	forget to clean the exception when creating it. </div><div class='del'>-</div><div class='del'>-	* camel/camel-recipient.c (camel_recipient_table_add_list): </div><div class='del'>-	add recipient_list to the recipients, not recipients_list. </div><div class='del'>-	I don't know what that variable was doing here. </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-01-24  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c (write_header_info_to_stream): new</div><div class='del'>-	function, broken out from 'camel_formatter_make_html'.</div><div class='del'>-	(write_mimepart_to_stream): same.</div><div class='del'>-	(find_text_body_part_in_multipart_related): new function.</div><div class='del'>-	(camel_formatter_make_html): Now tries to deal with</div><div class='del'>-	multipart/related, multipart/alternate, and text/(plain|html).</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-01-23  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c (camel_store_get_session): </div><div class='del'>-	added a public get_session method.</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary): </div><div class='del'>-	(camel_mbox_load_summary): load/save message sizes in the summary file</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-summary.h: </div><div class='del'>-	added a size field to the message information </div><div class='del'>-	structure. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary): </div><div class='del'>-	copy message size to the mbox summary information too. </div><div class='del'>-	</div><div class='del'>-	* camel/camel-stream-fs.c (_seek): updated to </div><div class='del'>-	work with bounded fs streams. </div><div class='del'>-	(_write): ditto.</div><div class='del'>-	(_read): ditto.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.h (struct ): </div><div class='del'>-	added the cur_pos, inf_bound and sup_bound</div><div class='del'>-	members to allow for bounded fs stream. </div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.c (_set_bounds): new func.</div><div class='del'>-	(_init_with_fd_and_bounds): idem.</div><div class='del'>-	(_init_with_name_and_bounds): idem. </div><div class='del'>-	New functions to allow the usage of bounded fs streams.</div><div class='del'>-</div><div class='del'>-	The bounded fs stream allow, for example, to make a stream</div><div class='del'>-	from a message stored in an mbox file. </div><div class='del'>-	</div><div class='del'>-	</div><div class='del'>-2000-01-22  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_check_get_or_maybe_generate_summary_file): </div><div class='del'>-	use the real summary file path instead of a </div><div class='del'>-	stupid hardcoded one. Fixes yet another bug.</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary): </div><div class='del'>-	don't forget to copy the date too. Fix a very annoying bug.</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_append_message): </div><div class='del'>-	implemented. A lot of fixes too. Works now. </div><div class='del'>-	(_get_uid_list): implemented.</div><div class='del'>-</div><div class='del'>-2000-01-21  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test10.c:</div><div class='del'>-	test the mbox provider. </div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_set_name): </div><div class='del'>-	if camel_folder_get_mode returns an</div><div class='del'>-	exception, return it instead of</div><div class='del'>-	overriding it with a new one.</div><div class='del'>-	(camel_folder_is_open): make the is_open</div><div class='del'>-	method public.</div><div class='del'>-	(_set_name): use the is_open instead of</div><div class='del'>-	get_mode.</div><div class='del'>-	(_set_name): set the fullname even in the case </div><div class='del'>-	where the folder has no parent.</div><div class='del'>-	(_set_name): use %c, not %d to add the </div><div class='del'>-	separator char into the full path.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c: add exception handling everywhere in</div><div class='del'>-	the store related functions arguments. </div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c: idem</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.h: idem</div><div class='del'>-	* camel/providers/mbox/camel-mbox-store.h: idem</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/Makefile.am (libcamelmbox_la_SOURCES): </div><div class='del'>-	added camel-mbox-provider.c to the mbox provider</div><div class='del'>-	sources. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-provider.c: </div><div class='del'>-	provider registration code.</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_get_message_count): implemented</div><div class='del'>-	(_append_message): implemented</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (initialize_buffer): </div><div class='del'>-	use \0 to mark the end of the buffer.</div><div class='del'>-	(read_next_buffer_chunk): ditto.</div><div class='del'>-	(read_header): test the presence of a \0 instead of</div><div class='del'>-	reading the eof field</div><div class='del'>-	(read_message_begining): idem.</div><div class='del'>-	(camel_mbox_parse_file): idem.</div><div class='del'>-	Remove the eof field from the parser</div><div class='del'>-	structure. </div><div class='del'>-	(read_next_buffer_chunk): removed some nasty bugs</div><div class='del'>-	again. </div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-2000-01-21  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-	</div><div class='del'>-	* libversit/vcc.y: Removed the VFS crap; my mistake, it should not</div><div class='del'>-	go here.</div><div class='del'>-</div><div class='del'>-	* configure.in: Added yacc requirements for libversit.</div><div class='del'>-</div><div class='del'>-2000-01-21  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c (camel_formatter_make_html): added a</div><div class='del'>-	CamelMimeMessage as a param to this function, and removed it as a</div><div class='del'>-	member of the object.</div><div class='del'>-</div><div class='del'>-2000-01-21  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): Added libversit/Makefile and</div><div class='del'>-	calendar/Makefile.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Added libversit and calendar.</div><div class='del'>-</div><div class='del'>-2000-01-20  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): </div><div class='del'>-	compute and return the file size. </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-01-20  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-formatter.c, camel/camel-formatter.h: New</div><div class='del'>-	files. You'll be able to use a CamelFormatter to get</div><div class='del'>-	html-formatted versions of a CamelMimeMessage.</div><div class='del'>-	</div><div class='del'>-2000-01-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text-event-processor-types.h: Changed some line</div><div class='del'>-	spacing.</div><div class='del'>-</div><div class='del'>-	* widgets/test-reflow.c: Connected to the resize signal of the</div><div class='del'>-	reflow.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard.c: Made width argument set function only</div><div class='del'>-	update if width is different.</div><div class='del'>-</div><div class='del'>-	* widgets/e-reflow.h, widgets/e-reflow.c: Added draggable column dividers.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/test-editor.c: Open two dialogs for</div><div class='del'>-	more interesting testing.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.h,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor.c: Modified to use</div><div class='del'>-	glade.  Added menus to change which phone/address/email entries to</div><div class='del'>-	view.  Added images to the dialog.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor-strings.h,</div><div class='del'>-	addressbook/contact-editor/contact-editor.glade: Glade files for</div><div class='del'>-	the contact editor dialog.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/Makefile.am: Added images and added</div><div class='del'>-	glade stuff.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/arrow.png,</div><div class='del'>-	addressbook/contact-editor/briefcase.png,</div><div class='del'>-	addressbook/contact-editor/netfreebusy.png,</div><div class='del'>-	addressbook/contact-editor/netmeeting.png: Image files for the</div><div class='del'>-	contact editor dialog.</div><div class='del'>-</div><div class='del'>-2000-01-19  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_get_message_count): </div><div class='del'>-	implemented.</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary): </div><div class='del'>-	(camel_mbox_load_summary): save/load the next uid. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): </div><div class='del'>-	Compute the next available uid. </div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_create): </div><div class='del'>-	(_check_get_or_maybe_generate_summary_file): </div><div class='del'>-	Set and use the next_uid field properly. </div><div class='del'>-	* camel/providers/mbox/camel-mbox-summary.h: added</div><div class='del'>-	an extra field to store the next available uid. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c </div><div class='del'>-	(_check_get_or_maybe_generate_summary_file): </div><div class='del'>-	routine called when the folder is opened. </div><div class='del'>-	Reads or creates the summary file. </div><div class='del'>-	(_create): initialize the internal summary </div><div class='del'>-	structure. </div><div class='del'>-	(_close): save the summary file on closing. </div><div class='del'>-	(_init_with_store): initialize mbox specific</div><div class='del'>-	folder members. </div><div class='del'>-</div><div class='del'>-2000-01-18  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test9.c:</div><div class='del'>-	tests for summary and parsing process of mbox files. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): do</div><div class='del'>-	not use case insensitive comp to detect message separators. Kill </div><div class='del'>-	some nasty bugs in netscape file parsing,</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary): </div><div class='del'>-	don't use g_array_append but write directly inside the</div><div class='del'>-	array data instead. Better performance and bug fix. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_load_summary): </div><div class='del'>-	fix the name and bugs. </div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-summary.h: update the class</div><div class='del'>-	method definition to match the public defs. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary): </div><div class='del'>-	(mbox_load_summary): summary file read/write routines. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary): </div><div class='del'>-	routine to construct the summary after the mbox</div><div class='del'>-	file has been parsed and the x-evolution fields</div><div class='del'>-	inserted. </div><div class='del'>-</div><div class='del'>-2000-01-17  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev): </div><div class='del'>-	dont use the x_evolution field but rather the uid to </div><div class='del'>-	determine the presence of "X-Evolution" in the mail. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): </div><div class='del'>-	parse the status and uid values if the x-evolution</div><div class='del'>-	has been found. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_xev_parse_header_content): </div><div class='del'>-	return the parsed status field correctly. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.h: </div><div class='del'>-	fixed bad prototype.</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): </div><div class='del'>-	parse and store the "To:" header.</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.h: </div><div class='del'>-	added a "to" field </div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-summary.c: </div><div class='del'>-	create the arrays here. </div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-summary.h: the list of </div><div class='del'>-	summary information is no longer a GList but </div><div class='del'>-	rather a GArray.</div><div class='del'>-</div><div class='del'>-2000-01-17  Chrsitopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* head.png, phone.png, email.png, web.png, snailmail.png: Images</div><div class='del'>-	for e-contact-editor.c.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/text-editor.c: Test program</div><div class='del'>-	for contact editor widget.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/e-contact-editor.c,</div><div class='del'>-	addressbook/contact-editor/e-contact-editor.h: Contact editor</div><div class='del'>-	widget files.</div><div class='del'>-</div><div class='del'>-	* addressbook/contact-editor/.cvsignore,</div><div class='del'>-	addressbook/contact-editor/Makefile.am: New directory for contact</div><div class='del'>-	editor files.</div><div class='del'>-</div><div class='del'>-	* addressbook/.cvsignore, addressbook/Makefile.am: New directory</div><div class='del'>-	for addressbook files.</div><div class='del'>-</div><div class='del'>-	* widgets/.cvsignore: Added reflow-test.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Added addressbook subdirectory.</div><div class='del'>-</div><div class='del'>-	* configure.in, widgets/Makefile.am: Removed widgets/toolbar from</div><div class='del'>-	SUBDIRS since the lack of content was preventing it from</div><div class='del'>-	compiling.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.c, widgets/e-text.h: Fixed a crashing bug.</div><div class='del'>-</div><div class='del'>-2000-01-17  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test9.c (main): test for the mbox utils.</div><div class='del'>-</div><div class='del'>-2000-01-17  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add the gnomecanvaspixbuf argument to gnome-config</div><div class='del'>-	invocations.</div><div class='del'>-</div><div class='del'>-2000-01-17  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev): </div><div class='del'>-	(copy_file_chunk): </div><div class='del'>-	(camel_mbox_xev_write_header_content): </div><div class='del'>-	(string_to_flag): </div><div class='del'>-	(flag_to_string): </div><div class='del'>-	(string_to_uid): </div><div class='del'>-	(uid_to_string): </div><div class='del'>-	A bunch of new funcs to handle x-evolution </div><div class='del'>-	private header field. </div><div class='del'>-	(copy_file_chunk): fixed a nasty bug. </div><div class='del'>-	(camel_mbox_write_xev): create the copy file descriptor</div><div class='del'>-	with the proper arguments. Exceptions implememnted.</div><div class='del'>-	(camel_mbox_write_xev): changed the way bytes are counted. </div><div class='del'>-	No more uses the message size cause it did not take into</div><div class='del'>-	account the message separators characters. </div><div class='del'>-	(camel_mbox_write_xev): hopefully fixed the last bugs. </div><div class='del'>-	works ok now. </div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-2000-01-15  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c </div><div class='del'>-	(camel_mbox_parse_file): </div><div class='del'>-	store the end of headers position. </div><div class='del'>-	</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.h: </div><div class='del'>-	added the end_of_header_position to locate the </div><div class='del'>-	begining of the mail body. </div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-utils.c (uid_to_string): </div><div class='del'>-	(string_to_uid): </div><div class='del'>-	(flag_to_string): </div><div class='del'>-	(string_to_flag): </div><div class='del'>-	new functions to handle uids and</div><div class='del'>-	flags in the X-Evolution header. </div><div class='del'>-	(camel_mbox_xev_parse_header_content): </div><div class='del'>-	new function to parse an X-Evolution </div><div class='del'>-	header. </div><div class='del'>-	(camel_mbox_xev_write_header_content): </div><div class='del'>-	new function to write the X-Evolution </div><div class='del'>-	header. </div><div class='del'>-</div><div class='del'>-2000-01-13  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (read_next_buffer_chunk): </div><div class='del'>-	eof is true when no more chars are available, not </div><div class='del'>-	when we've read the entire file. </div><div class='del'>-	(initialize_buffer): ditto.</div><div class='del'>-	(read_message_begining): documented.</div><div class='del'>-	(read_header): ditto.</div><div class='del'>-	(new_message_detected): ditto.</div><div class='del'>-	(advance_n_chars): ditto.</div><div class='del'>-	(goto_next_char): ditto.</div><div class='del'>-	(read_next_buffer_chunk): ditto.</div><div class='del'>-	(initialize_buffer): ditto.</div><div class='del'>-	(parser_free): ditto.</div><div class='del'>-	(new_parser): ditto.</div><div class='del'>-</div><div class='del'>-2000-01-12    &lt;clahey@galapagos.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text-event-processor-types.h,</div><div class='del'>-	widgets/e-text-event-processor-emacs-like.c, widgets/e-text.c,</div><div class='del'>-	widgets/e-text.h: Added selection and clipboard support.  Added up</div><div class='del'>-	and down arrow keys.  Fixed choice of font colors for the</div><div class='del'>-	selection to be based on the current style.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard.c: Caused a click to grab the focus.  Changed</div><div class='del'>-	the fake information added.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard-label.c: Forward mouse events to the field</div><div class='del'>-	EText item.</div><div class='del'>-</div><div class='del'>-2000-01-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-canvas-utils.c, widgets/e-canvas-utils.h:</div><div class='del'>-	e_canvas_item_move_absolute is just a helper function not supplied</div><div class='del'>-	by the gnome_canvas.[ch] I put it here so that multiple items can</div><div class='del'>-	use it.</div><div class='del'>-</div><div class='del'>-	* widgets/e-reflow.c, widgets/e-reflow.h: This item contains a</div><div class='del'>-	number of other items and places them into multiple columns.  The</div><div class='del'>-	items contained must support a number of arguments and signals to</div><div class='del'>-	allow the reflow to interact with them.</div><div class='del'>-</div><div class='del'>-	* widgets/test-reflow.c: This is a test program for e-reflow.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.c, widgets/e-text.h: Added properly drawn</div><div class='del'>-	selected text.  Added some preliminary code for X selection</div><div class='del'>-	handling and cut &amp; paste.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard.c, widgets/e-minicard.h: Added ARG_HAS_FOCUS</div><div class='del'>-	handling.  Made label display random for more interesting tests of</div><div class='del'>-	multiple cards.  Tweaked sizing information for better display.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard-label.c, widgets/e-minicard-label.h: Added</div><div class='del'>-	ARG_HAS_FOCUS handling.</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Added the reflow test and reflow files.</div><div class='del'>-</div><div class='del'>-2000-01-12  bertrand  &lt;bertrand@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.h (camel_mbox_parse_file): </div><div class='del'>-	Added the prototype of camel_mbox_parse_file. </div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): </div><div class='del'>-	updated in-line documentation.</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am (noinst_PROGRAMS): </div><div class='del'>-	remove non updated tests from the build </div><div class='del'>-	process. </div><div class='del'>-</div><div class='del'>-	* corrected a bunch of bugs </div><div class='del'>-	</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c </div><div class='del'>-	(camel_mbox_parse_file): </div><div class='del'>-	parser the subject and date.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.c </div><div class='del'>-	(camel_mbox_parse_file): added the ability to </div><div class='del'>-	follow the parsing progression. </div><div class='del'>-	</div><div class='del'>-	* camel/providers/mbox/camel-mbox-parser.h: </div><div class='del'>-	parse the x-evolution field. </div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am (libcamel_la_SOURCES): </div><div class='del'>-	disabled gmime-rfc2047 as it depends on libunicode</div><div class='del'>-	and is not used for the moment. </div><div class='del'>-</div><div class='del'>-2000-01-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard.c, widgets/e-minicard.h: Added a resize</div><div class='del'>-	signal for when the card changes height.  Made it so that when you</div><div class='del'>-	press tab inside of a field, it goes to the next field.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard-label.c, widgets/e-minicard-label.h: Added a</div><div class='del'>-	resize signal for when the label changes height.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.c, widgets/e-text.h: Added a resize signal for</div><div class='del'>-	multiple lines.  Added scrolling based on cursor position.</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Removed an extraneous build target.</div><div class='del'>-</div><div class='del'>-2000-01-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/e-text-event-processor-emacs-like.c: Blocked the tab key</div><div class='del'>-	from getting inserted into the buffer since the renderer doesn't</div><div class='del'>-	know what a tab is.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.c, widgets/e-text.h: Fixed a memory leak.  Added</div><div class='del'>-	a blinking cursor and scrolling for the text item.</div><div class='del'>-</div><div class='del'>-2000-01-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/test-minicard.c: Removed some code which got in the way</div><div class='del'>-	of testing properly.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard-label.c (e_minicard_label_realize): Made the</div><div class='del'>-	field text item editable.</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Added e-text-event-process*.[ch].</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.c, widgets/e-text.h: Changed these to support</div><div class='del'>-	editing.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text-event-processor.c,</div><div class='del'>-	widgets/e-text-event-processor.h,</div><div class='del'>-	widgets/e-text-event-processor-types.h,</div><div class='del'>-	widgets/e-text-event-processor-emacs-like.c,</div><div class='del'>-	widgets/e-text-event-processor-emacs-like.h: These are a new pair</div><div class='del'>-	of classes which handle all events from the text item and convert</div><div class='del'>-	them into commands.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-01-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* widgets/Makefile.am: Added minicard and text stuff.</div><div class='del'>-</div><div class='del'>-	* widgets/e-minicard.c, widgets/e-minicard.h,</div><div class='del'>-	widgets/e-minicard-label.c, widgets/e-minicard-label.h: Added</div><div class='del'>-	canvas items for the minicard view in the contact manager.</div><div class='del'>-</div><div class='del'>-	* widgets/test-minicard.c, widgets/test-minicard-label.c: Tests</div><div class='del'>-	for the minicard items.</div><div class='del'>-</div><div class='del'>-	* widgets/e-text.h, widgets/e-text.c: New canvas item.  Based on</div><div class='del'>-	GnomeCanvasText.  Adds ellipsis capabilities.  Used in</div><div class='del'>-	e-minicard*.[ch].</div><div class='del'>-</div><div class='del'>-	* widgets/.cvsignore: Added minicard-test and minicard-label-test.</div><div class='del'>-</div><div class='del'>-2000-01-06  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Add Bonobo detection, Bonobo flags for compilation</div><div class='del'>-	for the components and the shell.</div><div class='del'>-</div><div class='del'>-2000-01-06 Elliot Lee &lt;sopwith@redhat.com&gt;</div><div class='del'>-	* composer/Makefile.am, widgets/e-table/Makefile.am: Work with</div><div class='del'>-	builddir != srcdir</div><div class='del'>-</div><div class='del'>-2000-01-05  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (EXTRA_GNOME_CFLAGS_THREADS,</div><div class='del'>-	EXTRA_GNOME_LIBS_THREADS): New variables that hold the thread</div><div class='del'>-	version of the compile/link lines.</div><div class='del'>-</div><div class='del'>-1999-11-20  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (PACKAGE): Raise warning level.</div><div class='del'>-</div><div class='del'>-2000-01-04  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_list_subfolders): </div><div class='del'>-	in the io_error label does not return before the </div><div class='del'>-	list has been freed.</div><div class='del'>-</div><div class='del'>-2000-01-03  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c (_list_subfolders): </div><div class='del'>-	detects netscape ".sdb" folders as well as simple </div><div class='del'>-	non-suffixed folders (as the ones used in pine).</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/string-utils.c (string_prefix): </div><div class='del'>-	finished implementation. </div><div class='del'>-	(string_prefix): added a boolean flag to indicate if the </div><div class='del'>-	suffix has been found. When the suffix does not match, </div><div class='del'>-	return NULL.</div><div class='del'>-</div><div class='del'>-1999-12-26 bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-exception.c (camel_exception_setv): </div><div class='del'>-	new function. Allow printf-like description</div><div class='del'>-	string constructions. </div><div class='del'>-</div><div class='del'>-	* camel/camel-exception.h: cosmetic changes.</div><div class='del'>-</div><div class='del'>-        * camel/providers/mbox/camel-mbox-store.h:</div><div class='del'>-        * camel/providers/mbox/camel-mbox-store.c:</div><div class='del'>-        * camel/providers/mbox/camel-mbox-folder.h:</div><div class='del'>-        * camel/providers/mbox/camel-mbox-folder.c:</div><div class='del'>-        More work on the mbox provider.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-12-22  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/mbox/camel-mbox-store.h: </div><div class='del'>-	* camel/providers/mbox/camel-mbox-store.c: </div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.h: </div><div class='del'>-	* camel/providers/mbox/camel-mbox-folder.c: </div><div class='del'>-	part of the mbox provider.</div><div class='del'>-</div><div class='del'>-1999-12-20  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_set_name): </div><div class='del'>-	check that the folder is closed or raise an exception.</div><div class='del'>-	(_set_name): unset the name fields as soon as possible, </div><div class='del'>-	even if an exception is raised.</div><div class='del'>-</div><div class='del'>-	* configure.in:</div><div class='del'>-	build mbox provider Makefile</div><div class='del'>-	</div><div class='del'>-	* camel/Makefile.am (SUBDIRS): </div><div class='del'>-	re-enable providers compilation</div><div class='del'>-</div><div class='del'>-1999-12-19  Damon Chaplin  &lt;damon@karuna.freeserve.co.uk&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_OUTPUT): added widgets/meeting-time-sel/Makefile</div><div class='del'>-</div><div class='del'>-1999-12-19  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-utils.c: include camel-log.h</div><div class='del'>-	to avoid unresolved symbols.</div><div class='del'>-</div><div class='del'>-1999-12-18  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_get_summary): </div><div class='del'>-	documented.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_append_message): </div><div class='del'>-	updated to take the change on append into account.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.h: </div><div class='del'>-	updated class def concerning append.</div><div class='del'>-	* camel/camel-folder.c </div><div class='del'>-	(camel_folder_append_message): documented. </div><div class='del'>-	(camel_folder_append_message): don't return the </div><div class='del'>-	message number. Use specific methods instead.</div><div class='del'>-	(_append_message): idem.</div><div class='del'>-</div><div class='del'>-	(_delete): use 	exception mechanism.</div><div class='del'>-	(camel_folder_delete): idem.</div><div class='del'>-	(_delete_messages): idem.</div><div class='del'>-	(camel_folder_delete_messages): idem.</div><div class='del'>-	(_get_parent_folder): idem.</div><div class='del'>-	(camel_folder_get_parent_folder): idem.</div><div class='del'>-	(_get_parent_store): idem.</div><div class='del'>-	(_get_mode): idem.</div><div class='del'>-	(camel_folder_get_parent_store): idem.</div><div class='del'>-	(camel_folder_get_mode): idem.</div><div class='del'>-	(_list_subfolders): idem.</div><div class='del'>-	(camel_folder_list_subfolders): idem.</div><div class='del'>-	(_expunge): idem.</div><div class='del'>-	(camel_folder_expunge): idem.</div><div class='del'>-	(_has_message_number_capability): idem.</div><div class='del'>-	(camel_folder_has_message_number_capability): idem.</div><div class='del'>-	(_get_message_by_number): idem.</div><div class='del'>-	(camel_folder_get_message_by_number): idem.</div><div class='del'>-	(camel_folder_get_message_count): idem.</div><div class='del'>-	(_list_permanent_flags): idem.</div><div class='del'>-	(camel_folder_list_permanent_flags): idem.</div><div class='del'>-	(_copy_message_to): idem.</div><div class='del'>-	(camel_folder_copy_message_to): idem.</div><div class='del'>-	(camel_folder_has_summary_capability): idem.</div><div class='del'>-	(camel_folder_get_summary): idem.</div><div class='del'>-	(camel_folder_has_uid_capability): idem.</div><div class='del'>-	(camel_folder_get_message_uid): idem.</div><div class='del'>-	(_get_message_uid_by_number): idem.</div><div class='del'>-	(camel_folder_get_message_uid_by_number): idem.</div><div class='del'>-	(camel_folder_get_message_by_uid): idem.</div><div class='del'>-	(camel_folder_get_uid_list): idem.</div><div class='del'>-</div><div class='del'>-1999-12-17  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_set_name): </div><div class='del'>-	use exception mechanism.</div><div class='del'>-	(camel_folder_set_name): idem.</div><div class='del'>-	(camel_folder_set_full_name): idem.</div><div class='del'>-	(_get_name): idem.</div><div class='del'>-	(camel_folder_get_name): idem.</div><div class='del'>-	(_get_full_name): idem.</div><div class='del'>-	(camel_folder_get_full_name): idem.</div><div class='del'>-	(_can_hold_folders): idem.</div><div class='del'>-	(_can_hold_messages): idem.</div><div class='del'>-	(_exists): idem.</div><div class='del'>-	(camel_folder_exists): idem.</div><div class='del'>-	(_is_open): idem.</div><div class='del'>-	(_get_subfolder): idem.</div><div class='del'>-	(camel_folder_get_subfolder): idem.</div><div class='del'>-</div><div class='del'>-	* camel/camel-exception.c (camel_exception_clear): </div><div class='del'>-	New function. Clear an exception.</div><div class='del'>-	(camel_exception_get_id): </div><div class='del'>-	New function. </div><div class='del'>-	(camel_exception_get_description): </div><div class='del'>-	New function. </div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_set_name): </div><div class='del'>-	Use the exception system. When the folder</div><div class='del'>-	has no parent, don't set its full name </div><div class='del'>-	field.</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-1999-12-16  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_expunge): </div><div class='del'>-	(_expunge): </div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_expunge): </div><div class='del'>-	changed the return value. Now returns the list </div><div class='del'>-	of expunged messages</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_init_with_store): </div><div class='del'>-	cleaned up. Use the exception system now.</div><div class='del'>-	(_open): ditto.</div><div class='del'>-	(camel_folder_open): ditto.</div><div class='del'>-	(camel_folder_open_async): ditto.</div><div class='del'>-	(_close):  ditto.</div><div class='del'>-	(camel_folder_close):  ditto.</div><div class='del'>-	(camel_folder_close_async): ditto.</div><div class='del'>-</div><div class='del'>-	* camel/camel-exception.c (camel_exception_set): </div><div class='del'>-	When no exception is given, do nothing, just</div><div class='del'>-	return. </div><div class='del'>-	(camel_exception_set): documented.</div><div class='del'>-	(camel_exception_new): idem.</div><div class='del'>-	(camel_exception_free): idem.</div><div class='del'>-	(camel_exception_xfer): idem.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c:</div><div class='del'>-	* camel/camel-folder.h: more clean-ups. </div><div class='del'>-	Removed message list related code. </div><div class='del'>-	This was braindead design. </div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-utils.c (camel_aml_expunge_messages): </div><div class='del'>-	implemented. The routines in this file will be</div><div class='del'>-	called by providers to handle the list of</div><div class='del'>-	message already standing in memory. </div><div class='del'>-</div><div class='del'>-1999-12-15  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-utils.c: </div><div class='del'>-	* camel/camel-folder-utils.h: </div><div class='del'>-	New files, misc utilities for the </div><div class='del'>-	folder providers. Includes active message</div><div class='del'>-	list utilities. </div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-	* camel/camel-folder.c (_has_message_number_capability): </div><div class='del'>-	(camel_folder_has_message_number_capability): </div><div class='del'>-	Added this to know if a folder provides </div><div class='del'>-	number-based message access.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_get_message_count): </div><div class='del'>-	added warning when called directly.</div><div class='del'>-	(_append_message): ditto</div><div class='del'>-	(_open_async):  ditto</div><div class='del'>-	(_close_async):  ditto</div><div class='del'>-	(_delete_messages): ditto </div><div class='del'>-	(_expunge):  ditto</div><div class='del'>-	(_get_message_by_number):  ditto</div><div class='del'>-	(_get_message_uid):  ditto</div><div class='del'>-	(_get_message_uid_by_number):  ditto</div><div class='del'>-	(_get_message_by_uid):  ditto</div><div class='del'>-	(_get_uid_list):  ditto</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_open_async): </div><div class='del'>-	(_open): </div><div class='del'>-	(_close_async): </div><div class='del'>-	(_close): </div><div class='del'>-	(camel_folder_pt_proxy_class_init): </div><div class='del'>-	update </div><div class='del'>-	(_get_message_by_number): </div><div class='del'>-	Update to reflect changes in CamelFolder</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.h: </div><div class='del'>-	* camel/camel-folder.c (_get_subfolder): </div><div class='del'>-	(camel_folder_get_subfolder): </div><div class='del'>-	The CamelFolder::get_folder is renamed to </div><div class='del'>-	get_subfolder as it is more intuitive. </div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_get_message_by_number): </div><div class='del'>-	(camel_folder_get_message_by_number): </div><div class='del'>-	* camel/camel-folder.h </div><div class='del'>-	(camel_folder_get_message_by_number): </div><div class='del'>-	The get_message method is now named</div><div class='del'>-	get_message_by_number for consistency</div><div class='del'>-	with the _by_uid methods.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.[ch]: </div><div class='del'>-	 clean-ups. </div><div class='del'>-</div><div class='del'>-1999-12-13  Nat Friedman  &lt;nat@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ebook/e-book.h: New file.</div><div class='del'>-	* ebook/e-book.c: New file.</div><div class='del'>-	* ebook/e-card.h: New file.</div><div class='del'>-	* ebook/e-card-fields.h: New file.</div><div class='del'>-	* ebook/e-commerce.h: New file. :-)</div><div class='del'>-</div><div class='del'>-1999-12-08  Ettore Perazzoli  &lt;ettore@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): Removed the strdup()s, which are not</div><div class='del'>-	deeded anymore.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_set_subject): `subject' made const.</div><div class='del'>-	(camel_mime_message_set_subject): Likewise.</div><div class='del'>-	(_set_from): `from' made const.</div><div class='del'>-	(camel_mime_message_set_from): Likewise.</div><div class='del'>-	(_set_reply_to): Made `reply_to' const.</div><div class='del'>-	(camel_mime_message_set_reply_to): Likewise.</div><div class='del'>-	(_set_set_received_date): Made `received_date' const.</div><div class='del'>-	(camel_mime_message_set_reply_to): Likewise.</div><div class='del'>-	(_set_field): `value' made const.  Also, strdup the string before</div><div class='del'>-	assigning.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.h: Virtual methods changed to use const</div><div class='del'>-	strings when setting header values.</div><div class='del'>-</div><div class='del'>-1999-11-17  Ettore Perazzoli  &lt;ettore@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* composer/Makefile.am (EXTRA_DIST): Added `$(glade_DATA)'.</div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am (EXTRA_DIST): Added</div><div class='del'>-	`$(libcamel_extra_sources)'.</div><div class='del'>-	(libcamelinclude_HEADERS): Added `gmime-base64.h'.</div><div class='del'>-</div><div class='del'>-1999-11-17  Ettore Perazzoli  &lt;ettore@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_write_to_stream): Removed extra ':'</div><div class='del'>-	in the `Mime-Version' header.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/msg-composer-test.c: Removed.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): Added `composer'.</div><div class='del'>-</div><div class='del'>-	* configure.in: Create `composer/Makefile'.</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.c</div><div class='del'>-	(camel_simple_data_wrapper_stream_construct): Updated accordingly.</div><div class='del'>-	(camel_simple_data_wrapper_stream_new): Updated accordingly.</div><div class='del'>-	* camel/camel-stream-data-wrapper.c</div><div class='del'>-	(camel_stream_data_wrapper_construct): Updated accordingly.</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.h: Replaced `IS_CAMEL...()' type check</div><div class='del'>-	macro name with `CAMEL_IS...()'.</div><div class='del'>-	* camel/camel-folder-pt-proxy.h: Likewise.</div><div class='del'>-	* camel/camel-folder-summary.h: Likewise. </div><div class='del'>-	* camel/camel-folder.h: Likewise. </div><div class='del'>-	* camel/camel-medium.h: Likewise. </div><div class='del'>-	* camel/camel-mime-body-part.h: Likewise.</div><div class='del'>-	* camel/camel-mime-message.h: Likewise. </div><div class='del'>-	* camel/camel-mime-part.h: Likewise. </div><div class='del'>-	* camel/camel-multipart.h: Likewise. </div><div class='del'>-	* camel/camel-service.h: Likewise. </div><div class='del'>-	* camel/camel-session.h: Likewise. </div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.h: Likewise. </div><div class='del'>-	* camel/camel-simple-data-wrapper.h: Likewise.</div><div class='del'>-	* camel/camel-store.h: Likewise.</div><div class='del'>-	* camel/camel-stream-buffered-fs.h: Likewise.</div><div class='del'>-	* camel/camel-stream-data-wrapper.h: Likewise. </div><div class='del'>-	* camel/camel-stream-fs.h: Likewise. </div><div class='del'>-	* camel/camel-stream-mem.h: Likewise. </div><div class='del'>-	* camel/camel-stream.h: Likewise. </div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): Updated to match the `RECIPIENT_TYPE'</div><div class='del'>-	changes.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.h: Changed `RECIPIENT_TYPE_TO',</div><div class='del'>-	`RECIPIENT_TYPE_CC' and `RECIPIENT_TYPE_BCC' into</div><div class='del'>-	`CAMEL_RECIPIENT_TYPE_TO', `CAMEL_RECIPIENT_TYPE_CC' and</div><div class='del'>-	`CAMEL_RECIPIENT_TYPE_BCC', respectively.</div><div class='del'>-</div><div class='del'>-1999-11-17  Ettore Perazzoli  &lt;ettore@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_write_to_stream): Write</div><div class='del'>-	"Mime-Version: 1.0" to the stream.</div><div class='del'>-</div><div class='del'>-	* tests/test1.c: If executed with a file name parameter, attach a</div><div class='del'>-	file with with that name to the email without loading it into</div><div class='del'>-	core, thus demonstrating usage of my latest changes.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_set_encoding): Updated to use</div><div class='del'>-	`CamelMimePartEncodingType'.</div><div class='del'>-	(camel_mime_part_set_encoding): Likewise.</div><div class='del'>-	(_get_encoding): Likewise.</div><div class='del'>-	(camel_mime_part_get_encoding): Likewise.</div><div class='del'>-	(_write_content_to_stream): Honour the `encoding' member.</div><div class='del'>-	(_construct_from_stream): Made static.</div><div class='del'>-	(camel_mime_part_encoding_to_string): New function.</div><div class='del'>-	(_write_to_stream): Write the encoding string using it.</div><div class='del'>-	(camel_mime_part_init): Set encoding to</div><div class='del'>-	`CAMEL_MIME_PART_ENCODING_DEFAULT'.</div><div class='del'>-	(_finalize): Don't free `encoding' anymore.</div><div class='del'>-	(camel_mime_part_encoding_from_string): New function.</div><div class='del'>-	(_parse_header_pair): Use it.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.h: New enum `CamelMimePartEncodingType'.</div><div class='del'>-	Member `encoding' of `struct _CamelMimePart' changed from `gchar</div><div class='del'>-	*' to `CamelMimePartEncodingType'.  All the encoding-related</div><div class='del'>-	methods changed to use this type instead of `gchar *'.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-base64.c (gmime_encode_base64): Got it to work.</div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am (libcamel_la_SOURCES): Compile</div><div class='del'>-	`gmime-base64.c'.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-base64.h: New, previously missing, header.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-data-wrapper.c: New file implementing the</div><div class='del'>-	`CamelStreamDataWrapper' class.</div><div class='del'>-	* camel/camel-stream-data-wrapper.h: Corresponding header.</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper.c: Implemented the `get_stream'</div><div class='del'>-	virtual method.</div><div class='del'>-	(_get_stream): New function implementing the method.</div><div class='del'>-	(camel_simple_data_wrapper_class_init): Install it in the class</div><div class='del'>-	struct.</div><div class='del'>-	(camel_simple_data_wrapper_init): New function initializing the</div><div class='del'>-	`stream' member to NULL,</div><div class='del'>-	(camel_simple_data_wrapper_class_init): Set it as the</div><div class='del'>-	GtkObjectInitFunc.</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper.h: New member `stream' in</div><div class='del'>-	`struct _CamelSimpleDataWrapper'.</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.c: New file implementing</div><div class='del'>-	the `CamelSimpleDataWrapperStream' class.</div><div class='del'>-	* camel/camel-simple-data-wrapper-stream.h: Corresponding header.</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.c (camel_data_wrapper_get_stream): New</div><div class='del'>-	function.</div><div class='del'>-	(_get_stream): New private function, just returning NULL.</div><div class='del'>-	(camel_data_wrapper_class_init): Install it as the default</div><div class='del'>-	`get_stream' virtual method.</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.h: New virtual method `get_stream' in</div><div class='del'>-	`CamelDataWrapperClass'.</div><div class='del'>-	(camel_data_wrapper_get_stream): New function prototype.</div><div class='del'>-</div><div class='del'>-1999-11-05  Ettore Perazzoli  &lt;ettore@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/msg-composer-test.c: New file for testing the</div><div class='del'>-	`EMsgComposer' widget.</div><div class='del'>-	* tests/ui-tests/Makefile.am (noinst_PROGRAMS): Compile it.  Do</div><div class='del'>-	not compile `store_listing' for now because it's currently broken.</div><div class='del'>-	(INCLUDES): Added the `widgets' source directory to the include</div><div class='del'>-	path list.</div><div class='del'>-	(LDADD): Removed the MH dependency; link with</div><div class='del'>-	`libevolutionwidgets.la' from the `widgets' directory.</div><div class='del'>-</div><div class='del'>-	* configure.in: Create `widgets/Makefile'.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-rfc2047.c (rfc2047_clean): Removed C++-like comment.</div><div class='del'>-	* camel/camel-folder.c (camel_folder_get_message_uid_by_number):</div><div class='del'>-	Likewise.</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_get_parameter):</div><div class='del'>-	Likewise.</div><div class='del'>-	* camel/camel.c (camel_init): Likewise.</div><div class='del'>-	* camel/camel-provider.c (camel_provider_register): Likewise.</div><div class='del'>-	* camel/camel-multipart.c (_construct_from_stream): Likewise.</div><div class='del'>-	* camel/camel-mime-part.c (_write_content_to_stream): Likewise.</div><div class='del'>-	* camel/camel-medium.c (camel_medium_class_init): Likewise.</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.h (camel_data_wrapper_get_type): Make</div><div class='del'>-	prototype non-static.</div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am (libcamelinclude_HEADERS): Move</div><div class='del'>-	`camel-exception-list.def' from `EXTRA_DIST' to</div><div class='del'>-	`libcamelinclude_HEADERS'.</div><div class='del'>-</div><div class='del'>-	* camel/camel.h: Do not #include &lt;config.h&gt;.</div><div class='del'>-	* camel/data-wrapper-repository.h: Likewise.</div><div class='del'>-</div><div class='del'>-1999-11-05  Ettore Perazzoli  &lt;ettore@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/Makefile.am (INCLUDES): Add `-I$(top_srcdir)'.</div><div class='del'>-</div><div class='del'>-1999-10-13  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_close): the </div><div class='del'>-	folder-&gt;close method is now asynchronous.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_folder_open_cb): </div><div class='del'>-	(_open): </div><div class='del'>-	(_folder_open_cb): </div><div class='del'>-	(_open): </div><div class='del'>-	open/close method implemented in the thread proxy</div><div class='del'>-	folder. More to come.</div><div class='del'>-</div><div class='del'>-	* camel/camel-exception.c (camel_exception_xfer): </div><div class='del'>-	new utility func.</div><div class='del'>-</div><div class='del'>-	* camel/camel-marshal-utils.c: some new marshallers</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c: Some explanations</div><div class='del'>-	on the thread proxy system.</div><div class='del'>-</div><div class='del'>-1999-10-11  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-marshal-utils.c: </div><div class='del'>-	camel/camel-marshal-utils.h:</div><div class='del'>-	Handles operation marshalling. </div><div class='del'>-	</div><div class='del'>-	* camel/camel-thread-proxy.c: </div><div class='del'>-	camel/camel-thread-proxy.h: </div><div class='del'>-	new files. Generic proxy system.</div><div class='del'>-	  </div><div class='del'>-	* camel/camel-folder-pt-proxy.c </div><div class='del'>-	moved all proxy related code in dedicated files.</div><div class='del'>-	</div><div class='del'>-	(camel_folder_pt_proxy_init): </div><div class='del'>-	removed proxy initialisation code</div><div class='del'>-	(_finalize): </div><div class='del'>-	removed proxy finalization code</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* camel/camel-exception.c </div><div class='del'>-	(camel_exception_new): </div><div class='del'>-	(camel_exception_set): </div><div class='del'>-	(camel_exception_free): </div><div class='del'>-	New funcs.</div><div class='del'>-</div><div class='del'>-1999-09-21  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_async_close): </div><div class='del'>-	implemented.</div><div class='del'>-</div><div class='del'>-	* configure.in:</div><div class='del'>-	Check pthreads.</div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am: </div><div class='del'>-	camel-folder-pt-proxy.c is only compiled</div><div class='del'>-	when pthreads are available.</div><div class='del'>-	</div><div class='del'>-	* camel/camel-folder-pt-proxy.c:</div><div class='del'>-	Signal proxying implemenatation. </div><div class='del'>-	(_signal_marshaller_server_side): </div><div class='del'>-	(_signal_marshaller_client_side): </div><div class='del'>-	(_init_signals_proxy): </div><div class='del'>-	Code not is tested and has to be best </div><div class='del'>-	explained as it uses threads conditions and</div><div class='del'>-	gtk signal system.</div><div class='del'>-	(_thread_notification_catch): notify pending signals</div><div class='del'>-	as well as thread availability.</div><div class='del'>-</div><div class='del'>-1999-09-20  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_op_exec_or_plan_for_exec): </div><div class='del'>-	completed</div><div class='del'>-</div><div class='del'>-	Binch of new funcs:</div><div class='del'>-	(_maybe_run_next_op): </div><div class='del'>-	Called by the watch notification when </div><div class='del'>-	a threaded op is completed</div><div class='del'>-	(_thread_notification_catch): </div><div class='del'>-	notification watch call back</div><div class='del'>-	(_init_notify_system): </div><div class='del'>-	set up the notification channel</div><div class='del'>-	(notify_availability): </div><div class='del'>-	called by threads before completion.</div><div class='del'>-</div><div class='del'>-1999-09-18  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_op_exec_or_plan_for_exec): </div><div class='del'>-	new func. Try to exec an operation in a thread</div><div class='del'>-	or queue it if a thread is already busy.</div><div class='del'>-</div><div class='del'>-	* camel/camel-op-queue.c (camel_op_queue_set_service_availability): </div><div class='del'>-	(camel_op_queue_get_service_availability): </div><div class='del'>-	new funcs. </div><div class='del'>-</div><div class='del'>-	* camel/camel-op-queue.c (camel_op_new): </div><div class='del'>-	(camel_op_free): </div><div class='del'>-	new funcs. Uses glib mem chunks.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-09-17  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_init_with_store): </div><div class='del'>-	added notify io_channel.</div><div class='del'>-</div><div class='del'>-	* camel/camel-op-queue.h: </div><div class='del'>-	* camel/camel-op-queue.c: </div><div class='del'>-	New object. Operation queue. Meant to be used in </div><div class='del'>-	non-blocking proxy objects.</div><div class='del'>-	(camel_op_queue_run_next_op): new func. </div><div class='del'>-	run the next operation.</div><div class='del'>-</div><div class='del'>-1999-09-14  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am (libcamel_la_SOURCES): </div><div class='del'>-	added camel-folder-pt-proxy.[ch] to the build</div><div class='del'>-	process.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-pt-proxy.c (_init_with_store): </div><div class='del'>-	started implementation of the pthread-based </div><div class='del'>-	folder proxy.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-09-08  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/mh-summary.c </div><div class='del'>-	(mh_load_summary): </div><div class='del'>-	(mh_save_summary): </div><div class='del'>-	(mh_create_summary): </div><div class='del'>-	implemented summary (files) for MH folders.</div><div class='del'>-	</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c </div><div class='del'>-	(_get_message_by_uid): implemented.</div><div class='del'>-	(camel_mh_folder_class_init): </div><div class='del'>-	(_get_message_uid): implemented</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_has_uid_capability): </div><div class='del'>-	(camel_folder_get_message_uid): </div><div class='del'>-	(camel_folder_get_message_uid_by_number): </div><div class='del'>-	(camel_folder_get_message_by_uid): </div><div class='del'>-	(camel_folder_get_uid_list): </div><div class='del'>-	Documented UID methods.</div><div class='del'>-	(camel_folder_get_message_uid_by_number): </div><div class='del'>-	const'ified uid.</div><div class='del'>-	(camel_folder_get_message_by_uid): idem</div><div class='del'>-	removed stupid camel_folder_get_message_uid_by_number</div><div class='del'>-	method.</div><div class='del'>-	</div><div class='del'>-	* tests/ui-tests/store_listing.c (close_all): </div><div class='del'>-	close all open folders and stores. (necessary</div><div class='del'>-	for UID list saving ).</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/mh-uid.c (mh_generate_uid_list): </div><div class='del'>-	fix: store UID list in CamelMHFolder object.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_open): </div><div class='del'>-	read or create UID list.</div><div class='del'>-	(_close): save UID list.</div><div class='del'>-</div><div class='del'>-1999-09-07  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/md5-utils.c (md5_get_digest_from_file): </div><div class='del'>-	correct parameter decl (const)</div><div class='del'>-</div><div class='del'>-	* camel/md5-utils.h: typo.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/mh-uid.c </div><div class='del'>-	More work on UID stuff for MH.</div><div class='del'>-	(mh_save_uid_list): </div><div class='del'>-	(mh_load_uid_list): </div><div class='del'>-	(mh_generate_uid_list): </div><div class='del'>-	new funcs. Manage on-disk uid list.</div><div class='del'>-	</div><div class='del'>-	* camel/providers/MH/mh-utils.c (mh_is_a_message_file): </div><div class='del'>-	Util routines live here now.</div><div class='del'>-</div><div class='del'>-	* camel/md5-utils.c </div><div class='del'>-	Documented all funcs.</div><div class='del'>-	</div><div class='del'>-	(md5_get_digest_from_stream): </div><div class='del'>-	correct typo.</div><div class='del'>-	(md5_get_digest_from_file): </div><div class='del'>-	same typo corrected.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/md5-utils.h : </div><div class='del'>-	raw routines are declared public now.</div><div class='del'>-	Md5 use has to be versatile.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/mh-uid.c (mh_uid_get_for_file): </div><div class='del'>-	new func. Returns an UID for an MH message.</div><div class='del'>-		</div><div class='del'>-1999-09-06  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* camel/md5-utils.h:</div><div class='del'>-	* camel/md5-utils.c:</div><div class='del'>-	changed names to follow camel style.</div><div class='del'>-	(md5_get_digest_from_stream): </div><div class='del'>-	new methods.</div><div class='del'>-	(md5_get_digest_from_file): </div><div class='del'>-	new function : get file md5 signature. </div><div class='del'>-	To be used in providers code.</div><div class='del'>-</div><div class='del'>-	* camel/md5-utils.c: imported md5 coding </div><div class='del'>-	routine from rpm. Compiles.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-09-05  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_has_uid_capability): </div><div class='del'>-	(camel_folder_get_message_uid): </div><div class='del'>-	(camel_folder_get_message_uid_by_number): </div><div class='del'>-	(camel_folder_get_message_by_uid): </div><div class='del'>-	(camel_folder_get_uid_list): </div><div class='del'>-	Basic UID framework.</div><div class='del'>-	</div><div class='del'>-	* devel-docs/misc/ref_and_id_proposition.txt:</div><div class='del'>-	New revision. Some fixes.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.h (struct _CamelFolder): added </div><div class='del'>-	uid_capability field.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_close): publicized</div><div class='del'>-	the close method.</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/store_listing.c (show_folder_messages): </div><div class='del'>-	use folder summary instead of opening all messages.</div><div class='del'>-	(show_folder_messages): re-enabled old CPU/Mem consumming</div><div class='del'>-	method. Useful for pop3 for instance.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_create_summary): </div><div class='del'>-	basic and highly non-efficient summary implementation.</div><div class='del'>-	Should be seen as a proof of concept only.</div><div class='del'>-	subfolder summary still has to be implemented.</div><div class='del'>-	</div><div class='del'>-	* camel/providers/maildir/camel-maildir-folder.c (_init_with_store): </div><div class='del'>-	hasn't summary for the moment. </div><div class='del'>-	* camel/providers/maildir/camel-maildir-folder.c</div><div class='del'>-	cosmetic changes.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-09-04  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_create_summary):</div><div class='del'>-	started summary implementation.</div><div class='del'>-	(_open): correct use of open.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_get_summary): </div><div class='del'>-	get folder associated summary object.</div><div class='del'>-</div><div class='del'>-	* camel/Makefile.am:</div><div class='del'>-	added summary files build</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder-summary.[ch]: </div><div class='del'>-	basic summary framework</div><div class='del'>-</div><div class='del'>-1999-09-03  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* devel-docs/camel/Makefile.am:</div><div class='del'>-	sgml doc has camel-recipient now.</div><div class='del'>-</div><div class='del'>-	* camel/camel-recipient.c (camel_recipient_foreach_recipient_type): </div><div class='del'>-	added in-line documentation.</div><div class='del'>-</div><div class='del'>-1999-09-02  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/maildir: Added (experimental) maildir </div><div class='del'>-	provider written by Jukka Zitting &lt;hukka@greywolves.org&gt;</div><div class='del'>-	</div><div class='del'>-	* camel/providers/Makefile.am (SUBDIRS): build maildir</div><div class='del'>-	provider.</div><div class='del'>-</div><div class='del'>-	* camel/camel-provider.c (camel_provider_get_for_protocol):</div><div class='del'>-	bug fix. patch from  Jukka Zitting &lt;hukka@greywolves.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_write_one_recipient_to_stream): </div><div class='del'>-	changed decl to fit CRLFunc. </div><div class='del'>-	(_write_recipients_to_stream): </div><div class='del'>-	calls camel_recipient_foreach_recipient_type now.</div><div class='del'>-</div><div class='del'>-	* camel/camel-recipient.c (camel_recipient_foreach_recipient_type): </div><div class='del'>-	new convinience function. Iterate over all recipient types.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (gmime_write_header_table_to_stream): </div><div class='del'>-	s/write_header_table_to_stream/gmime_write_header_table_to_stream/</div><div class='del'>-	(gmime_write_header_with_glist_to_stream): </div><div class='del'>-	s/write_header_with_glist_to_stream/gmime_write_header_with_glist_to_stream/</div><div class='del'>-</div><div class='del'>-1999-09-01  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_finalize): </div><div class='del'>-	(_add_recipient): </div><div class='del'>-	(_remove_recipient): </div><div class='del'>-	(_get_recipients): now use CamelRecipientTable</div><div class='del'>-	</div><div class='del'>-	* camel/gmime-content-field.c: </div><div class='del'>-	(gmime_content_field_unref): test if object </div><div class='del'>-	to free is non void.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_finalize): </div><div class='del'>-	(_set_name): </div><div class='del'>-	* camel/camel-mime-part.c (_finalize): </div><div class='del'>-	(_set_description): </div><div class='del'>-	(_set_disposition): </div><div class='del'>-	* camel/camel-service.c (_finalize): </div><div class='del'>-	* camel/camel-stream-fs.c (_finalize): </div><div class='del'>-	* camel/gmime-content-field.c: </div><div class='del'>-	(gmime_content_field_construct_from_string): </div><div class='del'>-</div><div class='del'>-	* camel/url-util.c (g_url_free): </div><div class='del'>-</div><div class='del'>-	When using g_free (obj) don't test if obj != NULL</div><div class='del'>-	g_free () already do that. Thanks to elerium for</div><div class='del'>-	the feedback.</div><div class='del'>-</div><div class='del'>-1999-08-30  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-recipient.c (camel_recipient_get): </div><div class='del'>-	(camel_recipient_remove): </div><div class='del'>-	(camel_recipient_add): </div><div class='del'>-	new func. More work on new independant recipient code. </div><div class='del'>-</div><div class='del'>-1999-08-29  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* MAINTAINERS: updated my e-mail address. </div><div class='del'>-</div><div class='del'>-1999-08-28  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (camel_mime_part_set_text): </div><div class='del'>-	text parameter declared const</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part-utils.c (camel_mime_part_store_stream_in_buffer): </div><div class='del'>-	actually test correctly nb_bytes_read_chunk is &gt;0</div><div class='del'>-</div><div class='del'>-	* camel/gstring-util.c: </div><div class='del'>-	* camel/gmime-content-field.c: </div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c:</div><div class='del'>-	* camel/camel-stream-fs.c:</div><div class='del'>-	include string.h</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-mem.c (_write): return </div><div class='del'>-	the numver of written bytes.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-buffered-fs.c (_eos): </div><div class='del'>-	return sthg</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream.c (default_camel_seek): </div><div class='del'>-	return something.</div><div class='del'>-</div><div class='del'>-1999-08-26  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_get_content_object): </div><div class='del'>-	contruct the content from the buffer before calling</div><div class='del'>-	CamelMedium implementation.</div><div class='del'>-	(_construct_from_stream): Do not construct the content </div><div class='del'>-	by default, just store the content bytes in </div><div class='del'>-	a temporary buffer. Content will be constructed only</div><div class='del'>-	at caller request (when calling CamelMedium::get_content_object)</div><div class='del'>-	Providers with better access to the messages (mbox/MH ...)</div><div class='del'>-	will have to provider lighter implementation, that is</div><div class='del'>-	shall not read content at all unless the caller asks</div><div class='del'>-	for it (again with get_content).</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part-utils.c: new file, groups</div><div class='del'>-	mime-part related utils. Meant to be used by providers</div><div class='del'>-	subclassing MimeMessage.</div><div class='del'>-	(camel_mime_part_construct_headers_from_stream): </div><div class='del'>-	(camel_mime_part_construct_content_from_stream): </div><div class='del'>-	no more useless temporary hash table. </div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_construct_from_stream): calls</div><div class='del'>-	mime-part-utils functions now.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (_store_header_pair_from_string): </div><div class='del'>-	do not use hash table to store header, use an array instead.</div><div class='del'>-</div><div class='del'>-1999-08-25  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c: now descend from CamelMedium.</div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): all headers must be strdup'ed</div><div class='del'>-	(main): unref created objects</div><div class='del'>-</div><div class='del'>-	* camel/camel-medium.c (_set_content_object): </div><div class='del'>-	(_get_content_object): these methods are </div><div class='del'>-	in CamelMedium now.</div><div class='del'>-</div><div class='del'>-1999-08-24  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-medium.c (camel_medium_class_init): </div><div class='del'>-	new class. Will handle all sort of information media </div><div class='del'>-	(Mime mail messages, Lotus Notes  mail messages, </div><div class='del'>-	postit notes, faxes, who knows .... :)</div><div class='del'>-	CamelMimePart will inherit from it.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_set_disposition): </div><div class='del'>-	(_set_description):</div><div class='del'>-	description and disposition parameters are now const.</div><div class='del'>-	 </div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_free): added</div><div class='del'>-	assertion code.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_get_message): </div><div class='del'>-	uses buffered stream.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-buffered-fs.c:</div><div class='del'>-	new stream to accelerate file ops.</div><div class='del'>-</div><div class='del'>-1999-08-20  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.c (camel_stream_fs_new_with_name): </div><div class='del'>-	name parameter is const. This fixes a bug in destroy ()</div><div class='del'>-</div><div class='del'>-1999-08-18  Robert Brady  &lt;rwb197@ecs.soton.ac.uk&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-rfc2047.c: more work on encoder.</div><div class='del'>-</div><div class='del'>-1999-08-17  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream.c (camel_stream_read): </div><div class='del'>-	return the number of bytes read. </div><div class='del'>-	How can this have ever worked ?</div><div class='del'>-	(camel_stream_flush): don't return anything.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (get_header_table_from_stream): </div><div class='del'>-	mem leak fixed.</div><div class='del'>-</div><div class='del'>-1999-08-16  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/store_listing.c:</div><div class='del'>-	Now has a popup menu on mailbox tree to allow</div><div class='del'>-	easier tests. Implemented the copy stuff.</div><div class='del'>-	Works well for the MH provider :)))</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_copy_message_to): </div><div class='del'>-	Test MH provider fast copy implemented.</div><div class='del'>-	</div><div class='del'>-	</div><div class='del'>-1999-08-15  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_expunge): </div><div class='del'>-	moved the active list readjustment code here.</div><div class='del'>-	Much saner, providers won't have to worry about</div><div class='del'>-	that.</div><div class='del'>-	(_copy_message_to): new method.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_expunge): </div><div class='del'>-	no more active list readjustment stuff.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.h: the expunge virtual no more</div><div class='del'>-	returns a list of expunged messages. Now providers</div><div class='del'>-	only have to set the expunge flag on the expunged</div><div class='del'>-	messages.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_get_message): </div><div class='del'>-	moved the caching code here. Finally, I don't want</div><div class='del'>-	providers to crash the libs with a bad message cache</div><div class='del'>-	implementation. </div><div class='del'>-	(_close): do not call the CamelFolder virtual expunge </div><div class='del'>-	method directly, use camel_folder_expunge() instead.</div><div class='del'>-	(camel_folder_expunge): added the want_list param. </div><div class='del'>-	The client can decide if it wants the expunged message</div><div class='del'>-	list or not. If yes, it'll have to unref the messages </div><div class='del'>-	itself.</div><div class='del'>-</div><div class='del'>-1999-08-14  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/store_listing.c (delete_selected_messages): </div><div class='del'>-	(expunge_selected_folders): </div><div class='del'>-	Implemented deletion/expunge mechanism. </div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_get_message): </div><div class='del'>-	Added some debug info.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_expunge): </div><div class='del'>-	implemented and tested.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_set_flag): </div><div class='del'>-	changed the old braindead implementation.</div><div class='del'>-	boolean are inserted in the flag hash </div><div class='del'>-	table casted as gpointers.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c: indentation fix</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-08-13  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_get_message): default implementation</div><div class='del'>-	to be called first by providers methods. It looks in the</div><div class='del'>-	folder message list (in memory) to see if the message has</div><div class='del'>-	not already been retrieved, and in this case, returns </div><div class='del'>-	the same CamelMimeMessage object</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_get_message): set</div><div class='del'>-	message-&gt;message_number correctly.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.h (struct _CamelFolder): </div><div class='del'>-	New field (message_list) which will hold a </div><div class='del'>-	reference on each message obtained by the folder,</div><div class='del'>-	which is necessary in order for the caching procedure</div><div class='del'>-	to work (Getting the same message from a folder twice</div><div class='del'>-	will return the same CamelMimeMessage object).</div><div class='del'>-	</div><div class='del'>-	* camel/camel-folder.c (camel_folder_get_message): </div><div class='del'>-	When the store retreives a message put it in its</div><div class='del'>-	message list.</div><div class='del'>-	(_finalize): free message list.</div><div class='del'>-</div><div class='del'>-	* ChangeLog: fix typo (parmanent)</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_get_permanent_flag_list): </div><div class='del'>-	(camel_folder_get_permanent_flag_list): </div><div class='del'>-	new method, returns the list of permanent</div><div class='del'>-	flags supported by the folder.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_get_flag_list): </div><div class='del'>-	(camel_mime_message_get_flag_list): new method,</div><div class='del'>-	return the list of flag name used by this message.</div><div class='del'>-</div><div class='del'>-	* camel/hash-table-utils.c (g_strcase_equal): </div><div class='del'>-	(g_strcase_hash): those two func go here now.</div><div class='del'>-</div><div class='del'>-	* camel/hash_table_utils.c (hash_table_generic_free): </div><div class='del'>-	free a (gpointer, gpointer) hash table pair.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (camel_mime_message_init): use</div><div class='del'>-	case insensitive hash table functions. </div><div class='del'>-	(_set_flag): </div><div class='del'>-	(camel_mime_message_set_flag): </div><div class='del'>-	(_get_flag): </div><div class='del'>-	(camel_mime_message_get_flag): </div><div class='del'>-	Use const for flag name, they are now</div><div class='del'>-	duplicated.</div><div class='del'>-</div><div class='del'>-1999-08-12  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/store_listing.c (show_folder_messages): </div><div class='del'>-	remove stupid debug code.</div><div class='del'>-	(add_mail_store): use camel_session_get_store instead</div><div class='del'>-	of creating MH store directly.</div><div class='del'>-	(main): load MH provider.</div><div class='del'>-</div><div class='del'>-	* camel/camel-provider.c (camel_provider_register_as_module): </div><div class='del'>-	register new provider.</div><div class='del'>-	(camel_provider_get_for_protocol): </div><div class='del'>-	Now, implementation is correct.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c (_finalize): </div><div class='del'>-	* camel/camel-store.h (struct _CamelStore): </div><div class='del'>-	further disabled url_name field use. </div><div class='del'>-	URL will be generated dynamically.</div><div class='del'>-</div><div class='del'>-	* camel/camel-session.c (camel_session_get_store_for_protocol): </div><div class='del'>-	compilation and runtime fixes.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-store.c (_init): </div><div class='del'>-	synced with CamelStore.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c (_init): </div><div class='del'>-	in CamelStore::init, url_name is now const.</div><div class='del'>-	disabled url_name copy.</div><div class='del'>-</div><div class='del'>-	* camel/camel-session.c (camel_session_get_store): </div><div class='del'>-	new function: returns a store for an URL. </div><div class='del'>-	(camel_session_get_store_for_protocol): </div><div class='del'>-	new functionc: returns a store for a given </div><div class='del'>-	store protocol (as IMAP/POP/MH ...)</div><div class='del'>-	* camel/string-utils.c (g_strcase_equal): </div><div class='del'>-	(g_strcase_hash): case insensitive hash table</div><div class='del'>-	funcs.</div><div class='del'>-</div><div class='del'>-	* camel/camel-session.c (camel_session_init): hash table</div><div class='del'>-	keys are case insensitive.</div><div class='del'>-</div><div class='del'>-	* camel/camel-provider.c (camel_provider_get_for_protocol): </div><div class='del'>-	new function, returns the last registered </div><div class='del'>-	provider for a protocol.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-provider.c: </div><div class='del'>-	new file. MH provider registration stuff.</div><div class='del'>-</div><div class='del'>-	* camel/camel-provider.c (camel_provider_register_as_module): </div><div class='del'>-	load a provider from a shared object (plugin).</div><div class='del'>-	(camel_provider_register): register a provider </div><div class='del'>-	"by hand". Used for statically defined providers.</div><div class='del'>-</div><div class='del'>-	* tests/test7.c: new test.</div><div class='del'>-	tests providers loading framework.</div><div class='del'>-</div><div class='del'>-1999-08-11  </div><div class='del'>-</div><div class='del'>-	* camel/camel-service.c (_finalize): </div><div class='del'>-	* camel/camel-stream-fs.c (_finalize): </div><div class='del'>-	(_destroy): close file descriptor.</div><div class='del'>-	* camel/camel-stream-mem.c (_finalize): </div><div class='del'>-	* camel/camel-store.c (_finalize): </div><div class='del'>-	* camel/camel-folder.c (_finalize): </div><div class='del'>-	* camel/camel-multipart.c (_finalize): </div><div class='del'>-	* camel/camel-simple-data-wrapper.c (_finalize): </div><div class='del'>-	* camel/camel-mime-part.c (_finalize): </div><div class='del'>-	implemented destructors.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_ref): </div><div class='del'>-	(gmime_content_field_unref): </div><div class='del'>-	New reference mechanism for GMimeContentField objects.</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.c (_finalize): </div><div class='del'>-	Started implementing destructors.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_construct_from_stream): </div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_write_to_stream): </div><div class='del'>-	* camel/camel-multipart.c (_construct_from_stream): </div><div class='del'>-	removed forgotten anarchic traces.</div><div class='del'>-</div><div class='del'>-1999-08-10  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/ui-tests/store_listing.c: </div><div class='del'>-	* tests/ui-tests/store_listing.glade:</div><div class='del'>-	Quick and (very) dirty hack to test Camel more</div><div class='del'>-	easily.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_append_message): </div><div class='del'>-	new method.</div><div class='del'>-</div><div class='del'>-1999-08-09  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* devel-docs/misc/ref_and_id_proposition.txt:</div><div class='del'>-	new file. Document message UID and vfolder</div><div class='del'>-	implementation.</div><div class='del'>-</div><div class='del'>-1999-08-08  Robert Brady  &lt;rwb197@ecs.soton.ac.uk&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-rfc2047.c: more advanced RFC2047 encoder started.</div><div class='del'>-	</div><div class='del'>-1999-08-08  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_get_message): </div><div class='del'>-	fix. In MH, message number is not related to </div><div class='del'>-	message position in folder.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_is_a_message_file): </div><div class='del'>-	util func.</div><div class='del'>-	(_get_message_count): implemented.</div><div class='del'>-</div><div class='del'>-1999-08-06  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* devel-docs/camel/:</div><div class='del'>-	updated some autogen doc stuff.</div><div class='del'>-	Still don't understand warnings :(</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.c: </div><div class='del'>-	* camel/providers/MH/camel-mh-store.c: </div><div class='del'>-	* camel/url-util.c: </div><div class='del'>-	* camel/gmime-content-field.c: </div><div class='del'>-	* camel/camel-store.c: </div><div class='del'>-	various inline doc corrections.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (get_message_count): </div><div class='del'>-	new method. Returns the number of message </div><div class='del'>-	in the folder.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-08-06  Robert Brady  &lt;rwb197@ecs.soton.ac.uk&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test6.c: encoder test.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-rfc2047.c: Fixed decoder bug : sequence</div><div class='del'>-	?= is not always the terminator for an encoded-string.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-08-06  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_list_subfolders): </div><div class='del'>-	stat was not testing the good file. Fixed.</div><div class='del'>-	</div><div class='del'>-	* tests/test4.c (main): added real test for MH folder </div><div class='del'>-	provider. All tested things seem to work OK :)</div><div class='del'>-</div><div class='del'>-1998-08-06  Robert Brady  &lt;rwb197@ecs.soton.ac.uk&gt;</div><div class='del'>-	</div><div class='del'>-	* tests/test5.c: test for RFC2047 decoder.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-rfc2047.c: Improved RFC2047 decoder.</div><div class='del'>-</div><div class='del'>-1999-08-06  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_exists): add debug information</div><div class='del'>-	(_list_subfolders): test if first char in folder name is not '.'</div><div class='del'>-	before adding it to the folder list.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c (_init): </div><div class='del'>-	disable session check temporarily</div><div class='del'>-	(_get_separator): </div><div class='del'>-	(_get_folder): new static func. </div><div class='del'>-	Fixed several oddities in class definition. </div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-store.c (camel_mh_store_get_type): </div><div class='del'>-	parent type is CAMEL_STORE_TYPE not CAMEL_FOLDER_TYPE</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c: </div><div class='del'>-	prent class is CamelServiceClass not GtkObjectClass</div><div class='del'>-</div><div class='del'>-	* camel/url-util.c : </div><div class='del'>-	cosmetic changes + use of const when possible.</div><div class='del'>-	(find_host):</div><div class='del'>-	fix a bug: when there is no host and no port don't skip the '/'</div><div class='del'>-	all static find_* func are now named _func_*  </div><div class='del'>-	(g_url_free): destructor func.</div><div class='del'>-	cache field has been disabled. Constructing the url string</div><div class='del'>-	won't be too slow and will occur rarely enough that we</div><div class='del'>-	do not need to add complexity to this code. </div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-store.c: </div><div class='del'>-	parent class is CamelStorClass not GtkObjectClass</div><div class='del'>-</div><div class='del'>-1999-08-05  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test4.c: </div><div class='del'>-	test mh provider.</div><div class='del'>-	</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_get_message): </div><div class='del'>-	implemented</div><div class='del'>-	</div><div class='del'>-	* camel/camel-folder.c (_get_message): </div><div class='del'>-	new method. </div><div class='del'>-	(camel_folder_get_message): </div><div class='del'>-	corresponding public call</div><div class='del'>-	</div><div class='del'>-	* camel/README.HACKING: </div><div class='del'>-	Some notes.</div><div class='del'>-</div><div class='del'>-	* camel/CODING.STYLE: </div><div class='del'>-	short note about coding style. </div><div class='del'>-</div><div class='del'>-	* camel/README.COPYRIGHT: </div><div class='del'>-	Note about copyright policy.</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_list_subfolders): </div><div class='del'>-	minor typo fixes.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-08-04  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-rfc2047.c: </div><div class='del'>-	* camel/gmime-rfc2047.h:</div><div class='del'>-	indentation and cosmetic changes.</div><div class='del'>-	</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_list_subfolders): </div><div class='del'>-	implemented.</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_delete): </div><div class='del'>-	finshed implementation</div><div class='del'>-	(_delete_messages): implemented.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-08-04  Robert Brady  &lt;rwb197@ecs.soton.ac.uk&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-rfc2047.[ch]: added an implemention of RFC2047</div><div class='del'>-	  (support for character sets other than US-ASCII in MIME</div><div class='del'>-	  headers). Not actually called from anywhere yet.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-08-03  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_create): </div><div class='del'>-	implemented.</div><div class='del'>-	(_delete): started implementation.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_get_folder): default implementation </div><div class='del'>-	calls camel_store_get_folder ().</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_init_with_store): </div><div class='del'>-	implemented.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.h (struct _CamelFolder): </div><div class='del'>-	remove useless exist_on_store field.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (_exists): </div><div class='del'>-	do not use exist_on_store field.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_set_name): </div><div class='del'>-	(camel_folder_get_name): </div><div class='del'>-	new public functions </div><div class='del'>-	(_set_name): set full_path.</div><div class='del'>-</div><div class='del'>-	(_set_full_name): </div><div class='del'>-	(camel_folder_set_full_name): </div><div class='del'>-	commented out this functions def. </div><div class='del'>-	It would make things very difficult to handle, and would not </div><div class='del'>-	be very useful. </div><div class='del'>-	</div><div class='del'>-	* camel/providers/MH/camel-mh-store.h: </div><div class='del'>-	* camel/providers/MH/camel-mh-store.c (camel_mh_store_set_toplevel_dir): </div><div class='del'>-	(camel_mh_store_get_toplevel_dir): </div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (_set_name): </div><div class='del'>-	* camel/providers/MH/camel-mh-folder.h: </div><div class='del'>-	use (gchar *) instead of (GString *) everywhere.</div><div class='del'>-	use const when necessary.</div><div class='del'>-	</div><div class='del'>-	* camel/camel-folder.h (struct _CamelFolder): </div><div class='del'>-	removed unused message_list field.</div><div class='del'>-	</div><div class='del'>-	* camel/camel-mime-part.c (_set_content_object): </div><div class='del'>-	There is a probleme here. We can not allow mime part</div><div class='del'>-	content-type field and content_object mime-type to be </div><div class='del'>-	different. I thus chosed to set mime part object </div><div class='del'>-	content field to be freed (if necessary) and set</div><div class='del'>-	to be a pointer to content_object mime type</div><div class='del'>-	field. </div><div class='del'>-	(_construct_from_stream): set content_object mime type</div><div class='del'>-	to be the same as mime_part's one. This is necessary</div><div class='del'>-	because we use _set_content_type. </div><div class='del'>-	</div><div class='del'>-	This two things are a bit hackish ansd may need</div><div class='del'>-	to be redesigned.</div><div class='del'>-	</div><div class='del'>-	* camel/gmime-utils.c (gmime_write_header_pair_to_stream): </div><div class='del'>-	use g_strdup_printf and remove a bug.</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper.c (_construct_from_stream): </div><div class='del'>-	more debugging output +  nb_bytes_read is now a signed int </div><div class='del'>-	to avoid bug when eos is encountered.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_construct_from_stream): </div><div class='del'>-	sync to data_wrapper_repository function name changes. </div><div class='del'>-	Use default "text/plain" type when conten-type field</div><div class='del'>-	is not found. (following RFC 2046 spec).</div><div class='del'>-</div><div class='del'>-	* camel/data-wrapper-repository.c (data_wrapper_repository_set_data_wrapper_type): </div><div class='del'>-	(data_wrapper_repository_get_data_wrapper_type): </div><div class='del'>-	change function name prefix (s/data_wrapper/data_wrapper_repository/)</div><div class='del'>-</div><div class='del'>-	* camel/camel-multipart.c (_read_part): </div><div class='del'>-	add `\n` at eol but not before boundary.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (get_header_table_from_stream): </div><div class='del'>-	correct implementation of end of stream detection.</div><div class='del'>-</div><div class='del'>-1999-08-01  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-multipart.c (_read_part): </div><div class='del'>-	use a stream to store the part instead of GString. </div><div class='del'>-	</div><div class='del'>-	* camel/camel-mime-part.c (camel_mime_part_set_text): </div><div class='del'>-	set data wrapper content type to "text/plain".</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-mem.c:</div><div class='del'>-	* camel/camel-stream-mem.h:</div><div class='del'>-	new memory buffer based stream.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.c (_seek): </div><div class='del'>-	implementation for file system based stream.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream.c (camel_stream_seek): </div><div class='del'>-	new method.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.c (camel_stream_fs_class_init): </div><div class='del'>-	pass CamelStreamFsClass instead of CamelStreamClass.</div><div class='del'>-</div><div class='del'>-1999-08-01 bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (gmime_write_header_pair_to_stream): </div><div class='del'>-	corrected a bug with memory not allocated for '\0' in strtmp</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (gmime_read_line_from_stream): </div><div class='del'>-	do not return NULL when line is empty. </div><div class='del'>-</div><div class='del'>-	* camel/camel-multipart.c (_read_part): return true when end</div><div class='del'>-	of multipart is found, not the opposite</div><div class='del'>-</div><div class='del'>-1999-07-31  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (gmime_read_line_from_stream): </div><div class='del'>-	Don't return crlf at end of line.</div><div class='del'>-</div><div class='del'>-1999-07-30  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (gmime_read_line_from_stream): </div><div class='del'>-	new function: reads a line from a stream.</div><div class='del'>-	should be in streams utils maybe. </div><div class='del'>-</div><div class='del'>-1999-07-29  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_construct_from_stream): </div><div class='del'>-	Uses data wrapper repository to find what data wrapper</div><div class='del'>-	to use to construct the content from a stream. When </div><div class='del'>-	no object is registered for the mime type found in</div><div class='del'>-	content type field a CamelSimpleDataWrapper is </div><div class='del'>-	used. </div><div class='del'>-	</div><div class='del'>-	* camel/camel-mime-part.c (_get_content_type): </div><div class='del'>-	(camel_mime_part_get_content_type): returns</div><div class='del'>-	a pointer on the content_type field instead </div><div class='del'>-	of the gchar * mime "type/subtype".</div><div class='del'>-</div><div class='del'>-1999-07-28  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* camel/data-wrapper-repository.c</div><div class='del'>-	* camel/data-wrapper-repository.h</div><div class='del'>-	New files. Handles mime type &lt;-&gt; camel object</div><div class='del'>-	(for example "multipart" &lt;-&gt; CamelMultipart</div><div class='del'>-	* tests/tesst3.c: test data repository thing.</div><div class='del'>-</div><div class='del'>-1999-07-26  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-	</div><div class='del'>-	* camel/camel-multipart.c (_write_to_stream): </div><div class='del'>-	implemented output of multipart.</div><div class='del'>-	</div><div class='del'>-	* tests/test1.c (main): testing content objects operations. </div><div class='del'>-</div><div class='del'>-1999-07-25  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-	</div><div class='del'>-	* camel/camel-mime-part.c (camel_mime_part_set_text): </div><div class='del'>-	new util function to set a mime part content to be </div><div class='del'>-	a text string.</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper.c (camel_simple_data_wrapper_set_buffer_from_text): </div><div class='del'>-	new util func. </div><div class='del'>-	(camel_simple_data_wrapper_new): new func.</div><div class='del'>-</div><div class='del'>-	* camel/camel-multipart.c (_write_to_stream): </div><div class='del'>-	implemented output of multiparts.</div><div class='del'>-</div><div class='del'>-1999-07-24  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_get_parameter): </div><div class='del'>-	New function. Returns the value associated to a </div><div class='del'>-	mime parameter. </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-07-22  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-multipart.h: </div><div class='del'>-	* camel/camel-multipart.c:</div><div class='del'>-	New class. Models multipart mime objects.</div><div class='del'>-	</div><div class='del'>-	* camel/camel-mime-body-part.h: </div><div class='del'>-	* camel/camel-mime-body-part.c: </div><div class='del'>-	New class. Body part is a mime part contained in </div><div class='del'>-	a multipart object.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-07-21  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-log.h: </div><div class='del'>-	implemented hard log level stuff.</div><div class='del'>-	* came/*.c use "CAMEL_LOG_*" instead of "CAMEL_LOG (*"</div><div class='del'>-	in order to allow hard level switch.</div><div class='del'>-</div><div class='del'>-	* tests/test1.c: </div><div class='del'>-	* tests/test2.c: </div><div class='del'>-	updated to use gchar instead of GString. Tests passed.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-07-19  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream.c: </div><div class='del'>-	* camel/camel-stream.h: </div><div class='del'>-	"const"-antified</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper.c: (_construct_from_stream)</div><div class='del'>-	do not use any limit when constructing the object from a stream</div><div class='del'>-	</div><div class='del'>-	* camel/camel-stream-fs.c: </div><div class='del'>-	* camel/camel-stream-fs.h: </div><div class='del'>-	* camel/camel-mime-message.c: </div><div class='del'>-	* camel/camel-mime-message.h: </div><div class='del'>-	* camel/camel-session.c: </div><div class='del'>-	* camel/camel-session.h: </div><div class='del'>-	* camel/camel-service.c: </div><div class='del'>-	* camel/camel-service.h:</div><div class='del'>-	* camel/camel-store.c: </div><div class='del'>-	* camel/camel-store.h: </div><div class='del'>-	* camel/camel-folder.c: </div><div class='del'>-	* camel/camel-folder.h: </div><div class='del'>-	* camel/gmime-utils.c: </div><div class='del'>-	* camel/gmime-utils.h: </div><div class='del'>-	GString -&gt; gchar</div><div class='del'>-	constantified what had to be.</div><div class='del'>-	</div><div class='del'>-	* camel/string-utils.c: </div><div class='del'>-	* camel/string-utils.h: </div><div class='del'>-	New files. Meant to replace gstring-util for gchar *</div><div class='del'>-	</div><div class='del'>-1999-07-16  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_construct_from_string): </div><div class='del'>-	GString -&gt; gchar</div><div class='del'>-	use const to indicate copied parameter.</div><div class='del'>-</div><div class='del'>-1999-07-15  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper.c: </div><div class='del'>-	* camel/camel-simple-data-wrapper.h: </div><div class='del'>-	Gstring -&gt; gchar</div><div class='del'>-	</div><div class='del'>-1999-07-15  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/url-util.c:  </div><div class='del'>-	* camel/url-util.h: </div><div class='del'>-	Do not use GStrings any more. </div><div class='del'>-	Added assertion code. </div><div class='del'>-	Cosmetic reformating</div><div class='del'>-	</div><div class='del'>-	* AUTHORS:</div><div class='del'>-	* ChangeLog:</div><div class='del'>-	Changed my email address.</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-1999-07-13  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-base64.c (gmime_encode_base64): Implemented base64</div><div class='del'>-	encoder based on CamelStreams.  Should the encoder/decoder be a</div><div class='del'>-	Stream itself?</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c: include config.h here.</div><div class='del'>-	* camel/url-util.c: ditto.</div><div class='del'>-	* camel/gstring-util.c: ditto.</div><div class='del'>-	* camel/gmime-content-field.c: ditto.</div><div class='del'>-	* camel/camel-stream.c: ditto.</div><div class='del'>-	* camel/camel-stream-fs.c: ditto.</div><div class='del'>-	* camel/camel-store.c: ditto.</div><div class='del'>-	* camel/camel-simple-data-wrapper.c: ditto.</div><div class='del'>-	* camel/camel-session.c: ditto.</div><div class='del'>-	* camel/camel-service.c: ditto.</div><div class='del'>-	* camel/camel-mime-part.c: ditto.</div><div class='del'>-	* camel/camel-mime-message.c: ditto.</div><div class='del'>-	* camel/camel-log.c: ditto.</div><div class='del'>-	* camel/camel-data-wrapper.c: ditto</div><div class='del'>-	* camel/camel-folder.c: ditto.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream.c (camel_stream_write): Moved api</div><div class='del'>-	documentation to the places that they document.</div><div class='del'>-	(camel_stream_class_init): Virtual classes do not need to have a</div><div class='del'>-	default implementation.  So null them all.</div><div class='del'>-	(camel_stream_write): Return value from write.</div><div class='del'>-	(camel_stream_available): implement.</div><div class='del'>-	(camel_stream_write_strings): documented.</div><div class='del'>-</div><div class='del'>-	* devel-docs/query/virtual-folder-in-depth.sgml: Small</div><div class='del'>-	reformatting</div><div class='del'>-</div><div class='del'>-1999-06-28  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test2.c (main): now use </div><div class='del'>-	CamelDataWrapper::contruct_form_stream to test </div><div class='del'>-	message parsing</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.c: </div><div class='del'>-	* camel/camel-data-wrapper.h: </div><div class='del'>-	construct_from_stream no longer has maximimum size arg.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_construct_from_stream): new.</div><div class='del'>-	Construct the mime_part from a stream.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c:</div><div class='del'>-	new field (content_type) and associated methods.</div><div class='del'>-	(camel_mime_part_init): initialize content_type field.</div><div class='del'>-	(_parse_header_pair): now set content_type MimePart field</div><div class='del'>-	instead of using DataWrapper Mime typing facility.</div><div class='del'>-</div><div class='del'>-1999-06-28  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.h: </div><div class='del'>-	s/content_type/mime_type/</div><div class='del'>-</div><div class='del'>-1999-06-24  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-simple-data-wrapper.[ch]:</div><div class='del'>-	new class. Simple implementation of a data wrapper:</div><div class='del'>-	simply keeps the stream result in a byte array.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_parse_header_pair): added a warning. </div><div class='del'>-	Have to think about the correct way to store content type stuff.</div><div class='del'>-</div><div class='del'>-1999-06-24  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_write_one_recipient_to_stream): </div><div class='del'>-	includes gmime-utils header. </div><div class='del'>-	patch from Ulrich Drepper &lt;drepper at cygnus.com&gt;</div><div class='del'>-	set separator string in write_header_with_glist_to_stream()</div><div class='del'>-	</div><div class='del'>-	* camel/camel-log.c (camel_log): </div><div class='del'>-	patch from Ulrich Drepper &lt;drepper at cygnus.com&gt;</div><div class='del'>-	Do not use stderr in initialization of logfile descriptor.</div><div class='del'>-	</div><div class='del'>-	* camel/camel-stream-fs.c (camel_stream_fs_new_with_name): </div><div class='del'>-	patch from Ulrich Drepper &lt;drepper at cygnus.com&gt;</div><div class='del'>-	initialize mode field in open(). </div><div class='del'>-</div><div class='del'>-1999-06-22  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.c (_get_content_type): </div><div class='del'>-	moved all the content-type stuff here.</div><div class='del'>-	(camel_data_wrapper_init): initialize the instance</div><div class='del'>-	content-type field.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_parse_header_pair): </div><div class='del'>-	parse Content-Type stuff in header. </div><div class='del'>-	(_write_to_stream): write the content type stuff to </div><div class='del'>-	the stream.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c (gmime_content_field_get_mime_type): </div><div class='del'>-	new function, returns "type/subtype" mime type string.</div><div class='del'>-	(gmime_content_field_construct_from_string): </div><div class='del'>-	new function, construbt a content_field object</div><div class='del'>-	form a string. be used to set the mime_type from a</div><div class='del'>-	string.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_set_content_type): </div><div class='del'>-	(camel_mime_part_set_content_type): </div><div class='del'>-	(_get_content_type): </div><div class='del'>-	(_get_content_type): </div><div class='del'>-	new methods.</div><div class='del'>-</div><div class='del'>-1999-06-21  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (get_header_table_from_stream): </div><div class='del'>-	replace CR/LF+'\t' with ' ' </div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_set_recipient_list_from_string): </div><div class='del'>-	trim \t when splitting</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (get_header_table_from_file): </div><div class='del'>-	corrected bug in scanning tabulations ('t' -&gt; '\t')</div><div class='del'>-</div><div class='del'>-	* tests/test2.c (main): read mail.test instead</div><div class='del'>-	of mail1.test</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_add_header): </div><div class='del'>-	added comments </div><div class='del'>-</div><div class='del'>-1999-06-03  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* devel-docs/query/virtual-folder-in-depth.sgml: </div><div class='del'>-	sgmlized Giao's doc about virtual folders.</div><div class='del'>-</div><div class='del'>-1999-05-31  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test2.c (main): </div><div class='del'>-	use new stream code instead of raw file * stuff.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (get_header_table_from_stream): </div><div class='del'>-	new func. Will replace get_header_table_from_file and will</div><div class='del'>-	be used to parse headers from files as well as from </div><div class='del'>-	memory buffers.</div><div class='del'>-</div><div class='del'>-	* camel/camel-stream-fs.c:</div><div class='del'>-	CamelStream Subclass. File system based</div><div class='del'>-	stream.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-05-30  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>- 	* camel/camel-stream.h: new class. Represents an </div><div class='del'>-	abstract stream object.</div><div class='del'>-</div><div class='del'>-       * camel/camel-mime-message.c (_set_recipient_list_from_string): </div><div class='del'>-	remove leading and trailing spaces in recipient addresses.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (_store_header_pair_from_gstring): </div><div class='del'>-	remove leading and trailing spaces from header values.</div><div class='del'>-</div><div class='del'>-	* camel/gstring-util.c (g_string_trim): new</div><div class='del'>-	func: remove leading or trailng chars from </div><div class='del'>-	a specified char set.</div><div class='del'>-	(g_string_split): allow trimming of substrings.</div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): remove gtk_main call</div><div class='del'>-</div><div class='del'>-1999-05-28  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c </div><div class='del'>-	(_parse_header_pair): </div><div class='del'>-	(_init_header_name_table): </div><div class='del'>-	More header parsing code.</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-1999-05-27  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test2.c (main): rewrite message obtained via</div><div class='del'>-	parsing into a file. Actually, it works pretty well :))</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_set_recipient_list_from_string): </div><div class='del'>-	create recipient list form a comma separated string.</div><div class='del'>-	(_parse_header_pair): added recipient lists parsing.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_parse_header_pair): </div><div class='del'>-	new (protected) method. Parse a head pair and</div><div class='del'>-	decides what to do with it.</div><div class='del'>-	</div><div class='del'>-	(_add_header): Call in _parse_header_pair</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_parse_header_pair): </div><div class='del'>-	overload  header parsing MimePart mthod.</div><div class='del'>-</div><div class='del'>-	* camel/gstring-util.c (g_string_split): </div><div class='del'>-	new func: split a gstring into a GList of</div><div class='del'>-	substring.</div><div class='del'>-</div><div class='del'>-1999-05-26  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (get_header_lines_from_file): </div><div class='del'>-	new func. Parses message header zone and returns</div><div class='del'>-	a Glist of all header lines.</div><div class='del'>-</div><div class='del'>-	* tests/test2.c: tests message parsing</div><div class='del'>-</div><div class='del'>-	* camel/gmime-utils.c (write_header_table_to_file): </div><div class='del'>-	new func to write a table of headers.</div><div class='del'>-</div><div class='del'>-1999-05-20  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_write_to_file): </div><div class='del'>-	recipient list printing</div><div class='del'>-	</div><div class='del'>-	* tests/test1.c (main): more tests.</div><div class='del'>-</div><div class='del'>-1999-05-19  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_write_to_file): test if content</div><div class='del'>-	exists before calling its write_to method.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_write_to_file): bugs fix.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (camel_mime_message_new_with_session): </div><div class='del'>-	new func. Creates a message with the session field set</div><div class='del'>-	up correctly.</div><div class='del'>-</div><div class='del'>-1999-05-18  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* tests/test1.c (main): tests</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (_write_to_file): </div><div class='del'>-	started write_to framework for mime_messages</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (*_message_number): </div><div class='del'>-	message number funcs.</div><div class='del'>-	</div><div class='del'>-1999-05-15  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (*_flag): </div><div class='del'>-	flags handling methods</div><div class='del'>-</div><div class='del'>-1999-05-14  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.c (camel_mime_message_class_init): </div><div class='del'>-	added recipient handling class funcs.</div><div class='del'>-</div><div class='del'>-1999-05-13  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-        </div><div class='del'>-	* camel/camel-mime-message.c (camel_mime_message_init): </div><div class='del'>-	create recipients hash table</div><div class='del'>-	(_remove_recipient): </div><div class='del'>-	(_add_recipient):</div><div class='del'>-	(_get_recipients):  new funcs.</div><div class='del'>-	Internal Recipients data structure is</div><div class='del'>-	a bit complicated though.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (camel_mime_part_init): </div><div class='del'>-	create headers hash table</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.h: </div><div class='del'>-	a bunch of get/set header field</div><div class='del'>-	method done. Does nothing yet though.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-message.[ch] :</div><div class='del'>-	new file. </div><div class='del'>-</div><div class='del'>-1999-05-12  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.h (struct ): </div><div class='del'>-	disposition is now a full GMimeContentField</div><div class='del'>-	object.</div><div class='del'>-</div><div class='del'>-	* camel/gmime-content-field.c: new file</div><div class='del'>-	handle "type/subtype ;parameter=value ; parameter=value ..."</div><div class='del'>-	BNF grammar elements</div><div class='del'>-	(gmime_content_field_write_to_file): new func</div><div class='del'>-	</div><div class='del'>-	* camel/gmime-utils.c (gmime_write_header_pair_to_file): </div><div class='del'>-	namespace change</div><div class='del'>-</div><div class='del'>-1999-05-11  bertrand  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (_write_to_file): </div><div class='del'>-	overload wrapper class method.</div><div class='del'>-	(_write_to_file): start to write some text in </div><div class='del'>-	file.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c: typo fix.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c: </div><div class='del'>-	* camel/camel-service.c: </div><div class='del'>-	* camel/camel-folder.c: </div><div class='del'>-	* camel/camel-data-wrapper.c: </div><div class='del'>-	* camel/camel-mime-part.c: </div><div class='del'>-	static functions naming follows gnome </div><div class='del'>-	coding style guide.</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.h: implemented public interfaces</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-05-10  Bertrand Guiheneuf  &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (__camel_mime_part_get_header_lines): </div><div class='del'>-	(__camel_mime_part_set_header_lines): </div><div class='del'>-	(__camel_mime_part_get_content_languages): </div><div class='del'>-	(__camel_mime_part_set_content_languages): </div><div class='del'>-	(__camel_mime_part_get_encoding): </div><div class='del'>-	(__camel_mime_part_set_encoding): </div><div class='del'>-	(__camel_mime_part_get_content_MD5): </div><div class='del'>-	(__camel_mime_part_set_content_MD5): </div><div class='del'>-	(__camel_mime_part_get_content_id): </div><div class='del'>-	(__camel_mime_part_set_content_id): </div><div class='del'>-	A bunch of new set/get func.</div><div class='del'>-</div><div class='del'>-	* camel/gstring-util.c (g_string_list_free): </div><div class='del'>-	convenience function for string list </div><div class='del'>-	complete deallocation.</div><div class='del'>-</div><div class='del'>-1999-05-09  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.c (__camel_mime_part_add_header): </div><div class='del'>-	new method</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.h (struct CamelMimePart):</div><div class='del'>-	added core fields.</div><div class='del'>-</div><div class='del'>-1999-05-08  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-mime-part.[ch]: </div><div class='del'>-	new class. models a mime mail part.</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.c </div><div class='del'>-	(camel_data_wrapper_write_to_buffer): method to</div><div class='del'>-	stream data content in a buffer.</div><div class='del'>-	(camel_data_wrapper_write_to_file): </div><div class='del'>-	(camel_data_wrapper_construct_from_buffer): </div><div class='del'>-	(camel_data_wrapper_construct_from_file): </div><div class='del'>-	new methods.</div><div class='del'>-	</div><div class='del'>-1999-05-07  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-data-wrapper.[ch]:new class.</div><div class='del'>-	This should not be a class but rather an </div><div class='del'>-	interface. The day Gtk support interfaces, </div><div class='del'>-	it dataWrapper should become an interface.</div><div class='del'>-</div><div class='del'>-1999-05-04  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-service.c (camel_service_get_url): </div><div class='del'>-	new method.</div><div class='del'>-</div><div class='del'>-	* devel-docs/camel/camel-sections.txt: added </div><div class='del'>-	function doc references</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (__camel_folder_close): </div><div class='del'>-	fixed indentation.</div><div class='del'>-	(camel_folder_expunge): new method.</div><div class='del'>-	(__camel_folder_close): used expunge flag</div><div class='del'>-</div><div class='del'>-1999-05-03  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_get_mode): </div><div class='del'>-	typo fix</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (__camel_folder_list_subfolders): </div><div class='del'>-	new func.</div><div class='del'>-</div><div class='del'>-	* some doc stuffs</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-05-01  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c </div><div class='del'>-	(__camel_folder_get_mode): </div><div class='del'>-	(camel_folder_get_mode): </div><div class='del'>-	(camel_folder_get_parent_store): </div><div class='del'>-	(__camel_folder_get_parent_store): </div><div class='del'>-	(camel_folder_get_parent_folder): </div><div class='del'>-	(__camel_folder_get_parent_folder): </div><div class='del'>-	new methods</div><div class='del'>-</div><div class='del'>-	* camel/camel-service.c: put __ prefix before</div><div class='del'>-	private virtual funcs.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_delete): </div><div class='del'>-	(camel_folder_delete_messages): </div><div class='del'>-	new methods.</div><div class='del'>-</div><div class='del'>-	* camel/url-util.c (g_url_new): some</div><div class='del'>-	more comments </div><div class='del'>-</div><div class='del'>-1999-04-27  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c (camel_folder_create): </div><div class='del'>-	new public function.</div><div class='del'>-</div><div class='del'>-1999-04-25  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-session.c (camel_session_get_store_from_provider): </div><div class='del'>-	initialize folder object.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c (init): new method.</div><div class='del'>-	called by session object at instantiation time.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.h (struct _CamelStore): </div><div class='del'>-	new fields : session and url_name</div><div class='del'>-</div><div class='del'>-1999-04-25  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-session.c (camel_session_set_provider): </div><div class='del'>-	new method to set the default provider for a protocol.</div><div class='del'>-	(camel_session_get_store_from_provider): </div><div class='del'>-	new method to instantiate a folder from a provider.</div><div class='del'>-</div><div class='del'>-	* camel/camel-provider.h: s/GString/gchar/g</div><div class='del'>-	+ typo fix.</div><div class='del'>-</div><div class='del'>-	* camel/camel-provider.[ch]:</div><div class='del'>-	basic provider structure. Have to write the</div><div class='del'>-	code for dynamic loading.</div><div class='del'>-</div><div class='del'>-1999-04-24  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-	</div><div class='del'>-	* camel/url-util.[ch]: s/new_g_url/g_url_new</div><div class='del'>-</div><div class='del'>-	* camel/url-util.c (new_g_url): URL </div><div class='del'>-	rewritten completely. Error handling not</div><div class='del'>-	implemented in public functions.</div><div class='del'>-	But URL scan works pretty well :)))</div><div class='del'>-</div><div class='del'>-1999-04-24 bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-	</div><div class='del'>-	* camel/url-util.[ch]: I needed the url </div><div class='del'>-	functions to use GString, and I wanted a more</div><div class='del'>-	general scheme so I finally started rewriting </div><div class='del'>-	the whole thing from scratch.</div><div class='del'>-	No more code from gzilla :(</div><div class='del'>-	</div><div class='del'>-1999-04-23  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/url-util.[ch]:</div><div class='del'>-	Utility functions to parse URLs.</div><div class='del'>-	Stolen shamelessly from gzilla (www.gzilla.com)</div><div class='del'>-	written by Raph Levien &lt;raph@acm.org&gt;</div><div class='del'>-	</div><div class='del'>-	* camel/Makefile.am: added url-util.[ch]</div><div class='del'>-	compilation.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): removed devel-docs</div><div class='del'>-	until I come up with a correct Makefile.am</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.h: </div><div class='del'>-	* camel/camel-folder.h:</div><div class='del'>-	correct declarations of structs</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1999-04-22  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-store.c:</div><div class='del'>-	more test implementation.</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.c (camel_store_get_type): typo fix</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-04-21  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/providers/MH/camel-mh-folder.c (camel_mh_folder_get_type): </div><div class='del'>-	start test provider.</div><div class='del'>-</div><div class='del'>-1999-04-20  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-	</div><div class='del'>-	* camel/camel-store.h: now CamelStore inherits from</div><div class='del'>-	CamelService.</div><div class='del'>-</div><div class='del'>-	* camel/camel-service.c (camel_service_class_init): </div><div class='del'>-	basic abstract service class.</div><div class='del'>-</div><div class='del'>-1999-04-19  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/README: added some (few) explanations.</div><div class='del'>-</div><div class='del'>-1999-04-18  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-store.[ch]: started implementation</div><div class='del'>-	* camel/camel-folder.c (camel_folder_get_type): typo</div><div class='del'>-	uncommented the store related code.</div><div class='del'>-	(camel_folder_create): enable som store relted code. </div><div class='del'>-	Not finished. Have to define public methods first.</div><div class='del'>-</div><div class='del'>-	* camel/camel-log.h: some explanation about the </div><div class='del'>-	log system</div><div class='del'>-</div><div class='del'>-1999-04-18   bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c: </div><div class='del'>-	(camel_folder_create): implemented (partially)</div><div class='del'>-	have to write CamelStore before finishing it.</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.h (CamelFolder): added full_name field</div><div class='del'>-	(CamelFolderClass): added set/get_full_name methods</div><div class='del'>-</div><div class='del'>-1999-04-18  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* camel/camel-folder.c: some work</div><div class='del'>-	* camel/camel-log.c: log system for camel</div><div class='del'>-	* camel/gstring-util.c: some utilities for GString objects</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-1999-04-18  bertrand &lt;Bertrand.Guiheneuf@aful.org&gt;</div><div class='del'>-</div><div class='del'>-	* autogen.sh (PKG_NAME): groomf -&gt; gnome-mailer</div><div class='del'>-</div><div class='head'>diff --git a/HACKING b/HACKING<br/>deleted file mode 100644<br/>index e69de29bb2..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/HACKING?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>HACKING</a><br/>+++ /dev/null</div><div class='head'>diff --git a/INSTALL b/INSTALL<br/>deleted file mode 100644<br/>index b42a17ac46..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/INSTALL?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>INSTALL</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,182 +0,0 @@</div><div class='del'>-Basic Installation</div><div class='del'>-==================</div><div class='del'>-</div><div class='del'>-   These are generic installation instructions.</div><div class='del'>-</div><div class='del'>-   The `configure' shell script attempts to guess correct values for</div><div class='del'>-various system-dependent variables used during compilation.  It uses</div><div class='del'>-those values to create a `Makefile' in each directory of the package.</div><div class='del'>-It may also create one or more `.h' files containing system-dependent</div><div class='del'>-definitions.  Finally, it creates a shell script `config.status' that</div><div class='del'>-you can run in the future to recreate the current configuration, a file</div><div class='del'>-`config.cache' that saves the results of its tests to speed up</div><div class='del'>-reconfiguring, and a file `config.log' containing compiler output</div><div class='del'>-(useful mainly for debugging `configure').</div><div class='del'>-</div><div class='del'>-   If you need to do unusual things to compile the package, please try</div><div class='del'>-to figure out how `configure' could check whether to do them, and mail</div><div class='del'>-diffs or instructions to the address given in the `README' so they can</div><div class='del'>-be considered for the next release.  If at some point `config.cache'</div><div class='del'>-contains results you don't want to keep, you may remove or edit it.</div><div class='del'>-</div><div class='del'>-   The file `configure.in' is used to create `configure' by a program</div><div class='del'>-called `autoconf'.  You only need `configure.in' if you want to change</div><div class='del'>-it or regenerate `configure' using a newer version of `autoconf'.</div><div class='del'>-</div><div class='del'>-The simplest way to compile this package is:</div><div class='del'>-</div><div class='del'>-  1. `cd' to the directory containing the package's source code and type</div><div class='del'>-     `./configure' to configure the package for your system.  If you're</div><div class='del'>-     using `csh' on an old version of System V, you might need to type</div><div class='del'>-     `sh ./configure' instead to prevent `csh' from trying to execute</div><div class='del'>-     `configure' itself.</div><div class='del'>-</div><div class='del'>-     Running `configure' takes awhile.  While running, it prints some</div><div class='del'>-     messages telling which features it is checking for.</div><div class='del'>-</div><div class='del'>-  2. Type `make' to compile the package.</div><div class='del'>-</div><div class='del'>-  3. Optionally, type `make check' to run any self-tests that come with</div><div class='del'>-     the package.</div><div class='del'>-</div><div class='del'>-  4. Type `make install' to install the programs and any data files and</div><div class='del'>-     documentation.</div><div class='del'>-</div><div class='del'>-  5. You can remove the program binaries and object files from the</div><div class='del'>-     source code directory by typing `make clean'.  To also remove the</div><div class='del'>-     files that `configure' created (so you can compile the package for</div><div class='del'>-     a different kind of computer), type `make distclean'.  There is</div><div class='del'>-     also a `make maintainer-clean' target, but that is intended mainly</div><div class='del'>-     for the package's developers.  If you use it, you may have to get</div><div class='del'>-     all sorts of other programs in order to regenerate files that came</div><div class='del'>-     with the distribution.</div><div class='del'>-</div><div class='del'>-Compilers and Options</div><div class='del'>-=====================</div><div class='del'>-</div><div class='del'>-   Some systems require unusual options for compilation or linking that</div><div class='del'>-the `configure' script does not know about.  You can give `configure'</div><div class='del'>-initial values for variables by setting them in the environment.  Using</div><div class='del'>-a Bourne-compatible shell, you can do that on the command line like</div><div class='del'>-this:</div><div class='del'>-     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure</div><div class='del'>-</div><div class='del'>-Or on systems that have the `env' program, you can do it like this:</div><div class='del'>-     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure</div><div class='del'>-</div><div class='del'>-Compiling For Multiple Architectures</div><div class='del'>-====================================</div><div class='del'>-</div><div class='del'>-   You can compile the package for more than one kind of computer at the</div><div class='del'>-same time, by placing the object files for each architecture in their</div><div class='del'>-own directory.  To do this, you must use a version of `make' that</div><div class='del'>-supports the `VPATH' variable, such as GNU `make'.  `cd' to the</div><div class='del'>-directory where you want the object files and executables to go and run</div><div class='del'>-the `configure' script.  `configure' automatically checks for the</div><div class='del'>-source code in the directory that `configure' is in and in `..'.</div><div class='del'>-</div><div class='del'>-   If you have to use a `make' that does not supports the `VPATH'</div><div class='del'>-variable, you have to compile the package for one architecture at a time</div><div class='del'>-in the source code directory.  After you have installed the package for</div><div class='del'>-one architecture, use `make distclean' before reconfiguring for another</div><div class='del'>-architecture.</div><div class='del'>-</div><div class='del'>-Installation Names</div><div class='del'>-==================</div><div class='del'>-</div><div class='del'>-   By default, `make install' will install the package's files in</div><div class='del'>-`/usr/local/bin', `/usr/local/man', etc.  You can specify an</div><div class='del'>-installation prefix other than `/usr/local' by giving `configure' the</div><div class='del'>-option `--prefix=PATH'.</div><div class='del'>-</div><div class='del'>-   You can specify separate installation prefixes for</div><div class='del'>-architecture-specific files and architecture-independent files.  If you</div><div class='del'>-give `configure' the option `--exec-prefix=PATH', the package will use</div><div class='del'>-PATH as the prefix for installing programs and libraries.</div><div class='del'>-Documentation and other data files will still use the regular prefix.</div><div class='del'>-</div><div class='del'>-   In addition, if you use an unusual directory layout you can give</div><div class='del'>-options like `--bindir=PATH' to specify different values for particular</div><div class='del'>-kinds of files.  Run `configure --help' for a list of the directories</div><div class='del'>-you can set and what kinds of files go in them.</div><div class='del'>-</div><div class='del'>-   If the package supports it, you can cause programs to be installed</div><div class='del'>-with an extra prefix or suffix on their names by giving `configure' the</div><div class='del'>-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.</div><div class='del'>-</div><div class='del'>-Optional Features</div><div class='del'>-=================</div><div class='del'>-</div><div class='del'>-   Some packages pay attention to `--enable-FEATURE' options to</div><div class='del'>-`configure', where FEATURE indicates an optional part of the package.</div><div class='del'>-They may also pay attention to `--with-PACKAGE' options, where PACKAGE</div><div class='del'>-is something like `gnu-as' or `x' (for the X Window System).  The</div><div class='del'>-`README' should mention any `--enable-' and `--with-' options that the</div><div class='del'>-package recognizes.</div><div class='del'>-</div><div class='del'>-   For packages that use the X Window System, `configure' can usually</div><div class='del'>-find the X include and library files automatically, but if it doesn't,</div><div class='del'>-you can use the `configure' options `--x-includes=DIR' and</div><div class='del'>-`--x-libraries=DIR' to specify their locations.</div><div class='del'>-</div><div class='del'>-Specifying the System Type</div><div class='del'>-==========================</div><div class='del'>-</div><div class='del'>-   There may be some features `configure' can not figure out</div><div class='del'>-automatically, but needs to determine by the type of host the package</div><div class='del'>-will run on.  Usually `configure' can figure that out, but if it prints</div><div class='del'>-a message saying it can not guess the host type, give it the</div><div class='del'>-`--host=TYPE' option.  TYPE can either be a short name for the system</div><div class='del'>-type, such as `sun4', or a canonical name with three fields:</div><div class='del'>-     CPU-COMPANY-SYSTEM</div><div class='del'>-</div><div class='del'>-See the file `config.sub' for the possible values of each field.  If</div><div class='del'>-`config.sub' isn't included in this package, then this package doesn't</div><div class='del'>-need to know the host type.</div><div class='del'>-</div><div class='del'>-   If you are building compiler tools for cross-compiling, you can also</div><div class='del'>-use the `--target=TYPE' option to select the type of system they will</div><div class='del'>-produce code for and the `--build=TYPE' option to select the type of</div><div class='del'>-system on which you are compiling the package.</div><div class='del'>-</div><div class='del'>-Sharing Defaults</div><div class='del'>-================</div><div class='del'>-</div><div class='del'>-   If you want to set default values for `configure' scripts to share,</div><div class='del'>-you can create a site shell script called `config.site' that gives</div><div class='del'>-default values for variables like `CC', `cache_file', and `prefix'.</div><div class='del'>-`configure' looks for `PREFIX/share/config.site' if it exists, then</div><div class='del'>-`PREFIX/etc/config.site' if it exists.  Or, you can set the</div><div class='del'>-`CONFIG_SITE' environment variable to the location of the site script.</div><div class='del'>-A warning: not all `configure' scripts look for a site script.</div><div class='del'>-</div><div class='del'>-Operation Controls</div><div class='del'>-==================</div><div class='del'>-</div><div class='del'>-   `configure' recognizes the following options to control how it</div><div class='del'>-operates.</div><div class='del'>-</div><div class='del'>-`--cache-file=FILE'</div><div class='del'>-     Use and save the results of the tests in FILE instead of</div><div class='del'>-     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for</div><div class='del'>-     debugging `configure'.</div><div class='del'>-</div><div class='del'>-`--help'</div><div class='del'>-     Print a summary of the options to `configure', and exit.</div><div class='del'>-</div><div class='del'>-`--quiet'</div><div class='del'>-`--silent'</div><div class='del'>-`-q'</div><div class='del'>-     Do not print messages saying which checks are being made.  To</div><div class='del'>-     suppress all normal output, redirect it to `/dev/null' (any error</div><div class='del'>-     messages will still be shown).</div><div class='del'>-</div><div class='del'>-`--srcdir=DIR'</div><div class='del'>-     Look for the package's source code in directory DIR.  Usually</div><div class='del'>-     `configure' can determine that directory automatically.</div><div class='del'>-</div><div class='del'>-`--version'</div><div class='del'>-     Print the version of Autoconf used to generate the `configure'</div><div class='del'>-     script, and exit.</div><div class='del'>-</div><div class='del'>-`configure' also accepts some other, not widely useful, options.</div><div class='head'>diff --git a/MAINTAINERS b/MAINTAINERS<br/>deleted file mode 100644<br/>index 602e3bf73b..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/MAINTAINERS?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>MAINTAINERS</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,5 +0,0 @@</div><div class='del'>-Email: ettore@ximian.com</div><div class='del'>-Email: danw@ximian.com</div><div class='del'>-Email: chris@ximian.com</div><div class='del'>-Email: federico@ximian.com</div><div class='del'>-Email: iain@ximian.com</div><div class='head'>diff --git a/Makefile.am b/Makefile.am<br/>deleted file mode 100644<br/>index df404ca32f..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,45 +0,0 @@</div><div class='del'>-changelogs =			\</div><div class='del'>-	ChangeLog</div><div class='del'>-</div><div class='del'>-EXTRA_DIST =			\</div><div class='del'>-	AUTHORS			\</div><div class='del'>-	$(changelogs)		\</div><div class='del'>-	COPYING-DOCS		\</div><div class='del'>-	README			\</div><div class='del'>-	HACKING			\</div><div class='del'>-	MAINTAINERS		\</div><div class='del'>-	NEWS			\</div><div class='del'>-	xml-i18n-merge.in	\</div><div class='del'>-	xml-i18n-update.in	\</div><div class='del'>-	xml-i18n-extract.in</div><div class='del'>-</div><div class='del'>-SUBDIRS =			\</div><div class='del'>-        intl                    \</div><div class='del'>-        macros                  \</div><div class='del'>-        data                    \</div><div class='del'>-        e-util                  \</div><div class='del'>-	libical			\</div><div class='del'>-        widgets                 \</div><div class='del'>-        shell                   \</div><div class='del'>-        libibex                 \</div><div class='del'>-        camel                   \</div><div class='del'>-        filter                  \</div><div class='del'>-        libversit               \</div><div class='del'>-	libwombat		\</div><div class='del'>-	addressbook             \</div><div class='del'>-        composer                \</div><div class='del'>-        mail                    \</div><div class='del'>-        calendar                \</div><div class='del'>-        wombat                  \</div><div class='del'>-	importers		\</div><div class='del'>-	my-evolution		\</div><div class='del'>-        art                     \</div><div class='del'>-	ui			\</div><div class='del'>-        default_user            \</div><div class='del'>-	views			\</div><div class='del'>-        tools                   \</div><div class='del'>-	doc			\</div><div class='del'>-	help			\</div><div class='del'>-        po			\</div><div class='del'>-	omf-install</div><div class='del'>-</div><div class='head'>diff --git a/NEWS b/NEWS<br/>deleted file mode 100644<br/>index 6ab2603675..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/NEWS?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>NEWS</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2102 +0,0 @@</div><div class='del'>-Version 0.17 (Beta 7), 2001-10-15</div><div class='del'>----------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Mailer:</div><div class='del'>-</div><div class='del'>-  - "Whitespace-only" recipients are now ignored, rather than being</div><div class='del'>-    flagged as invalid. (Trow)</div><div class='del'>-</div><div class='del'>-  - Fixed bugs related to message searching: memory leak, i18n problems,</div><div class='del'>-    etc. (Trow)</div><div class='del'>-</div><div class='del'>-  - We no longer leave stray windows lying around after doing the</div><div class='del'>-    "Add Sender to Addressbook" operation. (Trow)</div><div class='del'>-</div><div class='del'>-  - Bcc: headers are now shown when viewing drafts, sent mail. (Trow)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - General bug fixes (Iain, Trow, JP, Chris Toshok, Chris Lahey, Dan</div><div class='del'>-    Winship)</div><div class='del'>-</div><div class='del'>-  - Fixed problem that arose in an earlier beta where some contacts</div><div class='del'>-    couldn't be modified or deleted from local addressbook (Chris</div><div class='del'>-    Toshok)</div><div class='del'>-</div><div class='del'>-  - LDIF Importer (Chris Toshok, Michael M. Morrison)</div><div class='del'>-</div><div class='del'>-  - Fixed Memory Leaks (Trow)</div><div class='del'>-</div><div class='del'>-  - Always show the correct message about the number of contacts on the</div><div class='del'>-    message bar. (Trow)</div><div class='del'>-</div><div class='del'>-  - Fixed printing of contacts. (Trow)</div><div class='del'>-</div><div class='del'>-  - Fixed the incredibly annoying bug which caused completed (underlined)</div><div class='del'>-    contacts to spontaneously revert when edited.  (Trow)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - Compilation fixes.  (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Fixed problems introduced in Beta 6 due to the changes in the URI</div><div class='del'>-    management functions.  (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Prettier alarm notification dialog.  (Larry)</div><div class='del'>-</div><div class='del'>-  - Session management for the alarm daemon.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Added activity bars for long calendar operations (Rodrigo)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.16 (Beta 6), 2001-10-10</div><div class='del'>----------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Now the shell restarts stale components from previous sessions</div><div class='del'>-    properly.  This should reduce the need for oaf-slay to only the</div><div class='del'>-    cases in which a specific component is completely stuck (which</div><div class='del'>-    hopefully should never happen).  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed the saving of the size of the shortcut bar and the folder</div><div class='del'>-    bar.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Always display a new default view for the shell, unless the user</div><div class='del'>-    specified an `evolution:' URI on the command-line.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fix the weird behavior for right click -&gt; open in new window in a</div><div class='del'>-    pop-up folder bar.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Make the copy/move and dnd code to detect copying of folders onto</div><div class='del'>-    themselves correctly.  (Ettore)</div><div class='del'>-</div><div class='del'>-Mailer:</div><div class='del'>-</div><div class='del'>-  - Bcc: addresses are now visible when browsing messages in</div><div class='del'>-    the "Sent" folder.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Various backend fixes like thread safeness of concurrent</div><div class='del'>-    triggered events, more forgiving address header decoding,</div><div class='del'>-    fixes for recent breakage to progress reports, adding a deleted</div><div class='del'>-    event/state for folders, various deadlocks.  (Michael, Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed quick-searching by receipients to work.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Caching of iconv handles to improve performance of many internal</div><div class='del'>-    mail reading/indexing operations.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Major oops in mbox code that caused significant performance</div><div class='del'>-    problems getting/filtering mail fixed.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Message charsets can now be overridden by a user-chosen charset</div><div class='del'>-    encoding in the mail display.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Report errors when file cannot be attached in the composer.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - File-&gt;Folder-&gt;Properties and Delete Folder now work for VFolders.</div><div class='del'>-    (Michael)</div><div class='del'>-</div><div class='del'>-  - VFolders, Filters and Searches are saved in a safe manner so that</div><div class='del'>-    they should not be lost with quota/filled disk problems.  (Michael)</div><div class='del'>- </div><div class='del'>-  - VFolders now update with new mail on their sources.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Fixed the "Load HTML Images" radio button options in the mail</div><div class='del'>-    config dialog to work properly.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - When an IMAP folder is deleted, removed any cached messages that</div><div class='del'>-    had been in that folder when it was "alive".  (Jeff)</div><div class='del'>-</div><div class='del'>-  - New icons for PGP signature authenticity.  (Jeff, Jimmac)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - General fixes.  (Chris Toshok, Trow, Iain, Chris Lahey, JP)</div><div class='del'>-</div><div class='del'>-  - LDAP configuration dialog fixes.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - New authentication work.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Fixed crashes related to editing the Master Category List.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Address completion is no longer confused by whitespace.  (Trow)</div><div class='del'>-</div><div class='del'>-  - More work on having multiple wombats.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Contact names no longer mysteriously disappear when using the</div><div class='del'>-    SelectNames dialog.  (Trow)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - Backend improvements (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Compilation fixes for latest Bonobo (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Fixed problem with exceptions to recurring events.  (Damon)</div><div class='del'>-</div><div class='del'>-  - Fixed handling of UNTIL property in recurring events. (Damon)</div><div class='del'>-</div><div class='del'>-  - The alarm daemon will now notify you of alarms that should have</div><div class='del'>-    occurred while it was not running.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Handle monthly-by-day and "last day" recurrences in the conduits.  (JP)</div><div class='del'>-</div><div class='del'>-  - Added priorities to the fields in the attendee list.  (Chris)</div><div class='del'>-</div><div class='del'>-  - Enhancements to the event editor for meetings.  (JP)</div><div class='del'>-</div><div class='del'>-Summary:</div><div class='del'>-</div><div class='del'>-  - Bugfixes.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Recurring events have the correct time and date.  (Iain)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.15 (Beta 5), 2001-10-02</div><div class='del'>----------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Fixed a problem with shortcuts not appearing when created by the</div><div class='del'>-    mailer.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed right-click menu behavior for folders in the folder bar.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-  - Got Rename to work again.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed some folder copy/move/dnd bugs.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added a menu item to configure the Pilot settings.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed some other miscellaneous bugs/crashes.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added ability to run the intelligent importers from the File-&gt;Import</div><div class='del'>-    menu item. (iain)</div><div class='del'>-</div><div class='del'>-Mailer:</div><div class='del'>-</div><div class='del'>-  - Fixed the multiple error-dialog thing.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Fixes to PGP decrypting and verification code.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Made vFolders work a lot better.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Added a confirm expunge option to the mail settings dialog.</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed the update-IMAP-unread-counts bug.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Show messages in the user's preferred charset if the message</div><div class='del'>-    itself doesn't contain charset information or if the message</div><div class='del'>-    charset is wrong (ie the system can't convert the text to utf-8).</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - Many backend fixes that users won't notice.  (Michael, Jeff, Dan)</div><div class='del'>-</div><div class='del'>-  - Fixed the crash that accompanied the invalid address warning.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Properly encode the mailto: links we generate inside of displayed</div><div class='del'>-    messages.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Improve the signature editor. (iain)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - Backend improvements (JP, Rodrigo).</div><div class='del'>-</div><div class='del'>-  - The alarm daemon can now re-enter properly [#10840].  (Federico)</div><div class='del'>-</div><div class='del'>-  - Alarms can now have zero-time offsets [#7892].  (Federico)</div><div class='del'>-</div><div class='del'>-  - Warning fixes.  (Chris)</div><div class='del'>-</div><div class='del'>-  - Fixed custom Glade widgets on non-Linux systems.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Fixed crashing problems in the event/task editor.  (Damon)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Miscellaneous bug fixes.  (Trow, Chris Toshok, Chris Lahey, JP,</div><div class='del'>-    Peter Williams)</div><div class='del'>-</div><div class='del'>-  - Better handling of addresses containing commas or other special</div><div class='del'>-    characters.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Fixed bugs related to sending mail by left-clicking on an address</div><div class='del'>-    inside a message.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Auto-completion now matches against contact nicknames.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Added help text and generally cleaned up the contact editor.</div><div class='del'>-    (Anna)</div><div class='del'>-</div><div class='del'>-  - Handle multiple wombats properly.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Made which book to use for address completion configurable (no gui</div><div class='del'>-    for this yet.)  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Made Print Preview work in addressbook.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-Pilot:</div><div class='del'>-</div><div class='del'>-  - Now syncs exception dates in calendar and addressbook notes.  (JP)</div><div class='del'>-</div><div class='del'>-  - Does not overwrite custom data on pilot.  (JP)</div><div class='del'>-</div><div class='del'>-  - Address completion no longer marks records as changed.  (JP)</div><div class='del'>-</div><div class='del'>-  - Miscellaneous other bug fixes.  (JP)</div><div class='del'>-</div><div class='del'>-Summary:</div><div class='del'>-</div><div class='del'>-  - Cache images instead of repeatedly reloading them (iain)</div><div class='del'>-</div><div class='del'>-  - Only redraw when the summary is visible (iain)</div><div class='del'>-</div><div class='del'>-  - Use the encoding specified in the RDF file (Takuo Kitame)</div><div class='del'>-</div><div class='del'>-  - Leak fixes (Larry)</div><div class='del'>-</div><div class='del'>-  - Show todays tasks works (iain)</div><div class='del'>-</div><div class='del'>-  - Make the preferences dialog nicer. (iain)</div><div class='del'>-</div><div class='del'>-Importers:</div><div class='del'>-</div><div class='del'>-  - Handle cases where the Netscape transport is nothing. (iain)</div><div class='del'>-</div><div class='del'>-Version 0.14 (Beta 4), 2001-09-21</div><div class='del'>----------------------------------</div><div class='del'>-</div><div class='del'>-General:</div><div class='del'>-</div><div class='del'>-  - Lots of i18n fixes.  (Zbigniew Chyla and others)</div><div class='del'>-</div><div class='del'>-  - Made the splash screen use BackingStore.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added a quit dialog box.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed a shell crash that could happen when launching Evolution</div><div class='del'>-    before a previously launched instance was done initializing itself.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed other random shell crashes.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Got the shell to remember window geometries on exit.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed some things for Automake 1.5 (unfinished).  (Richard</div><div class='del'>-    Boulton)</div><div class='del'>-</div><div class='del'>-  - Add nice highlighting to DnD operations in the folder tree.</div><div class='del'>-    (Ettore, Clahey)</div><div class='del'>-</div><div class='del'>-  - Fixed several leaks.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Fixed some problems with folder creation and deletion.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Made the Summary the default folder.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Made the title bar display the unread message count again.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  - Had a few beers while sitting back and relaxin'.  (Jeff, Michael)</div><div class='del'>-</div><div class='del'>-  - Check for valid addresses before sending. (Trow)</div><div class='del'>-</div><div class='del'>-  - Use contact preferences when deciding whether or not to put the</div><div class='del'>-    composer into HTML mode by default. (Trow)</div><div class='del'>-</div><div class='del'>-  - Properly address mail from "hidden" contact lists. (Trow)</div><div class='del'>-</div><div class='del'>-  - Redid folder unread counts/folder tree backend code</div><div class='del'>-    completely. (Michael)</div><div class='del'>-</div><div class='del'>-  - Implemented/fixed getfolderinfo in maildir/spool/local</div><div class='del'>-    folder/vfolder, required to make unread counts work. (Michael)</div><div class='del'>-</div><div class='del'>-  - Redid 'local folder' handling code completely. (Michael, Peter)</div><div class='del'>-    Also fixed the properties dialogue to get the list of supported</div><div class='del'>-    types dynamically, and set the right one at startup. (Michael)</div><div class='del'>-</div><div class='del'>-  - Redid vfolder code in evolution-mail completely.  Main visible</div><div class='del'>-    change is they open at startup, and the vfolder editor works</div><div class='del'>-    much better.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Made it so fcntl(2) locking failures on filesystems (e.g. NFS)</div><div class='del'>-    that dont support locking are treated as success. (Michael)</div><div class='del'>-</div><div class='del'>-  - Fix imap inbox filtering, then moved it to CamelFolder, and</div><div class='del'>-    partly implemented it for spool and maildir mailboxes.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Made the vfolder UNMATCHED folder's name translatable.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Change the way the 'not body contains' filter rule works, so that</div><div class='del'>-    it runs much more efficiently, particularly on IMAP.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Camel will not try and convert charsets of data that contain</div><div class='del'>-    invalid charset data, thus data will not be tainted by</div><div class='del'>-    a failed conversion process. (Michael)</div><div class='del'>-</div><div class='del'>-  - A few threading scheduling changes to try to optimise the user</div><div class='del'>-    experience.  Also changed the way threads are terminated,</div><div class='del'>-    avoiding some possible libpthread bugs.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Changed vfolder uri's to not include the query, set it separately.</div><div class='del'>-</div><div class='del'>-  - Removed a lot of special case code for vfolder/file uri's, other</div><div class='del'>-    dead or newly redundant code, cleanups, etc.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Fixed a bug in libibex that would overallocate block data and</div><div class='del'>-    corrupt it and crash, also fail-back and reset the index in</div><div class='del'>-    more cases.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Fix filtering on score so the expression compiles. (Michael)</div><div class='del'>-</div><div class='del'>-  - Came to visit USA at a very wrong time.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Removed X-Evolution headers before sending messages.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - When configuring a new default account, make sure to set it as the</div><div class='del'>-    default.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Convert all textual parts to 8bit before saving them, this makes</div><div class='del'>-    saved messages more human readable.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Don't cache PGP passphrases unless the user requests to do so.</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - Unsubscribe from folders before deleting them.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed a number of race conditions in the subscribe dialog.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Save transport (SMTP) passwords if the user has asked us to.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Hide the S/MIME frame in the account editor, we won't be</div><div class='del'>-    supporting it for 1.0.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed it so that icons are displayed for PGP messages.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Give a description for each of the Source and Transport types when</div><div class='del'>-    configuring an account. This makes a few things less confusing.</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - When performing a Send &amp; Receive on a disconnected IMAP server, if</div><div class='del'>-    the user provides a password, connect tot he IMAP server and display</div><div class='del'>-    it's folders too.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Return a folder info for each IMAP folder created when the user</div><div class='del'>-    creates a recursive directory structure.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Added support for more charset conversions (including all</div><div class='del'>-    Windows-cp125x charsets).  (Jeff)</div><div class='del'>-</div><div class='del'>-  - When the disk is full, warn the user and don't crash.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Handle POP servers that don't support the UIDL extension.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Several PGP fixes.  (Jeff)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Miscellaneous bug fixes. (Jon Trowbridge, Chris Toshok, Chris Lahey,</div><div class='del'>-    Ettore Perazzoli, Iain Holmes, Zbigniew Chyla, Jacob Berkman)</div><div class='del'>-</div><div class='del'>-  - Fixed race conditions associated with adding/removing contacts.</div><div class='del'>-    The addressbook should be much more stable now.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Fixed reference counting bugs in addressbook &amp; wombat.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Made address lookup smarter; cut &amp; paste of address now mostly works.</div><div class='del'>-    (Trow)</div><div class='del'>-</div><div class='del'>-  - Plugged Trow's memory leaks.  (Larry)</div><div class='del'>-</div><div class='del'>-  - Name completion now works with one-word names, so it is now much</div><div class='del'>-    easier to send mail to Cher.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Better handling of contact lists in the composer entries.  (Trow,</div><div class='del'>-    Toshok)</div><div class='del'>-</div><div class='del'>-  - SelectNames dialog fixes.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Better handling of contact lists in the pilot conduits.  (JP)</div><div class='del'>-</div><div class='del'>-  - Added Free busy URL and Calendar URI info to contact editor and</div><div class='del'>-    ECard.  (JP)</div><div class='del'>-</div><div class='del'>-  - Made it so you can select uneditable text in Contact Editor.</div><div class='del'>-    (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Worked on LDAP dialog.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - General LDAP work.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Fixed charset handling within VCard handling.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Reworked Drag &amp; Drop for card view.</div><div class='del'>-</div><div class='del'>-Calendar &amp; Tasks:</div><div class='del'>-</div><div class='del'>-  - Free/Busy changes.  (JP, Rodrigo)</div><div class='del'>-</div><div class='del'>-  - iTIP fixes (JP)</div><div class='del'>-</div><div class='del'>-  - i18n fixes, particularly for printing (Zbigniew Chyla)</div><div class='del'>-</div><div class='del'>-  - Added option to confirm deletions (Federico)</div><div class='del'>-</div><div class='del'>-  - Improved alarm system (Federico)</div><div class='del'>-</div><div class='del'>-  - Fixed crashing bug when deleting a folder (Federico)</div><div class='del'>-</div><div class='del'>-  - Added option to hide completed tasks (Damon)</div><div class='del'>-</div><div class='del'>-  - Timezone changes for interoperability with Outlook (Damon)</div><div class='del'>-</div><div class='del'>-  - Fixed problems displaying/parsing times in locales which don't specify</div><div class='del'>-    'am' and 'pm' strings (Damon)</div><div class='del'>-</div><div class='del'>-  - Added toolbar button to delete the selected calendar event (Damon)</div><div class='del'>-</div><div class='del'>-  - Meeting selector integrated (JP)</div><div class='del'>-</div><div class='del'>-Summary:</div><div class='del'>-</div><div class='del'>-  - Fixed bugs and leaks.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Fixed bug with handling of the Slashot RDF files.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Made the Addressbook and Tasks links open the editor for</div><div class='del'>-    them.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Mail summary doesn't force all folders to be opened.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Calendar summary shows if an alarm is set for an appointment.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Timezone fixes.  (Iain, Damon)</div><div class='del'>-</div><div class='del'>-Importers:</div><div class='del'>-</div><div class='del'>-  - Fixed more bugs.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Netscape importer shouldn't crash on Movemail users anymore.</div><div class='del'>-    (Iain)</div><div class='del'>-</div><div class='del'>-  - Pine importer should import addressbooks better.  (Iain)</div><div class='del'>-</div><div class='del'>-  - VCard importer will actually import things now.  (Iain)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.13 (Beta 3), 2001-08-21</div><div class='del'>----------------------------------</div><div class='del'>-</div><div class='del'>-Global:</div><div class='del'>-</div><div class='del'>-  - New startup assistant to create mail accounts, import mail and set </div><div class='del'>-    your timezone.  (Iain, Taylor)</div><div class='del'>-</div><div class='del'>-  - Improved the appearance and behavior of the clickable title bar and</div><div class='del'>-    the folder tree.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - "Stock" folders such as Inbox have their names translated now and</div><div class='del'>-    cannot be removed.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Moved the Summary (formerly known as "My Evolution") to be a</div><div class='del'>-    normal node instead of being the toplevel node.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed some problems with copying, moving and removing folderes.</div><div class='del'>-    (Jason)</div><div class='del'>-</div><div class='del'>-  - Fixed the handling of documentation files in the Help menu.  It</div><div class='del'>-    now integrates nicely with Nautilus and Scrollkeeper.  (Aaron,</div><div class='del'>-    Kjartan)</div><div class='del'>-</div><div class='del'>-  - Implemented the `File -&gt; New' menu.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Improved error messages on start-up.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed various crashes and minor bugs.  (Ettore, Jason)</div><div class='del'>-</div><div class='del'>-  - Various UI tweaks and improvements.  (Anna, Tuomas, Jakub)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  - Fixed creating IMAP folders.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Add a shortcut to the INBOX of IMAP or spool stores when </div><div class='del'>-    their accounts are first created. (Peter)</div><div class='del'>-</div><div class='del'>-  - Fixed Crash on Exit bugs.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Many more i18n fixes.  (Zbigniew Chyla, Jeff and others)</div><div class='del'>-</div><div class='del'>-  - Subscribe dialog UI tweaks. (Peter, Anna)</div><div class='del'>-</div><div class='del'>-  - Displaying PGP signed messages now shows icons.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Sensitize menu items based on number of selected messages. (Peter)</div><div class='del'>-</div><div class='del'>-  - Always-sign options for PGP.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed keep-on-server for POP servers that don't support UIDL.</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - Several IMAP fixes. (Peter, Jeff, Danw)</div><div class='del'>-</div><div class='del'>-  - Fix crash after conversion of an empty folder to another</div><div class='del'>-    format. (Peter)</div><div class='del'>-</div><div class='del'>-  - Ibex now limits its file descriptor usage. (Michael)</div><div class='del'>-</div><div class='del'>-  - When deleting an account, remove the shortcuts that point to it. (Peter)</div><div class='del'>-</div><div class='del'>-  - Several IMAP fixes. (Peter, Jeff, Danw)</div><div class='del'>-</div><div class='del'>-  - Miscellaneous bugfixes all around. (Peter, Jeff, Danw, Michael, others)</div><div class='del'>-</div><div class='del'>-Calendar &amp; Tasks:</div><div class='del'>-</div><div class='del'>-  - Calendar no longer crashes when you scroll a busy month view</div><div class='del'>-    (Federico).</div><div class='del'>-</div><div class='del'>-  - Performance improvements throughout (Damon).</div><div class='del'>-</div><div class='del'>-  - Improved search bar; now handles categories.  (Jon, Federico)</div><div class='del'>-</div><div class='del'>-  - The date navigator now reflects the results of the search bar.</div><div class='del'>-    (Federico)</div><div class='del'>-</div><div class='del'>-  - An empty task is no longer added when you have selected a</div><div class='del'>-    category. (Federico)</div><div class='del'>-</div><div class='del'>-  - Internationalization fixes (Zbigniew).</div><div class='del'>-</div><div class='del'>-  - Timezone fixes (Damon).</div><div class='del'>-</div><div class='del'>-  - Time transparency and component classification support (Damon).</div><div class='del'>-</div><div class='del'>-  - Folder bar now displays the selected time range (Damon).</div><div class='del'>-</div><div class='del'>-  - Improved settings dialog (Anna, Damon, Federico).</div><div class='del'>-</div><div class='del'>-  - iTIP/iMIP fixes for attendees, cancellation. (JP).</div><div class='del'>-</div><div class='del'>-  - Category icon drawing fixes. (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Alarm fixes. (Federico)</div><div class='del'>-</div><div class='del'>-  - Calendar components can be saved independently. (JP)</div><div class='del'>-</div><div class='del'>-  - New icons. (Tuomas)</div><div class='del'>-</div><div class='del'>-  - Contacts support. (Damon)</div><div class='del'>-</div><div class='del'>-  - You can double-click on appointments to edit them. (Damon)</div><div class='del'>-</div><div class='del'>-  - Share more code between the backends. (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Miscellaneous fixes all over the place. (Damon, JP, Rodrigo, Federico)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Various fixes.  (Anna Dirks, Dan Winship, Jason Leach, Jos Dehaes,</div><div class='del'>-    Kjartan Maraas, Lahey, Nat Friedman, Radek Doulik, Toshok, Trow)</div><div class='del'>-</div><div class='del'>-  - Made addressbook menus match the right click menus.  (Lahey)</div><div class='del'>-</div><div class='del'>-  - Made addressbook use camel for building email addresses.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Fixed up phone number matching to not cause errors.  (Lahey)</div><div class='del'>-</div><div class='del'>-  - Made the alphabet bar change the current search.  (Lahey)</div><div class='del'>-</div><div class='del'>-  - Made duplicate contact matching less sensitive.  (Lahey)</div><div class='del'>-</div><div class='del'>-  - Changed advanced search to match behavior in mailer.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Redesigned LDAP server dialog.  (Anna Dirks)</div><div class='del'>-</div><div class='del'>-  - Work on addressbook authentication.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Changes to EDestination.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Magic comma work.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Redesigned ESelectNames dialog.  (Anna Dirks)</div><div class='del'>-</div><div class='del'>-  - Made LDAP changes appear in gui immediately if they're made by the</div><div class='del'>-    local client.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Made ECard hold a link to its original EBook.  (Lahey, Trow)</div><div class='del'>-</div><div class='del'>-  - Adapted for new ESearchBar. (Federico, Trow)</div><div class='del'>-</div><div class='del'>-  - Added the ability to create cards from anywhere in evolution.</div><div class='del'>-    (Lahey)</div><div class='del'>-</div><div class='del'>-  - Made searches for completion not use invalid cached data.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Encode strings typed in by the user for use in sexps.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Made EContactEditor make the save button active more often.</div><div class='del'>-    (Toshok)</div><div class='del'>-</div><div class='del'>-  - Made ESelectNames handle LDAP storages.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Added full country list to addressbook full address editor.</div><div class='del'>-    (Lahey)</div><div class='del'>-</div><div class='del'>-  - Added the contact count to the folder bar.  (Lahey)</div><div class='del'>-</div><div class='del'>-  - Updated icons.  (Damon, Ettore)</div><div class='del'>-</div><div class='del'>-  - Worked on addressbook conduit.  (JP)</div><div class='del'>-</div><div class='del'>-  - Made ESelectNames only show names on the left that aren't on the</div><div class='del'>-    right.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Fixed up minicard dragging.  (Toshok)</div><div class='del'>-</div><div class='del'>-My Evolution:</div><div class='del'>-</div><div class='del'>-  - Miscellaneous fixes all over the place. (iain)</div><div class='del'>-</div><div class='del'>-  - New icons. (Tuomas and Jakub)</div><div class='del'>-</div><div class='del'>-  - Works for people whos text colour was a light colour. (iain)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.12 (Beta 2), 2001-07-31</div><div class='del'>----------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Change the name of the local storage node from "local" to "Local</div><div class='del'>-    Folders".  (Jason)</div><div class='del'>-</div><div class='del'>-  - Fixed a problem with invalid URIs crashing the shell.  (Jason)</div><div class='del'>-</div><div class='del'>-  - Hide internal folder types (like "vtrash") from user.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed some crashes that could happen when creating folders.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed the URIs for the installed manuals in the help menu.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added a status bar to show components' tasks instead of using</div><div class='del'>-    pop-up progress dialogs.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Other miscellaneous bug and leak fixes.  (Jason, Ettore)</div><div class='del'>-</div><div class='del'>-  - Initialize GConf properly when GtkHTML is built with GConf</div><div class='del'>-    support.  (Frederic Crozat)</div><div class='del'>-</div><div class='del'>-  - Make the shortcut bar not change the current group when renaming</div><div class='del'>-    it.  (Jason)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  - Use new shell ActivityClient interface for progress reporting so</div><div class='del'>-    the ongoing activities appear at the bottom of the window instead of</div><div class='del'>-    using a pop-up.  (Michael)</div><div class='del'>-</div><div class='del'>-  - "Remember this password" check box added.  (Peter, Jeff)</div><div class='del'>-</div><div class='del'>-  - UI for timespan editor cleaned up.  (Peter)</div><div class='del'>-</div><div class='del'>-  - UTF8 issues with PGP and mail display addressed.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Translate some more strings.  (Jeff, Zbigniew Chyla)</div><div class='del'>-</div><div class='del'>-  - Fix camel_session_*_timeout functions.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Fix application/pgp handling.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fix DnD with no messages selected.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Respect the GTK+ theme when generating the header in the mail</div><div class='del'>-    display.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Make the default date column smaller.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Don't display "0 hidden" messages.  (Peter)</div><div class='del'>-</div><div class='del'>-  - 'q' now toggles the message (pre)view.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Rename the "Date" column to "Sent".  (Peter)</div><div class='del'>-</div><div class='del'>-  - Fix saving of passwords (some passwords were being saved and</div><div class='del'>-    loaded under different URI's).  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Enter now always open the message in a new window.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Gray out unsupported authentication mechanisms.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fix saving/loading of several preferences.  (Peter, Jason)</div><div class='del'>-</div><div class='del'>-  - Overwrite attachment files correctly.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Don't lose the selection when deleting the last message.  (Jason)</div><div class='del'>-</div><div class='del'>-  - Improve guessing of which address to use when replying.  (Jeff, Jason)</div><div class='del'>-</div><div class='del'>-  - If SSL isn't supported, indicate so.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Improve handling of NoSelect IMAP folders.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Add a browse button for local mailboxes.  (Jason)</div><div class='del'>-</div><div class='del'>-  - VTrash handling improvements.  (Jeff, Peter)</div><div class='del'>-</div><div class='del'>-  - Display "unsent" in outbox summary.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Only have main view folder browsers save view settings.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Fixes to POP3 cache.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Handle variants of charset names.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Progress reporting and optimizations for IMAP.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Progress reporting for SMTP.  (Michel)</div><div class='del'>-</div><div class='del'>-  - Handle unencoded eight-bit headers.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Miscellaneous improvements to Camel backend.  (Michael, Jeff)</div><div class='del'>-</div><div class='del'>-  - Several crashes fixed.  (everyone)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Fixed some warnings.  (Chris T.)</div><div class='del'>-</div><div class='del'>-  - I18n fixes.  (Zbigniew Chyla)</div><div class='del'>-</div><div class='del'>-  - Address quoting in composer bug fixed.  (Jon)</div><div class='del'>-</div><div class='del'>-  - Made it so that Other Contacts doesn't show up if you don't have</div><div class='del'>-    LDAP compiled in.  (Jason)</div><div class='del'>-</div><div class='del'>-  - Made it so that Other Contacts doesn't show up if you don't have</div><div class='del'>-    any LDAP servers configured.  (Jos Dehaes)</div><div class='del'>-</div><div class='del'>-  - General bug fixes.  (Chris T., Jon, Frederic Crozat, Jason,</div><div class='del'>-    JP, Ettore, Chris L.)</div><div class='del'>-</div><div class='del'>-  - Some LDAP cleanup.  (Chris T.)</div><div class='del'>-</div><div class='del'>-  - Crash fixes.  (Jon, Dan)</div><div class='del'>-</div><div class='del'>-  - Work on contact lists.  (Chris T., Jon)</div><div class='del'>-</div><div class='del'>-  - Made Contact Editor Save &amp; Close button not active if nothing is</div><div class='del'>-    changed.  (Chris T.)</div><div class='del'>-</div><div class='del'>-  - Added accelerators to a few dialogs.  (Taylor Hayward)</div><div class='del'>-</div><div class='del'>-  - Made evolution-vcard-importer.c load the file into the correct directory.</div><div class='del'>-    (Iain)</div><div class='del'>-</div><div class='del'>-Calendar &amp; Tasks:</div><div class='del'>-</div><div class='del'>-  - Show icons for categories.  (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Multiple selections for cut/copy/paste in task list.  (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Added missing underlined shortcuts for dialogs.  (Taylor)</div><div class='del'>-</div><div class='del'>-  - Many timezone-related fixes.  (Damon, Federico)</div><div class='del'>-</div><div class='del'>-  - Alarm notification dialogs.  (Federico)</div><div class='del'>-</div><div class='del'>-  - iTIP and iMIP ongoing work.  (JP)</div><div class='del'>-</div><div class='del'>-  - Consistency &amp; cosmetic fixes for dialogs and menus.  (Damon,</div><div class='del'>-    Federico)</div><div class='del'>-</div><div class='del'>-  - You can now create new calendar/tasks folders in the shell.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-  - Printing fixes.  (Damon)</div><div class='del'>-</div><div class='del'>-  - Added a search bar for tasks folders.  (Federico)</div><div class='del'>-</div><div class='del'>-  - The task pad in the day view is now filtered as well.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Timezone support for conduits.  (JP)</div><div class='del'>-</div><div class='del'>-  - General bug fixes.  (Federico, JP, Damon, Rodrigo)</div><div class='del'>-</div><div class='del'>-My Evolution:</div><div class='del'>-</div><div class='del'>-  - Removed the wipe trackers option.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Fix broken links in the Calendar.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Added some more German cities.   (Iain)</div><div class='del'>-</div><div class='del'>-  - Fixed the New Feed button.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Fixed the KDE and Newsforge urls.  (Iain and Jason)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.11 (Beta 1), 2001-07-12</div><div class='del'>----------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Drag and drop handling (Chris T.)</div><div class='del'>-</div><div class='del'>-  - Online/Offline operation (Ettore)</div><div class='del'>-</div><div class='del'>-  - Numerous code cleanups and bug fixes (Ettore &amp; Jason)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  - Added ability to specify a charset in the composer and for the </div><div class='del'>-    Preview Pane.  (Jeff, Danw)</div><div class='del'>-</div><div class='del'>-  - Auto-save messages during composition and composer </div><div class='del'>-    crash-recovery.  (Larry)</div><div class='del'>-</div><div class='del'>-  - Better signature file handling.  (Radek)</div><div class='del'>-</div><div class='del'>-  - File-&gt;Insert menu.  (Larry)</div><div class='del'>-</div><div class='del'>-  - Address-completion in the composer.  (Trow)</div><div class='del'>-</div><div class='del'>-  - Much improved PGP/GPG.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Cut/Copy/Paste and Drag &amp; Drop.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Disconnected IMAP, IMAP filtering, and other IMAP improvements. (Danw)</div><div class='del'>-</div><div class='del'>-  - Empty Trash On Exit.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - More informative Folder message counts (new/hidden/total).  (Peter)</div><div class='del'>-</div><div class='del'>-  - Implemented "Select Thread".  (Peter)</div><div class='del'>-</div><div class='del'>-  - Movemail fixes and improvements.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Improved/Configurable Forward/Reply functionality.  (Jeff, Trow, Danw)</div><div class='del'>-</div><div class='del'>-  - Improved Message browser window.  (Jeff, Peter)</div><div class='del'>-</div><div class='del'>-  - Load HTML images Sometimes/Always/Never.  (Danw)</div><div class='del'>-</div><div class='del'>-  - rfc2184 conformance.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Online/Offline modes.  (Ettore, Danw, Jeff)</div><div class='del'>-</div><div class='del'>-  - HTML indexing.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Spool providers.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Many i18n fixes. (Jeff, Trow, Larry, Michael)</div><div class='del'>-</div><div class='del'>-  - Fixed saving of html signature preferences. (Peter)</div><div class='del'>-</div><div class='del'>-  - Cleaned up exiting by having remote stores sync folders (Peter)</div><div class='del'>-</div><div class='del'>-  - Attached binhex files do not cause infinite loops (Peter)</div><div class='del'>-</div><div class='del'>-  - Don't send BCC headers when sending via SMTP (Peter)</div><div class='del'>-</div><div class='del'>-  - Let you show and hide attached message/rfc822's (Peter)</div><div class='del'>-</div><div class='del'>-  - Implemented Create/Remove/Move Folder. (Jason, Jeff)</div><div class='del'>-</div><div class='del'>-  - Maildir fixes and improvments, support for subdirectories. (Michael)</div><div class='del'>-</div><div class='del'>-  - Progress reporting using via shell activity interface. (Michael)</div><div class='del'>-</div><div class='del'>-  - Many bug fixes all around.  (Michael, Jeff, Danw, Peter, Trow and others)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Cut/Copy/Paste (Chris T.)</div><div class='del'>-</div><div class='del'>-  - Improvements to address completion, matching and merging (Jon, Chris L.)</div><div class='del'>-</div><div class='del'>-  - LDAP improvements (Chris T.)</div><div class='del'>-</div><div class='del'>-  - Numerous bug fixing (Jon, Chris L., Chris T.)</div><div class='del'>-</div><div class='del'>-Calendar &amp; Tasks:</div><div class='del'>-</div><div class='del'>-  - Timezone support (Damon)</div><div class='del'>-</div><div class='del'>-  - Cut/Copy/Paste (Rodrigo)</div><div class='del'>-</div><div class='del'>-  - Event/Task editor rewrite (Federico &amp; JP)</div><div class='del'>-</div><div class='del'>-  - Improved Printing (Damon)</div><div class='del'>-</div><div class='del'>-  - Itip/Imip improvements (JP)</div><div class='del'>-</div><div class='del'>-Importers: </div><div class='del'>-</div><div class='del'>-  - Fixes, bug fixes and more fixes. (Iain &amp; Jason)</div><div class='del'>-</div><div class='del'>-General:</div><div class='del'>-</div><div class='del'>-  - New graphics/icons (Jakub &amp; Tuomas)</div><div class='del'>-</div><div class='del'>-  - UI Improvements (Anna &amp; Taylor)</div><div class='del'>-</div><div class='del'>-  - 'make distcheck' should hopefully be working again (Peter)</div><div class='del'>-</div><div class='del'>-  - Have 'make install' work for non-root users in Camel, albeit</div><div class='del'>-    with a large and important warning message (Peter)</div><div class='del'>-</div><div class='del'>-My Evolution:</div><div class='del'>-</div><div class='del'>-  - Completely new and prettier My Evolution (nee Executive Summary) </div><div class='del'>-</div><div class='del'>-  - Pretty graphics (Jakub)</div><div class='del'>-</div><div class='del'>-  - Mail, Calendar and Task summaries to tell you what you need to do</div><div class='del'>-    today.</div><div class='del'>-</div><div class='del'>-  - Weather forecasts so you don't need to look out the window (I</div><div class='del'>-    dunno, hackers seem to dislike looking out the window or</div><div class='del'>-    something...)</div><div class='del'>-</div><div class='del'>-  - News feeds so you don't need to go to websites to see what news</div><div class='del'>-    articles you don't want to read.</div><div class='del'>-	</div><div class='del'>-  - Printing, you can print it out and make it look like you've got</div><div class='del'>-    lots of stuff to do when really you're just trying to pass the </div><div class='del'>-    time by playing Aisleriot or GLine all day (Iain)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.10 "Tasmanian Devil", 2001-04-26</div><div class='del'>-------------------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Fixed some usability bugs in the folder selection and creation</div><div class='del'>-    dialogs.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added a --debug option.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Added support for drag and drop operations.  (Ettore)</div><div class='del'>-</div><div class='del'>-Mail: </div><div class='del'>-</div><div class='del'>-  - SSL (S/IMAP, S/POP, and S/SMTP).  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Virtual Trash folders in each mail storage and "Empty Trash" menu</div><div class='del'>-    item to expunge all folders in a store.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Email addresses in mail headers are now right-clickable to add</div><div class='del'>-    them to the Addressbook (Jon, Radek)</div><div class='del'>-</div><div class='del'>-  - Hide deleted messages is now a mode rather than a one-time</div><div class='del'>-    operation. (Michael)</div><div class='del'>-</div><div class='del'>-  - When sending plain text mail, use the new plain text mode of the</div><div class='del'>-    GtkHTML editor (Larry)</div><div class='del'>-</div><div class='del'>-  - Cancellable operations, cancellable/async dns lookup, slightly</div><div class='del'>-    improved progress reporting.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Allow per-identity Draft and Sent folders.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Replies quoted with "&gt; " in messages are now displayed dimmed to</div><div class='del'>-    make it easier to find the new bits of text. (Radek)</div><div class='del'>-</div><div class='del'>-  - Saved searches.  Searches now configurable via XML with supporting</div><div class='del'>-    C code.  (Michael)</div><div class='del'>-</div><div class='del'>-  - UNMATCHED vFolder (shows all messages that are in no other</div><div class='del'>-    vFolder). (Michael)</div><div class='del'>-</div><div class='del'>-  - SASL Authentication (Kerberos4, DIGEST-MD5, CRAM-MD5, PLAIN,</div><div class='del'>-    LOGIN, ANONYMOUS) for IMAP and SMTP (haven't done POP yet)</div><div class='del'>-    (Jeff, Dan)</div><div class='del'>-</div><div class='del'>-  - Filter/vFolder on Mailing List.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Resend sent items.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Allow users to turn on/off headers in the composer and added</div><div class='del'>-    Reply-To header entry in the composer.  (Miguel, Jeff)</div><div class='del'>-</div><div class='del'>-  - Numerous OpenPGP (PGP/MIME) fixes.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Replying to a message chooses account based on message</div><div class='del'>-    addressee's.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Redid Forward Inline and Forward Quoted.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - IMAP fixes: greater configurability for faster startup/mail check</div><div class='del'>-    (Dan), folders should now notice new messages when you switch to</div><div class='del'>-    them (Dan), copying/moving many messages at once should be much</div><div class='del'>-    faster (Jeff), better support for old IMAP servers (Dan)</div><div class='del'>-</div><div class='del'>-  - IMAP message bodies are now cached to local disk to speed up</div><div class='del'>-    re-access (Dan)</div><div class='del'>-</div><div class='del'>-  - New config dialogs (last time!) (Anna, Dan)</div><div class='del'>-</div><div class='del'>-  - Sorting by a text field in the message list no longer generates a</div><div class='del'>-    random order. (Michael)</div><div class='del'>-</div><div class='del'>-  - Fixed "crash when getting new mail from 2 POP servers" bug. (Dan)</div><div class='del'>-</div><div class='del'>-  - Numerous bugfixes, cleanups and optimisations. (Everyone)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Added support for non editable sources.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Added address completion for use in contact entries using the</div><div class='del'>-    select names system.  (Jon Trowbridge)</div><div class='del'>-</div><div class='del'>-  - Fixed some major crashes in the addressbook backend.  (Clahey)</div><div class='del'>-</div><div class='del'>-  - Updated Ximian's contact information.  (Jason Leach)</div><div class='del'>-</div><div class='del'>-  - Finished LDAP support.  (Toshok)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - Event creation fixes.  (Miguel)</div><div class='del'>-</div><div class='del'>-  - Calendar loading fixes and removal of old code.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Made the iTIP control have better spacings.  (Anna)</div><div class='del'>-</div><div class='del'>-  - i18n fixes.  (Kjartan)</div><div class='del'>-</div><div class='del'>-Tasks:</div><div class='del'>-</div><div class='del'>-  - Created a popup list item for ETable to select the Status,</div><div class='del'>-    Classification, Priority, Percent &amp; Transparencey fields.  (Damon)</div><div class='del'>-</div><div class='del'>-  - Created a popup date editor item for ETable to set all the dates in the</div><div class='del'>-    tasks.  (Damon)</div><div class='del'>-</div><div class='del'>-Importers: </div><div class='del'>-</div><div class='del'>-  - Created Intelligent Importers that look for certain files on your disk</div><div class='del'>-    and works out what type of data it is. Currently Intelligent Importers</div><div class='del'>-    exist for Pine, Elm and Netscape. (Iain)</div><div class='del'>-</div><div class='del'>-General:</div><div class='del'>-</div><div class='del'>-  - Rewrote ETree in gal.  Changed evolution to support the changes in</div><div class='del'>-    API.  (Clahey)</div><div class='del'>-</div><div class='del'>-  - Lots of Etable/ETree bug fixes.  (Clahey)</div><div class='del'>-</div><div class='del'>-  - Lots of i18n/l10n fixes.  (Kjartan Maraas, Gedeminas Paulauskas,</div><div class='del'>-    and the Evolution gang)</div><div class='del'>-</div><div class='del'>-  - Fixed the shell interface so it could correctly create folders. (Iain)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.9 "Platypus", 2001-03-12</div><div class='del'>-----------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Importing framework.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Made the splash screen a regular window.  (Miguel)</div><div class='del'>-</div><div class='del'>-  - Added a menu item to hide the shortcut bar to the shortuct bar</div><div class='del'>-    right-click menu.  (Jason)</div><div class='del'>-</div><div class='del'>-  - Update the shortcut labels to contain the number of unread</div><div class='del'>-    messages as well.  (Jason)</div><div class='del'>-</div><div class='del'>-  - Pre-select a newly created folder in the folder selection dialog.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  - GPG/PGP support is now mostly working and sort of configurable.</div><div class='del'>-    Except that the pretty pictures are missing.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Exciting new configuration druid (Anna, Jeff) and configuration</div><div class='del'>-    editor-of-the-month (Jeff). You can now have multiple identities</div><div class='del'>-    that use different transports.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - The folder-tree unread message counts now work much better. But</div><div class='del'>-    vfolders only display their unread message counts *after you've</div><div class='del'>-    looked at the folder for the first time*.  (Dan)</div><div class='del'>-</div><div class='del'>-  - New mail send/receive stuff with status dialog.  (NotZed)</div><div class='del'>-</div><div class='del'>-  - "Stop" button and support for cancelling operations.  (NotZed)</div><div class='del'>-</div><div class='del'>-  - Various fixes involving IMAP folders and subscriptions.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Fake messages to root threads in the message list are now gone.  (NotZed)</div><div class='del'>-</div><div class='del'>-  - NNTP support is no longer configured by default, as this code is</div><div class='del'>-    not expected to be completed by 1.0.</div><div class='del'>-</div><div class='del'>-  - Interface for hiding messages matching certain criteria.  (NotZed)</div><div class='del'>-</div><div class='del'>-  - Quick search bar now includes "Sender contains" option (Tuomas? Eek!)</div><div class='del'>-</div><div class='del'>-  - The mailer now properly launches "gnome_segv" when it crashes. I</div><div class='del'>-    mean, if it were to crash.  (Dan)</div><div class='del'>-</div><div class='del'>-  - IMAP attachments are now not loaded unless you look at them.  (Dan)</div><div class='del'>-</div><div class='del'>-  - The X-Mailer header can now include a compile-time-specified</div><div class='del'>-    string (for specifying package version, etc).  (Dan)</div><div class='del'>-</div><div class='del'>-  - The Date header in the message list now formats dates differently</div><div class='del'>-    depending on how long ago they are.  (Chris)</div><div class='del'>-</div><div class='del'>-  - The composer doesn't ask if you want to save before closing if you</div><div class='del'>-    haven't changed anything. Also, it has more useful window titles</div><div class='del'>-    (Jason Leach) And you can now turn off the "are you sure you</div><div class='del'>-    didn't mean to enter a subject?" dialog box.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - The "Menu" key on a Windows keyboard (the one with the picture of</div><div class='del'>-    a pop-up menu) now pops up the message list right-click menu.</div><div class='del'>-    (Dan)</div><div class='del'>-</div><div class='del'>-  - Lots of internal stuff that doesn't much affect the user-visible</div><div class='del'>-    functionality, particularly involving multithreading, message</div><div class='del'>-    threading, filters/searching, and regression testing.  (NotZed)</div><div class='del'>-</div><div class='del'>-  - Importers for Outlook Express 4 and mbox (used by most mailers like</div><div class='del'>-    Netscape, Pine, Elm, Eudora) (Iain &amp; Jeff)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Fixed crashing bug on PPC.  (Clahey)</div><div class='del'>-</div><div class='del'>-  - Updated to work with both OpenLDAP 1 and OpenLDAP 2.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Added configuration dialog for LDAP.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Plenty of bug fixes.  (Clahey, Toshok, Meeks, JP, Larry, Jason,</div><div class='del'>-    Federico, Dan, Zucchi, Gediminas Paulauskas, Ettore)</div><div class='del'>-</div><div class='del'>-  - Moved category dialog to gal.  (JP)</div><div class='del'>-</div><div class='del'>-  - Worked on LDAP authentication.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Worked on status messages.  (Toshok)</div><div class='del'>-</div><div class='del'>-  - Worked on GalView stuff.  (Clahey)</div><div class='del'>-</div><div class='del'>-  - Improved the select names dialog GUI.  (Clahey)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - New "go to date" dialog.  (JP)</div><div class='del'>-</div><div class='del'>-  - Categories support for appointments.  (JP)</div><div class='del'>-</div><div class='del'>-  - New alarms page in event editor.  (Anna, JP)</div><div class='del'>-</div><div class='del'>-  - Weekday picker now follows the week start setting.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Date-editing widgets are more consistent with each other.</div><div class='del'>-    (Federico)</div><div class='del'>-</div><div class='del'>-  - Colorization fixes to the views.  (Damon)</div><div class='del'>-</div><div class='del'>-  - Optimizations to the views.  (Damon)</div><div class='del'>-</div><div class='del'>-  - New, simpler loading interface for calendars in the Wombat.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Removal of lots of old Gnomecal code.  (Federico, JP)</div><div class='del'>-</div><div class='del'>-  - Alarm instance generation support for the Wombat.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Alarm trigger queueing for the GUI.  (Federico)</div><div class='del'>-</div><div class='del'>-  - More robust launching and registration of the components.  (Federico)</div><div class='del'>-</div><div class='del'>-  - More i18n friendliness.  (JP, Federico)</div><div class='del'>-</div><div class='del'>-  - Start of the alarm notification daemon.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Cosmetic and focus fixes all over the place.  (Federico, JP)</div><div class='del'>-</div><div class='del'>-Tasks:</div><div class='del'>-</div><div class='del'>-  - New, stand-alone tasks component.  (Damon)</div><div class='del'>-</div><div class='del'>-  - Categories support.  (JP, Damon)</div><div class='del'>-</div><div class='del'>-  - Your old tasks are migrated automatically to the new tasks folder.</div><div class='del'>-    (Federico)</div><div class='del'>-</div><div class='del'>-  - You get asked for confirmation when trying to delete a task entry.</div><div class='del'>-    (Federico)</div><div class='del'>-</div><div class='del'>-Conduits:</div><div class='del'>-</div><div class='del'>-  - Many bug fixes and cleanups.  (JP)</div><div class='del'>-</div><div class='del'>-Executive Summary:</div><div class='del'>-</div><div class='del'>-  - Bugfixes and memory leaks removed.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Calendar summary component.  (Iain)</div><div class='del'>-</div><div class='del'>-  - RDF Summary saves it's state.  (Iain)</div><div class='del'>-</div><div class='del'>-  - Mail summary shows vFolder summaries as well.  (Iain)</div><div class='del'>-</div><div class='del'>-  - User changable number of columns. (Iain)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.8 "Archaeopteryx", 2000-12-14</div><div class='del'>----------------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Added a `--no-splash' option.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Plugged a number of memory leaks.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Added interfaces to display an arbitrary string associated with a</div><div class='del'>-    folder, and highlight it on demand.  (Ettore, Dan)</div><div class='del'>-</div><div class='del'>-  - Changed the Storage IDLs so that you can associate a physical URI</div><div class='del'>-    to the toplevel node as well.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - If a shell is already running, `evolution' will just make it</div><div class='del'>-    create a new view instead of creating a new shell.  (Ettore)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  Display:</div><div class='del'>-</div><div class='del'>-  - The folder tree now shows unread message counts for mail</div><div class='del'>-    folders. For local folders, this updates in real time.  For IMAP, it</div><div class='del'>-    only updates when you "Get Mail".  To be continued.  (Dan)</div><div class='del'>-</div><div class='del'>-  - New "important" column in the message list.  User-settable.  (Dan)</div><div class='del'>-</div><div class='del'>-  - The message list "Size" column now displays more prettily and</div><div class='del'>-    sorts correctly.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - New command to view the raw source to a message.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - More reliable MIME icon code in the mailer and the composer.</div><div class='del'>-    (Dan, Iain)</div><div class='del'>-</div><div class='del'>-  - Lots of internationalization fixes.  (Dan, Kjartan)</div><div class='del'>-</div><div class='del'>-  Composer / Outgoing mail</div><div class='del'>-</div><div class='del'>-  - Various fixes to use the best charset and MIME encoding for</div><div class='del'>-    outgoing messages.  (Michael, Jeff)</div><div class='del'>-</div><div class='del'>-  - You can now forward messages inline, instead of attaching them.</div><div class='del'>-    Forwarding multiple messages now results in a multipart/digest</div><div class='del'>-    attachment.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Replies are now preceded by "On DATE, PERSON wrote:" (Jeff)</div><div class='del'>-</div><div class='del'>-  - Better reply editing, automagically sets indentation and paragraph</div><div class='del'>-    style to Normal. (Radek)</div><div class='del'>-</div><div class='del'>-  - HTML signature support.  (Radek)</div><div class='del'>-</div><div class='del'>-  - Inline image support.  (Radek)</div><div class='del'>-</div><div class='del'>-  - Fixes for addresses with commas.  (Jeff, Michael)</div><div class='del'>-</div><div class='del'>-  - Fix to not allow attaching directories, devices, etc.</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed the sign of the GMT offset in generated Date headers. </div><div class='del'>-    (Michael)</div><div class='del'>-</div><div class='del'>-  - Fixed a bug in base64 encoding.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Fixed a problem in connecting to non-ESMTP SMTP servers.  (Jeff)</div><div class='del'>-</div><div class='del'>-  Miscellaneous Commands / Features:</div><div class='del'>-</div><div class='del'>-  - The mailer will now remember your passwords, if you configure</div><div class='del'>-    that option for a service.  (Dan)</div><div class='del'>-</div><div class='del'>-  - New "Apply Filters" command to apply filter rules to selected</div><div class='del'>-    messages.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - No more "No new mail" dialog.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Individual messages can now be saved to disk.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Synced the Message menu with the right-click menu.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Mailer now uses the same search bar as the addressbook.  (Anna,</div><div class='del'>-    Chris, Jeff)</div><div class='del'>-</div><div class='del'>-  Filters:</div><div class='del'>-</div><div class='del'>-  - Now supports filtering on system flags (ie Answered, Seen,</div><div class='del'>-    Unseen).  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Regular expression searches are now moved to their own Option</div><div class='del'>-    menu.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Allows regex searching on the entire message header.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Now has soundex filters (x sounds like y).  (Jeff)</div><div class='del'>-</div><div class='del'>-  IMAP:</div><div class='del'>-</div><div class='del'>-  - "Get Mail" now scans all folders.  (Dan)</div><div class='del'>-</div><div class='del'>-  - IMAP password dialog no longer pops up at startup: click on the</div><div class='del'>-    server in the folder tree to connect.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Folder subscription support.  (Chris Toshok, Dan)</div><div class='del'>-</div><div class='del'>-  - Various IMAP folder naming fixes. (May fix Cyrus support) (Dan)</div><div class='del'>-</div><div class='del'>-  - Seen/deleted flags are preserved across "Get Mail".  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed a bug that could cause messages to be marked as seen</div><div class='del'>-    even when the UI thought they weren't.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Fixes for IMAP folders with spaces in their names (again).</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - IMAP Kerberos 4 authentication support.  (Dan)</div><div class='del'>-</div><div class='del'>-  POP3:</div><div class='del'>-</div><div class='del'>-  - Fixed a bunch of error cases in POP3 connection.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Fixed POP3 to more reliably delete messages when it was supposed</div><div class='del'>-    to be doing so.  (Dan)</div><div class='del'>-</div><div class='del'>-  Local mail:</div><div class='del'>-</div><div class='del'>-  - Major local mail rewrite that fixed memory leaks, reduced</div><div class='del'>-    memory consumption, improved efficiency, etc.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Maildir support.  (Michael)</div><div class='del'>-</div><div class='del'>-  - Local mail folders are now locked (via dot locking and/or</div><div class='del'>-    fcntl/flock) while Evolution is modifying them, and it will</div><div class='del'>-    notice if they've changed while it's not looking. (Michael)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - To-do and calendar conduits working except for extended</div><div class='del'>-    character support (ie accented chars) (JP)</div><div class='del'>-</div><div class='del'>-  - Updated wombat implementation of change reporting (JP)</div><div class='del'>-</div><div class='del'>-  - Majorly kick-ass new recurrence page in the event editor with an</div><div class='del'>-    easy UI, a preview of what will happen, and lots of love. (Anna)</div><div class='del'>-</div><div class='del'>-  - Imported a new libical with the APIs we require for alarms, the</div><div class='del'>-    start of the timezone code.  This may be the last Evolution</div><div class='del'>-    release that uses a CVS-imported libical; in the future we should</div><div class='del'>-    depend on official tarballs. (Federico)</div><div class='del'>-</div><div class='del'>-  - Event editor now deals gracefully with iCalendar recurrences we</div><div class='del'>-    cannot edit. (Federico)</div><div class='del'>-</div><div class='del'>-  - Plenty of fixes to the ETable calendar model for the task list</div><div class='del'>-    (Damon).</div><div class='del'>-</div><div class='del'>-  - The task list now saves its state, selected columns and sort order</div><div class='del'>-    (Damon).</div><div class='del'>-</div><div class='del'>-  - Lots of love to the iTIP engine and user interface.  Scheduling</div><div class='del'>-    appointments via email should be working fine, and they should</div><div class='del'>-    also work when you receive them. (Jesse)</div><div class='del'>-</div><div class='del'>-  - Lots of work on the calendar preferences code. (Damon)</div><div class='del'>-</div><div class='del'>-  - Many functional and cosmetic fixes to the day and week</div><div class='del'>-    views. (Damon)</div><div class='del'>-</div><div class='del'>-  - Event and task editors now ask if you try to close them without</div><div class='del'>-    saving changes. (Damon)</div><div class='del'>-</div><div class='del'>-  - You are now prompted if you are sure that you want to delete an</div><div class='del'>-    appointment. (Federico)</div><div class='del'>-</div><div class='del'>-  - Plenty of memory leaks fixed. (JP, Federico)</div><div class='del'>-</div><div class='del'>-  - Prettified the event editor a bit by making widget spacings</div><div class='del'>-    consistent. (Federico)</div><div class='del'>-</div><div class='del'>-  - Fixed semantics for handling exception dates (Federico)</div><div class='del'>-</div><div class='del'>-  - Some fixes to the recurrence instance generation engine. (Damon)</div><div class='del'>-</div><div class='del'>-  - Fixed insertion of new objects via notification into the task</div><div class='del'>-    list.  (JP, Federico)</div><div class='del'>-</div><div class='del'>-  - Misc. polishing for the event editor's innards. (Damon, Federico)</div><div class='del'>-</div><div class='del'>-  - Misc. cruft removal from old Gnomecal code (Federico, Miguel)</div><div class='del'>-</div><div class='del'>-  - Prettier icons for the task list. (Federico)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Addressbook conduit now working, experimentally, except for</div><div class='del'>-    extended character support (ie accented chars.) (JP)</div><div class='del'>-</div><div class='del'>-  - Extended wombat functionality with getChanges call. (JP)</div><div class='del'>-</div><div class='del'>-  - Full name and address dialogs in contact editor fixed. (Chris)</div><div class='del'>-</div><div class='del'>-Executive Summary: (iain)</div><div class='del'>-</div><div class='del'>-  - Now compiled by default.</div><div class='del'>-</div><div class='del'>-  - Prettier default dialogs.</div><div class='del'>-</div><div class='del'>-  - Customisable background.</div><div class='del'>-</div><div class='del'>-  - RDF Summary, and Mail Summary components.</div><div class='del'>-</div><div class='del'>-  - Fixes and optimisations.</div><div class='del'>-</div><div class='del'>-  - Can restore state.</div><div class='del'>-</div><div class='del'>-Version 0.7, "Loch Ness Monster", ????</div><div class='del'>---------------------------------------</div><div class='del'>-</div><div class='del'>-There have been no verified sightings of this release.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.6, "Procompsognathus", 2000-10-19</div><div class='del'>--------------------------------------------</div><div class='del'>-</div><div class='del'>-General:</div><div class='del'>-</div><div class='del'>-  - Split out lots of functionality to gal.  Evolution now depends on</div><div class='del'>-    gal. (Chris Lahey, Gal Team)</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Added a cute splash screen.  (Ettore, TigerT)</div><div class='del'>-</div><div class='del'>-  - Improved the way `~/evolution' is initialized the first time.</div><div class='del'>-    (Iain)</div><div class='del'>-</div><div class='del'>-  - Fixed the problem with the folder bar disappearing too son when</div><div class='del'>-    clicking on the scrollbar.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Updated to use the new toolbar and UI merging code from Bonobo.</div><div class='del'>-    (Michael Meeks, Ettore)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  - Numerous i18n encoding, decoding, and display fixes. Non-ASCII</div><div class='del'>-    text should be displayed correctly in most context in the mailer</div><div class='del'>-    now. The composer no longer sends undeclared 8bit data. (Jeff)</div><div class='del'>-</div><div class='del'>-  - The IMAP provider now caches summary info between sessions, so</div><div class='del'>-    startup should be much faster for large folders. (Dan)</div><div class='del'>-</div><div class='del'>-  - Subscribe/unsubscribe UI for newsgroups. (IMAP subscriptions will</div><div class='del'>-    be supported in a later release.) NNTP authentication support.</div><div class='del'>-    Various other NNTP fixes. (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - New "full search" button to do more complicated searches. (NotZed)</div><div class='del'>-</div><div class='del'>-  - Composer attachment bar improvements. You can now drag files to</div><div class='del'>-    the composer window to attach them to the message. (Iain)</div><div class='del'>-</div><div class='del'>-  - Message list state (columns selected, sorting, etc) is now saved</div><div class='del'>-    between sessions. (NotZed)</div><div class='del'>-</div><div class='del'>-  - "Get Mail" now works for IMAP. IMAP mail no longer arrives</div><div class='del'>-    asynchronously (although if you delete mail from another client,</div><div class='del'>-    it will be deleted asynchronously). (Dan)</div><div class='del'>-</div><div class='del'>-  - Image attachments now use thumbnail images rather than a generic</div><div class='del'>-    image icon. (Iain)</div><div class='del'>-</div><div class='del'>-  - Various IMAP provider bugs (Dan, Jeff)</div><div class='del'>-</div><div class='del'>-  - Filter code cleanup/improvements. (NotZed) Filtering can read and</div><div class='del'>-    write message scores. (Jeff) On-demand filters no longer expunge</div><div class='del'>-    the source folder, and don't filter deleted messages. (Jeff)</div><div class='del'>-    Filters now log their actions. (Jeff)</div><div class='del'>-</div><div class='del'>-  - Drafts, Outbox, and Sent folders now default to showing "To"</div><div class='del'>-    instead of "From" in the header list. Messages output to the Sent</div><div class='del'>-    folder are marked as "Seen". "Send later" on a reply will mark the</div><div class='del'>-    message as having been replied to. (Jeff)</div><div class='del'>-</div><div class='del'>-  - Message list "attachment" column is now functional. The</div><div class='del'>-    read/unread state of a fake thread header now matches the state of</div><div class='del'>-    the thread. (NotZed) Message list sorting is more clever (Jeff)</div><div class='del'>-</div><div class='del'>-  - The "Print" toolbar button now opens a Print dialog rather than a</div><div class='del'>-    Print Preview window. (Miguel)</div><div class='del'>-</div><div class='del'>-  - New "Select All" command. "Mark all messages as seen" became "Mark</div><div class='del'>-    (selected) messages seen". (Jeff)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - Improved todo list and calendar view gui (Damon)</div><div class='del'>-</div><div class='del'>-  - Printing works again (Federico)</div><div class='del'>-</div><div class='del'>-  - Config dialog improvement and implementation (Damon)</div><div class='del'>-</div><div class='del'>-  - Todo and calendar conduits working, except for archiving (JP)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Lots of internal refactoring of addressbook, including changes due</div><div class='del'>-    to gal. (Chris, Chris)</div><div class='del'>-</div><div class='del'>-  - Lots of bug fixes. (Chris, Chris, Matt Bissiri, Iain, Dan)</div><div class='del'>-</div><div class='del'>-  - Added a working field to save whether the contact wants</div><div class='del'>-    HTML. (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Added "Stop" and "View All" toolbar buttons. (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Lots of work on modifiable LDAP. (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Recognizes a lot more Prefixes and Suffixes when parsing names. (Nat)</div><div class='del'>-</div><div class='del'>-  - The card view doesn't write out cards unless they've changed. (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - New layout of address editor dialog. (Anna, Chris Lahey)</div><div class='del'>-</div><div class='del'>-Version 0.5.1, "Salamended", 2000-09-15</div><div class='del'>----------------------------------------</div><div class='del'>-</div><div class='del'>-General:</div><div class='del'>-</div><div class='del'>-  - Fixed a font-handling problem that would cause Evolution to crash</div><div class='del'>-    at startup with certain Gtk themes. (Chris)</div><div class='del'>-</div><div class='del'>-  - Fixed some build problems. (Chris)</div><div class='del'>-</div><div class='del'>-  - We no longer ship an out-of-date Red Hat-only RPM spec file.</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - The shell now installs the `Sent' folder at startup if it doesn't</div><div class='del'>-    exist yet.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - If a component crashes unexpectedly, the shell displays a dialog</div><div class='del'>-    box informing the user of that.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed a bug in the folder selector dialog that would result in</div><div class='del'>-    crashes while trying to move messages in the mailer. (Dan)</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Fixed a bug that would cause the addressbook to crash when</div><div class='del'>-    embedded in the composer. (Dan)</div><div class='del'>-</div><div class='del'>-Mail:</div><div class='del'>-</div><div class='del'>-  - Fixed a display problem caused by expunging an IMAP folder. (Dan)</div><div class='del'>-</div><div class='del'>-  - Fixed POP mail so that "keep on server" is obeyed correctly. (Dan,</div><div class='del'>-    Jeff)</div><div class='del'>-</div><div class='del'>-  - Fixed replies so that replying to a message twice doesn't turn off</div><div class='del'>-    the "replied" flag. (Dan)</div><div class='del'>-</div><div class='del'>-  - Fixed a bug that prevented "Send later" from working. (Dan)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.5, "Salamander", 2000-09-13</div><div class='del'>--------------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Switched to using ETree for the folder view.  (Chris Toshok,</div><div class='del'>-    Ettore)</div><div class='del'>-</div><div class='del'>-  - Added interfaces to change the string displayed in the tree view</div><div class='del'>-    as the name of the folder.  (Ettore)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - Uses only the new iCalendar standard internally; this means future</div><div class='del'>-    interoperability with new calendaring programs.  (JP, Federico)</div><div class='del'>-</div><div class='del'>-  - New ultra-cool date range selector, aka little calendar.  (Damon)</div><div class='del'>-</div><div class='del'>-  - Plenty of internal refactoring.  (JP, Damon, Federico)</div><div class='del'>-</div><div class='del'>-  - Pilot synch work, mostly on pcs infrastructure and some todo work (JP)</div><div class='del'>-    &lt;EXPERIMENTAL&gt;</div><div class='del'>-</div><div class='del'>-  - Pilot synch work, mostly on pcs infrastructure and some todo work (JP)</div><div class='del'>-    &lt;EXPERIMENTAL&gt;</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - New advanced search dialog.  (Michael Zucchi, Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Added parsing of addresses.  (Jesse Pavel)</div><div class='del'>-</div><div class='del'>-  - Converted most of addressbook to UTF8.  (Lauris)</div><div class='del'>-</div><div class='del'>-Mailer:</div><div class='del'>-</div><div class='del'>-  - Filters (but not vfolders) are now more powerful: they can check</div><div class='del'>-    any message header, and can do regexp searches on the headers and</div><div class='del'>-    body.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - A first draft of an automated mailing list recognizer</div><div class='del'>-    has been added.  (It will need more/better rules.)  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Attachments are handled differently now.  All attachments always</div><div class='del'>-    have an icon and a header, and you can right-click on the icon to</div><div class='del'>-    view/hide, save, or launch an external viewer.  (Dan)</div><div class='del'>-</div><div class='del'>-  - It is no longer necessary to quit and restart after adding a new</div><div class='del'>-    IMAP server.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Lots of i18n/charset fixing.  (Lauris)</div><div class='del'>-</div><div class='del'>-  - Shiny new toolbar icons.  (Tuomas)</div><div class='del'>-</div><div class='del'>-  - Giant menu reorganization. Most message operations are now in the</div><div class='del'>-    "Message" menu, and folder operations in the "Folder" menu.</div><div class='del'>-    (Ettore, Dan, Peter)</div><div class='del'>-</div><div class='del'>-  - "Mark as seen" timeout is now configurable. Mail view remembers</div><div class='del'>-    the location of the message list/message display split.  (Richard</div><div class='del'>-    Hult)</div><div class='del'>-</div><div class='del'>-  - New filter category: "On-demand", for filters to be applied</div><div class='del'>-    at arbitrary times rather than during mail incorporation.  (Peter)</div><div class='del'>-</div><div class='del'>-  - POP/IMAP config pages allow you to specify a port... this may</div><div class='del'>-    go away in a later release when we support ssl/ssh tunneling</div><div class='del'>-    directly.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Reply To All will now remove your own addresses from the recipient</div><div class='del'>-    lists.  (Jesse Pavel)</div><div class='del'>-</div><div class='del'>-  - Folders are synced when you switch to another folder now.  (Dan)</div><div class='del'>-</div><div class='del'>-  - An IMAP bug that caused all messages to be marked as read before</div><div class='del'>-    they were read has been fixed.  (Dan)</div><div class='del'>-</div><div class='del'>-  - The IMAP provider is now more robust about dealing with other</div><div class='del'>-    concurrent IMAP clients.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - POP and IMAP are better about when they do and don't try to</div><div class='del'>-    reconnect.  This was part of Camel operation cancellation support,</div><div class='del'>-    which unfortunately didn't make it into 0.5.  (Peter)</div><div class='del'>-</div><div class='del'>-  - Sent and Outbox folders are now functional.  You now have 2</div><div class='del'>-    options when sending a message - "Send Now" which will send the</div><div class='del'>-    message imediately and "Send Later" which will queue the message in</div><div class='del'>-    Outbox for later sending.  When a message is successfully sent, it</div><div class='del'>-    is copied to the Sent folder for your records.  (Jeff)</div><div class='del'>-</div><div class='del'>-ETable:</div><div class='del'>-</div><div class='del'>-  - ETree fixes.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Lots of small usability fixes.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Lots of grouping bug fixes.  Specifically, fixed crashes when</div><div class='del'>-    grouping in trees and made ETable not go crazy when you change</div><div class='del'>-    data and the table is grouped.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Improved table printing when grouped.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Converted most of ETable to UTF8.  (Lauris)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.4, "Alewife", 2000-08-14</div><div class='del'>-----------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Added interfaces to display messages and a progress bar when the</div><div class='del'>-    component is busy.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Changed the shell BonoboUIHandler code to allow placing menu items</div><div class='del'>-    such as "Print" in the right places.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added code to check if an existing `~/evolution' directory</div><div class='del'>-    actually has the content we expect and, if not, complain to the</div><div class='del'>-    user.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Fixed some Bonobo-related refcounting problems.  (Michael Meeks)</div><div class='del'>-</div><div class='del'>-  - Removed the GConf dependency.  (JP)</div><div class='del'>-</div><div class='del'>-  - Improved the API for the folder selection dialog.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Memory leak fixes.  (Peter)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  The calendar is in the middle of major rewrite. Evolution 0.4</div><div class='del'>-  ships with essentially the same calendar component as 0.3 did.</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - More work on the Palm Pilot conduits.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Fixed some LDAP-related crashes.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Added support for displaying embedded vCards through a Bonobo</div><div class='del'>-    component.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Added support for generic fields.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Fixed the navigation order for the Tab key in the contact editor</div><div class='del'>-    window.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Fixed some Bonobo-related bugs and crashes.  (Chris Lahey, Michael</div><div class='del'>-    Meeks)</div><div class='del'>-</div><div class='del'>-  - Only display entries that have an email address in the address</div><div class='del'>-    selector dialog.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Added an utility program to import vCards from Gnomecard.  (Chris</div><div class='del'>-    Lahey)</div><div class='del'>-</div><div class='del'>-Mailer:</div><div class='del'>-</div><div class='del'>- Generic</div><div class='del'>-</div><div class='del'>-  - Long mailer operations (such as fetching new mail) now run</div><div class='del'>-    asynchronously rather than blocking the UI. This involved</div><div class='del'>-    a major rewrite of much of the Camel and mailer code.  (Peter)</div><div class='del'>-</div><div class='del'>-  - GPG/PGP message decryption support (Nathan Thompson-Amato, Dan)</div><div class='del'>-</div><div class='del'>-  - Unfinished messages in the composer can be saved to the "Drafts"</div><div class='del'>-    folder and finished later.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - Double-clicking on a message in the message view now opens it in a</div><div class='del'>-    separate window.  (Jeff)</div><div class='del'>-</div><div class='del'>-  - vCards attached to messages now bring up a minicard view with a</div><div class='del'>-    button to add the vCard to the addressbook (Chris Lahey, Dan)</div><div class='del'>-</div><div class='del'>-  - Inline uuencoded/binhexed "attachment" support (Dan)</div><div class='del'>-</div><div class='del'>-  - "Mark All Messages Seen" command.  (Cody Russell)</div><div class='del'>-</div><div class='del'>- Filters / VFolders</div><div class='del'>-</div><div class='del'>-  - Major filter/vfolder dialog rewrite (Michael Zucchi) VFolders can</div><div class='del'>-    now search any (searchable) folder, not just Inbox.</div><div class='del'>-</div><div class='del'>-  - Auto-filter/auto-vfolder code (right click on a message in the</div><div class='del'>-    list and pick one of the options at the bottom of the menu to</div><div class='del'>-    create a filter/vfolder rule for similar messages).  (Michael)</div><div class='del'>-</div><div class='del'>-  - You can now set the color of messages in the message list, based</div><div class='del'>-    on filter rules.  (Local stores can also now store arbitrary user</div><div class='del'>-    flags, although there is not yet UI code to set/view them.)</div><div class='del'>-    (Michael)</div><div class='del'>-</div><div class='del'>-  - Added "Save" button to the quicksearch bar to save a search as a</div><div class='del'>-    vfolder.  (Michael)</div><div class='del'>-</div><div class='del'>- Configuration</div><div class='del'>-</div><div class='del'>-  - Major mail config dialog rewrite (JP).</div><div class='del'>-</div><div class='del'>-  - The mailer now remembers your threaded/unthreaded message view</div><div class='del'>-    setting between sessions.  (Jeremy Wise).</div><div class='del'>-</div><div class='del'>-  - Support for multiple identities (JP, Jeff), sources (JP, Peter), and</div><div class='del'>-    IMAP servers (JP, Dan)</div><div class='del'>-</div><div class='del'>- Providers</div><div class='del'>-</div><div class='del'>-  - You can now leave POP mail on the server. (This will [currently]</div><div class='del'>-    only work right with POP servers that support the UIDL command.</div><div class='del'>-    On other servers, it will never download some messages unless you</div><div class='del'>-    never delete mail.)</div><div class='del'>-</div><div class='del'>-  - There is now an MH-like local store available, and code to convert</div><div class='del'>-    a folder from one type to the other.  (Michael)</div><div class='del'>-</div><div class='del'>-  - The mbox provider now writes out "From " lines that are more</div><div class='del'>-    compatible with other mailers (like Mutt) that are picky about</div><div class='del'>-    their exact format.  (Michael)</div><div class='del'>-</div><div class='del'>-  - The IMAP provider now supports searching (Jeff). Also various</div><div class='del'>-    other speed/efficiency/robustness improvements (Jeff), and support</div><div class='del'>-    for old IMAP4 servers as well as IMAP4rev1 (Jon K Hellan).</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Version 0.3, "Jellyfish", 2000-07-21</div><div class='del'>-------------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  - Pop-up folder selection.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added support for multiple views.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Added support for saving component-specific settings, and</div><div class='del'>-    some initial code to save the view's configuration.</div><div class='del'>-    (Ettore)</div><div class='del'>-</div><div class='del'>-  - Fixed the Bonobo menu code so that it works with all the</div><div class='del'>-    locales.  (Ettore)</div><div class='del'>-</div><div class='del'>-Mailer:</div><div class='del'>-</div><div class='del'>-   - Lots of IMAP fixes.  (Jeff) </div><div class='del'>-</div><div class='del'>-   - You can use an external setuid/setgid movemail program</div><div class='del'>-    (although we don't ship our own yet). If you have one</div><div class='del'>-    installed with emacs, the configure script will find</div><div class='del'>-    that. Otherwise, you can specify --with-movemail=/path.</div><div class='del'>-    (Dan)</div><div class='del'>-</div><div class='del'>-  - You can toggle HTML/plain text for an individual message</div><div class='del'>-    in the composer now.  (Ettore)</div><div class='del'>-</div><div class='del'>-  - Bonobo embedding sort of works again, but there are</div><div class='del'>-    problems with size allocation somewhere. Attachments can now</div><div class='del'>-    also be handled by external applications.  (Dan)</div><div class='del'>-</div><div class='del'>-  - text/plain mail is now line-wrapped in the mail display,</div><div class='del'>-    to deal with people who don't put newlines in their mail.</div><div class='del'>-    (Dan)</div><div class='del'>-</div><div class='del'>-  - Allow user to specify IMAP namespace in the mail config</div><div class='del'>-    dialog.  (Dan, Jeff)</div><div class='del'>-</div><div class='del'>-  - Quoted-printable encoder fixes.  (Michael Zucchi)</div><div class='del'>-</div><div class='del'>-  - Various NNTP fixes, include a news pane in the config</div><div class='del'>-    dialog.  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Some memory corruption fixes.  (Peter Williams)</div><div class='del'>-</div><div class='del'>-  - Fix for message not being re-drawn as deleted.  (Peter</div><div class='del'>-    Williams, Jeff)</div><div class='del'>-</div><div class='del'>-  - Moving a message to another folder copies the flags now</div><div class='del'>-    (Jeff)</div><div class='del'>-</div><div class='del'>-  - Close signature in HTML mail with &lt;/PRE&gt;, not &lt;PRE&gt;, and</div><div class='del'>-    default to ~/.signature.  (Michael Meeks)</div><div class='del'>-</div><div class='del'>-  - Fixed some confusing behavior in the message threading</div><div class='del'>-    algorithm.  (Dan)</div><div class='del'>-</div><div class='del'>-  - Improvements to the item selection code.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  - Added support for a bunch of previously unsupported iCalendar</div><div class='del'>-    properties.  (Federico)</div><div class='del'>-</div><div class='del'>-  - Conduit for synchronizing the calendar with gnome-pilot</div><div class='del'>-    (requires gnome-pilot from CVS).  (Seth)</div><div class='del'>-</div><div class='del'>-  - ETable-based to-do list view ("taskpad"), for your viewing</div><div class='del'>-    pleasure.</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  - Conduit for synchronizing the addressbook with gnome-pilot</div><div class='del'>-    (requires gnome-pilot from CVS).  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Conduit for synchronizing the addressbook with gnome-pilot</div><div class='del'>-    (requires gnome-pilot from CVS).  (Chris Toshok)</div><div class='del'>-</div><div class='del'>-  - Fixed some random crashes.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Implemented a vCard Bonobo control so that we can support</div><div class='del'>-    inline vCard viewing in the mailer.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Quick search looks at both the name and the company name now.</div><div class='del'>-    (Chris Lahey)</div><div class='del'>-</div><div class='del'>-  - Added more functionality to the contact editor's toolbar.  (Chris</div><div class='del'>-    Lahey)</div><div class='del'>-</div><div class='del'>-  - Support for printing single cards.  (Chris Lahey)</div><div class='del'>-</div><div class='del'>-Version 0.2, "Saccharomyces", 2000-07-11</div><div class='del'>-----------------------------------------</div><div class='del'>-</div><div class='del'>-Shell:</div><div class='del'>-</div><div class='del'>-  * Folder selection dialog (Ettore).</div><div class='del'>-</div><div class='del'>-  * Folder creation dialog (Ettore).</div><div class='del'>-</div><div class='del'>-Addressbook:</div><div class='del'>-</div><div class='del'>-  * LDAP server configuration dialog (Chris Toshok).</div><div class='del'>-  </div><div class='del'>-  * Integration of LDAP servers in the shell's tree view (Chris Toshok).</div><div class='del'>-  </div><div class='del'>-  * ETable-based view (Chris Lahey).</div><div class='del'>-  </div><div class='del'>-  * Printing support for the ETable-based view (Chris Lahey).</div><div class='del'>-  </div><div class='del'>-  * Address selection dialog integrated with the message composer (Chris</div><div class='del'>-    Lahey).</div><div class='del'>-  </div><div class='del'>-  * Many miscellaneous bugs fixed (everyone).</div><div class='del'>-</div><div class='del'>-Calendar:</div><div class='del'>-</div><div class='del'>-  * Printing support (Michael, Federico).</div><div class='del'>-  </div><div class='del'>-  * Many, many behavior fixes and polishing to the day/week/month view</div><div class='del'>-    widgets (Damon).</div><div class='del'>-  </div><div class='del'>-  * New glade-based event editor.  This is unfinished but usable (Seth,</div><div class='del'>-    Federico).</div><div class='del'>-  </div><div class='del'>-  * Mouse wheel scrolling support (Anders).</div><div class='del'>-  </div><div class='del'>-  * We have an awesome new engine for computing recurring events</div><div class='del'>-    (Damon).  This will be plugged in to the new iCalendar code.</div><div class='del'>-  </div><div class='del'>-  * Internal and public API fixes (Federico, Seth).</div><div class='del'>-  </div><div class='del'>-  * Shell-related changes (Ettore).</div><div class='del'>-  </div><div class='del'>-  * Data model for ETable; this is not used yet (Federico).</div><div class='del'>-  </div><div class='del'>-  * New iCalendar support; this is not used yet (Federico).</div><div class='del'>-  </div><div class='del'>-  * Pilot syncing updates; this is not used yet (Seth).</div><div class='del'>-  </div><div class='del'>-  * Many miscellaneous bugs fixed (everyone).</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Mailer:</div><div class='del'>-</div><div class='del'>-  Major features:</div><div class='del'>-</div><div class='del'>-  * Basic IMAP support (Jeff)</div><div class='del'>-</div><div class='del'>-  * Threaded message view (Michael, Chris Toshok)</div><div class='del'>-</div><div class='del'>-  * Filters now work (original work by Michael, bugfixes by Dan)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-  Smaller features:</div><div class='del'>-</div><div class='del'>-  * Implemented moving messages between folders (Dan)</div><div class='del'>-</div><div class='del'>-  * Very basic printing support (Dan, but it was only like 5 lines</div><div class='del'>-    of code, because gnome-print kicks ass)</div><div class='del'>-</div><div class='del'>-  * "Delete", "Forward", and "Refile" operations now work on</div><div class='del'>-    multiple messages. (Chris Lahey, Peter Williams, Dan)</div><div class='del'>-</div><div class='del'>-  * Toggle read/unread flag when the user clicks on the envelope</div><div class='del'>-    icon (Chris Lahey, Dan).</div><div class='del'>-</div><div class='del'>-  * The "New folder" menu item now works (Ettore, Dan).</div><div class='del'>-</div><div class='del'>-  * The filter/vfolder druid now uses the new shell folder selection</div><div class='del'>-    UI (Michael)</div><div class='del'>-</div><div class='del'>-  * Added "Cc" to the set of filter/vfolderable headers and make the</div><div class='del'>-    filter/vfolder "messages to address" rule work with to or cc.</div><div class='del'>-    (Dan)</div><div class='del'>-</div><div class='del'>-  * New key bindings: "Delete" deletes the current message and jumps</div><div class='del'>-    to the next undeleted message. "N" and "P" go to next/previous</div><div class='del'>-    unread message. (Dan)</div><div class='del'>-</div><div class='del'>-  * Keep asking for POP/IMAP password until the user gets it correct</div><div class='del'>-    or hits Cancel, and remember the result until the user exits (or</div><div class='del'>-    chooses "Forget Passwords"). (Dan, Jeff)</div><div class='del'>-</div><div class='del'>-  * Kludge Camel to output ISO-8859-1 instead of UTF-8, since</div><div class='del'>-    neither GtkHTML nor ETable supports UTF-8 still. (Dan)</div><div class='del'>-</div><div class='del'>-  * Use the gnome-vfs "sniff buffer" interface to try to identify</div><div class='del'>-    the MIME type of attachments without useful type information</div><div class='del'>-    (Dan)</div><div class='del'>-</div><div class='del'>-  * Allow saving drafts in the composer (Ettore)</div><div class='del'>-</div><div class='del'>-  * Added "Received date" header to the set of possible message list</div><div class='del'>-    headers. (Dan)</div><div class='del'>-</div><div class='del'>-  * Partial gladification of the config dialog (JP Rosevear)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-  Bug fixes:</div><div class='del'>-</div><div class='del'>-  * Message read/unread/deleted flags should now be saved reliably</div><div class='del'>-    when you exit, and summary should not be rebuilt when a rebuild</div><div class='del'>-    isn't needed. Expunging should work reliably (Dan, Ettore,</div><div class='del'>-    Jeff).</div><div class='del'>-</div><div class='del'>-  * Fix disappearing toolbar bug (Dan).</div><div class='del'>-</div><div class='del'>-  * Fixed a bug that made downloading of very large messages over</div><div class='del'>-    POP incredibly slow, and various other smaller POP bugs. (Dan)</div><div class='del'>-</div><div class='del'>-  * Fixed bugs that made large attachments sometimes get dropped and</div><div class='del'>-    small ones sometimes get truncated. (Dan)</div><div class='del'>-</div><div class='del'>-  * Fixed filter/vfolder "messages to address" rule to correctly</div><div class='del'>-    match "to" rather than "from". (Michael)</div><div class='del'>-</div><div class='del'>-  * Fix some text/plain formatting bugs in the composer. (Dan,</div><div class='del'>-    Ettore)</div><div class='del'>-</div><div class='del'>-  * Turn off search mode when getting new mail (to avoid corrupting</div><div class='del'>-    the display). Make "get mail" always put unfiltered mail into</div><div class='del'>-    Inbox rather than the current folder. (Dan)</div><div class='del'>-</div><div class='del'>-  * Fixed a bug that caused "Re:" to be prepended even to subjects</div><div class='del'>-    that started with "Re:" when replying. Added a default subject</div><div class='del'>-    to forwarded messages. (Dan)</div><div class='del'>-</div><div class='del'>-  * Make the "Attach" dialog in the composer remember the last</div><div class='del'>-    directory it was in. (Dan)</div><div class='del'>-</div><div class='del'>-  * Code to parse invalid date formats since some mailers generate</div><div class='del'>-    them... (Jeff)</div><div class='del'>-</div><div class='del'>-  * Fixed various small SMTP bugs (Jeff, Chris Lahey)</div><div class='del'>-</div><div class='del'>-  * Fixed some memory leaks (Peter, Jeff)</div><div class='del'>-</div><div class='del'>-  * Make replies use the text/plain part of a multipart/alternative</div><div class='del'>-    if the user configured plain text rather than HTML mail sending.</div><div class='del'>-    (Dan)</div><div class='del'>-</div><div class='del'>-  * Various config dialog fixes (Jeff)</div><div class='del'>-</div><div class='del'>-  * Partial filter/vfolder GUI facelift (Jacob)</div><div class='head'>diff --git a/README b/README<br/>deleted file mode 100644<br/>index 3ad8162399..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/README?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>README</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,249 +0,0 @@</div><div class='del'>-Evolution is the integrated mail, calendar and address book</div><div class='del'>-distributed suite from Ximian, Inc.</div><div class='del'>-</div><div class='del'>-See http://www.ximian.com/apps/evolution.php3 for more information.</div><div class='del'>-</div><div class='del'>-Note that Evolution is still beta. This means it may delete all of</div><div class='del'>-your mail if you give it the chance.</div><div class='del'>-</div><div class='del'>-If you are using Evolution, you should subscribe to the Evolution</div><div class='del'>-mailing list. If you are interested in hacking on it, you should</div><div class='del'>-subscribe to the Evolution Hackers mailing list. Send mail to</div><div class='del'>-"evolution-request@ximian.com" or</div><div class='del'>-"evolution-hackers-request@ximian.com" with the word "subscribe" in</div><div class='del'>-the body of the message. If you are planning to work on any part of</div><div class='del'>-Evolution, please send mail to the mailing list first, to avoid</div><div class='del'>-duplicated effort (and to make sure that you aren't basing your work</div><div class='del'>-on interfaces that are expected to change).</div><div class='del'>-</div><div class='del'>-There are mailing list archives available at</div><div class='del'>-http://lists.ximian.com/archives/public/evolution/     and</div><div class='del'>-http://lists.ximian.com/archives/public/evolution-hackers/</div><div class='del'>-</div><div class='del'>-There is also an #evolution IRC channel on irc.gnome.org.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-IF IT DOESN'T WORK</div><div class='del'>-------------------</div><div class='del'>-</div><div class='del'>-Did you read the "How to build" section below?</div><div class='del'>-</div><div class='del'>-If the configure script complains that you don't have a library that</div><div class='del'>-you know you have installed, it usually means either that you've</div><div class='del'>-installed things into multiple prefixes (see the bits on GNOME_PATH</div><div class='del'>-below) or (if you're on Linux) that you installed the "foo" package</div><div class='del'>-but forgot the "foo-devel" or "foo-dev" packages.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-HOW TO BUILD EVOLUTION</div><div class='del'>-----------------------</div><div class='del'>-</div><div class='del'>-	*** READ THIS BEFORE YOU START BUILDING ANYTHING! ***</div><div class='del'>-</div><div class='del'>-Evolution depends on a large number of unreleased and rapidly-changing</div><div class='del'>-libraries. Some of these libraries in turn depend on other unreleased</div><div class='del'>-and rapidly-changing libraries.</div><div class='del'>-</div><div class='del'>-Building Evolution is HARD, and it's going to stay hard until all of</div><div class='del'>-the libraries it depends on stabilize, and there's nothing we can do</div><div class='del'>-to make it any easier until then.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GENERAL PRINCIPLES</div><div class='del'>-------------------</div><div class='del'>-</div><div class='del'>-First you have to decide whether you want to install Evolution (and</div><div class='del'>-its dependencies) into the same prefix as the rest of your GNOME</div><div class='del'>-install, or into a new prefix. Installing everything into the same</div><div class='del'>-prefix as the rest of your GNOME install will make it much easier to</div><div class='del'>-build and run programs, and easier to switch between using packages</div><div class='del'>-and building it yourself, but it may also make it harder to uninstall</div><div class='del'>-later.</div><div class='del'>-</div><div class='del'>-If you want to install into the same prefix as the rest of GNOME,</div><div class='del'>-type:</div><div class='del'>-</div><div class='del'>-	gnome-config --prefix</div><div class='del'>-	gnome-config --sysconfdir</div><div class='del'>-</div><div class='del'>-and remember the answers, and pass them to "configure" or "autogen.sh"</div><div class='del'>-when building the other packages you need. For example:</div><div class='del'>-</div><div class='del'>-	./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib</div><div class='del'>-</div><div class='del'>-    --localstatedir is needed to make the docs integrate with scrollkeeper</div><div class='del'>-    and needs to point to the directory containing the scrollkeeper indices</div><div class='del'>-    which are in: gnome-config --localstatedir</div><div class='del'>-</div><div class='del'>-If you build in another prefix instead, you will need to set the</div><div class='del'>-GNOME_PATH environment variable (and ACLOCAL_FLAGS as well if building</div><div class='del'>-from CVS) to include the prefix you install into. For example:</div><div class='del'>-</div><div class='del'>-        export GNOME_PATH=/usr/local</div><div class='del'>-	export ACLOCAL_FLAGS="-I /usr/local/share/aclocal"</div><div class='del'>-</div><div class='del'>-(Assuming your shell is bash, and you installed into /usr/local.) You</div><div class='del'>-need to set GNOME_PATH both during compiling AND when you run</div><div class='del'>-evolution. Remember also that if you're installing into an odd prefix</div><div class='del'>-such as /evolution, that you also need to make sure to put</div><div class='del'>-${prefix}/bin in your PATH and ${prefix}/lib in your LD_LIBRARY_PATH.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-DEPENDENCIES</div><div class='del'>-------------</div><div class='del'>-</div><div class='del'>-The following required libraries are available in GNOME CVS, under the</div><div class='del'>-given names.  Most (but not all) of them are also available as</div><div class='del'>-tarballs on ftp.gnome.org.  The (*)ed packages are available in Ximian</div><div class='del'>-GNOME ( http://www.ximian.com/desktop/ ).  Other packages may be</div><div class='del'>-available from the Ximian GNOME evolution preview mirror.</div><div class='del'>-</div><div class='del'>-If installing from packages, remember that you need both the runtime</div><div class='del'>-and -devel packages for each library.</div><div class='del'>-</div><div class='del'>- - xml-i18n-tools - latest from xml-i18n-tools-stable-1-x branch in</div><div class='del'>-   GNOME CVS (0.8.2 is too old)</div><div class='del'>-</div><div class='del'>- - scrollkeeper - 0.1.4 or later (*)</div><div class='del'>-</div><div class='del'>- - gnome-xml - 1.8.10 or later in the 1.0 series, but not from the 2.0</div><div class='del'>-   series (If you get this from GNOME CVS, use the tag "LIB_XML_1_BRANCH".)</div><div class='del'>-   (*)</div><div class='del'>-</div><div class='del'>- - gnome-print - 0.25 or later (*)</div><div class='del'>-</div><div class='del'>- - gdk-pixbuf - 0.9.0 or later (*)</div><div class='del'>-</div><div class='del'>- - ORBit - 0.5.8 or later (*) (If you get this from GNOME CVS, use the</div><div class='del'>-   tag "orbit-stable-0-5".)</div><div class='del'>-</div><div class='del'>- - oaf - 0.6.2 or later (If you get this from GNOME CVS, use the tag</div><div class='del'>-   "oaf-stable-0-6")</div><div class='del'>-</div><div class='del'>-   *** If you are using oaf from CVS, you should use the flag</div><div class='del'>-   *** "--disable-more-warnings" when configure, or it may fail to</div><div class='del'>-   *** build.</div><div class='del'>-</div><div class='del'>- - gconf - 0.6 or later.</div><div class='del'>-</div><div class='del'>- - gnome-vfs - 1.0.0 or later (If you get this from GNOME CVS, use</div><div class='del'>-   the tag "gnome-vfs-1-0")</div><div class='del'>-</div><div class='del'>-   *** If you are using gnome-vfs from CVS, you should use the flag</div><div class='del'>-   *** "--disable-more-warnings" when configuring, or it may fail to</div><div class='del'>-   *** build.</div><div class='del'>-</div><div class='del'>- - libglade - 0.14 or later</div><div class='del'>-</div><div class='del'>- - bonobo - 1.0.3 or later</div><div class='del'>-</div><div class='del'>-   *** Note that bonobo must be installed with the same --prefix as</div><div class='del'>-   *** either gnome-libs or evolution for the Makefiles to work</div><div class='del'>-   *** properly.</div><div class='del'>-</div><div class='del'>- - gal (GNOME Application Library) - 0.11.99.2 or later</div><div class='del'>-</div><div class='del'>- - gtkhtml - later than 0.11.0</div><div class='del'>-</div><div class='del'>-Other non-GNOME Dependencies:</div><div class='del'>-</div><div class='del'>- - Berkeley's libdb - 3.1.17</div><div class='del'>-</div><div class='del'>-   db3 is available from http://www.sleepycat.com. Make sure to get</div><div class='del'>-   3.1.17, it isn't the latest version.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-COMPILING BERKELEY DB</div><div class='del'>----------------------</div><div class='del'>-</div><div class='del'>-If you don't have 3.1.17 installed on your system or Evolution doesn't</div><div class='del'>-detect it for some reason, here is a way to get Evolution to link to</div><div class='del'>-it without messing up your system installation.</div><div class='del'>-</div><div class='del'>-� * Get the Sleepycat tarball from:</div><div class='del'>-</div><div class='del'>-����� http://www.sleepycat.com/update/3.1.17/db-3.1.17.tar.gz</div><div class='del'>-</div><div class='del'>-� * Install the content somewhere _other_ than the evolution source tree.</div><div class='del'>-���  e.g: NOT evolution/db-3.1.17</div><div class='del'>-</div><div class='del'>-� * Compile according to instructions, but installing into some custom</div><div class='del'>-��� prefix, for example:</div><div class='del'>-</div><div class='del'>-����� ../dist/configure --prefix=/home/user/berkeleydb-3.1.17</div><div class='del'>-</div><div class='del'>-� * Autogen Evolution specifying that it has to look for the DB</div><div class='del'>-��� library there, for example:</div><div class='del'>-</div><div class='del'>-����� ./autogen.sh --prefix=/opt/gnome</div><div class='del'>-����� --with-db3-includes=/home/user/berkeleydb-3.1.17/include</div><div class='del'>-����� --with-db3-libs=/home/user/berkeleydb-3.1.17/lib</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-COMPILING PALM PILOT SUPPORT</div><div class='del'>-----------------------------</div><div class='del'>-</div><div class='del'>-If you want support for PalmPilot syncing (currently experimental so</div><div class='del'>-please back up your pilot) you will also need to do the following:</div><div class='del'>-</div><div class='del'>-1) pilot-link 0.9.5</div><div class='del'>-http://www.pilot-link.org</div><div class='del'>-</div><div class='del'>-2) gnome-pilot 0.1.61</div><div class='del'>-http://www.eskil.org/gnome-pilot/</div><div class='del'>-</div><div class='del'>-3) evolution</div><div class='del'>-In your evolution source directory do ./autogen.sh --prefix=&lt;evo-prefix&gt; </div><div class='del'>---with-pisock=&lt;pilot-link-prefix&gt; --enable-pilot-conduits=yes</div><div class='del'>-make</div><div class='del'>-make install</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-SSL SUPPORT</div><div class='del'>------------</div><div class='del'>-</div><div class='del'>-If you want SSL support (and someday S/MIME), you will also need libnspr4 and</div><div class='del'>-libnss3 which can be found at http://www.mozilla.org.</div><div class='del'>-</div><div class='del'>-Once you have libnspr4 and libnss3 (and their respective includes) installed,</div><div class='del'>-in your evolution source directory do:</div><div class='del'>-./autogen.sh --prefix=&lt;evo-prefix&gt; --with-nspr-includes=&lt;nspr-includes-prefix&gt;</div><div class='del'>---with-nspr-libs=&lt;nspr-libs-prefix&gt; --with-nss-includes=&lt;nss-includes-prefix&gt;</div><div class='del'>---with-nss-libs=&lt;nss-libs-prefix&gt;</div><div class='del'>-</div><div class='del'>-You'll need to `cp ~/.mozilla/default/*.db ~/evolution` on you've</div><div class='del'>-installed Evolution in order to get a functional SSL-enabled</div><div class='del'>-Evolution.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-SOURCE TREE LAYOUT</div><div class='del'>-------------------</div><div class='del'>-</div><div class='del'>-addressbook:	the Address Book UI</div><div class='del'>-art:		graphics used by evolution</div><div class='del'>-calendar:	the Calendar UI</div><div class='del'>-camel:		libcamel, a messaging library used by the mailer.</div><div class='del'>-		Camel is inspired by Sun's JavaMail</div><div class='del'>-		(http://java.sun.com/products/javamail/) and the</div><div class='del'>-		IMAPv4 spec (RFC 2060).</div><div class='del'>-composer:	the message composer UI</div><div class='del'>-data:		the .desktop file for Evolution</div><div class='del'>-default_user:	initial Evolution config files for new users</div><div class='del'>-devel-docs:	entirely inadequate documentation</div><div class='del'>-doc:		more adequate documentation</div><div class='del'>-e-util:		utility code used by various parts of Evolution</div><div class='del'>-filter:		libfilter, a mail filtering library</div><div class='del'>-libibex:	an indexing library used by the mailer</div><div class='del'>-libical:	a library for the iCalendar format (RFC 2445-2446)</div><div class='del'>-libversit:	a library for the vCard (RFC 2425-2426) and vCalendar</div><div class='del'>-		(http://www.imc.org/pdi/vcal-10.txt) formats</div><div class='del'>-mail:		the mail display UI</div><div class='del'>-shell:		the Evolution shell (the main program that launches</div><div class='del'>-		the other components)</div><div class='del'>-tests:		some test programs</div><div class='del'>-tools:		utilities, notably "killev", a script to kill of all</div><div class='del'>-		of the Evolution components</div><div class='del'>-widgets:	widgets used by Evolution, including the shortcut bar</div><div class='del'>-wombat:		Has source code that will load in the addressbook</div><div class='del'>-		and calendar backend, and will form the server</div><div class='del'>-		process we'll be using</div><div class='head'>diff --git a/acconfig.h b/acconfig.h<br/>deleted file mode 100644<br/>index 3bc0c6d604..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/acconfig.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>acconfig.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,41 +0,0 @@</div><div class='del'>-#undef ENABLE_NLS</div><div class='del'>-#undef HAVE_CATGETS</div><div class='del'>-#undef HAVE_GETTEXT</div><div class='del'>-#undef HAVE_LC_MESSAGES</div><div class='del'>-#undef HAVE_STPCPY</div><div class='del'>-#undef HAVE_LIBSM</div><div class='del'>-#undef PACKAGE</div><div class='del'>-#undef VERSION</div><div class='del'>-#undef ENABLE_THREADS</div><div class='del'>-#undef SENDMAIL_PATH</div><div class='del'>-#undef SYSTEM_MAIL_DIR</div><div class='del'>-#undef HAVE_LDAP</div><div class='del'>-#undef HAVE_TIMEZONE</div><div class='del'>-#undef HAVE_TM_GMTOFF</div><div class='del'>-#undef HAVE_KRB4</div><div class='del'>-#undef NEED_KRB_SENDAUTH_PROTO</div><div class='del'>-#undef HAVE_KRB5</div><div class='del'>-#undef HAVE_NSS</div><div class='del'>-#undef HAVE_SSL</div><div class='del'>-#undef HAVE_OPENSSL</div><div class='del'>-#undef USE_DOT</div><div class='del'>-#undef USE_FCNTL</div><div class='del'>-#undef USE_FLOCK</div><div class='del'>-#undef ENABLE_NNTP</div><div class='del'>-#undef HAVE_BROKEN_SPOOL</div><div class='del'>-#undef ENABLE_PEDANTIC_PGPMIME</div><div class='del'>-#undef HAVE_KDE_APPLNK</div><div class='del'>-</div><div class='del'>-/* db3 version */</div><div class='del'>-#undef EVOLUTION_DB_VERSION_MAJOR</div><div class='del'>-#undef EVOLUTION_DB_VERSION_MINOR</div><div class='del'>-#undef EVOLUTION_DB_VERSION_PATCH</div><div class='del'>-</div><div class='del'>-/* Sub-version identification string.  */</div><div class='del'>-#undef SUB_VERSION</div><div class='del'>-</div><div class='del'>-/* Define if ctime_r takes three arguments */</div><div class='del'>-#undef CTIME_R_THREE_ARGS</div><div class='del'>-</div><div class='del'>-/* Define if gethostbyname_r takes five arguments */</div><div class='del'>-#undef GETHOSTBYNAME_R_FIVE_ARGS</div><div class='head'>diff --git a/addressbook/.cvsignore b/addressbook/.cvsignore<br/>deleted file mode 100644<br/>index 09980ae6ba..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='head'>diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog<br/>deleted file mode 100644<br/>index 9cce046894..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/ChangeLog?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/ChangeLog</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9735 +0,0 @@</div><div class='del'>-2001-10-24  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(e_addressbook_view_class_init): Removed key_press handler here</div><div class='del'>-	since delete and backspace are now handled by keybindings.</div><div class='del'>-</div><div class='del'>-2001-10-23  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Fix command paths when we specify</div><div class='del'>-	our pixmaps, so we don't get a lot of totally useless &amp; very ugly</div><div class='del'>-	bonobo-ui spew.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c (e_book_nickname_query): The empty</div><div class='del'>-	string as an arg shouldn't generate a warning.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c: Removed</div><div class='del'>-	our cancelled flag and e_select_names_completion_cancel function,</div><div class='del'>-	since we were just duplicating stuff that had ended up in</div><div class='del'>-	ECompletion.</div><div class='del'>-	(match_name): Form our menu_text properly on an additional-name</div><div class='del'>-	match.</div><div class='del'>-	(e_select_names_completion_got_book_view_cb): Store handles for</div><div class='del'>-	our signals, disconnect them properly when we switch book views.</div><div class='del'>-	(e_select_names_completion_stop_query): Disconnect signals when we</div><div class='del'>-	stop our query.</div><div class='del'>-	(check_capabilities): Spew if we are using LDAP for completion.</div><div class='del'>-	(e_select_names_completion_destroy): Disconnect our signals when</div><div class='del'>-	we destroy.</div><div class='del'>-	This all should fix bug #10241.</div><div class='del'>-</div><div class='del'>-2001-10-23  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_add_section): Set "draw_button" argument to TRUE</div><div class='del'>-	on this EEntry.</div><div class='del'>-</div><div class='del'>-2001-10-22  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-save-as.c (save_it): Put up an</div><div class='del'>-	error dialog if there's an error while saving.  If the person hits</div><div class='del'>-	cancel on the "file exists" dialog, don't close the file selection</div><div class='del'>-	dialog.  Fixes Ximian bug #7055.</div><div class='del'>-</div><div class='del'>-2001-10-21  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c</div><div class='del'>-	(model_and_selection_free): right_click_up here when we let go of</div><div class='del'>-	the popup.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_selection_event):</div><div class='del'>-	right_click_up here.</div><div class='del'>-</div><div class='del'>-2001-10-21  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_add_section, e_select_names_set_default): Use an</div><div class='del'>-	EEntry here instead of a GtkLabel.  Fixes Ximian bug #7067.</div><div class='del'>-</div><div class='del'>-2001-10-21  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate_cb): Call</div><div class='del'>-	e_addressbook_model_force_folder_bar_message when we activate the</div><div class='del'>-	component. (Fixes bug #11749)</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c</div><div class='del'>-	(e_addressbook_model_force_folder_bar_message): Added.  Forces</div><div class='del'>-	emission of a folder_bar_message.</div><div class='del'>-</div><div class='del'>-2001-10-20  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_set_default): stick with the style font if the</div><div class='del'>-	efont bold font does not exist.	</div><div class='del'>-	(e_select_names_set_default): don't forget to unref the oldstyle.</div><div class='del'>-</div><div class='del'>-2001-10-20  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(name_style_query): Fix memory leak.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (jump_to_letter): Free our</div><div class='del'>-	string vector letter_v when we are done with it.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (edit_card): Unref our</div><div class='del'>-	QuickAdd structure.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c (e_address_popup_construct):</div><div class='del'>-	Unref our style after we are done with it.</div><div class='del'>-</div><div class='del'>-2001-10-20  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (activate_factories_for_uri): We</div><div class='del'>-	shouldn't leak the info returned by oaf_query.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (card_added_cb): Remove</div><div class='del'>-	superfluous call to quick_add_unref.</div><div class='del'>-	(editor_closed_cb): Remove superfluous call to quick_add_unref.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (esn_get_key_fn): We</div><div class='del'>-	need to unref the card returned by e_addressbook_model_get_card.</div><div class='del'>-</div><div class='del'>-2001-10-20  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Make LDAP servers</div><div class='del'>-	non-user-creatable.</div><div class='del'>-</div><div class='del'>-2001-10-20  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c (e_contact_print_card): Check that the</div><div class='del'>-	string we are checking for xml-ness is non-NULL.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_importv): Filter</div><div class='del'>-	out empty destinations. (also Bug #13036)</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c (e_contact_build_style): Use</div><div class='del'>-	gnome_font_new_closest; if gnome_font_new fails and returns NULL,</div><div class='del'>-	our spacing gets all messed up. (Bug #10785)</div><div class='del'>-	</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_can_print):</div><div class='del'>-	Allow printing if there are any cards in our view.  The selection</div><div class='del'>-	has nothing to do with it.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_is_empty): Check</div><div class='del'>-	for strings that contain non-whitespace, rather than just looking</div><div class='del'>-	for a non-zero first character. (Bug #13036)</div><div class='del'>-</div><div class='del'>-2001-10-20  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_selection_event):</div><div class='del'>-	Handle focus_change in event by selecting that contact.  Fixes</div><div class='del'>-	Ximian bug #3024.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (owner_unset_cb):</div><div class='del'>-	Repeatedly call gtk_main_quit here as long as there is a main loop</div><div class='del'>-	around.  This is an ugly hack around Ximian bug #11760.</div><div class='del'>-</div><div class='del'>-2001-10-20  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Added #include</div><div class='del'>-	&lt;gal/widgets/e-unicode.h&gt;.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-control.c: Made this display the number</div><div class='del'>-	of extra cards in the attachment as well as made it save them all</div><div class='del'>-	to the local addressbook if the person selects the button.  Fixes</div><div class='del'>-	Ximian bug #9507.</div><div class='del'>-</div><div class='del'>-2001-10-20  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): Changed this to not</div><div class='del'>-	grab on a right click.  Fixes Ximian bug #12660.</div><div class='del'>-</div><div class='del'>-2001-10-19  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c</div><div class='del'>-	(destination_folder_handle_motion): Get @folder_type here too [to</div><div class='del'>-	match the changes in the EvolutionShellComponentDnd interface].</div><div class='del'>-	Also, remove a debugging message.</div><div class='del'>-	(destination_folder_handle_drop): Likewise.</div><div class='del'>-</div><div class='del'>-2001-10-18  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (add_menu_item):</div><div class='del'>-	Translate labels in select-names option menu. (Bug #9604)</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c</div><div class='del'>-	(e_addressbook_search_dialog_init): Made the default window size</div><div class='del'>-	slightly wider. (Bug #7516)</div><div class='del'>-</div><div class='del'>-2001-10-18  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h</div><div class='del'>-	(e_card_list_get_vcard): Made this take a const GList.</div><div class='del'>-</div><div class='del'>-2001-10-18  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(check_capabilities): Added.  Check if our book is local or</div><div class='del'>-	networked.</div><div class='del'>-	(e_select_names_completion_book_ready): Call check_capabilities.</div><div class='del'>-	(e_select_names_completion_new): Call check_capabilities.</div><div class='del'>-	(e_select_names_completion_do_query): If we have a networked book,</div><div class='del'>-	keep trying if we haven't been able to cache any cards --- our</div><div class='del'>-	earlier attempts could have failed due to too many matches. (Bug</div><div class='del'>-	#12932)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(focus_out_cb): Lag our cardification on focus-out.  This seems to</div><div class='del'>-	help with the unintended cardifications that can result from the</div><div class='del'>-	weird focus-out/focus-in events that get generated when the popup</div><div class='del'>-	disappears.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c: Removed some debug spew.</div><div class='del'>-</div><div class='del'>-2001-10-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c (addressbook_source_dialog):</div><div class='del'>-	grab focus in the Account entry when preparing the dialog, fixes</div><div class='del'>-	#10406.</div><div class='del'>-</div><div class='del'>-2001-10-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (new_folder): make</div><div class='del'>-	sure to also add "ldap-contacts" folders to the option menu.</div><div class='del'>-</div><div class='del'>-2001-10-17  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (ecard_from_remote_record): sync all</div><div class='del'>-	the fields we can, with out overwriting</div><div class='del'>-	(local_record_from_ecard): write the fields to the pilot in</div><div class='del'>-	priority order unless there are fields on the pilot we can't</div><div class='del'>-	store, then fill in the fields as they are on the pilot</div><div class='del'>-</div><div class='del'>-2001-10-17  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_get_vobject): Did a bit of clean</div><div class='del'>-	up here.  Might fix some crashes, specifically Ximian bug #10164.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (SPEC): Updated the model</div><div class='del'>-	column numbers here.  Fixes Ximian bug #12308.</div><div class='del'>-</div><div class='del'>-2001-10-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_upgrade_db):</div><div class='del'>-	add upgrade from 0.1 to 0.2, where we make sure id dbt's match</div><div class='del'>-	vcard id's, fixes longstanding bug (#7406) where cards were not</div><div class='del'>-	modifiable or removable after having been created during a 1-2</div><div class='del'>-	week long window in early betas.</div><div class='del'>-	(PAS_BACKEND_FILE_VERSION): change to 0.2</div><div class='del'>-	(PAS_ID_PREFIX): #define this here.</div><div class='del'>-	(pas_backend_file_create_unique_id): use PAS_ID_PREFIX instead of</div><div class='del'>-	the string.</div><div class='del'>-</div><div class='del'>-2001-10-16  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-ldif-importer.c (support_format_fn): Return</div><div class='del'>-	FALSE if no extension.</div><div class='del'>-</div><div class='del'>-2001-10-16  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_get_id): If card-&gt;id is NULL,</div><div class='del'>-	return an empty string.</div><div class='del'>-	(e_card_set_id): Don't allow the card id to be set to NULL; use</div><div class='del'>-	the empty string instead.</div><div class='del'>-	(e_card_get_vobject): When building our vcard, pass in the empty</div><div class='del'>-	string as the id if card-&gt;id is NULL. (Bug #10164)</div><div class='del'>-</div><div class='del'>-2001-10-16  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_ecard): don't set</div><div class='del'>-	the phone info if it is blank</div><div class='del'>-	(ecard_from_remote_record): save up to 3 fax numbers</div><div class='del'>-</div><div class='del'>-2001-10-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):</div><div class='del'>-	unref the book after we pass it off to evolution-addressbook.</div><div class='del'>-</div><div class='del'>-2001-10-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (create_card_dtor): unref</div><div class='del'>-	op-&gt;view.</div><div class='del'>-	(pas_backend_ldap_process_create_card): ref op-&gt;view.</div><div class='del'>-	(remove_card_dtor): unref op-&gt;view.</div><div class='del'>-	(pas_backend_ldap_process_remove_card): ref op-&gt;view.</div><div class='del'>-	(modify_card_dtor): unref op-&gt;view.</div><div class='del'>-	(pas_backend_ldap_process_modify_card): ref op-&gt;view.</div><div class='del'>-	(ldap_search_dtor): unref op-&gt;view.</div><div class='del'>-	(pas_backend_ldap_search): ref op-&gt;view.</div><div class='del'>-</div><div class='del'>-2001-10-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-	</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_process_get_book_view): make sure to unref the</div><div class='del'>-	book_view here so we don't leak them.</div><div class='del'>-</div><div class='del'>-2001-10-12  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): call</div><div class='del'>-	e_passwords_init and e_passwords_shutdown.</div><div class='del'>-</div><div class='del'>-2001-10-15  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (addPropValueQP, addPropValueSets,</div><div class='del'>-	e_card_get_vobject): Properly decide whether a property needs to</div><div class='del'>-	be marked as QP by searching for '\n'.  Fixes Ximian bug #3021.</div><div class='del'>-</div><div class='del'>-2001-10-15  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-save-as.c (e_contact_save_as,</div><div class='del'>-	e_contact_list_save_as): Set the default file name here.  Fixes</div><div class='del'>-	Ximian bug #7053.</div><div class='del'>-</div><div class='del'>-2001-10-14  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_hookup_shell_listeners): Added linebreaks to our</div><div class='del'>-	"this shouldn't happen" dialog message. (Bug #12498)</div><div class='del'>-</div><div class='del'>-2001-10-12  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Add a component name</div><div class='del'>-	to the e_passwords_init() call.</div><div class='del'>-</div><div class='del'>-2001-10-12  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-ldif-importer.c: commit the importer</div><div class='del'>-	originally from Michael M. Morrison, with fixups by toshok.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (bin_PROGRAMS): add</div><div class='del'>-	evolution-ldif-importer.</div><div class='del'>-	(oaf_in_files): add</div><div class='del'>-	GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.h: add WANTS_HTML and IS_LIST.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (field_data): add WANTS_HTML and</div><div class='del'>-	IS_LIST.</div><div class='del'>-	(e_card_simple_set): fix typo.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/.cvsignore: ignore</div><div class='del'>-	GNOME_Evolution_Addressbook_LDIF_Importer.oaf and</div><div class='del'>-	evolution-ldif-importer.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in:</div><div class='del'>-	ldif importer oafinfo.</div><div class='del'>-</div><div class='del'>-2001-10-12  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Added a boolean type here.</div><div class='del'>-</div><div class='del'>-2001-10-12  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(addressbook_model_set_uri): Check to see if the uri we are</div><div class='del'>-	setting is the same as the current uri.  If so, do nothing.</div><div class='del'>-	(Bug #11324)</div><div class='del'>-</div><div class='del'>-2001-10-11  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c</div><div class='del'>-	(e_destination_reverting_is_a_good_idea): Added.  Heuristic for</div><div class='del'>-	whether or not we want to revert to an earlier cardified state.</div><div class='del'>-	(e_destination_cardify): Don't be quite as aggressive about</div><div class='del'>-	reverting to previous cardified states. (Bug #11890)</div><div class='del'>-</div><div class='del'>-2001-10-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (e_card_simple_destroy,</div><div class='del'>-	fill_in_info, e_card_simple_sync_card, e_card_simple_set_phone,</div><div class='del'>-	e_card_simple_set_address, e_card_simple_set_delivery_address,</div><div class='del'>-	file_as_get_style, file_as_set_style, e_card_simple_set,</div><div class='del'>-	e_card_simple_set_arbitrary),</div><div class='del'>-	gui/contact-editor/e-contact-editor-address.c</div><div class='del'>-	(e_contact_editor_address_destroy,</div><div class='del'>-	e_contact_editor_address_set_arg,</div><div class='del'>-	e_contact_editor_address_get_arg),</div><div class='del'>-	gui/contact-editor/e-contact-editor-fullname.c</div><div class='del'>-	(e_contact_editor_fullname_destroy,</div><div class='del'>-	e_contact_editor_fullname_set_arg,</div><div class='del'>-	e_contact_editor_fullname_get_arg),</div><div class='del'>-	gui/contact-editor/e-contact-editor.c (phone_entry_changed,</div><div class='del'>-	address_text_changed, name_entry_changed, full_name_clicked,</div><div class='del'>-	full_addr_clicked, fill_in_info): Changed these to use the new ref</div><div class='del'>-	and unref functions for ECard auxillary types.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.h: Added a comment.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-types.h: Added ref_count field to all the</div><div class='del'>-	types.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added ref and</div><div class='del'>-	unref functions here for all the ECard auxillary types.  Removed</div><div class='del'>-	the corresponding free functions.  Switched to using these</div><div class='del'>-	functions where appropriate.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c: #include</div><div class='del'>-	&lt;e-util/e-passwords.h&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (load_uri_cb): const correctify.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c,</div><div class='del'>-	gui/component/select-names/e-select-names.c: #include</div><div class='del'>-	&lt;addressbook/gui/component/addressbook.h&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (modify_card): Removed an</div><div class='del'>-	unnecessary ref here.</div><div class='del'>-</div><div class='del'>-2001-10-11  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (update_folder):</div><div class='del'>-	Don't need this any more.</div><div class='del'>-</div><div class='del'>-2001-10-11  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_contact_cb): Check that</div><div class='del'>-	view-&gt;view != NULL.</div><div class='del'>-	(save_contact_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(search_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(delete_contact_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(print_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(print_preview_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(stop_loading_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(cut_contacts_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(copy_contacts_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(paste_contacts_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(select_all_contacts_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(send_contact_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(send_contact_to_cb): Check that view-&gt;view != NULL.</div><div class='del'>-	(update_command_state): Check that view-&gt;view != NULL.  Hold a</div><div class='del'>-	reference to the AddressbookView for the duration of the function,</div><div class='del'>-	in case we exit during bonobo-reentrancy.</div><div class='del'>-	(addressbook_view_ref): Added.</div><div class='del'>-	(addressbook_view_unref): Added.  Simple ref counting for</div><div class='del'>-	AddressbookView objects.</div><div class='del'>-	(addressbook_view_clear): Zero out an AddressbookView.  This is</div><div class='del'>-	now separated from the deallocation of the AddressbookView object,</div><div class='del'>-	so that we don't leave a dangling pointer if we exit during</div><div class='del'>-	bonobo-reentrancy in update_command_state. (Which often seems to</div><div class='del'>-	happen if we exit while addressbook operations are going on.)</div><div class='del'>-	(destroy_callback): Replace previous call to addressbook_view_free</div><div class='del'>-	with addressbook_view_clear/addressbook_view_unref calls.</div><div class='del'>-	(addressbook_factory_new_control): Initialize the reference count</div><div class='del'>-	in the AddressbookView object.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_destroy):</div><div class='del'>-	Carefully zero out our destroyed object.</div><div class='del'>-	(command_state_change): Hold a reference to ourselves during the</div><div class='del'>-	signal emission.</div><div class='del'>-	(get_selected_cards): Ref cards as we add them to the list.</div><div class='del'>-	(e_addressbook_view_stop): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_create): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_print): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_save_as): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_send): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_send_to): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_delete): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_cut): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_copy): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_paste): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_select_all): Check for view != NULL.</div><div class='del'>-	(e_addressbook_view_can_stop): Check for view != NULL.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (addressbook_destroy): Be</div><div class='del'>-	careful about zeroing out our destroyed object.</div><div class='del'>-	</div><div class='del'>-	* backend/ebook/e-book-view.c (e_book_view_stop): Added.  Stops</div><div class='del'>-	event processing in the underlying listener.</div><div class='del'>-</div><div class='del'>-2001-10-10  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_destroy): If our select names dialog is</div><div class='del'>-	still around, destroy it.  Otherwise, the dialog will hang around</div><div class='del'>-	after our composer goes away.</div><div class='del'>-</div><div class='del'>-2001-10-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.glade: add an Email Address</div><div class='del'>-	field/label/help text.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c</div><div class='del'>-	(addressbook_source_dialog_set_source): fill in the email entry</div><div class='del'>-	from the source.  also, set the initial state of the email</div><div class='del'>-	label/entry.</div><div class='del'>-	(auth_checkbutton_changed): set the email label/entry</div><div class='del'>-	sensitive/editable if auth is turned on, and</div><div class='del'>-	insensitive/uneditable if it's off.</div><div class='del'>-	(addressbook_source_dialog_get_source): get the email address from</div><div class='del'>-	the email entry.</div><div class='del'>-	(addressbook_source_dialog): hook up the email entry to the</div><div class='del'>-	changed signal foo, as well as the focus handler for displaying</div><div class='del'>-	help text.</div><div class='del'>-</div><div class='del'>-2001-10-06  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_new): db isn't a BonoboObject, so don't</div><div class='del'>-	bonobo_object_unref it!</div><div class='del'>-</div><div class='del'>-2001-10-05  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(addressbook_model_set_uri): e_book_load_uri -&gt;</div><div class='del'>-	addressbook_load_uri.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_new): e_book_load_uri -&gt;</div><div class='del'>-	addressbook_load_uri.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (forget_passwords_cb): new function,</div><div class='del'>-	call e_passwords_forget_passwords.</div><div class='del'>-	(verbs): Add ContactsForgetPasswords.</div><div class='del'>-	(load_uri_auth_cb): new function, call the callback and free up</div><div class='del'>-	our closure stuff.</div><div class='del'>-	(load_uri_cb): once the uri is loaded, check if we're configured</div><div class='del'>-	to authenticate for it, and do so, using the e_passwords stuff.</div><div class='del'>-	(addressbook_load_uri): wrapper around e_book_load_uri.  save off</div><div class='del'>-	the parameters and start the load-with-auth machinery.</div><div class='del'>-	(book_open_cb): remove all the auth stuff from here, as it's</div><div class='del'>-	handled elsewhere now.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): call</div><div class='del'>-	e_passwords_init.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (user_create_new_item_cb):</div><div class='del'>-	e_book_load_uri -&gt; addressbook_load_uri.</div><div class='del'>-	(destination_folder_handle_drop): same.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.h: add prototype for</div><div class='del'>-	addressbook_load_uri (a wrapper around e_book_load_uri that also</div><div class='del'>-	handles authentication if the user selects it.)</div><div class='del'>-</div><div class='del'>-2001-10-05  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(real_add_address_cb): Check to make sure our call to</div><div class='del'>-	e_addressbook_model_get_card doesn't return NULL.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c</div><div class='del'>-	(e_addressbook_model_get_card): Chek that we aren't requesting a</div><div class='del'>-	negative row.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c (add_email_cb):</div><div class='del'>-	Move to the bottom of the scrolled window, so we can see the</div><div class='del'>-	address we just added.</div><div class='del'>-	(table_drag_data_received_cb): Move to the bottom of the scrolled</div><div class='del'>-	window, so we can see the contact we just dropped.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	We don't own the string returned by e_categories_master_list_nth,</div><div class='del'>-	so terrible things will happen if we free it. (Bug 10916)</div><div class='del'>-</div><div class='del'>-2001-10-05  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_set_arg):</div><div class='del'>-	don't set the editable field on the model - let the book do that.</div><div class='del'>-	(book_writable_cb): call writable_status to propagate a ui-change</div><div class='del'>-	event up (and sensitize the write-only toolbar buttons after you</div><div class='del'>-	authenticate with ldap.)</div><div class='del'>-</div><div class='del'>-2001-10-04  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (activate_factories_for_uri): for some</div><div class='del'>-	reason, matching on protocol is causing problems for me.</div><div class='del'>-	disabling it for now.</div><div class='del'>-</div><div class='del'>-2001-10-04  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: use ldap.png for ldap</div><div class='del'>-	contacts.</div><div class='del'>-</div><div class='del'>-2001-10-03  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook-storage.c </div><div class='del'>-	(addressbook_storage_setup): Only load_storages if you have LDAP.</div><div class='del'>-	(load_source_data): Only do stuff if you have LDAP.</div><div class='del'>-</div><div class='del'>-2001-10-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c (addressbook_height),</div><div class='del'>-	gui/widgets/e-minicard.c (remodel): Fixed these to determine the</div><div class='del'>-	fields to use properly.</div><div class='del'>-</div><div class='del'>-2001-10-02  Jon Trowbridge  &lt;trow@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(name_style_query): Strip out commas before forming our query.</div><div class='del'>-	(match_name): Use e_card_compare_name_to_string_full, rather</div><div class='del'>-	than our crufty old matching code.  Not only is this cleaner,</div><div class='del'>-	but that crufty old code was very broken when it came to </div><div class='del'>-	handling strings with whitespace. (Bug 8988)</div><div class='del'>-	(match_nickname): utf8 and bug fixes.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c</div><div class='del'>-	(e_card_compare_name_to_string_full): Added.  This is basically</div><div class='del'>-	e_card_compare_name_to_string with a bunch of extra options, so</div><div class='del'>-	that it can more readily be reused in other contexts.</div><div class='del'>-	(e_card_compare_name_to_string): This is now just a call to</div><div class='del'>-	e_card_compare_name_to_string_full with the extra args filled in</div><div class='del'>-	to defaults that simulate the old behavior.</div><div class='del'>-</div><div class='del'>-2001-10-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-        * backend/ebook/e-book.c (e_book_construct): remove most of the</div><div class='del'>-	oaf stuff from here.  we do it in load_uri, where we'll have more</div><div class='del'>-	information (namely, the protocol we're using.)</div><div class='del'>-	(activate_factories_for_uri): do an oaf query to get a list of all</div><div class='del'>-	objects implementing our BookFactory interface and also supporting</div><div class='del'>-	the protocol used in the uri.</div><div class='del'>-        (e_book_load_uri): try activating book factories to handle this</div><div class='del'>-	uri, and start the iteration over the list.</div><div class='del'>-        (e_book_load_uri_from_factory): try and load the uri.</div><div class='del'>-        (e_book_load_uri_open_cb): callback function for the</div><div class='del'>-	BookFactory_openBook call - if it succeeds, call the user's</div><div class='del'>-	callback.  otherwise step to the next factory.</div><div class='del'>-        (e_book_load_uri_step): go to the next factory in our list, and</div><div class='del'>-	error out if there are no more.</div><div class='del'>-	</div><div class='del'>-2001-10-02  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_get_textification): Made the max length of</div><div class='del'>-	the textification be 2047 characters.  Fixes Ximian bug #3021.</div><div class='del'>-</div><div class='del'>-2001-10-01  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (ecard_from_remote_record): if there</div><div class='del'>-	was no first name or last name, file as the company.</div><div class='del'>-</div><div class='del'>-2001-10-01  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-	</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_changes_foreach_key): if there is a db error,</div><div class='del'>-	assume deletion</div><div class='del'>-	(pas_backend_file_changes): write after all is done for efficiency</div><div class='del'>-</div><div class='del'>-2001-09-28  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_changes_foreach_key): g_strdup</div><div class='del'>-	(pas_backend_file_changes): ditto, make sure to free all data and</div><div class='del'>-	do a hash write after each add/remove</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_to_pilot_record): use</div><div class='del'>-	the local record category</div><div class='del'>-	(local_record_from_ecard): ndle the fields and category we don't</div><div class='del'>-	sync by making sure we don't overwrite them</div><div class='del'>-</div><div class='del'>-2001-09-27  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_construct): do an oaf query to</div><div class='del'>-	get a list of all objects implementing our BookFactory interface,</div><div class='del'>-	instead of just activating the one IID.  this should really be a</div><div class='del'>-	global list, not a per EBook.</div><div class='del'>-	(e_book_load_uri): start the iteration over our list of</div><div class='del'>-	BookFactory's.</div><div class='del'>-	(e_book_load_uri_from_factory): try and load the uri.</div><div class='del'>-	(e_book_load_uri_open_cb): callback function for the</div><div class='del'>-	BookFactory_openBook call - if it succeeds, call the user's</div><div class='del'>-	callback.  otherwise step to the next factory.</div><div class='del'>-	(e_book_load_uri_step): go to the next factory in our list, and</div><div class='del'>-	error out if there are no more.</div><div class='del'>-</div><div class='del'>-2001-09-27  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_ecard): use the old</div><div class='del'>-	record (if there was one) so as not to overwrite fields we don't</div><div class='del'>-	sync</div><div class='del'>-	(pre_sync): store the dbi in the context and don't make it object</div><div class='del'>-	data</div><div class='del'>-</div><div class='del'>-2001-09-26  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c (pas_book_factory_destroy): use</div><div class='del'>-	priv-&gt;iid instead of the hardcoded string here.</div><div class='del'>-	(pas_book_factory_activate): parameterize the factory's iid, as in</div><div class='del'>-	the calendar server, and provide a default if iid == NULL.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.h: add iid parameter for</div><div class='del'>-	pas_book_factory_activate.</div><div class='del'>-</div><div class='del'>-2001-09-26  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_textrep): Use</div><div class='del'>-	camel_address_format, not camel_address_encode.</div><div class='del'>-</div><div class='del'>-2001-09-26  Anna Marie Dirks  &lt;anna@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/contact-editor.glade: Added help text (thanks </div><div class='del'>-	to Aaron) and re-worded the labels, and fixed the shortcuts on the </div><div class='del'>-	brand-spanking-new Collaboration tab.</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-2001-09-26  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.h: add</div><div class='del'>-	completion_book.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_new): get /Addressbook/Completion/uri, and</div><div class='del'>-	if it's present, use the corresponding EBook for completing</div><div class='del'>-	addresses.</div><div class='del'>-	(focus_out_cb): use manager-&gt;completion_book here instead of NULL,</div><div class='del'>-	which corresponds to the local addressbook.</div><div class='del'>-	(completion_popup_cb): same.</div><div class='del'>-	(e_select_names_manager_create_entry): same.</div><div class='del'>-</div><div class='del'>-2001-09-26  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (e_card_compare_name_to_string):</div><div class='del'>-	Properly handle names when the individual elements (given,</div><div class='del'>-	addition, family) contain whitespace.  (Bug #10502)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_set_name): Reset</div><div class='del'>-	textrep when we change the name.</div><div class='del'>-	(e_destination_set_email): Reset textrep when we change the email.</div><div class='del'>-	(e_destination_get_textrep): Make sure that the textrep version of</div><div class='del'>-	the address is properly quoted if it contains unsafe characters.</div><div class='del'>-	(All related to bug #10796)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_nickname): Fix nickname matching. (bug #9698)</div><div class='del'>-	(make_match): Use e_completion_match_new when building our match,</div><div class='del'>-	rather than ad hoc manipulation of the struct.</div><div class='del'>-</div><div class='del'>-2001-09-26  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_changes): set</div><div class='del'>-	the last_use and use_score fields of the card to known values so</div><div class='del'>-	the card doesn't register as changed when only they have changed</div><div class='del'>-</div><div class='del'>-2001-09-26  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>- </div><div class='del'>- 	* conduit/address-conduit.c (ecard_from_remote_record): Fix this function</div><div class='del'>- 	to set email addresses properly, and handle multiple occurrences of</div><div class='del'>- 	email addresses, home phone numbers, and business phone numbers.</div><div class='del'>-	</div><div class='del'>-2001-09-25  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (user_create_new_item_cb):</div><div class='del'>-	Handle creating the new contact in the current folder if it's a</div><div class='del'>-	contacts folder.  Fixes Ximian bug #7814.</div><div class='del'>-</div><div class='del'>-2001-09-24  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am (LDAP_SCHEMA): add</div><div class='del'>-	evolutionperson.schema</div><div class='del'>-	(EXTRA_DIST): add LDAP_SCHEMA to the dist (but don't install it).</div><div class='del'>-</div><div class='del'>-2001-09-23  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (ecard_from_remote_record): sync the</div><div class='del'>-	note the to pilot and make sure to blank fields when appropriate</div><div class='del'>-	(local_record_from_ecard): sync the note to the desktop</div><div class='del'>-</div><div class='del'>-2001-09-22  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (do_create): g_free (id) in the</div><div class='del'>-	error case to plug a memory leak.</div><div class='del'>-</div><div class='del'>-2001-09-22  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (remodel): when creating the cards,</div><div class='del'>-	don't display any of the subname fields (surname, given, middle,</div><div class='del'>-	suffix, etc.)</div><div class='del'>-</div><div class='del'>-2001-09-22  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c</div><div class='del'>-	(e_card_simple_get): add getters for the additional name fields.</div><div class='del'>-	(field_data): move FAMILY_NAME to the end of the list, and add</div><div class='del'>-	GIVEN_NAME, ADDITIONAL_NAME (middle name), and NAME_SUFFIX.</div><div class='del'>-	</div><div class='del'>-	* backend/ebook/e-card-simple.h: same.</div><div class='del'>-</div><div class='del'>-2001-09-21  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (print_preview_cb): Hooked up print</div><div class='del'>-	preview button.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.h</div><div class='del'>-	(e_addressbook_view_print_preview): Added this function.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c, printing/e-contact-print.h</div><div class='del'>-	(e_contact_print_preview): Added this function.</div><div class='del'>-</div><div class='del'>-2001-09-19  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (name_and_email_simple_query_cb):</div><div class='del'>-	Use the default e-mail address if we have nothing else to go on.</div><div class='del'>-	Previously we just failed, which basically meant that name-only</div><div class='del'>-	searches would never work properly.</div><div class='del'>-	(nickname_simple_query_cb): The logic was a bit tangled here; if</div><div class='del'>-	our query status isn't SUCCESS, always give up but don't leak the</div><div class='del'>-	destination.  And if our nickname query fails and we try the</div><div class='del'>-	name-and-email query, use the textrep for a name-only search.  The</div><div class='del'>-	only reason we are doing a nickname query in the first place is if</div><div class='del'>-	we have an obviously invalid e-mail.</div><div class='del'>-	(launch_cardify_query): Use e_destination_is_valid to determine</div><div class='del'>-	if we should try a nickname query first.</div><div class='del'>-	These changes basically fix bug 7728, and generally make the</div><div class='del'>-	auto-cardification of addresses a lot more clever and robust.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c (name_and_email_cb): Use</div><div class='del'>-	e_card_compare_name_to_string instead of e_card_name_match_string.</div><div class='del'>-	(e_book_name_and_email_query): The arguments to g_strsplit were</div><div class='del'>-	in the wrong order.  Doh!</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (e_card_compare_name_to_string):</div><div class='del'>-	Added.  Replaces e_card_name_match_string, and actually works.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Removed e_card_name_match_string</div><div class='del'>-	function, which didn't work particularly well.</div><div class='del'>-</div><div class='del'>-2001-09-19  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (cursor_cb): don't add to the complete</div><div class='del'>-	list of cards if the card is a list</div><div class='del'>-	(card_added): don't add to the list of changes if the card is a</div><div class='del'>-	list</div><div class='del'>-	(card_changed): ditto</div><div class='del'>-	(card_removed): ditto</div><div class='del'>-</div><div class='del'>-2001-09-19  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_hookup_shell_listeners): Change the "this should</div><div class='del'>-	never happen" message into a request for people to e-mail me</div><div class='del'>-	directly with info if they encounter that error.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c (e_book_name_and_email_query):</div><div class='del'>-	Freeing name[i] instead of namev[i] is a bad idea. (bug #10270)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(popup_menu_card): Properly handle our GnomeUIInfo labels so that</div><div class='del'>-	they won't be leaked if they are dynamic strings, so that they</div><div class='del'>-	will be i18n-correct, and so that underscores won't be interpreted</div><div class='del'>-	as key accelerators.  What a PITA.  Also, don't leak our</div><div class='del'>-	iterators.  (Bug #10200.)</div><div class='del'>-	(popup_menu_list): The same GnomeUIInfo tweaking as in</div><div class='del'>-	popup_menu_card.</div><div class='del'>-	(popup_menu_nocard): Ditto.</div><div class='del'>-</div><div class='del'>-2001-09-18  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>- </div><div class='del'>- 	* backend/ebook/e-card-simple.c (field_data): add caluri field data</div><div class='del'>- </div><div class='del'>- 	* backend/ebook/e-card.c (e_card_get_vobject): add the caluri</div><div class='del'>- 	property when appropriate</div><div class='del'>- 	(parse_caluri): handle read caluri</div><div class='del'>- 	(e_card_class_init): add caluri arg</div><div class='del'>- 	(e_card_destroy): free the caluri</div><div class='del'>- 	(e_card_get_arg): return caluri arg</div><div class='del'>- 	(e_card_set_arg): set caluri from arg</div><div class='del'>- 	(e_card_init): init caluri to null</div><div class='del'>- </div><div class='del'>- 	* backend/ebook/e-card-simple.h: new simple field</div><div class='del'>- </div><div class='del'>- 	* backend/ebook/e-card.h: new member</div><div class='del'>- </div><div class='del'>- 	* gui/contact-editor/e-contact-editor.c (field_changed): util</div><div class='del'>- 	callback to change the command state</div><div class='del'>- 	(set_entry_changed_signal_field): hook up a change signal to above</div><div class='del'>- 	(set_entry_changed_signals): use above function</div><div class='del'>- </div><div class='del'>- 	* gui/contact-editor/e-contact-editor.glade: Add collaboration</div><div class='del'>- 	page and fields</div><div class='del'>-	</div><div class='del'>-2001-09-18  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_build_cards_list): create a sexp and check if</div><div class='del'>-	the cards match before adding them to the list</div><div class='del'>-	(pas_backend_file_process_get_cursor): send extra param</div><div class='del'>-</div><div class='del'>-2001-09-18  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(book_query_process_card_list): unref the destination regardless</div><div class='del'>-	of whether we get an email addresss.</div><div class='del'>-</div><div class='del'>-2001-09-17  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(name_style_query): use g_strfreev.</div><div class='del'>-	(match_name): s/g_free/g_strfreev.</div><div class='del'>-	(match_file_as): s/g_free/g_strfreev.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c (e_book_name_and_email_query): fix</div><div class='del'>-	the memory handling here.  All there members of the vector need to</div><div class='del'>-	be freed all the time.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-pine-addressbook.c (parse_line): free the</div><div class='del'>-	string outside of the test that makes sure there are three</div><div class='del'>-	entries.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_nickname): don't malloc a match we will never use.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (get_view): free the dup'd</div><div class='del'>-	capabilities.</div><div class='del'>-</div><div class='del'>-2001-09-17  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_is_valid): We want</div><div class='del'>-	to assume that a destination that comes from a card is</div><div class='del'>-	automatically valid, but the right way to check that is by calling</div><div class='del'>-	e_destination_from_card, not by checking if dest-&gt;priv-&gt;card !=</div><div class='del'>-	NULL.  (Fixed bug #10017)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_name): Fixed a stupid bug was causing completion to fail</div><div class='del'>-	for contacts who have only one name.  (The classic example we all</div><div class='del'>-	know and love is 'George &lt;jirka@5z.com&gt;')  (bug #8353)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_list_send): Do the right thing if</div><div class='del'>-	the card we are trying to send to has no valid e-mail addresses.</div><div class='del'>-	(bug #10137)</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): Code implicitly</div><div class='del'>-	assumed that event-&gt;button.button is 1, 2, or 3, causing disaster</div><div class='del'>-	when using a wheel-mouse.  Fixed. (bug #9400)</div><div class='del'>-</div><div class='del'>-2001-09-16  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (_phone_arrow_pressed):</div><div class='del'>-	use enable_widget instead of gtk_widget_set_sensitive.</div><div class='del'>-	(_email_arrow_pressed): same.</div><div class='del'>-	(_address_arrow_pressed): same.</div><div class='del'>-	(disable_widget_foreach): same.</div><div class='del'>-	(enable_writable_fields): same.</div><div class='del'>-	(set_editable): same.</div><div class='del'>-	(enable_widget): new function, using both gtk_widget_set_sensitive</div><div class='del'>-	and *_set_editable to allow the user to select text in GtkEntry's</div><div class='del'>-	and GtkText's.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor-fullname.c</div><div class='del'>-	(e_contact_editor_fullname_set_arg): use set_editable as well as</div><div class='del'>-	set_sensitive, to allow the user to select text in GtkEntry's.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor-address.c</div><div class='del'>-	(e_contact_editor_address_set_arg): same.</div><div class='del'>-</div><div class='del'>-2001-09-16  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/evolutionperson.schema: fix syntax errors (which are</div><div class='del'>-	broken, imo...)</div><div class='del'>-</div><div class='del'>-2001-09-16  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.h: reorder the LDAP scopes so</div><div class='del'>-	that they match the order of the option menus in the glade file.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c (auth_checkbutton_changed):</div><div class='del'>-	new function, mostly there to house some #ifdef'ed out code.</div><div class='del'>-	(option_menuitem_activated): new function, to keep track of</div><div class='del'>-	changes to the ldap scope optionmenu.</div><div class='del'>-	(addressbook_source_dialog_set_source): set the menu history as</div><div class='del'>-	well as the dialog's copy of the scope.</div><div class='del'>-	(addressbook_source_dialog_get_source): fill in the source's scope</div><div class='del'>-	from the dialog's copy, and add more #if the_ui_gods_smile_on_me</div><div class='del'>-	code.</div><div class='del'>-	(add_activate_cb): new function, add an activate callback for the</div><div class='del'>-	optionmenu's items.</div><div class='del'>-	(addressbook_source_dialog): more #if the_ui_gods_smile_on_me</div><div class='del'>-	code, always start the dialog on page 0, and hook up the</div><div class='del'>-	scope optionmenu's items.</div><div class='del'>-</div><div class='del'>-2001-09-15  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (e_card_compare_name): No</div><div class='del'>-	loose name matches on family names. (#8802)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_activate_obj): We can't use NULL as the</div><div class='del'>-	first arg for e_addressbook_show_contact_editor anymore.  Damn.</div><div class='del'>-	(#8535)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_stop): Make</div><div class='del'>-	"stop" do nothing but set the stopped flag, as in</div><div class='del'>-	e-book-view-listener.c.</div><div class='del'>-	(e_book_listener_destroy): Clean up our queue here, rather than in</div><div class='del'>-	e_book_listener_stop.</div><div class='del'>-	(response_free): Added.  Move the rather lengthy bit of code</div><div class='del'>-	needed to free a EBookListenerResponse into one place.</div><div class='del'>-	(e_book_listener_check_queue): Properly deal with the stopped</div><div class='del'>-	flag.</div><div class='del'>-	(e_book_listener_queue_response): If the stopped flag is set, just</div><div class='del'>-	drop the incoming response.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_stop): Make "stop" do nothing but set the</div><div class='del'>-	stopped flag.</div><div class='del'>-	(e_book_view_listener_destroy): Move all of the clean-up that used</div><div class='del'>-	to be in e_book_view_listener_stop here.  This considerably simplifies</div><div class='del'>-	the logic required to avoid various race conditions.</div><div class='del'>-	(e_book_view_listener_check_queue): Properly deal with the stopped flag.</div><div class='del'>-	(e_book_view_listener_queue_response): Drop all incoming responses if</div><div class='del'>-	we are stopped.</div><div class='del'>-</div><div class='del'>-2001-09-14  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_queue_request): Hold a</div><div class='del'>-	reference to the book on behalf of our idle function.</div><div class='del'>-	(pas_book_check_queue): When we are finished, drop the reference</div><div class='del'>-	we've been holding on behalf of the idle function.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_create_card): Hold a reference to the</div><div class='del'>-	book_view while sending our notifications.</div><div class='del'>-	(pas_backend_file_process_remove_card): Hold a reference to the</div><div class='del'>-	book_view while sending our notifications.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (quick_add_unref): Remove</div><div class='del'>-	debugging spew.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c: Remove a lot of unused code that</div><div class='del'>-	worked around bugs that have long since been fixed.</div><div class='del'>-	(simple_query_disconnect): Added.  Breaks out the part of</div><div class='del'>-	simple_query_free that disconnect signals.</div><div class='del'>-	(simple_query_free): Replace code w/ a call to</div><div class='del'>-	simple_query_disconnect.</div><div class='del'>-	(simple_query_sequence_complete_cb): Call simple_query_disconnect</div><div class='del'>-	before executing the callback, so that our callbacks don't get</div><div class='del'>-	triggered by any book changes that might occur during that</div><div class='del'>-	callback.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_check_queue): Changed to be consistent with</div><div class='del'>-	e_book_listener_check_queue.</div><div class='del'>-	(e_book_view_listener_queue_response): Also changed to use a</div><div class='del'>-	high-frequency timeout.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):</div><div class='del'>-	OK, I've agonized over this stupid little function, and it should</div><div class='del'>-	now be race-free.</div><div class='del'>-	(e_book_listener_queue_response): We process our response queue in</div><div class='del'>-	a high-frequency timeout rather than an idle.  Using an idle</div><div class='del'>-	function leads to some tricky race conditions and bad interactions</div><div class='del'>-	with bonobo's semi-broken attempts to take over event processing.</div><div class='del'>-	(e_book_view_listener_stop): Manually disable our timeout and</div><div class='del'>-	clean up.</div><div class='del'>-</div><div class='del'>-2001-09-14  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[Automake 1.5 fixes pointed out by Richard Boulton</div><div class='del'>-	&lt;richard@tartarus.org&gt;, as per #9258.]</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Makefile.am: Set CLEANFILES directly</div><div class='del'>-	instead of using `+='.</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am: Rename `LDAP_BACKEND_SOURCES' to</div><div class='del'>-	`LDAP_BACKEND_FILES'.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Set CLEANFILES directly instead of</div><div class='del'>-	using `+='.</div><div class='del'>-</div><div class='del'>-2001-09-13  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): use</div><div class='del'>-	ldap_init.  ldap_open is deprecated in openldap 2.x.</div><div class='del'>-</div><div class='del'>-2001-09-12  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backends/ebook/evolution-vcard-importer.c (check_file_is_vcard):</div><div class='del'>-	Fix the check.</div><div class='del'>-</div><div class='del'>-2001-09-12  Larry Ewing  &lt;lewing@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c: free the values that are being</div><div class='del'>-	leaked here.</div><div class='del'>-</div><div class='del'>-2001-09-12  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c (match_email): </div><div class='del'>-	printf arguments were reversed by mistake.  Fixed bug #9693.</div><div class='del'>-</div><div class='del'>-2001-09-09  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(popup_menu_list): Added.  Treat right-clicks on a contact list as</div><div class='del'>-	a special case.</div><div class='del'>-	(e_select_names_popup): Check if we are dealing with a contact</div><div class='del'>-	list.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_check_queue): See</div><div class='del'>-	e_book_listener_check_queue below.</div><div class='del'>-	(e_book_view_listener_queue_response): See</div><div class='del'>-	e_book_listener_queue_response below.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):</div><div class='del'>-	Explicitly prohibit reentrancy.  Use gtk-unref rather than</div><div class='del'>-	bobobo-unref.</div><div class='del'>-	(e_book_listener_queue_response): Hold a gtk-ref to the listener</div><div class='del'>-	while the idle function runs, not a bonobo-ref.  As far as I can</div><div class='del'>-	tell, it is impossible to avoid a race condition here when we have</div><div class='del'>-	to worry about bonobo reentrancy.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_insert_length): Alter a copy of the</div><div class='del'>-	original EDestination, rather than just using a new one.  We need</div><div class='del'>-	to do this to preserve prior-card information for possible</div><div class='del'>-	reversion later.</div><div class='del'>-	(e_select_names_text_model_delete): Ditto.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_clear_card): When</div><div class='del'>-	clearing a destination where -&gt;card != NULL, store it for possible</div><div class='del'>-	reversion later.</div><div class='del'>-	(e_destination_revert): If we have an old card stored, go back to</div><div class='del'>-	using it for the destination.</div><div class='del'>-	(e_destination_is_valid): Tries to detect obviously broken</div><div class='del'>-	addresses.</div><div class='del'>-	(e_destination_cardify): If our destination is invalid, first try</div><div class='del'>-	to cardify simply by reverting to an older card.</div><div class='del'>-	(e_destination_destroy): Unref any cached old card.</div><div class='del'>-	(e_destination_copy): Copy the old card information.</div><div class='del'>-</div><div class='del'>-2001-09-07  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(sync_table_and_models): Show all rows in the table, and then</div><div class='del'>-	remove the rows that correspond to entries in the</div><div class='del'>-	ESelectNamesModels in the children.</div><div class='del'>-	(real_add_address): Freeze/thaw our ESelectNamesModel, so that we</div><div class='del'>-	don't change our table while we are in the middle of iterating</div><div class='del'>-	over the selection.</div><div class='del'>-	(remove_address): Just delete the address from the</div><div class='del'>-	ESelectNamesModel, the signal handler will do the rest.</div><div class='del'>-	(selected_rows_foreach_cb): Call remove_address to do our dirty</div><div class='del'>-	work.</div><div class='del'>-	(e_select_names_add_section): Connect to the 'changed' signal from</div><div class='del'>-	the ESelectNamesModel, and call sync_table_and_models explicitly to</div><div class='del'>-	get our initial state correct.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c</div><div class='del'>-	(fill_in_info): Deal with EDestinations in our table that don't</div><div class='del'>-	come from cards.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c: Added</div><div class='del'>-	another ESelectNamesModel* to the ESelectNamesManagerSection</div><div class='del'>-	struct.  Called 'original_model', this contains a copy of the</div><div class='del'>-	model as it is when we begin using the SelectNames dialog.</div><div class='del'>-	(section_copy): Copy the original model.</div><div class='del'>-	(section_free): Free the original model.</div><div class='del'>-	(e_select_names_manager_add_section_with_limit): Initialize the</div><div class='del'>-	original model.</div><div class='del'>-	(e_select_names_clicked): I've changed the semantics of this</div><div class='del'>-	dialog quite a bit... no UI freeze can stop me!  If OK is clicked,</div><div class='del'>-	we do nothing.  If Cancel is clicked, we revert to the</div><div class='del'>-	'original_model' copy of our address entry state before we started</div><div class='del'>-	editting.  Finally, we close the dialog before any of thing. Doing</div><div class='del'>-	it last caused problems, because signals were being triggered</div><div class='del'>-	which had dangling pointers as their closures.</div><div class='del'>-	(e_select_names_manager_activate_dialog): Copy our current state</div><div class='del'>-	to the original model, and share the same ESelectNamesModel</div><div class='del'>-	between the dialog and the address entry in the composer..</div><div class='del'>-	(e_select_names_manager_get_cards): Removed.  It had been</div><div class='del'>-	#if 0/#endif-ed out for a while.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_freeze): Added.</div><div class='del'>-	(e_select_names_model_thaw): Added.</div><div class='del'>-	(e_select_names_model_uncardify): Added.  If possible,</div><div class='del'>-	"uncardifies" a specific model entry.</div><div class='del'>-	(e_select_names_model_changed): Changed to pay attention</div><div class='del'>-	to the freeze count.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(clean_query_text): Strip leading/trailing whitespace from</div><div class='del'>-	queries.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_uncardify): Added.</div><div class='del'>-	Converts a card-associated destination into a text-associated</div><div class='del'>-	destination w/ the e-mail address.</div><div class='del'>-	(e_destination_list_to_vector): Added.  A convenience routine.</div><div class='del'>-	(e_destination_freev): Added.  A convenience routine.</div><div class='del'>-	(e_destination_touchv): Added.  I'm lazy.</div><div class='del'>-</div><div class='del'>-2001-09-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	(make_contact_editor_cb): show the right contact editor (the list</div><div class='del'>-	editor for list cards).</div><div class='del'>-	</div><div class='del'>-2001-09-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(popup_menu_card): do the EDestination xml magic on email</div><div class='del'>-	addresses we put in the popup.</div><div class='del'>-</div><div class='del'>-2001-08-27  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	For every category:</div><div class='del'>-	- set .translate to FALSE (e_categories_master_list_nth returns</div><div class='del'>-	translated category name)</div><div class='del'>-	- convert category name in UTF-8 to locale's encoding</div><div class='del'>-</div><div class='del'>-2001-08-23  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(popup_menu_card): Fixed two bugs:</div><div class='del'>-	- missing coversion of contact name to GTK+ locale,</div><div class='del'>-	- passing dynamically created string (contact name) inside uiinfo struct</div><div class='del'>-	to gnome-app-helper functions.</div><div class='del'>-	Remember: these functions may change strings, trying to translate them!</div><div class='del'>-	(popup_menu_nocard): Ditto</div><div class='del'>-</div><div class='del'>-2001-09-07  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Removed unused factory</div><div class='del'>-	variable.</div><div class='del'>-</div><div class='del'>-2001-09-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (notify_listener): new</div><div class='del'>-	function, notify the bonobo listener.</div><div class='del'>-	(remove_ldap_folder): track change to EvolutionStorage signal.</div><div class='del'>-	(create_ldap_folder): same, and make sure the type is</div><div class='del'>-	"ldap-contacts".</div><div class='del'>-	(load_source_data): folders that we create should have</div><div class='del'>-	"ldap-contacts" as their type.</div><div class='del'>-	(addressbook_storage_add_source): same.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: (folder_types): add</div><div class='del'>-	"ldap-contacts", for display of ldap servers (they get their own</div><div class='del'>-	icon, and their own name in the Create New Folder dialog.</div><div class='del'>-	(create_view): use IS_CONTACT_TYPE since we support two folder</div><div class='del'>-	types now.</div><div class='del'>-	(create_folder): same.</div><div class='del'>-	(remove_folder): same.</div><div class='del'>-	(xfer_folder): same.</div><div class='del'>-</div><div class='del'>-2001-09-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c: (pixmaps): change</div><div class='del'>-	/Toolbar/ContactEditorSave to /Toolbar/ContactEditorSaveClose.</div><div class='del'>-</div><div class='del'>-2001-09-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (INCLUDES): add -DEVOLUTION_IMAGESDIR.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (card_deleted_cb): remove</div><div class='del'>-	status messages from here.</div><div class='del'>-	(e_addressbook_view_delete_selection): same.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (sequence_complete): emit a</div><div class='del'>-	NULL status message along with the stop_state_changed.  The null</div><div class='del'>-	status message will clear the status bar for this view.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (set_status_message): use the</div><div class='del'>-	EvolutionActivityClient stuff.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (view_destroy): remove status</div><div class='del'>-	message for abandoning a search.</div><div class='del'>-	(ldap_op_process_current): wrap status messages in _().</div><div class='del'>-	(ldap_op_process): same.</div><div class='del'>-	(create_card_handler): same, and remove the notify_status for ""</div><div class='del'>-	and add a notify_complete call after the card is added.</div><div class='del'>-	(remove_card_handler): same.</div><div class='del'>-	(modify_card_handler): same.</div><div class='del'>-	(poll_ldap): wrap status messages with _(), and remove the "Search</div><div class='del'>-	Complete" message.</div><div class='del'>-	(ldap_search_handler): wrap status message.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_search): use</div><div class='del'>-	_() on status messages, and make sure the last notify_* called is</div><div class='del'>-	notify_complete.</div><div class='del'>-</div><div class='del'>-2001-09-05  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[Fix #958, ShellComponents should not be created by factories, for</div><div class='del'>-	the addressbook.]</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c</div><div class='del'>-	(GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_FACTORY_ID): Removed.</div><div class='del'>-	(GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_ID): New.</div><div class='del'>-	(create_component): Renamed from `factory_fn'.  Just register the</div><div class='del'>-	thing on OAF.</div><div class='del'>-	(addressbook_component_factory_init): Just call it.</div><div class='del'>-</div><div class='del'>-	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Remove the</div><div class='del'>-	ShellComponentFactory.</div><div class='del'>-</div><div class='del'>-2001-09-04  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-vcard-importer.c (load_file_fn): Return FALSE</div><div class='del'>-	if the file isn't a valid VCard file.</div><div class='del'>-</div><div class='del'>-2001-08-05  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	I18n fixes (mainly making buttons on the right side less Anglocentric :-)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c</div><div class='del'>-	(field_data): Marked "name" and "short_name" fields for translation.</div><div class='del'>-	(e_card_simple_get_name, e_card_simple_get_short_name): Return</div><div class='del'>-	localized version of the name (using U_() macro).</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (set_entry_changed_signals):</div><div class='del'>-	Connect "changed" signal from "entry-web" entry to widget_changed.</div><div class='del'>-	(changing this field wasn't making "Save and Close" button sensitive)</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (glade_DATA): Removed alphabet.glade.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(button_labels, button_letters): New strings containing a list of</div><div class='del'>-	labels and "values" of all buttons placed on the right side of the</div><div class='del'>-	addressbook view (intended for localization).</div><div class='del'>-	(struct LetterClosure): Changed the type of letter field to gunichar.</div><div class='del'>-	(e_utf8_split): New function, similar to g_strsplit, but operates on</div><div class='del'>-	UTF-8 strings.</div><div class='del'>-	(jump_to_letter): Don't hardcode letters, build queries dynamically</div><div class='del'>-	using UTF-8 and localized letters stored in button_letters.</div><div class='del'>-	(connect_button): Removed.</div><div class='del'>-	(create_alphabet): Don't use glade file, build buttons manually using</div><div class='del'>-	(localized) labels from button_labels. Use (localized) values from</div><div class='del'>-	button_letters when creating LetterClosure.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.[ch]</div><div class='del'>-	(e_minicard_view_widget_jump_to_letter): Changed the type of the</div><div class='del'>-	second argument from char to gunichar.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c</div><div class='del'>-	(compare_to_utf_str): Renamed from compare_to_letter, now operates on</div><div class='del'>-	UTF-8 string.</div><div class='del'>-	(e_minicard_view_jump_to_letter): Changed the type of the second</div><div class='del'>-	argument from char to gunichar + conversion to UTF-8 string.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.h</div><div class='del'>-	(e_minicard_view_jump_to_letter): Changed the type of the second</div><div class='del'>-	argument from char to gunichar.</div><div class='del'>-</div><div class='del'>-2001-09-02  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_add_card, e_book_commit_card),</div><div class='del'>-	backend/pas/pas-backend-file.c (do_create),</div><div class='del'>-	backend/pas/pas-backend-ldap.c</div><div class='del'>-	(create_card_handler, remove_card_handler, modify_card_handler,</div><div class='del'>-	pas_backend_ldap_process_get_vcard, poll_ldap): Use</div><div class='del'>-	e_card_get_vcard_assume_utf8 instead of e_card_get_vcard here</div><div class='del'>-	since all internal communications and database storage are assumed</div><div class='del'>-	to be utf8.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h</div><div class='del'>-	(e_card_simple_duplicate): Simplified this function considerably.</div><div class='del'>-	(e_card_simple_get_vcard_assume_utf8): Added this function.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h (e_card_new,</div><div class='del'>-	e_card_load_cards_from_file, e_card_load_cards_from_string): Made</div><div class='del'>-	these functions pay attention to charset attributes.</div><div class='del'>-	(e_card_new_with_default_charset,</div><div class='del'>-	e_card_load_cards_from_file_with_default_charset,</div><div class='del'>-	e_card_load_cards_from_string_with_default_charset): New functions</div><div class='del'>-	that let you change the default charset from UTF-8.</div><div class='del'>-	(e_card_get_vcard): Made this write out charset attributes when</div><div class='del'>-	necessary.</div><div class='del'>-	(e_card_get_vcard_assume_utf8): New function that writes out a</div><div class='del'>-	card without writing out charset attributes.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-vcard-importer.c (book_open_cb),</div><div class='del'>-	backend/ebook/load-gnomecard-addressbook.c (book_open_cb),</div><div class='del'>-	backend/ebook/test-card.c (main),</div><div class='del'>-	gui/component/addressbook-component.c</div><div class='del'>-	(destination_folder_handle_drop), gui/contact-editor/test-editor.c</div><div class='del'>-	(main), gui/contact-list-editor/e-contact-list-editor.c</div><div class='del'>-	(table_drag_data_received_cb), gui/widgets/e-addressbook-view.c</div><div class='del'>-	(selection_received), gui/widgets/e-minicard-control.c</div><div class='del'>-	(pstream_load): Changed the default charset to be used here to</div><div class='del'>-	ISO-8859-1.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-gnomecard-addressbook.c (add_card_cb),</div><div class='del'>-	backend/ebook/load-pine-addressbook.c (add_card_cb),</div><div class='del'>-	backend/ebook/test-client-list.c (get_cursor_cb),</div><div class='del'>-	backend/ebook/test-client.c (get_cursor_cb, get_card_cb): Use</div><div class='del'>-	e_card_get_vcard_assume_utf8 to print out testing strings.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.h</div><div class='del'>-	(e_select_names_model_contains): Changed this to be const</div><div class='del'>-	EDestination *dest to fix a warning.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (e_contact_editor_init):</div><div class='del'>-	Translate window title here.</div><div class='del'>-</div><div class='del'>-2001-08-31  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c</div><div class='del'>-	(addressbook_get_other_contact_storage): s/_/U_/</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c (addressbook_compare):</div><div class='del'>-	Use g_utf8_collate.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_compare):</div><div class='del'>-	Ditto.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c (card_compare):</div><div class='del'>-	Ditto.</div><div class='del'>-</div><div class='del'>-2001-08-29  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_clicked): Use e_select_names_model_merge to</div><div class='del'>-	combine the selected names with any existing ones.  This causes</div><div class='del'>-	you to not lose addresses typed directly into the entry while the</div><div class='del'>-	SelectNames dialog is up. (Bug #8058)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_merge): Merge the contents of one</div><div class='del'>-	ESelectNamesModel into another, avoiding duplicates.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_equal): Added.</div><div class='del'>-	Determines if two destinations appear to refer to the same</div><div class='del'>-	recipient.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_list_send): Added cast to</div><div class='del'>-	g_free args to silence compiler warnings.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (quick_add_set_name):</div><div class='del'>-	Paranoia.  Check that name != qa-&gt;name.</div><div class='del'>-	(quick_add_set_email): Check that email != qa-&gt;email.</div><div class='del'>-	(ce_have_book): Store the QuickAdd data structure in object data,</div><div class='del'>-	so that we can be extra-careful and avoid having a dangling</div><div class='del'>-	pointer floating around out somewhere as the closure for a signal.</div><div class='del'>-	Fixes bug #8155, I think.</div><div class='del'>-	(card_added_cb): Clear object data to ensure single unref.</div><div class='del'>-	(editor_closed_cb): Clear object data to ensure single unref.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(book_query_score): Make sure that comp-&gt;priv-&gt;query_text isn't</div><div class='del'>-	NULL.  (Fixes bug #8195)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):</div><div class='del'>-	This function can be re-entrant during the signal emission; Added</div><div class='del'>-	extra ref/unrefs and checks to avoid problems if this happens.</div><div class='del'>-	This is similar to my recent changes to</div><div class='del'>-	e_book_view_listener_check_queue.  (Fixes bug #7400)</div><div class='del'>-</div><div class='del'>-2001-08-27  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Get rid of a warning by</div><div class='del'>-	initializing the closing NULL element in folder_types correctly.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Updated to match</div><div class='del'>-	the studlyCapsification of attributes in shell/Evolution*.idl.</div><div class='del'>-</div><div class='del'>-2001-08-27  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(sexp_file_as): Added.  Generated queries against file_as.</div><div class='del'>-	(match_file_as): Added.  Match results of queries against</div><div class='del'>-	file_as. (Bug #8152)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_check_queue): Added ref/unref pair to make</div><div class='del'>-	sure that our listener doesn't get finalized during the signal</div><div class='del'>-	emission and leave us with a dangling pointer. (Bug #7661)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_list_send): Removed some debugging</div><div class='del'>-	spew that I left in by mistake.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (create_card): Removed debugging</div><div class='del'>-	spew.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_list_send): Do the right thing if</div><div class='del'>-	the card we are trying to send to is a contact list. (Bug #6580)</div><div class='del'>-</div><div class='del'>-2001-08-27  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):</div><div class='del'>-	Display localized status string (added missing _()).</div><div class='del'>-</div><div class='del'>-2001-08-24  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_set_card): Put a</div><div class='del'>-	freeze/thaw around our the set of operations that changes the</div><div class='del'>-	internal state of our card, so 'changed' signal callbacks won't be</div><div class='del'>-	invoked on a card in an intermediary state.  This fixes the bug</div><div class='del'>-	that was causing the e-mail addresses in cards to be blank when</div><div class='del'>-	replying to a message.  (An unexpected side-effect of toshok's</div><div class='del'>-	change on 8/22 to make sure that priv-&gt;email != NULL).</div><div class='del'>-	(e_destination_get_name): Code slightly rearranged for (IMO)</div><div class='del'>-	clarity.</div><div class='del'>-</div><div class='del'>-2001-08-23  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): add</div><div class='del'>-	BUTTON_PRESS_MASK so double clicks still work.</div><div class='del'>-</div><div class='del'>-2001-08-23  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_query_changed): switch</div><div class='del'>-	"full_name" to "x-evolution-any-field" in all the queries where we</div><div class='del'>-	want to match all cards, since the backends universally handle</div><div class='del'>-	this special case more efficiently.</div><div class='del'>-</div><div class='del'>-2001-08-22  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c (extract_info):</div><div class='del'>-	In the GUI, the toggle is labelled "hide addresses", not "show</div><div class='del'>-	addresses" -- so we have to reverse the boolean value we read in.</div><div class='del'>-	(fill_in_info): Same bug as before: since the GUI reads "hide", we</div><div class='del'>-	have to initialize the toggle to '!show_addresses', not</div><div class='del'>-	'show_addresses'.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c</div><div class='del'>-	(e_destination_list_show_addresses): Added.</div><div class='del'>-	(e_destination_xml_encode): Encode the value of</div><div class='del'>-	e_destination_list_show_addresses into the XML.</div><div class='del'>-	(e_destination_xml_decode): Read and store the "show_addresses"</div><div class='del'>-	flag.</div><div class='del'>-</div><div class='del'>-2001-08-22  jacob berkman  &lt;jacob@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c (emit_event): emit an event from</div><div class='del'>-	our event source</div><div class='del'>-	(contact_editor_cb): emit a destroy event so our control frame can</div><div class='del'>-	be destroyed.</div><div class='del'>-	(edit_contact_info_cb): emit a hide event so our control frame can</div><div class='del'>-	be hidden</div><div class='del'>-	(e_address_popup_cardify):</div><div class='del'>-	(add_contacts_cb): emit the destroy event</div><div class='del'>-	(e_address_popup_factory_new_control): don't unref our object at</div><div class='del'>-	widget destroy time as that was really really broken</div><div class='del'>-	(e_address_popup_factory_new_control): create an event source and</div><div class='del'>-	aggregate ourself with it</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (enable_writable_fields):</div><div class='del'>-	display a nicer warning when we can't find a widget for a given</div><div class='del'>-	field</div><div class='del'>-	(e_contact_editor_raise): only raise if there is a window</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/contact-editor.glade: name some widgets that</div><div class='del'>-	got unnamed, and set the first entry as defaultable</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c: envelope printing is</div><div class='del'>-	disabled in 1.0</div><div class='del'>-</div><div class='del'>-2001-08-22  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_email): make</div><div class='del'>-	sure we don't get into a situation where priv-&gt;email == NULL.</div><div class='del'>-</div><div class='del'>-2001-08-21  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): if we're dragging,</div><div class='del'>-	drag_button_down won't be true in the BUTTON_RELEASE case, since</div><div class='del'>-	we set it to false in MOTION_NOTIFY once the threshold is reached.</div><div class='del'>-	(e_minicard_drag_end): remove this function, since it was needed</div><div class='del'>-	to work around a bug in gnome-canvas.</div><div class='del'>-	</div><div class='del'>-2001-08-20  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_addressbook_create_ebook_table): Wrap our addressbook table</div><div class='del'>-	adapter in an ETableWithout, so that we can make addresses appear</div><div class='del'>-	and disappear when we remove/add them to the section lists</div><div class='del'>-	(To/Cc/Bcc) on the right of the dialog.</div><div class='del'>-	(real_add_address_cb): When we add an address, hide it in the main</div><div class='del'>-	list.</div><div class='del'>-	(e_select_names_init): Get pointer to our without table from the</div><div class='del'>-	table's object data, and store it.</div><div class='del'>-	(remove_address): When we remove an address, show it in the main</div><div class='del'>-	list.</div><div class='del'>-	(card_key): Added.  Allocate a unique key from an ECard.</div><div class='del'>-	(esn_get_key_fn): Added.  Callback for ETableWithout.</div><div class='del'>-	(esn_dup_key_fn): Added.  Callback for ETableWithout.</div><div class='del'>-	(esn_free_gotten_key_fn): Added.  Callback for ETableWithout.</div><div class='del'>-	(esn_free_duped_key_fn): Added.  Callback for ETableWithout.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (e_card_simple_get): Changed</div><div class='del'>-	E_CARD_SIMPLE_FIELD_NAME_OR_ORG to first try the FILE_AS</div><div class='del'>-	type.  This allows the cards in the ESelectName dialog to</div><div class='del'>-	appear in proper sort order (i.e. as 'Doe, John' rather than</div><div class='del'>-	'John Doe').  Fixes ximian #6002.</div><div class='del'>-</div><div class='del'>-2001-08-20  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c</div><div class='del'>-	(e_addressbook_reflow_adapter_class_init): fix arg info - we're</div><div class='del'>-	only passing 1 GTK_TYPE_POINTER arg, not 2.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): lots of fixes for</div><div class='del'>-	DnD.  For GDK_BUTTON_PRESS, we grab immediately.  For</div><div class='del'>-	GDK_BUTTON_MOTION, we start the drag after a certain threshold,</div><div class='del'>-	and connect to the "drag_end" signal on our canvas so we'll know</div><div class='del'>-	when the drag is complete.  For GDK_BUTTON_RELEASE, we release the</div><div class='del'>-	grab if we were dragging and get the event.</div><div class='del'>-	(e_minicard_drag_end): new function, just remove the pointer/gtk</div><div class='del'>-	grabs and disconnect.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.h (struct _EMinicard): add "gint</div><div class='del'>-	drag_button"</div><div class='del'>-</div><div class='del'>-2001-08-20  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_changes_foreach_key): use DB_NOTFOUND const</div><div class='del'>-	</div><div class='del'>-2001-08-20  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_changes): null out card_sexp so that</div><div class='del'>-	we don't crash when copying</div><div class='del'>-</div><div class='del'>-2001-08-20  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c: fix warnings, get compiling again</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit-config.h: remove c/p typos</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.h: ditto</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: link against the static camel</div><div class='del'>-</div><div class='del'>-2001-08-20  Damon Chaplin  &lt;damon@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c: use bigger Save icon for</div><div class='del'>-	toolbar. Used Delete icon in menu.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: use 'Save As' icon rather than 'Save'</div><div class='del'>-	as it seems more appropriate. Also added delete icon for menu.</div><div class='del'>-</div><div class='del'>-2001-08-19  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Update the folder list to</div><div class='del'>-	include a display name and a description.</div><div class='del'>-</div><div class='del'>-2001-08-19  Damon Chaplin  &lt;damon@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: use new Cut/Copy/Paste/Save/Search</div><div class='del'>-	icons.</div><div class='del'>-</div><div class='del'>-2001-08-19  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (set_folder_bar_label),</div><div class='del'>-	gui/widgets/e-addressbook-model.c,</div><div class='del'>-	gui/widgets/e-addressbook-model.h (update_folder_bar_message),</div><div class='del'>-	gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h</div><div class='del'>-	(folder_bar_message): Set the folder bar message here.  Fixes</div><div class='del'>-	Ximian bug #4670.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c (SEPLEN): Use</div><div class='del'>-	strlen(SEPARATOR) here so that if the separator changes the length</div><div class='del'>-	will work properly.</div><div class='del'>-</div><div class='del'>-2001-08-19  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/fulladdr.glade: Added full country list.</div><div class='del'>-	Fixes Ximian bug #5123.</div><div class='del'>-</div><div class='del'>-2001-08-18  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Hook up `delete-message.png' as the</div><div class='del'>-	icon for "ContactDelete".</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c: Likewise.</div><div class='del'>-</div><div class='del'>-2001-08-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.h: add prototype for</div><div class='del'>-	addressbook_get_other_contact_storage.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c</div><div class='del'>-	(addressbook_get_other_contact_storage): rename register_storage</div><div class='del'>-	to this, and return the EvolutionStorage.</div><div class='del'>-	(load_source_data): register_storage =&gt;</div><div class='del'>-	addressbook_get_other_contact_storage.</div><div class='del'>-	(addressbook_storage_add_source): register_storage =&gt;</div><div class='del'>-	addressbook_get_other_contact_storage.</div><div class='del'>-</div><div class='del'>-2001-08-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c</div><div class='del'>-	(set_entry_changed_signals): connect to the "changed" signal on</div><div class='del'>-	"entry-web" to update command state.</div><div class='del'>-</div><div class='del'>-2001-08-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c (list_added_cb):</div><div class='del'>-	call e_card_set_id on the list's card so we can continue to use</div><div class='del'>-	this dialog.  also, call command_state_changed if we aren't</div><div class='del'>-	closing the dialog so the toolbar is properly sensitized.</div><div class='del'>-	(list_deleted_cb): always close the dialog after we successfully</div><div class='del'>-	delete a list.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (card_added_cb): call</div><div class='del'>-	e_card_set_id on the card so we can continue to use this dialog</div><div class='del'>-	(to modify or delete the card.)</div><div class='del'>-	(card_deleted_cb): always close the dialog after we successfully</div><div class='del'>-	delete a card.</div><div class='del'>-</div><div class='del'>-2001-08-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_query_changed): call</div><div class='del'>-	e_sexp_encode_string on the search string the user types in so it</div><div class='del'>-	doesn't break sexp parsing in the wombat.</div><div class='del'>-</div><div class='del'>-2001-08-17  Damon Chaplin  &lt;damon@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: changed to new print icon.</div><div class='del'>-</div><div class='del'>-2001-08-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: (struct</div><div class='del'>-	ESelectNamesFolder): rename physical_uri to uri, since it includes</div><div class='del'>-	the addressbook.db for file: uris.</div><div class='del'>-	(e_select_names_folder_free): physical_uri =&gt; uri.</div><div class='del'>-	(e_select_names_option_activated): physical_uri =&gt; uri, and we</div><div class='del'>-	don't need to strdup_printf "addressbook.db" onto the end anymore.</div><div class='del'>-	(new_folder): if the physical_uri is a file: uri, append</div><div class='del'>-	/addressbook.db onto it.</div><div class='del'>-	(hookup_listener): new function, split out lots of code from</div><div class='del'>-	e_select_names_hookup_shell_listener.</div><div class='del'>-	(e_select_names_hookup_shell_listeners): rename</div><div class='del'>-	e_select_names_hookup_shell_listener to this, and hookup both the</div><div class='del'>-	local and "Other Contacts" listener, using hookup_listener.</div><div class='del'>-	(e_select_names_destroy): disconnect from the</div><div class='del'>-	other_contacts_listener and unref it.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.h (struct</div><div class='del'>-	_ESelectNames): add a listener for Other Contacts, and rename</div><div class='del'>-	"listener" to "local_listener."</div><div class='del'>-</div><div class='del'>-2001-08-17  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(e_select_names_completion_seq_complete_cb): If we get the</div><div class='del'>-	"sequence_complete" signal when we aren't searching, it means the</div><div class='del'>-	addressbook changed out from under us.  Clear the search cache, so</div><div class='del'>-	that future completion requests won't use the out-of-date cached</div><div class='del'>-	data.  Also, don't unref book_view... we leave the EBookView open</div><div class='del'>-	so that we can catch these addressbook changes.</div><div class='del'>-	(e_select_names_completion_do_query): Don't use the book_view</div><div class='del'>-	being non-NULL as a sign that another query is still running.</div><div class='del'>-	(e_select_names_completion_got_book_view_cb): Properly unref any</div><div class='del'>-	previous value in book_view.</div><div class='del'>-</div><div class='del'>-2001-08-17  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c</div><div class='del'>-	(e_addressbook_reflow_adapter_right_click),</div><div class='del'>-	gui/widgets/e-addressbook-view.c (table_right_click): Changed the</div><div class='del'>-	messages here in the right click menus.</div><div class='del'>-</div><div class='del'>-2001-08-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (view_destroy): unref our</div><div class='del'>-	card_sexp.</div><div class='del'>-	(create_card_handler): make sure to set the id of the vcard so it</div><div class='del'>-	gets properly transmitted back to the BookView, and notify all</div><div class='del'>-	matching BookViews to add the created card.</div><div class='del'>-	(remove_card_handler): notify all matching BookViews to remove the</div><div class='del'>-	card.</div><div class='del'>-	(modify_card_handler): notify all matching BookViews to modify the</div><div class='del'>-	card.</div><div class='del'>-	(pas_backend_ldap_process_get_book_view): init card_sexp based on</div><div class='del'>-	the view's search.</div><div class='del'>-</div><div class='del'>-2001-08-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_book_view_copy): use card_sexp.</div><div class='del'>-	(pas_backend_file_book_view_free): same.</div><div class='del'>-	(vcard_matches_search): use the new pas_backend_card_sexp_match_vcard call.</div><div class='del'>-	(pas_backend_file_search): use card_sexp.</div><div class='del'>-	(pas_backend_file_process_get_book_view): same.</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am (libpas_a_SOURCES): add</div><div class='del'>-	pas-backend-card-sexp.[ch].</div><div class='del'>-</div><div class='del'>-2001-08-17  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Added code</div><div class='del'>-	so the user can create a new contact or contact list from anywhere</div><div class='del'>-	in evolution.</div><div class='del'>-</div><div class='del'>-2001-08-16  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/evolutionperson.schema: Added a closing paren.</div><div class='del'>-</div><div class='del'>-2001-08-16  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(e_select_names_completion_handle_request): Renamed from _begin to</div><div class='del'>-	match changes in gal 0.10.99.3.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (e_contact_quick_add): </div><div class='del'>-	Check that name != NULL before we start messing with it.</div><div class='del'>-	(Fixes bug #7329)</div><div class='del'>-</div><div class='del'>-2001-08-16  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_nickname): Boost scoring on an exact nickname match.</div><div class='del'>-	Manually addressify match.</div><div class='del'>-	(match_name): Manually addressify matches.</div><div class='del'>-	(book_query_score): Remove automatic addressification.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_query_changed): Minor</div><div class='del'>-	tweak to avoid a crash if we have a negative subid with id</div><div class='del'>-	ESB_CATEGORY.  This should never happen.</div><div class='del'>-	(addressbook_menu_activated): Reset the entry/option when we</div><div class='del'>-	select "Clear".</div><div class='del'>-	Some changes to reflect renaming in ESearchBar.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_set_property_fn): Cardify after importing destinations.</div><div class='del'>-	This might fix a problem that Damon is having.</div><div class='del'>- </div><div class='del'>-2001-08-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.glade: set title of initial</div><div class='del'>-	dialog to Addressbook Sources (bug #6704).</div><div class='del'>-</div><div class='del'>-2001-08-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (create_ldap_folder): don't</div><div class='del'>-	let people add subdirs in the ldap server storage - everything is</div><div class='del'>-	toplevel there.</div><div class='del'>-</div><div class='del'>-2001-08-14  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_process_get_vcard): implement using</div><div class='del'>-	search_for_dn.</div><div class='del'>-</div><div class='del'>-2001-08-14  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	Tell the search bar to translate the subitem texts.</div><div class='del'>-</div><div class='del'>-2001-08-14  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	Add "Any Category" option for category searches.</div><div class='del'>-	(addressbook_query_changed): Do the right thing on an</div><div class='del'>-	"Any Category" search.</div><div class='del'>-</div><div class='del'>-2001-08-14  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: Fix up to match the</div><div class='del'>-	pas_book_new/get_vcard changes.</div><div class='del'>-</div><div class='del'>-2001-08-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-merging-book-commit-duplicate-detected.glade:</div><div class='del'>-	Got rid of an extraneous _ here.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):</div><div class='del'>-	Changed Canceled to Cancelled here.  Fixes Ximian bug #2465.</div><div class='del'>-</div><div class='del'>-2001-08-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_respond_get_vcard): Oops,</div><div class='del'>-	forgot to write this function.</div><div class='del'>-</div><div class='del'>-2001-08-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/contact-editor.glade: Added focus targets</div><div class='del'>-	here.  Fixes part of Ximian bug #5843.</div><div class='del'>-</div><div class='del'>-2001-08-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (e_contact_editor_init):</div><div class='del'>-	Grab focus here.  Fixes Ximian bug #2265.</div><div class='del'>-</div><div class='del'>-2001-08-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control): </div><div class='del'>-	(addressbook_query_changed): Fixed two const warnings here.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print-envelope.c,</div><div class='del'>-	printing/e-contact-print-envelope.h: Fixed some missing includes</div><div class='del'>-	here.</div><div class='del'>-</div><div class='del'>-2001-08-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view.c (add_book_iterator): Call</div><div class='del'>-	e_card_set_book here.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_do_response_get_vcard): Call</div><div class='del'>-	e_card_set_book here.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Pulled out the</div><div class='del'>-	part where the uri is made part of the uid.  Made uri a separate</div><div class='del'>-	field.  Fixes Ximian bug #6490.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c, backend/ebook/e-destination.h:</div><div class='del'>-	Change this to use ECard's split uids and uris.</div><div class='del'>-</div><div class='del'>-2001-08-13  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (add_to_supported_fields): don't</div><div class='del'>-	g_strdup the stuff we're passing into e_list_append, since it does</div><div class='del'>-	the copy for us.</div><div class='del'>-	(check_schema_support): don't initialize supported_fields list</div><div class='del'>-	here, since there's a gross case where the programmer/user can</div><div class='del'>-	bring up the contact editor before the connection stuff is</div><div class='del'>-	finished, and we don't want to crash.</div><div class='del'>-	(pas_backend_ldap_init): move it here to we can guarantee it's</div><div class='del'>-	there. (bug #6546).</div><div class='del'>-</div><div class='del'>-2001-08-13  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c</div><div class='del'>-	(addressbook_source_dialog_set_source): don't access source-&gt;auth</div><div class='del'>-	if source == NULL (bug #7086).</div><div class='del'>-</div><div class='del'>-2001-08-13  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c,</div><div class='del'>-	backend/ebook/e-book-listener.h, backend/ebook/e-book.c,</div><div class='del'>-	backend/ebook/e-book.h, backend/idl/addressbook.idl,</div><div class='del'>-	backend/pas/pas-backend-file.c, backend/pas/pas-book.c,</div><div class='del'>-	backend/pas/pas-book.h: Changed get_card to be asyncronous.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/test-client.c: Changed</div><div class='del'>-	these to deal with the new get_card functionality.</div><div class='del'>-</div><div class='del'>-2001-08-11  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Mark a string for translation.</div><div class='del'>-	* This fixes bug #7052</div><div class='del'>-	* printing/e-contact-print.h: Add headers to make it stand on itw own.</div><div class='del'>-	* printing/e-contact-print.c: Marked some strings for translation.</div><div class='del'>-	* printing/e-contact-print-envelope.c: Same here.</div><div class='del'>-	</div><div class='del'>-2001-08-10  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (e_contact_quick_add):</div><div class='del'>-	Remove single- or double-quotes from names before sticking them</div><div class='del'>-	into the addressbook. (Bug #6499)</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_query_changed):</div><div class='del'>-	Properly handle "Category is" queries by checking the search bar</div><div class='del'>-	suboption.</div><div class='del'>-	(addressbook_factory_new_control): Attach subitems corresponding</div><div class='del'>-	to all wombat categories to the "Category is" ESearchBarItem.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Set the ESearchBarItem</div><div class='del'>-	subitems explicitly to NULL.</div><div class='del'>-</div><div class='del'>-2001-08-10  Anna Marie Dirks &lt;anna@ximian.com&gt;</div><div class='del'>-	 * gui/component/select-names/select-names.glade: did a little</div><div class='del'>-	packing-magic to get the two tables at bottom of this dialog</div><div class='del'>-	to seem to line up. </div><div class='del'>-</div><div class='del'>-	*gui/component/select-names/e-select-names.c: changed the title</div><div class='del'>-	of this dialog to "Select Contacts from Addressbook". </div><div class='del'>-</div><div class='del'>-2001-08-09  Anna Marie Dirks &lt;anna@ximian.com&gt;</div><div class='del'>-        * gui/component/select-names/select-names.glade: redesigned</div><div class='del'>-        this dialog to fix bug #6815. </div><div class='del'>-</div><div class='del'>-	*gui/component/select-names/e-select-names.c: connected the</div><div class='del'>-	widgets (or one of them anyway. clahey did the rest) for my</div><div class='del'>-	new and lovely glade file.</div><div class='del'>-	</div><div class='del'>-2001-08-09  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: remove passwd_cb.</div><div class='del'>-</div><div class='del'>-2001-08-09  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	This change is dedicated to Jacob Berkman.</div><div class='del'>-	(e_select_names_text_model_insert_length): If the last character</div><div class='del'>-	we inserted was a "magic comma", remember its position.</div><div class='del'>-	(e_select_names_text_model_delete): If the last character we</div><div class='del'>-	inserted was a "magic comma", and if the next thing we do is to</div><div class='del'>-	hit backspace, delete both the comma and the extra whitespace we</div><div class='del'>-	added.</div><div class='del'>-	(e_select_names_text_model_init): Initialize our last magic comma</div><div class='del'>-	position.</div><div class='del'>-</div><div class='del'>-2001-08-09  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_create_entry): Hook up some magic to</div><div class='del'>-	(basically) cardify an entry on focus-out.  (What we do is actually</div><div class='del'>-	more complicated than that.)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_set_property_fn): After we set an entry's text, try to</div><div class='del'>-	cardify it.  We need to do this so that (for example) reply</div><div class='del'>-	e-mails get properly cardified.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_duplicate): Use e_select_names_model_append,</div><div class='del'>-	rather than manipulating lists directly.</div><div class='del'>-	(e_select_names_model_insert): Connect "changed" signal proxy for</div><div class='del'>-	added EDestination.</div><div class='del'>-	(e_select_names_model_append): Ditto.</div><div class='del'>-	(e_select_names_model_replace): Ditto, and disconnect signals for</div><div class='del'>-	replaced EDestination.</div><div class='del'>-	(e_select_names_model_delete): Ditto on the disconnection.</div><div class='del'>-	(e_select_names_model_delete_all): Ditto.</div><div class='del'>-	(e_select_names_model_cardify): Added.  Try to cardify a specified</div><div class='del'>-	EDestination.</div><div class='del'>-	(e_select_names_model_cancel_cardify): Added.  Cancel the pending</div><div class='del'>-	cardification of a single EDestination.</div><div class='del'>-	(e_select_names_model_cardify_all): Added.  Cardify all of the</div><div class='del'>-	EDestinations in the model.</div><div class='del'>-	(e_select_names_model_cancel_cardify_all): Added.  Cancel's any</div><div class='del'>-	and all pending cardifications.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_class_init): Added</div><div class='del'>-	"changed" and "cardified" signals.</div><div class='del'>-	(e_destination_freeze): Added (static).</div><div class='del'>-	(e_destination_thaw): Added (static).</div><div class='del'>-	(e_destination_clear_card): Reset allow_cardify and</div><div class='del'>-	cannot_cardify, cancel any pending cardifications, and emit the</div><div class='del'>-	"changed" signal.</div><div class='del'>-	(e_destination_clear_strings): Emit the "changed" signal.</div><div class='del'>-	(e_destination_clear): Do freeze/thaw to prevent multiple signal</div><div class='del'>-	emissions.</div><div class='del'>-	(e_destination_set_card): Check that the card we are setting is</div><div class='del'>-	not equal to the current card, and emit the "changed" signal if we</div><div class='del'>-	are actually changing.</div><div class='del'>-	(e_destination_set_card_uri): Emit "changed" signal, if necessary.</div><div class='del'>-	(e_destination_set_name): Emit "changed" signal, if necessary.</div><div class='del'>-	(e_destination_set_email): Emit "changed" signal, if necessary.</div><div class='del'>-	(e_destination_set_html_mail_pref): Emit "changed" signal, if</div><div class='del'>-	necessary.</div><div class='del'>-	(use_card_cb): If we've just loaded/set the ECard, emit the</div><div class='del'>-	"changed" signal.</div><div class='del'>-	(e_destination_set_raw): Emit "changed" signal, if necessary.</div><div class='del'>-	(e_destination_allow_cardification): Added.</div><div class='del'>-	(e_destination_set_allow_cardification): Added.</div><div class='del'>-	(e_destination_cardify): Added.  Tries to automatically convert</div><div class='del'>-	a string-based EDestination to one based on an ECard.</div><div class='del'>-	(e_destination_cardify_delayed): Added.  Cardifies in a timeout.</div><div class='del'>-	(e_destination_cancel_cardify): Added.  Cancels any pending</div><div class='del'>-	cardifications.</div><div class='del'>-	(e_destination_xml_decode): Added freeze/thaw.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c (e_book_nickname_query): Added.  A</div><div class='del'>-	canned simple query for nicknames.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_email_find_number): Added.  Given</div><div class='del'>-	a card and an string containing an email address, return the index</div><div class='del'>-	number of the address inside of the card, or -1 if the address is</div><div class='del'>-	not found.</div><div class='del'>-</div><div class='del'>-2001-08-09  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[ Fixes ximian bugs #5080, #6021, #6704, #6705 ] </div><div class='del'>-	</div><div class='del'>-	* gui/component/addressbook.c (book_open_cb): create our own</div><div class='del'>-	dialog that prompts for both the email address and the password.</div><div class='del'>-	the email address is stored in the source and filled in for the</div><div class='del'>-	user after the first time they enter one and press OK.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (create_ldap_folder): has a</div><div class='del'>-	return value, not a int* parameter.</div><div class='del'>-	(create_ldap_folder): new function, we can create ldap servers</div><div class='del'>-	from the File-&gt;New-&gt;Folder menu item now.</div><div class='del'>-	(register_storage): hook up the "create_folder" signal.</div><div class='del'>-	(addressbook_storage_init_source_uri): remove the file case, we</div><div class='del'>-	only build ldap uris here.</div><div class='del'>-	(load_source_data): remove the file source stuff, and handle</div><div class='del'>-	"emailaddr".</div><div class='del'>-	(save_source_data): call ldap_source_foreach directly.</div><div class='del'>-	(addressbook_source_free): remove file source stuff.</div><div class='del'>-	(addressbook_source_copy): same.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.h: get rid of all the file</div><div class='del'>-	source stuff from AddressbookSource, since this is only being used</div><div class='del'>-	for ldap servers.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_process_authenticate_user): look up the ldap</div><div class='del'>-	entry based on the provided email address and use the resulting</div><div class='del'>-	DN/passwd to authenticate.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c: pretty much gutted to make</div><div class='del'>-	it work with the new UI.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.glade: new version from anna.</div><div class='del'>-	</div><div class='del'>-2001-08-09  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (SPEC): Upped the minimum width</div><div class='del'>-	on all addressbook columns to 75.  Fixes Ximian bug #2773.</div><div class='del'>-</div><div class='del'>-2001-08-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (ce_have_book): mark</div><div class='del'>-	the dialog as changed so the save button is immediately available.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (card_modified_cb): once</div><div class='del'>-	we save reset the change flag to false if we aren't closing the</div><div class='del'>-	dialog.</div><div class='del'>-	(card_added_cb): same.</div><div class='del'>-	(e_contact_editor_class_init): add a "changed" arg.</div><div class='del'>-	(e_contact_editor_set_arg): add setter for "changed".</div><div class='del'>-	(e_contact_editor_get_arg): add getter for "changed".</div><div class='del'>-</div><div class='del'>-2001-08-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-quick-add.c (ce_have_book): better</div><div class='del'>-	to assume that we can write to the local addressbook than that we</div><div class='del'>-	can't write to it :)</div><div class='del'>-</div><div class='del'>-2001-08-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c (create_ui):</div><div class='del'>-	call e_pixmap_update so we can use the same save/save-as pixmaps</div><div class='del'>-	as the contact editor.</div><div class='del'>-</div><div class='del'>-2001-08-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c (open_card): new</div><div class='del'>-	function, used by the context menu.</div><div class='del'>-	(e_addressbook_reflow_adapter_right_click): put "Open" at the top</div><div class='del'>-	of the menu.  also, disable "Delete" if the addressbook isn't</div><div class='del'>-	writable.</div><div class='del'>-</div><div class='del'>-2001-08-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (rfc2254_escape): escape *, \, (,</div><div class='del'>-	and ), as per rfc2254.</div><div class='del'>-	(func_contains): escape the string.</div><div class='del'>-	(func_is): same.</div><div class='del'>-	(func_beginswith): same.</div><div class='del'>-	(func_endswith): same.</div><div class='del'>-</div><div class='del'>-2001-08-08  Nat Friedman  &lt;nat@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c (print_envelope): If 0'd out</div><div class='del'>-	since Envelope printing is disabled for 1.0.	</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (print_envelope): Likewise.</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (print_envelope_cb): Likewise.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c</div><div class='del'>-	(e_addressbook_reflow_adapter_right_click): Removed "Print</div><div class='del'>-	Envelope" menu item.</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_right_click): Likewise.</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c	(verbs): Likewise.</div><div class='del'>-</div><div class='del'>-2001-08-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (remove_ldap_folder): ifdef</div><div class='del'>-	this HAVE_LDAP.</div><div class='del'>-</div><div class='del'>-2001-08-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c</div><div class='del'>-	(e_addressbook_search_dialog_init): set the title of the window to</div><div class='del'>-	"Advanced Search".</div><div class='del'>-</div><div class='del'>-2001-08-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (search_cb): pass view-&gt;view instead</div><div class='del'>-	of the EBook.</div><div class='del'>-	(addressbook_search_menu_items): remove E_FILTERBAR_ADVANCED.</div><div class='del'>-	(addressbook_menu_activated): remove E_FILTERBAR_ADVANCED.</div><div class='del'>-	(addressbook_search_option_items): add "Advanced..." here.</div><div class='del'>-	(addressbook_query_changed): add special handling for Advanced...</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.h (struct</div><div class='del'>-	_EAddressbookSearchDialog): add EAddressbookView and remove the</div><div class='del'>-	model/adapter fields.  Also fix prototype of</div><div class='del'>-	e_addressbook_search_dialog_new.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c</div><div class='del'>-	(e_addressbook_search_dialog_class_init): get rid of</div><div class='del'>-	set_arg/get_arg.</div><div class='del'>-	(button_press): set the query on the EAddressbookView, and always</div><div class='del'>-	close the dialog.</div><div class='del'>-	(e_addressbook_search_dialog_init): get rid of the minicard view,</div><div class='del'>-	and pack the other widgets accordingly.</div><div class='del'>-	(e_addressbook_search_dialog_new): pass EAddressbookView instead</div><div class='del'>-	of EBook.</div><div class='del'>-	(e_addressbook_search_dialog_destroy): remove model/adapter stuff.</div><div class='del'>-</div><div class='del'>-2001-08-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[ Fixes bug #5066 ]</div><div class='del'>-	* gui/component/addressbook-storage.c (remove_ldap_folder): new</div><div class='del'>-	function, remove the source.</div><div class='del'>-	(register_storage): connect to the "remove_folder" signal so we</div><div class='del'>-	know when to remove the folder.</div><div class='del'>-</div><div class='del'>-2001-08-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (build_card_from_entry): use</div><div class='del'>-	g_strcasecmp since ldap attribute names are not case sensitive.</div><div class='del'>-</div><div class='del'>-2001-08-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c</div><div class='del'>-	(table_drag_data_received_cb): make sure we update the changed</div><div class='del'>-	state if a successful drop happens.</div><div class='del'>-</div><div class='del'>-2001-08-07  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_init): Make the OK button the keyboard default</div><div class='del'>-	instead of Cancel.  Bug #4942.</div><div class='del'>-</div><div class='del'>-2001-08-06  Radek Doulik  &lt;rodo@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_op_free): new EBookOp destructor</div><div class='del'>-	(e_book_unqueue_op): use e_book_op_free</div><div class='del'>-	(e_book_do_response_create_card): ditto</div><div class='del'>-	(e_book_do_response_generic): ditto</div><div class='del'>-	(e_book_do_response_get_cursor): ditto</div><div class='del'>-	(e_book_do_response_get_view): ditto</div><div class='del'>-	(e_book_do_response_get_changes): ditto</div><div class='del'>-	(e_book_do_response_open): ditto</div><div class='del'>-	(e_book_do_response_get_supported_fields): ditto</div><div class='del'>-</div><div class='del'>-2001-08-05  Radek Doulik  &lt;rodo@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_do_response_get_view): set</div><div class='del'>-	op-&gt;listener to NULL to catch possible use of freed op</div><div class='del'>-	(e_book_do_response_get_changes): ditto</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	   (e_book_view_listener_check_queue): this callback could be (and</div><div class='del'>-	   indeed is) called from signal emited above, </div><div class='del'>-	   signal handler could call e_book_view_listener_stop, so we need to check</div><div class='del'>-	   if idle is still set and if not we don't want to unref again</div><div class='del'>-</div><div class='del'>-2001-08-04  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (e_card_compare_name): Made it so</div><div class='del'>-	that if there's one less match than possible compares are</div><div class='del'>-	considered more VAGUE.  Fixes Ximian bug #3400.</div><div class='del'>-</div><div class='del'>-2001-08-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_hookup_shell_listener): Check for storage != NULL</div><div class='del'>-	here.  This shouldn't come up unless addressbook has crashed</div><div class='del'>-	previously within this session of evolution, but this is just a</div><div class='del'>-	bit of insurance.  Fixes Ximian bug #3699.</div><div class='del'>-</div><div class='del'>-2001-08-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_name_match_string): Changed the</div><div class='del'>-	criteria of whether the first part of each iteration matched or</div><div class='del'>-	the second one did.  Before it got it wrong sometimes and caused</div><div class='del'>-	the pointer to jump off the end of the array.  Fixes Ximian bug</div><div class='del'>-	#4674.</div><div class='del'>-</div><div class='del'>-2001-08-03  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (load_source_data): Update</div><div class='del'>-	for EvolutionStorage API changes.</div><div class='del'>-	(addressbook_storage_add_source): Ditto.</div><div class='del'>-</div><div class='del'>-2001-08-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (jump_to_letter): Made this</div><div class='del'>-	change the query based on which letter is clicked.  Fixes Ximian</div><div class='del'>-	bug #2202.</div><div class='del'>-</div><div class='del'>-2001-08-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	Fixed warnings here.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(hash_cleanup_fn): Removed this unused function.</div><div class='del'>-</div><div class='del'>-2001-08-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (e_card_simple_sync_card,</div><div class='del'>-	fill_in_info): Made the list of E_CARD_PHONE types in</div><div class='del'>-	phone_correspondences more complete by adding the new 5</div><div class='del'>-	E_CARD_PHONE types.  Also, made it a bit less restrictive for some</div><div class='del'>-	types (E_CARD_PHONE_HOME will actually match</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_HOME now.)  Made e_card_simple_sync_card</div><div class='del'>-	and fill_in_info search for an exact match in the list of</div><div class='del'>-	phone_correspondences and then look for a partial match.  Got rid</div><div class='del'>-	of not going forward when doing a remove from an EList since EList</div><div class='del'>-	handles this case automatically.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-types.h: Added E_CARD_PHONE types for</div><div class='del'>-	assistant, callback, radio, telex, and ttytdd.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (get_phone_flags, set_phone_flags):</div><div class='del'>-	Handle the new E_CARD_PHONE types.</div><div class='del'>-</div><div class='del'>-2001-08-02  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am (ecpsdir): Add camel dependency.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Add camel dependency.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Add camel dependency.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Properly init camel.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_clear_strings):</div><div class='del'>-	Clear -&gt;raw.</div><div class='del'>-	(e_destination_is_empty): We aren't empty if -&gt;raw is set..</div><div class='del'>-	(e_destination_set_raw): Replaces e_destination_set_string.</div><div class='del'>-	(e_destination_get_name): Use camel's parser to extract the name</div><div class='del'>-	from -&gt;raw.</div><div class='del'>-	(e_destination_get_email): Use camel's parser to extract the email</div><div class='del'>-	address from -&gt;raw.</div><div class='del'>-	(e_destination_get_address): Use camel to produce properly quoted,</div><div class='del'>-	RFC-compliant addresses.  Thanks camel! (Bug #5860)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(emailify_match): Always append an e-mail address, as long as it</div><div class='del'>-	doesn't have one already at it's beginning or end.  Don't limit</div><div class='del'>-	self to just emailifying entries tied to cards with multiple</div><div class='del'>-	addresses.  (I didn't really want to do this, but people seem to</div><div class='del'>-	like keeping multiple cards for the same person, and other</div><div class='del'>-	solutions (like scanning all matches for duplicate names, and only</div><div class='del'>-	emailifying those) just seemed like way too much work for such a</div><div class='del'>-	limited payoff.)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c:</div><div class='del'>-	s/e_destination_set_string/e_destination_set_raw/.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(popup_menu_card): Quote _'s in our popup menus, so that "foo_bar"</div><div class='del'>-	doesn't get displayed as "foobar" w/ the 'b' underlined. (Bug</div><div class='del'>-	#5558)</div><div class='del'>-	(popup_menu_nocard): Ditto.</div><div class='del'>-</div><div class='del'>-2001-08-02  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	Removed some extra padding and pack the addressbook view into a</div><div class='del'>-	frame with inward shadowing, just because it looks prettier.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c: Use the updated Save,</div><div class='del'>-	Save As, and Print icons for the menus and toolbar.</div><div class='del'>-</div><div class='del'>-2001-08-02  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added ContactsSaveAsVCard,</div><div class='del'>-	ContactsSendContactToOther, and ContactsSendMessageToContact verbs</div><div class='del'>-	here.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.h (e_addressbook_view_save_as,</div><div class='del'>-	e_addressbook_view_send, e_addressbook_view_send_to): New</div><div class='del'>-	functions to allow outside users to cause the addressbook to save,</div><div class='del'>-	send, or send a message to its selection.</div><div class='del'>-</div><div class='del'>-2001-08-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/.cvsignore: Removed this file from this unused</div><div class='del'>-	directory.</div><div class='del'>-</div><div class='del'>-2001-08-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/Makefile.am: Added file-exists.glade.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-save-as.c (file_exists),</div><div class='del'>-	gui/contact-editor/file-exists.glade: Added a dialog to ask the</div><div class='del'>-	user whether to replace an already existing file.  Mostly from a</div><div class='del'>-	patch by Jos Dehaes.  Fixes Ximian bug #2231.</div><div class='del'>-</div><div class='del'>-2001-08-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_check_queue): Removed thrash checking code</div><div class='del'>-	here since thrashing shouldn't happen now that we've cleaned this</div><div class='del'>-	up some.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_do_response_get_view): Properly</div><div class='del'>-	handle cases where construction fails.</div><div class='del'>-</div><div class='del'>-2001-07-30  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-vcard-importer.c: Added #include</div><div class='del'>-	&lt;e-util/e-path.h&gt;.</div><div class='del'>-</div><div class='del'>-2001-07-23  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c (addressbook_source_dialog):</div><div class='del'>-	Convert translated string to UTF8 before calling put_html.</div><div class='del'>-</div><div class='del'>-2001-07-30  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(e_select_names_completion_do_query): Properly handle the case</div><div class='del'>-	where our "cleaned" completion is the empty string.  This happens,</div><div class='del'>-	for example, if the query text is the string "\"".  (Bug #5610).</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_address_textv):</div><div class='del'>-	Reassure fejj that I'm not doing something stupid here.</div><div class='del'>-	(e_destination_get_address): Fix address quoting.  This is a</div><div class='del'>-	stop-gap measure until I can change this code to use Camel's</div><div class='del'>-	superior address-handling routines.  (Also Bug #5610)</div><div class='del'>-</div><div class='del'>-2001-07-30  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (load_source_data): Fix a</div><div class='del'>-	return value bug, to make it so if it fails to load an</div><div class='del'>-	addressbook-sources.xml file (either a parse error or it doesn't</div><div class='del'>-	exist for example), it deregisters the storage.</div><div class='del'>-	(register_storage): Don't make a storage for users who don't have</div><div class='del'>-	LDAP support built in.  Bug #1950.</div><div class='del'>-</div><div class='del'>-2001-07-30  Frederic Crozat  &lt;fcrozat@mandrakesoft.com&gt;</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook-factory.c: Fix crashes</div><div class='del'>-	when gtkhtml is compiled with gconf support</div><div class='del'>-</div><div class='del'>-2001-07-27  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: Tidy ldadds</div><div class='del'>-</div><div class='del'>-2001-07-26  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c: Fixing a</div><div class='del'>-	small, stupid mistake; use e_select_names_model_get_textification</div><div class='del'>-	for the getter for "text".</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Removed some debugging chatter.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_create_entry): Store the completion</div><div class='del'>-	handler in the entry's object data.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_get_property_fn): Added support for getting "destinations"</div><div class='del'>-	and "allow_contact_lists" properties.</div><div class='del'>-	(entry_set_property_fn): Added support for setting "destinations"</div><div class='del'>-	and "allow_contact_lists" properties.</div><div class='del'>-	(impl_SelectNames_get_entry_for_section): Added definitions for</div><div class='del'>-	"destinations" and "allow_contact_lists" properties.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(e_select_names_completion_get_match_contact_lists): Added.</div><div class='del'>-	(e_select_names_completion_set_match_contact_lists): Added.</div><div class='del'>-	Controls whether contact lists are offered as options during</div><div class='del'>-	completion.</div><div class='del'>-	(book_query_process_card_list): Check if match_contact_lists</div><div class='del'>-	is set before (duh!) matching on a contact list.</div><div class='del'>-	(e_select_names_completion_init): Set match_contact_lists</div><div class='del'>-	to TRUE by default.</div><div class='del'>-</div><div class='del'>-2001-07-25  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (func_contains): change the way</div><div class='del'>-	x-evolution-any-field is converted to an ldap query.  it used to</div><div class='del'>-	be we'd nest queries like: (|(|(|(foo=*x*))(bar=*x*))(baz=*x*)).</div><div class='del'>-	now we build it like: (|(foo=*x*)(bar=*x*)(baz=*x*)).  much more</div><div class='del'>-	efficient (both in the building, and on the server side no doubt).</div><div class='del'>-</div><div class='del'>-2001-07-25  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_name): Properly dup</div><div class='del'>-	the results of e_destination_get_email.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(e_select_names_popup): Check that our destination isn't empty</div><div class='del'>-	before building our popup. (Bug #5250)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_is_empty): Made</div><div class='del'>-	argument const.</div><div class='del'>-</div><div class='del'>-2001-07-24  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.c: Added checks</div><div class='del'>-	for all of the args of the exposed functions, so that</div><div class='del'>-	we won't crash on bad inputs.  (Related to bug #4856.)</div><div class='del'>-</div><div class='del'>-2001-07-24  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-duplicate-detected.glade: "_Add Anyway" to</div><div class='del'>-	"Add Anyway".</div><div class='del'>-</div><div class='del'>-2001-07-24  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_name): Added</div><div class='del'>-	fallbacks for the name in the case of an e-card, to avoid the</div><div class='del'>-	"nameless contact" bug.</div><div class='del'>-</div><div class='del'>-2001-07-24  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (remodel): need the EDestination magic</div><div class='del'>-	here too for when we modify an already shown card.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.c: make</div><div class='del'>-	parent_class static, just to be anal.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c</div><div class='del'>-	(remove_entry_cb): removing entries changes the list, so flag it.</div><div class='del'>-	(table_drag_data_received_cb): restrict cards we add to lists to</div><div class='del'>-	be non-list cards.</div><div class='del'>-	(extract_info): clear out the email list in the card before we</div><div class='del'>-	repopulate it from the contact list model.</div><div class='del'>-	(fill_in_info): set the checkbox to active/inactive based on</div><div class='del'>-	thecard.</div><div class='del'>-</div><div class='del'>-2001-07-24  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (wants_html_changed): call</div><div class='del'>-	widget_changed.</div><div class='del'>-	(phone_entry_changed): same.</div><div class='del'>-	(email_entry_changed): same.</div><div class='del'>-	(address_text_changed): same.</div><div class='del'>-	(name_entry_changed): same.</div><div class='del'>-	(company_entry_changed): same.</div><div class='del'>-	(widget_changed): new function that we can either call or set as a</div><div class='del'>-	signal to change the "changed" flag on the dialog.</div><div class='del'>-	(set_entry_changed_signals): connect lots of "changed" signals on</div><div class='del'>-	widgets to widget_changed.</div><div class='del'>-	(add_lists): connect "changed" to widget_changed.</div><div class='del'>-</div><div class='del'>-2001-07-24  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_hookup_shell_listener): Check if</div><div class='del'>-	evolution_shell_client_get_local_storage returns CORBA_OBJECT_NIL,</div><div class='del'>-	which it should never do.  If it does, print a warning in a dialog</div><div class='del'>-	and try to recover w/o crashing.  (Bug #5193)</div><div class='del'>-</div><div class='del'>-2001-07-24  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_stop): Don't</div><div class='del'>-	stop the idle_queue and unref from here, since this might be</div><div class='del'>-	called from inside e_book_listener_check_queue, and we don't want</div><div class='del'>-	to return to that function with the listener having been</div><div class='del'>-	destroyed.</div><div class='del'>-	(e_book_listener_check_queue): Don't exit early if the queue is</div><div class='del'>-	stopped. Proceed through the check if the queue is NULL (which is</div><div class='del'>-	must be if the queue is stopped), and then reach the existing code</div><div class='del'>-	to remove the idle handler. Combined with the above, this fixes</div><div class='del'>-	ximian #4485 (again). This is not a plot to boost my</div><div class='del'>-	showstopper-bugfixing count by fixing the same bug over and over</div><div class='del'>-	again.</div><div class='del'>-</div><div class='del'>-2001-07-23  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	Re-fix for my 07-18 not-quite-fix.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c: Add a "stopped" flag like</div><div class='del'>-	EBookViewListener.</div><div class='del'>-	(e_book_listener_check_queue): Don't emit signals if the listener</div><div class='del'>-	is stopped.</div><div class='del'>-	(e_book_listener_queue_generic_response, etc): Don't queue</div><div class='del'>-	responses if the listener is stopped.</div><div class='del'>-	(e_book_listener_stop): Flush the queue and stop queue/emitting</div><div class='del'>-	further responses.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_unload_uri): Revert the previous</div><div class='del'>-	change and call e_book_listener_stop() instead.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_stop): When removing an idle handler, unref</div><div class='del'>-	the listener as well, since e_book_view_listener_queue_response</div><div class='del'>-	will have ref'ed it.</div><div class='del'>-</div><div class='del'>-2001-07-22  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (remove_folder): Add a</div><div class='del'>-	@type arg.  If the type is not "contacts", report an</div><div class='del'>-	`UNSUPPORTED_TYPE' error through the listener.  Also, remove</div><div class='del'>-	`g_print()' debugging messages.</div><div class='del'>-	(xfer_folder): Likewise.</div><div class='del'>-</div><div class='del'>-2001-07-21  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Make the "contacts"</div><div class='del'>-	folders user-creatable by setting `user_creatable' to %TRUE in the</div><div class='del'>-	`EvolutionShellComponentFolderType's.</div><div class='del'>-</div><div class='del'>-2001-07-18  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[ patch contributed by Jos Dehaes &lt;jos.dehaes@bigfoot.com&gt; ]</div><div class='del'>-	</div><div class='del'>-	* gui/component/addressbook-storage.c (register_storage): new</div><div class='del'>-	function, register our evolution_storage.</div><div class='del'>-	(addressbook_storage_setup): remove storage registration from</div><div class='del'>-	here.</div><div class='del'>-	(load_source_data): register the storage here before we load</div><div class='del'>-	addressbook-sources.xml, and deregister it if there are no sources</div><div class='del'>-	listed.</div><div class='del'>-	(addressbook_storage_remove_source): unregister the storage if the</div><div class='del'>-	list of sources hits 0 length.</div><div class='del'>-</div><div class='del'>-2001-07-18  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_unload_uri): Flush the listener's</div><div class='del'>-	queue before unreffing it to ensure that it doesn't emit any more</div><div class='del'>-	"responses_queued" signals after the EBook is destroyed.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_check_queue,</div><div class='del'>-	e_book_listener_queue_response, e_book_listener_new): Use</div><div class='del'>-	bonobo_object_ref/unref rather than gtk_object_ref/unref.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_queue_response, e_book_view_listener_new):</div><div class='del'>-	Likewise.</div><div class='del'>-</div><div class='del'>-2001-07-18  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (simple_query_cb): prune the list</div><div class='del'>-	of cards that match our query using the avoid list here, instead</div><div class='del'>-	of using the avoid list in the query itself, since ldap can't</div><div class='del'>-	handle that.</div><div class='del'>-	(use_common_book_cb): remove the block of code including the avoid</div><div class='del'>-	list in the query sent to wombat.</div><div class='del'>-</div><div class='del'>-2001-07-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[ Fixes bugs #4611 - crash searching in the name field at Bigfoot for "\"</div><div class='del'>-	        and  #4554 - general ldap search crash ]</div><div class='del'>-	</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (func_contains): the length of</div><div class='del'>-	the big query string needs to take into account the length of the</div><div class='del'>-	footer as well as the header - fix random memory corruption here.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query):</div><div class='del'>-	list can be NULL, specifically if there's a parsing error in the</div><div class='del'>-	sexp, so deal with it.</div><div class='del'>-</div><div class='del'>-2001-07-17  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_queue_response): Hold a reference to our</div><div class='del'>-	listener while the idle function is active.</div><div class='del'>-	(e_book_view_listener_check_queue): Only unref the listener when</div><div class='del'>-	the idle function is finished.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_clicked): Instead of replacing section-&gt;model with</div><div class='del'>-	source, copy source onto section-&gt;model with</div><div class='del'>-	e_select_names_model_overwrite_copy.  #if 0/#endif out all of the</div><div class='del'>-	stuff related to ETextModels, because it doesn't make any sense to</div><div class='del'>-	me, and everything appears to work without it.</div><div class='del'>-	(Die bug #2059.  Die! Die! Die!)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_overwrite_copy): Added.  Copies the contents</div><div class='del'>-	of one ESelectNamesModel onto another.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_copy): Made the argument</div><div class='del'>-	const.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_set_string): Removed</div><div class='del'>-	old, broken code and annoying g_messages.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(e_book_listener_queue_response): Hold a reference to the listener</div><div class='del'>-	while the idle function is active.</div><div class='del'>-	(e_book_listener_check_queue): Only release our reference to the</div><div class='del'>-	listener when the queue is empty.  These two changes fix a race</div><div class='del'>-	condition, since the listener could be unrefed while the listener</div><div class='del'>-	was still active. (Seems to fix bug #4485)</div><div class='del'>-</div><div class='del'>-2001-07-17  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/contact-editor.glade,</div><div class='del'>-	gui/merging/e-card-duplicate-detected.glade,</div><div class='del'>-	gui/merging/e-card-merging-book-commit-duplicate-detected.glade,</div><div class='del'>-	printing/e-contact-print.glade: Patch from Taylor Hayward</div><div class='del'>-	&lt;thayward@gjpc.com&gt;.  Added accelerators to a few dialogs.</div><div class='del'>-</div><div class='del'>-2001-07-16  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Evolution-Addressbook-SelectNames.idl:</div><div class='del'>-	Added addSectionWithLimit to the SelectNames interface.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(impl_SelectNames_add_section_with_limit): Added.  Implements</div><div class='del'>-	addSectionWithLimit.</div><div class='del'>-	(e_select_names_bonobo_construct): Set up as a BonoboEventSource.</div><div class='del'>-	(init): Listen for "changed" signals from our manager.</div><div class='del'>-	(manager_changed_cb): Notify our listeners if we get a changed</div><div class='del'>-	signal from our manager.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_class_init): Added a "changed" signal".</div><div class='del'>-	(section_copy): Propogate the signal connection.</div><div class='del'>-	(section_free): Disconnect the changed handler.</div><div class='del'>-	(e_select_names_manager_add_section_with_limit): Connect to the</div><div class='del'>-	new section's model, listening for changes.</div><div class='del'>-	(e_select_names_manager_activate_dialog): Connect to the "working</div><div class='del'>-	copy" model, listening for changes.</div><div class='del'>-	(e_select_names_manager_add_section_with_limit): Added.</div><div class='del'>-	(e_select_names_manager_add_section): Changed to just be a special</div><div class='del'>-	case of e_select_names_manager_add_section_with_limit.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_set_limit): Added.  Allows a max number of</div><div class='del'>-	names allowed in the model.</div><div class='del'>-	(e_select_names_model_get_limit): Added.  Returns the limit.</div><div class='del'>-	(e_select_names_model_at_limit): Added.  Returns TRUE if the</div><div class='del'>-	model is "full".</div><div class='del'>-	(e_select_names_model_insert): Check that we aren't at the</div><div class='del'>-	limit before inserting.  Silently return if we are.</div><div class='del'>-	(e_select_names_model_append): Check that we aren't at the</div><div class='del'>-	limit before appending.  Silently return if we are.</div><div class='del'>-</div><div class='del'>-2001-07-16  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	[ Fix bug #4705 - LDAP storage gets saved with corrupted binddn]</div><div class='del'>-	</div><div class='del'>-	* gui/component/addressbook-config.c (addressbook_dialog_apply):</div><div class='del'>-	call addressbook_storage_write_sources here after we're done</div><div class='del'>-	rebuilding them.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c</div><div class='del'>-	(addressbook_storage_clear_sources): don't write the source file</div><div class='del'>-	here.</div><div class='del'>-	(addressbook_storage_add_source): same.</div><div class='del'>-	(addressbook_storage_remove_source): same.</div><div class='del'>-	(addressbook_storage_write_sources): new function, write the</div><div class='del'>-	source file out.</div><div class='del'>-	(addressbook_source_copy): g_strdup the binddn so we don't end up</div><div class='del'>-	free'ing it multiple times thanks to copies freeing theirs.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.h: add prototype for</div><div class='del'>-	address_storage_write_sources.</div><div class='del'>-</div><div class='del'>-2001-07-16  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/evolution-vcard-importer.c (ebook_create): Don't just </div><div class='del'>-	use the default directory. Use the directory that is passed into the</div><div class='del'>-	load file function.</div><div class='del'>-</div><div class='del'>-2001-07-15  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_set_string):</div><div class='del'>-	Commented out some unused variables and labels.</div><div class='del'>-	(e_destination_importv): Check for the xml not parsing correctly</div><div class='del'>-	and just return NULL here.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_import_destinationv): Handle a NULL destv</div><div class='del'>-	here.</div><div class='del'>-</div><div class='del'>-2001-07-15  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_drag_data_get): Added a</div><div class='del'>-	call to e_table_view_to_model_row here.</div><div class='del'>-	(e_addressbook_view_can_print, e_addressbook_view_can_delete,</div><div class='del'>-	e_addressbook_view_can_copy): If the selection model is NULL here,</div><div class='del'>-	return NULL (this was done before in a g_return_val_if_fail which</div><div class='del'>-	is only conditionally included.)</div><div class='del'>-</div><div class='del'>-2001-07-13  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/contact-editor.glade: Changed Company to</div><div class='del'>-	Organization here.</div><div class='del'>-</div><div class='del'>-2001-07-12  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am: add ldap cflags</div><div class='del'>-</div><div class='del'>-2001-07-12  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_xml_decode):</div><div class='del'>-	Oops. I introduced my own bug, accidently set `email' to a</div><div class='del'>-	g_free'd pointer - eek!</div><div class='del'>-</div><div class='del'>-2001-07-12  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_importv): Optimized</div><div class='del'>-	the same way I optimized g_strsplit. If you use a GPtrArray</div><div class='del'>-	instead of a linked list, you save yourself from having to iterate</div><div class='del'>-	through the list an extra 3 times.</div><div class='del'>-	(e_destination_xml_decode): Do NOT, I repeat: do NOT!</div><div class='del'>-	e_utf8_xml1_decode something which is already in UTF-8 or you'll</div><div class='del'>-	corrupt it!! I smack thee who hath done this evil deed!</div><div class='del'>-</div><div class='del'>-2001-07-12  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/e-book/evolution-vcard-importer.c (support_format_fn):</div><div class='del'>-	Check for no extension. Actually same as Jason's fix below :) but</div><div class='del'>-	also check the file contents.</div><div class='del'>-</div><div class='del'>-2001-07-12  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.glade: add accelerators,</div><div class='del'>-	taylor's patch</div><div class='del'>-</div><div class='del'>-2001-07-12  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-vcard-importer.c (support_format_fn):</div><div class='del'>-	Crash fix because strcmp() hates NULL arguments.  Bug #3777.</div><div class='del'>-</div><div class='del'>-2001-07-11  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (remove_cb): Added</div><div class='del'>-	some comments for clarity and fixed a pretty noticable bug with</div><div class='del'>-	how right click "Remove" was deleting more than it should with</div><div class='del'>-	consecutive runs.</div><div class='del'>-</div><div class='del'>-2001-07-10  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/evolutionperson.schema: assign OID's to the schema</div><div class='del'>-	entries, and add schema support for contact lists.</div><div class='del'>-</div><div class='del'>-2001-07-10  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): Set</div><div class='del'>-	bf-&gt;priv-&gt;file_db before calling do_create.</div><div class='del'>-</div><div class='del'>-2001-07-06  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Fixed order</div><div class='del'>-	of arguments to evolution_shell_component_new.</div><div class='del'>-</div><div class='del'>-2001-07-08  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_insert_length): Check that str isn't</div><div class='del'>-	the empty string before doing an insert.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_set_string): We were</div><div class='del'>-	being too smart for our own good here, and causing problems for</div><div class='del'>-	the completion code... (bug #4253, bug #4255, bug #4280)</div><div class='del'>-	(e_destination_set_name): Clear any cached address.</div><div class='del'>-	(e_destination_set_email): Clear any cached address.</div><div class='del'>-	(e_destination_get_address): Handle the cases where the name</div><div class='del'>-	contains some e-mail information.</div><div class='del'>-</div><div class='del'>-2001-07-09  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c: Marked a</div><div class='del'>-	string for translation. Also add the neccesary includes to make</div><div class='del'>-	_() macros work.</div><div class='del'>-	</div><div class='del'>-2001-07-07  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (add_field): Detect the embedded</div><div class='del'>-	EDestination XML, and convert it to a nice-looking e-mail address.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c: Adjusted to</div><div class='del'>-	reflect changes to EContactListModel.  (Yeah, this is vague,</div><div class='del'>-	but the changes are _really_ obvious and boring.)</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.c: Revamped</div><div class='del'>-	to make everything an EDestination, rather than storing either</div><div class='del'>-	cards or strings.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_insert_length): Use</div><div class='del'>-	e_destination_get_textrep.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c</div><div class='del'>-	(fill_in_info): Use e_destination_get_name and</div><div class='del'>-	e_destination_get_email.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(popup_menu_card): Use e_destination_get_name instead of</div><div class='del'>-	e_card_name_to_string.</div><div class='del'>-	(quick_add_cb): Use e_destination_get_address.</div><div class='del'>-	(popup_menu_nocard): Use e_destination_get_name.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_changed): Removed obsolete debugging code.</div><div class='del'>-	(e_select_names_model_get_textification): Use e_destination_get_textrep.</div><div class='del'>-	(e_select_names_model_get_address_text): Use e_destination_get_address.</div><div class='del'>-	(e_select_names_model_get_string): Use e_destination_get_textrep.</div><div class='del'>-	(e_select_names_model_replace): Use e_destination_get_textrep.</div><div class='del'>-	(e_select_names_model_name_pos): Use e_destination_get_textrep.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(emailify_match): Match only if this isn't a contact list.</div><div class='del'>-	(match_email): Match only if this isn't a contact list.</div><div class='del'>-	(match_name): Do the right thing in the case of a contact list.</div><div class='del'>-	(book_query_process_card_list): Don't construct a match for</div><div class='del'>-	each possible e-mail address if this is a contact list.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c: Major-league de-crufting and</div><div class='del'>-	rationalization, combined with lots of hacks to make things work</div><div class='del'>-	properly with contact lists.</div><div class='del'>-	(e_destination_copy): Copy contact list info.</div><div class='del'>-	(e_destination_clear_card): Clear contact list info.</div><div class='del'>-	(e_destination_is_empty): If we contain a contact list, we aren't</div><div class='del'>-	empty.</div><div class='del'>-	(e_destination_set_card_uri): Added.  Allows us to set a</div><div class='del'>-	destination by card URI.</div><div class='del'>-	(e_destination_set_name): Allows the contact's name only ("Jane</div><div class='del'>-	Smith") to be set.</div><div class='del'>-	(e_destination_set_email): Allows the contact's e-mail only</div><div class='del'>-	("jane@assbarn.com") to be set.</div><div class='del'>-	(e_destination_set_string): Takes a free-form string containing a</div><div class='del'>-	contact's name and/or e-mail, and tries to do the right thing with</div><div class='del'>-	it.</div><div class='del'>-	(e_destination_contains_card): Renamed.  Used to be</div><div class='del'>-	e_destination_has_card.</div><div class='del'>-	(e_destination_from_card): Added.  Returns TRUE if the</div><div class='del'>-	EDestination comes from either a ECard (which we presently hold)</div><div class='del'>-	or is specified by an ECard URI.</div><div class='del'>-	(e_destination_use_card): Allows an EDestination's ECard to be</div><div class='del'>-	accessed, via a callback.  If we only are holding the URI, the</div><div class='del'>-	card will be loaded and stored in the EDestination.</div><div class='del'>-	(e_destination_get_name): Returns the name only ("Jane Smith"), or</div><div class='del'>-	NULL.</div><div class='del'>-	(e_destination_get_email): Returns the email only</div><div class='del'>-	("jane@assbarn.com"), or NULL.</div><div class='del'>-	(e_destination_get_address): Added.  Returns a "full address" if</div><div class='del'>-	both the name &amp; e-mail are available ("Jane Smith</div><div class='del'>-	&lt;jane@assbarn.com&gt;"), or just the e-mail if the name is unknown</div><div class='del'>-	("jane@assbarn.com&gt;").  If the destination is a contact list,</div><div class='del'>-	returns a comma-separated list of addresses.</div><div class='del'>-	(e_destination_get_textrep): Added.  Returns a "text</div><div class='del'>-	representation" of the EDestination.  This is what is now</div><div class='del'>-	displayed for completed, "cardified" destinations in addressbook</div><div class='del'>-	entries.</div><div class='del'>-	(e_destination_is_evolution_list): Check to see if this</div><div class='del'>-	destination is for a contact list.</div><div class='del'>-	(e_destination_xml_encode): Added.  Build an XML data structure</div><div class='del'>-	representing an EDestination.</div><div class='del'>-	(e_destination_xml_decode): Added.  Parse an XML data structure,</div><div class='del'>-	constructing an EDestination.</div><div class='del'>-	(e_destination_export): Added.  Returns a null-terminated string</div><div class='del'>-	containing an XML representation of the EDestination, with</div><div class='del'>-	newlines and excess whitespace removed.</div><div class='del'>-	(e_destination_import): Added.  Parses a string containing an XML</div><div class='del'>-	representation of an EDestination.</div><div class='del'>-	(e_destination_exportv): Added.  Returns a null-terminated string</div><div class='del'>-	containing an XML representation of a collection of EDestinations,</div><div class='del'>-	with newlines and excess whitespace removed.</div><div class='del'>-	(e_destination_importv): Added.  Takes an XML representation of a</div><div class='del'>-	collection of destinations, parses it, and returns a vector of</div><div class='del'>-	EDestinations.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_duplicate): Copy the -&gt;book</div><div class='del'>-	pointer.</div><div class='del'>-	(e_card_get_id): Check that the argument is valid.</div><div class='del'>-	(e_card_set_id): Check that the argument is valid.</div><div class='del'>-	(e_card_get_book): Added.  Return the EBook the ECard came from.</div><div class='del'>-	(e_card_get_uri): Added.  Tries to returns a URI for the ECard,</div><div class='del'>-	which is of the form (EBook URI)/(ECard unique ID).  Returns NULL</div><div class='del'>-	if the EBook URI or the ID are unknown/not set.</div><div class='del'>-	(e_card_get_vobject): If we have the URI, use it as the</div><div class='del'>-	VCUniqueStringProp, rather than just the ID.  This is a hack to</div><div class='del'>-	make DnD work properly.</div><div class='del'>-	(parse_id): Detect if the unique ID we've been passed is a URI or</div><div class='del'>-	just a plain card ID, and do the right thing in either case.</div><div class='del'>-	(e_card_uri_extract_book_uri): Added.  Convenience function for</div><div class='del'>-	parsing card URIs.</div><div class='del'>-	(e_card_uri_extract_card_id): Added.  Convenience function for</div><div class='del'>-	parsing card URIs.</div><div class='del'>-	(e_card_load_uri): Added.  Allows an ECard to be loaded by its</div><div class='del'>-	URI.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view.c: Added a EBook * to the</div><div class='del'>-	_EBookViewPrivate struct.  This is meant to contain the EBook the</div><div class='del'>-	EBookView is associated with.</div><div class='del'>-	(add_book_iterator): Added.  A convenience function for attaching</div><div class='del'>-	the EBook to a GList of cards (if no EBook is already stored).</div><div class='del'>-	(e_book_view_do_added_event): Record the EBook in the added</div><div class='del'>-	ECards.</div><div class='del'>-	(e_book_view_do_modified_event): Record the EBook in the modified</div><div class='del'>-	ECards.</div><div class='del'>-	(e_book_view_set_book): Added.  Stores a pointer to the</div><div class='del'>-	EBookView's "parent" EBook.</div><div class='del'>-	(e_book_view_init): Init book_view-&gt;priv-&gt;book to NULL.</div><div class='del'>-	(e_book_view_destroy): Unref book_view-&gt;priv-&gt;book.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c: Added a uri field to _EBookPrivate.</div><div class='del'>-	(e_book_unqueue_op): Removed debugging spew.</div><div class='del'>-	(e_book_do_response_get_view): Attach the current EBook to the</div><div class='del'>-	created EBookView.</div><div class='del'>-	(e_book_do_response_get_changes): Attach the current EBook to the</div><div class='del'>-	created EBookView.</div><div class='del'>-	(e_book_load_uri): Save a copy of the uri in the EBook.</div><div class='del'>-	(e_book_get_uri): Added.  Just returns book-&gt;priv-&gt;uri.</div><div class='del'>-	(e_book_get_card): Attach a pointer to the Ebook to the</div><div class='del'>-	newly-loaded ECard.</div><div class='del'>-	(e_book_add_card): Attach a pointer to the EBook to the</div><div class='del'>-	newly-added ECard.</div><div class='del'>-	(e_book_commit_card): Attach a pointer to the EBook to the</div><div class='del'>-	committed ECard.</div><div class='del'>-	(e_book_init): Initialize the uri to NULL.</div><div class='del'>-	(e_book_destroy): Free the uri string on destruction.</div><div class='del'>-</div><div class='del'>-2001-07-06  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (populate_context_menu):</div><div class='del'>-	Removed.  [It was just bogus testing code for the right-click menu</div><div class='del'>-	populating interface in the shell].</div><div class='del'>-	(factory_fn): Pass NULL as the PopulateContextMenuFn.</div><div class='del'>-</div><div class='del'>-2001-07-05  Anna Marie Dirks  &lt;anna@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/contact-list-editor.glade: </div><div class='del'>-	Added some accelerators, padding, and a "memebers" frame;</div><div class='del'>-	also fixed spacing and growth behaviour of this dialog. </div><div class='del'>-</div><div class='del'>-2001-07-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (compare_category): Fix a memory</div><div class='del'>-	leak here.</div><div class='del'>-</div><div class='del'>-2001-07-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (match_search_info_free): Set</div><div class='del'>-	info-&gt;avoid = NULL.  This shouldn't make a difference, but it</div><div class='del'>-	can't hurt.</div><div class='del'>-</div><div class='del'>-2001-07-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c</div><div class='del'>-	(addressbook_is_cell_editable): Check if the row is within our</div><div class='del'>-	table and return from this function as if the card is a standard</div><div class='del'>-	card, not a list.</div><div class='del'>-</div><div class='del'>-2001-07-03  Damon Chaplin  &lt;damon@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): </div><div class='del'>-	added $(BONOBO_CONF_LIBS) to get it to compile.</div><div class='del'>-</div><div class='del'>-2001-07-02  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDADD): Added</div><div class='del'>-	$(BONOBO_CONF_LIBS).</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_create_categories),</div><div class='del'>-	gui/contact-editor/e-contact-editor.c (categories_clicked):</div><div class='del'>-	Switched to an ECategoriesMasterListWombat instead of an</div><div class='del'>-	ECategoriesMasterListArray here.</div><div class='del'>-</div><div class='del'>-2001-07-02  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/Makefile.am (INCLUDES): srcdir !=</div><div class='del'>-	builddir compile fix.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/Makefile.am (INCLUDES): Same.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (INCLUDES): Same.</div><div class='del'>-</div><div class='del'>-	* gui/search/Makefile.am (INCLUDES): Same.</div><div class='del'>-</div><div class='del'>-2001-07-02  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c (categories_clicked):</div><div class='del'>-	Turned off wombatification of the categories master list here.</div><div class='del'>-</div><div class='del'>-2001-07-01  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c (fill_in_info):</div><div class='del'>-	use ECARD_UID_LINK_PREFIX.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.c</div><div class='del'>-	(e_contact_list_model_get_email): use ECARD_UID_LINK_PREFIX.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.h: add prototype for</div><div class='del'>-	e_destination_importv_list.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_importv_list): new</div><div class='del'>-	function, take an ECard corresponding to an address list and</div><div class='del'>-	resolve any linked cards, returning an EDestination vector.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.h (ECARD_UID_LINK_PREFIX): #define this here,</div><div class='del'>-	since we need to use it in a few places.</div><div class='del'>-</div><div class='del'>-2001-07-02  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added</div><div class='del'>-	related_contacts field.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.h</div><div class='del'>-	(e_select_names_model_import_destinationv): Added this function.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/contact-editor.glade: Replaced the entry here</div><div class='del'>-	for related contacts with a table which is filled in in the C code.</div><div class='del'>-</div><div class='del'>-	* gui/contact-editor/e-contact-editor.c,</div><div class='del'>-	gui/contact-editor/e-contact-editor.h (add_lists): Added a select</div><div class='del'>-	names entry here for the related contacts field.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am: Removed all the test programs here</div><div class='del'>-	since there are circular dependencies now.</div><div class='del'>-</div><div class='del'>-2001-07-01  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_string): Fall</div><div class='del'>-	back to use the name field if all else fails (which can happen</div><div class='del'>-	with imported EDestinations).</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_is_empty): Fix for the</div><div class='del'>-	"recipient not specified" bug --- we were not correctly checking</div><div class='del'>-	for whether or not an EDestination was actually empty.</div><div class='del'>-</div><div class='del'>-2001-06-30  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_evolution_list): Check args.</div><div class='del'>-	Somewhere in the code (somewhere in the minicard stuff) this can</div><div class='del'>-	be called with a NULL arg, which was causing crashes.</div><div class='del'>-	(e_card_evolution_list_show_addresses): Check args.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (build_field): I was accidentally</div><div class='del'>-	comparing characters and strings here, and didn't see the compiler</div><div class='del'>-	warning.  Fixed.</div><div class='del'>-	(e_destination_exportv): Don't export any empty destinations.</div><div class='del'>-	(bug#3825).</div><div class='del'>-</div><div class='del'>-2001-06-30  Zbigniew Chyla  &lt;cyba@gnome.pl&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c (e_address_popup_construct): Marked</div><div class='del'>-	strings for translation.</div><div class='del'>-</div><div class='del'>-2001-06-30  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-merging.c (match_query_callback): Make the</div><div class='del'>-	standard for considering two cards to be match stricter.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(make_match): Use the card's use-score to set the match's</div><div class='del'>-	sort_major value.</div><div class='del'>-	(match_name): Removed obsolete code.</div><div class='del'>-	(e_select_names_completion_begin): Added (double) cast to make</div><div class='del'>-	match-&gt;score calculation come out properly.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Added X-EVOLUTION-LAST-USE and</div><div class='del'>-	X-EVOLUTION-USE-SCORE to attribute_jump_array.</div><div class='del'>-	(e_card_get_today): Added.  A convenience routine for getting</div><div class='del'>-	today's date and putting it in a GDate.</div><div class='del'>-	(e_card_get_use_score): Added.  Compute the current, time-decayed,</div><div class='del'>-	use-score for the card.</div><div class='del'>-	(e_card_touch): Increment the use-score by one; update the last</div><div class='del'>-	used date.</div><div class='del'>-	(e_card_date_to_string): Added as a convenience routine, getting</div><div class='del'>-	rid of some code duplication.</div><div class='del'>-	(e_card_get_vobject): Add handlers for X-EVOLUTION-USE-SCORE and</div><div class='del'>-	X-EVOLUTION-LAST-USE.</div><div class='del'>-	(parse_last_use): Added.</div><div class='del'>-	(parse_use_score): Added.</div><div class='del'>-	(e_card_class_init): Added args for last-use and use-score.</div><div class='del'>-	(e_card_get_arg): Added handlers for last-use and use-score.</div><div class='del'>-	o</div><div class='del'>-	(e_card_set_arg): Added handlers for last-use and use-score.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c: Added pending_card_id to</div><div class='del'>-	EDestinationPrivate struct.</div><div class='del'>-	(e_destination_copy): Copy the pending_card_id.</div><div class='del'>-	(e_destination_is_empty): Check for a pending_card_id.  We are</div><div class='del'>-	non-empty if we have one.</div><div class='del'>-	(e_destination_clear_card): Clear pending_card_id.</div><div class='del'>-	(e_destination_set_card): Clear pending_card_id.</div><div class='del'>-	(e_destination_has_pending_card): Added.</div><div class='del'>-	(e_destination_use_card): Added.  An asynchronous way to load a</div><div class='del'>-	pending card and then apply a callback to it.</div><div class='del'>-	(build_field): Be paranoid, map our special characters to '_'.</div><div class='del'>-	(e_destination_export): Use EXPORT_MAX_FIELDS symbol rather than a</div><div class='del'>-	hard-wired array size.  Added the "card" entry.</div><div class='del'>-	(e_destination_import): Fix bug in handling of the "name" field.</div><div class='del'>-	Process the "card" field.</div><div class='del'>-	(e_destination_touch): "Touch" and commit the ECard corresponding</div><div class='del'>-	to the e-mail address in the destination.  (A query against the</div><div class='del'>-	local addressbook is actually performed, in case the destination</div><div class='del'>-	isn't cardified.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (e_card_compare_name): Revamp the</div><div class='del'>-	way E_CARD_MATCH_FOO results are mapped to comparison results.</div><div class='del'>-	Report better matches when the family name is matched.</div><div class='del'>-</div><div class='del'>-2001-06-29  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (update_query):</div><div class='del'>-	Added a search field to the query here.</div><div class='del'>-	(e_select_names_init): Update the query on a number of signals here.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.h: Added search_entry</div><div class='del'>-	here.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/select-names.glade: Added the search</div><div class='del'>-	entry here.  Added some labels.  Removed the update button.</div><div class='del'>-</div><div class='del'>-2001-06-29  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_option_activated): Change the uri here to have</div><div class='del'>-	addressbook.db at the end.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/select-names.glade: Changed the name</div><div class='del'>-	of the folder option menu here to match the name used in the code.</div><div class='del'>-</div><div class='del'>-2001-06-29  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (update_query):</div><div class='del'>-	Change the query when the "Update List" button is pushed.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.h: Removed</div><div class='del'>-	currently_selected field.  Added categories_entry field.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/select-names.glade: Added "Update</div><div class='del'>-	List" button.</div><div class='del'>-</div><div class='del'>-2001-06-29  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (INCLUDES): add EVOLUTION_IMAGESDIR</div><div class='del'>-	define.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.h (struct _EMinicard): add our pixbuf and</div><div class='del'>-	pixbuf size.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_init): init the icon pixbuf</div><div class='del'>-	and its size.</div><div class='del'>-	(e_minicard_destroy): unref the list_icon_pixbuf.</div><div class='del'>-	(e_minicard_realize): create the list_icon GnomeCanvasPixbuf.</div><div class='del'>-	(e_minicard_resize_children): clip the header_text by the</div><div class='del'>-	list_icon, and place the list_icon in the right spot.</div><div class='del'>-	(remodel): show the list_icon if we're a list, and hide it</div><div class='del'>-	otherwise.</div><div class='del'>-</div><div class='del'>-2001-06-28  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_double_click): pop up</div><div class='del'>-	list editor for lists, contact editor otherwise.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): same.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.h (struct _EMinicard): change "editor" to</div><div class='del'>-	GtkOjbect, since it can be either a contact editor or contact list</div><div class='del'>-	editor.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c</div><div class='del'>-	(addressbook_is_cell_editable): don't allow editting of any fields</div><div class='del'>-	except the name and file_as for lists.</div><div class='del'>-</div><div class='del'>-2001-06-28  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/Makefile.am (INCLUDES): remove ancient</div><div class='del'>-	e-table include, and add include for contact-editor so we can</div><div class='del'>-	reuse the confirm_delete dialog.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.h (struct</div><div class='del'>-	_EContactListEditor): remove prototype for</div><div class='del'>-	e_contact_list_editor_close, since the function no longer exists.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c</div><div class='del'>-	(list_deleted_cb): new function, emit our "list_deleted" signal.</div><div class='del'>-	(delete_cb): new function, called from the Delete toolbar item.</div><div class='del'>-	(e_contact_list_editor_raise): flesh out function.</div><div class='del'>-	(extract_info): "evolution_list" =&gt; "list".</div><div class='del'>-	(fill_in_info): same.</div><div class='del'>-</div><div class='del'>-2001-06-28  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_get_vobject): add support for</div><div class='del'>-	X-EVOLUTION-LIST and X-EVOLUTION-LIST-SHOW-ADDRESSES.</div><div class='del'>-	(parse_list): new function, parse the boolean X-EVOLUTION-LIST.</div><div class='del'>-	(parse_list_show_addresses): new function, parse the boolean</div><div class='del'>-	X-EVOLUTION-LIST-SHOW-ADDRESSES.</div><div class='del'>-	(e_card_class_init): add args for "list" and</div><div class='del'>-	"list_show_addresses".</div><div class='del'>-	(e_card_set_arg): add support for list and list_show_addresses.</div><div class='del'>-	(e_card_get_arg): same.</div><div class='del'>-	(e_card_init): init list and list_show_addresses.</div><div class='del'>-</div><div class='del'>-2001-06-27  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Pass NULL as</div><div class='del'>-	the @external_uri_schemas argument to</div><div class='del'>-	`evolution_shell_component_new()'.</div><div class='del'>-</div><div class='del'>-2001-06-27  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.c</div><div class='del'>-	(contact_list_row_count): track storage change - we're only using</div><div class='del'>-	1 array now.</div><div class='del'>-	(contact_list_value_at): same.</div><div class='del'>-	(contact_list_model_destroy): same.</div><div class='del'>-	(e_contact_list_model_init): same.</div><div class='del'>-	(e_contact_list_model_add_email): same.</div><div class='del'>-	(e_contact_list_model_add_card): same.</div><div class='del'>-	(e_contact_list_model_remove_row): same.</div><div class='del'>-	(e_contact_list_model_remove_all): new function - just free/unref</div><div class='del'>-	all existing rows.</div><div class='del'>-	(e_contact_list_model_get_email): new function, returns the</div><div class='del'>-	alloc'ed string containing either an email address or an encoded</div><div class='del'>-	ECardId.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.h: remove the 2</div><div class='del'>-	separate arrays for email and cards, and store them in the same</div><div class='del'>-	array.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.h (struct</div><div class='del'>-	_EContactListEditor): add the visible_addr_checkbutton widget.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c</div><div class='del'>-	(visible_addrs_toggled_cb): new function.</div><div class='del'>-	(e_contact_list_editor_init): connect to "toggled" on</div><div class='del'>-	visible_addrs_checkbutton.</div><div class='del'>-	(file_save_cb): new function.</div><div class='del'>-	(tb_save_and_close_cb): new function.</div><div class='del'>-	(verbs): add Save and Save &amp; Close.</div><div class='del'>-	(list_added_cb): new function.</div><div class='del'>-	(list_modified_cb): new function.</div><div class='del'>-	(save_card): new function - we do *not* use e_card_merging_* calls</div><div class='del'>-	here.</div><div class='del'>-	(e_contact_list_editor_get_arg): un-#if 0 code in the "card"</div><div class='del'>-	getter.</div><div class='del'>-	(e_contact_list_editor_set_arg): same for the "card" setter.</div><div class='del'>-	(extract_info): new function.</div><div class='del'>-	(fill_in_info): new function.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/contact-list-editor.glade: add a</div><div class='del'>-	checkbutton at the bottom to determine whether to visibly include</div><div class='del'>-	mail addresses in mail sent to this list.</div><div class='del'>-</div><div class='del'>-2001-06-26  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_create_categories): Oops.  Can't use the wombat</div><div class='del'>-	version of the master categories list yet.</div><div class='del'>-</div><div class='del'>-2001-06-26  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c (create_card): memmove</div><div class='del'>-	counts were off in this function.</div><div class='del'>-	(remove_card, modify_card): Moved the table notifications around a</div><div class='del'>-	bit here.</div><div class='del'>-</div><div class='del'>-2001-06-26  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h,</div><div class='del'>-	gui/component/select-names/select-names.glade</div><div class='del'>-	(e_select_names_create_categories): Added a categories combo here.</div><div class='del'>-	It's not used yet.</div><div class='del'>-</div><div class='del'>-2001-06-26  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/addresstypes.xml: Added category searching to the</div><div class='del'>-	advanced search dialog here.</div><div class='del'>-	</div><div class='del'>-2001-06-26  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (compare_category): Added</div><div class='del'>-	category searching to the file backend.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_query_changed): Added</div><div class='del'>-	category searching to the search bar.</div><div class='del'>-</div><div class='del'>-2001-06-25  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am (INCLUDES): Fix for srcdir != builddir.</div><div class='del'>-</div><div class='del'>-2001-06-25  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/contact-list-editor.glade: change layout</div><div class='del'>-	slightly, the icon no longer pushes everything to the left, and</div><div class='del'>-	make the buttons on the right smaller and more in line with the</div><div class='del'>-	other widgets.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.c</div><div class='del'>-	(contact_list_value_at): return the SimpleAndString-&gt;string</div><div class='del'>-	instead of querying the ecardsimple.</div><div class='del'>-	(e_contact_list_model_init): initially allocate 10 of each type</div><div class='del'>-	(email and simple).</div><div class='del'>-	(e_contact_list_model_add_email): realloc if need be.</div><div class='del'>-	(e_contact_list_model_add_card): same, and initialize the string</div><div class='del'>-	displayed to be "[Name] [&lt;email&gt;]".</div><div class='del'>-	(e_contact_list_model_remove_row): change for SimpleAndString.</div><div class='del'>-	(contact_list_model_destroy): free our 2 arrays.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.h: add alloc counts</div><div class='del'>-	and the SimpleAndString struct.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c: Helix Code =&gt;</div><div class='del'>-	Ximian.</div><div class='del'>-	(e_contact_list_editor_init): hook up d&amp;d destination signals, and</div><div class='del'>-	un-#if 0 the delete_event signal.</div><div class='del'>-	(table_drag_motion_cb): new function.</div><div class='del'>-	(table_drag_drop_cb): new function.</div><div class='del'>-	(table_drag_data_received_cb): new function.</div><div class='del'>-	(file_close_cb): new function.</div><div class='del'>-	(verbs) uncomment the close verb.</div><div class='del'>-	(close_dialog): new function.</div><div class='del'>-	(app_delete_event_cb): new function.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.h: Helix Code =&gt;</div><div class='del'>-	Ximian.</div><div class='del'>-</div><div class='del'>-2001-06-25  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c: Add a huge steaming pile of</div><div class='del'>-	code to handle the case of single-address merging.  In other</div><div class='del'>-	words, if you go to "harvest" an address by right-clicking on it</div><div class='del'>-	in the mail viewer, and you already have a closely-matching</div><div class='del'>-	contact (w/ a different e-mail address), this gives you the</div><div class='del'>-	option of editting that contact's e-mail addresses to add the</div><div class='del'>-	one you just clicked on.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (match_search_info_free): It is</div><div class='del'>-	amazing how much better things work when you don't try to</div><div class='del'>-	dereference the pointer you just freed.</div><div class='del'>-</div><div class='del'>-2001-06-24  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (minicard_test_LDADD): correct path to</div><div class='del'>-	libecontacteditor.a.</div><div class='del'>-	(minicard_widget_test_LDADD): same.</div><div class='del'>-	(INCLUDES): same, for the includes.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.h: correct e-contact-editor.h path.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-util.h: correct path to</div><div class='del'>-	e-contact-editor.h, and add e-contact-list-editor.h.  Add</div><div class='del'>-	prototype for e_addressbook_show_contact_list_editor.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-util.c: remove #include</div><div class='del'>-	"e-contact-editor.h" (our header includes it.)</div><div class='del'>-	(added_cb): rename card_added_cb to this, and make it so it can be</div><div class='del'>-	reused in both the list and card cases.  remove the g_print too.</div><div class='del'>-	(modified_cb): same for modified case.</div><div class='del'>-	(deleted_cb): same for deleted case.</div><div class='del'>-	(editor_closed_cb): change first arg to GtkObject* so we can reuse</div><div class='del'>-	this for both list and card.</div><div class='del'>-	(e_addressbook_show_contact_editor): use added_cb, modified_cb,</div><div class='del'>-	deleted_cb, and pass FALSE as user_data.</div><div class='del'>-	(e_addressbook_show_contact_list_editor): new function, same as</div><div class='del'>-	above but creating a contact-list-editor, and pass TRUE as</div><div class='del'>-	user_data.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c: correct path to contact-editor.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-widget.c: same.</div><div class='del'>-	</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c: same.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c: same.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_contact_list_cb): new function.</div><div class='del'>-	(update_command_state): update ContactNewList command.</div><div class='del'>-	(verbs): remove ViewAll from the toolbar from the verb list.  Add</div><div class='del'>-	ContactNewList.</div><div class='del'>-	(pixmaps): same for pixmaps.</div><div class='del'>-	</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDADD): new</div><div class='del'>-	path for contact-editor.</div><div class='del'>-	(INCLUDES): same.</div><div class='del'>-</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.h:</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-model.c:</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.h:</div><div class='del'>-	* gui/contact-list-editor/e-contact-list-editor.c:</div><div class='del'>-	* gui/contact-list-editor/Makefile.am: Initial contact-list editor</div><div class='del'>-	  commit.</div><div class='del'>-</div><div class='del'>-	* gui/Makefile.am (SUBDIRS): add contact-editor.</div><div class='del'>-</div><div class='del'>-	* Makefile.am: (SUBDIRS): remove contact-editor.</div><div class='del'>-</div><div class='del'>-2001-06-21  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(make_contact_editor_cb): Renamed.  (The old name,</div><div class='del'>-	edit_contact_info_have_book_cb was a hold-over from before, when</div><div class='del'>-	we weren't using e_book_use_local_address_book.)</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c</div><div class='del'>-	(e_address_popup_schedule_refresh): A Added.  We now do the name</div><div class='del'>-	refreshes in an idle function, rather than in the setters.</div><div class='del'>-	(e_address_popup_set_free_form): Added.  Properly handle inputs of</div><div class='del'>-	the form "Foo &lt;bar@zar.com&gt;", extracting the name and e-mail</div><div class='del'>-	address.</div><div class='del'>-	(e_address_popup_set_name): Check to make sure that the free-form</div><div class='del'>-	handler shouldn't be used to handle the input.  Schedule a refresh</div><div class='del'>-	after making any changes.</div><div class='del'>-	(e_address_popup_set_email): Check to make sure that the free-form</div><div class='del'>-	handler shouldn't be used to handle the input.  Schedule a refresh</div><div class='del'>-	after making any changes.</div><div class='del'>-	(e_address_popup_name_only_matches): Temporary place-holder for</div><div class='del'>-	handling name-only matches.</div><div class='del'>-	(query_cb): If our initial query fails (and included e-mail</div><div class='del'>-	information), do a name-only query.  This is to handle the case of</div><div class='del'>-	adding new e-mail addresses to existing contacts.</div><div class='del'>-	(e_address_popup_query): Eliminated the "common_book" crap; using</div><div class='del'>-	e_book_use_local_address_book instead.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (match_search_info_free): Make</div><div class='del'>-	sure that the -&gt;avoid list gets properly freed.</div><div class='del'>-</div><div class='del'>-2001-06-20  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_supported_fields): fix a refcounting</div><div class='del'>-	memleak.</div><div class='del'>-</div><div class='del'>-2001-06-20  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(e_book_listener_queue_get_supported_fields_response): fix memory</div><div class='del'>-	leak.</div><div class='del'>-</div><div class='del'>-2001-06-20  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: add prototype for</div><div class='del'>-	close_dialog to remove warnings.</div><div class='del'>-</div><div class='del'>-2001-06-20  Dave Camp  &lt;dave@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_list_send): Changed attach_data</div><div class='del'>-	to be a GNOME_Evolution_Composer_AttachmentData rather than a</div><div class='del'>-	CORBA_char*.</div><div class='del'>-</div><div class='del'>-2001-06-19  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_double_click): track</div><div class='del'>-	change to e_addressbook_show_contact_editor signature.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_event): same.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): same.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):</div><div class='del'>-	add an entry for "Card ID already exists".</div><div class='del'>-	(e_addressbook_show_contact_editor): track the change to signal</div><div class='del'>-	names and e_contact_editor_new signature here.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-util.h: change</div><div class='del'>-	e_addressbook_show_contact_editor's signature to match</div><div class='del'>-	e_contact_editor_new more closely.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c (unlink_model): free</div><div class='del'>-	up the simple mapping to plug a potentially sizeable memory leak.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_activate_obj): call</div><div class='del'>-	e_addressbook_show_contact_editor here.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(edit_contact_info_have_book_cb): remove the get_supported_fields</div><div class='del'>-	stuff, since the contact editor handles it for us now, and call</div><div class='del'>-	e_addressbook_show_contact_editor.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c (edit_contact_info_cb): same.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_contact_cb): track change to</div><div class='del'>-	e_addressbook_show_contact_editor.</div><div class='del'>-</div><div class='del'>-2001-06-19  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c (ce_have_book): rename</div><div class='del'>-	ce_book_found_fields to this, remove the fetching of fields (the</div><div class='del'>-	contact editor code handles that now.), and change the add_card</div><div class='del'>-	signal to card_added.</div><div class='del'>-	(card_added_cb): copied somewhat from merge_cb above.  we don't</div><div class='del'>-	need to do the merge here, just call the callback.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (e_contact_editor_class_init):</div><div class='del'>-	track signal change.  add book arg, and is_read_only -&gt; editable.</div><div class='del'>-	(wants_html_changed): if the card isn't already changed, flag it</div><div class='del'>-	as such (and update the commands.)</div><div class='del'>-	(phone_entry_changed): same.</div><div class='del'>-	(email_entry_changed): same.</div><div class='del'>-	(address_text_changed): same.</div><div class='del'>-	(name_entry_changed): same.</div><div class='del'>-	(company_entry_changed): same.</div><div class='del'>-	(full_name_clicked): is_read_only -&gt; editable.</div><div class='del'>-	(full_addr_clicked): same.</div><div class='del'>-	(card_added_cb): new function, emit our card_added signal, and</div><div class='del'>-	close the dialog if we're supposed to.  properly deal with error</div><div class='del'>-	status here.</div><div class='del'>-	(card_modified_cb): same, modulo card_added -&gt; card_modified.</div><div class='del'>-	(save_card): actually call e_card_merging_book_{add/commit}_card</div><div class='del'>-	instead of using a signal.  Also, add a gboolean arg to tell</div><div class='del'>-	whether or not to close the dialog after saving the card.</div><div class='del'>-	(card_deleted_cb): new function, just emit our "card_deleted"</div><div class='del'>-	signal.</div><div class='del'>-	(delete_cb): actually call e_book_remove_card here, instead of</div><div class='del'>-	using a signal.</div><div class='del'>-	(tb_save_and_close_cb): call save_card with TRUE for should_close.</div><div class='del'>-	(e_contact_editor_init): init changed = FALSE;</div><div class='del'>-	(e_contact_editor_destroy): unref our book if we have one.</div><div class='del'>-	(e_contact_editor_new): new signature, set the "book" arg, and</div><div class='del'>-	call e_book_get_supported_fields here.</div><div class='del'>-	(supported_fields_cb): new function, show the contact editor.</div><div class='del'>-	(e_contact_editor_set_arg): initialize changed to FALSE when</div><div class='del'>-	setting the card (but *after*, since the changed callbacks will</div><div class='del'>-	set it to TRUE.)  also, call command_state_changed if editable</div><div class='del'>-	changes.  also handle setting "book".  oh, and is_read_only -&gt;</div><div class='del'>-	editable.</div><div class='del'>-	(command_state_changed): new function - set the state of the</div><div class='del'>-	commands we care about.</div><div class='del'>-	(e_contact_editor_get_arg): add "book" handling, and is_read_only</div><div class='del'>-	-&gt; editable.</div><div class='del'>-	(_phone_arrow_pressed): is_read_only -&gt; editable.</div><div class='del'>-	(_email_arrow_pressed): same.</div><div class='del'>-	(_address_arrow_pressed): same.</div><div class='del'>-	(enable_writable_fields): same.</div><div class='del'>-	(set_editable): rename set_read_only to this, and is_read_only -&gt;</div><div class='del'>-	editable.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.h (struct _EContactEditor):</div><div class='del'>-	is_read_only -&gt; editable, add a "changed" flag so we can sensitize</div><div class='del'>-	commands correctly, and add an EBook* arg to e_contact_editor_new</div><div class='del'>-	and to the EContactEditor struct.  Also, change all the signals to</div><div class='del'>-	past tense, and send the EBookStatus in them.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-address.c</div><div class='del'>-	(e_contact_editor_address_class_init): is_read_only -&gt; editable.</div><div class='del'>-	(e_contact_editor_address_set_arg): same.</div><div class='del'>-	(e_contact_editor_address_get_arg): same.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-address.h (struct</div><div class='del'>-	_EContactEditorAddress): same.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.c</div><div class='del'>-	(e_contact_editor_fullname_class_init): same.</div><div class='del'>-	(e_contact_editor_fullname_set_arg): same.</div><div class='del'>-	(e_contact_editor_fullname_get_arg): same.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.h (struct</div><div class='del'>-	_EContactEditorFullname): same.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: don't build contact-editor-test now,</div><div class='del'>-	until contact-editor gets moved to gui/ and we can more easily</div><div class='del'>-	depend on the e_card_merging_* calls.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (ldap_error_to_response): return</div><div class='del'>-	CardIdAlreadyExists for LDAP_ALREADY_EXISTS.</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl: Add CardIdAlreadyExists to the</div><div class='del'>-	BookListener status enum.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-types.h: add</div><div class='del'>-	E_BOOK_STATUS_CARD_ID_ALREADY_EXISTS.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(e_book_listener_convert_status): add support for</div><div class='del'>-	CardIdAlreadyExists.</div><div class='del'>-</div><div class='del'>-2001-06-19  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c: Serious de-crufting,</div><div class='del'>-	removal of gtk_object_set_data() hacks, simplified by using</div><div class='del'>-	some of the newer ebook convenience routines, etc.</div><div class='del'>-	(ce_book_found_fields):</div><div class='del'>-	s/e_contact_editor_raise/e_contact_editor_show/, to accomodate the</div><div class='del'>-	small changes in the contact editor API.</div><div class='del'>-</div><div class='del'>-2001-06-18  Eskil Heyn Olsen  &lt;eskil@eskil.dk&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c: (check_for_slow_setting),</div><div class='del'>-	(conduit_get_gpilot_conduit):</div><div class='del'>-	Tweaked for some gnome-pilot api changes</div><div class='del'>-</div><div class='del'>-2001-06-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (search_for_dn): implement this</div><div class='del'>-	properly, using base and (objectclass=*).</div><div class='del'>-</div><div class='del'>-2001-06-14  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (delete_cb): save ourselves a</div><div class='del'>-	function call - call close_dialog instead of file_close_cb.</div><div class='del'>-</div><div class='del'>-2001-06-14  Jeffrey Stedfast  &lt;fejj@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Set the</div><div class='del'>-	"expoted_dnd_types" to NULL in the folder_types.</div><div class='del'>-</div><div class='del'>-2001-06-11  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(search_override_check): Add a workaround for an EText bug.</div><div class='del'>-	(e_select_names_completion_begin): Fix up the match scoring in the</div><div class='del'>-	search_override case so the lines are offered in the correct</div><div class='del'>-	order.</div><div class='del'>-</div><div class='del'>-2001-06-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/merging/Makefile.am (glade_DATA): Added</div><div class='del'>-	e-card-merging-book-commit-duplicate-detected.glade here.</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-merging-book-commit-duplicate-detected.glade:</div><div class='del'>-	Added this file.  The GUI for asking whether to commit a modified</div><div class='del'>-	card.</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-merging.c, gui/merging/e-card-merging.h</div><div class='del'>-	(e_card_merging_book_commit_card): Added this function.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c</div><div class='del'>-	(addressbook_set_value_at), gui/widgets/e-addressbook-util.c</div><div class='del'>-	(commit_card_cb), gui/widgets/e-minicard.c (e_minicard_event): Use</div><div class='del'>-	e_card_merging_book_commit_card instead of e_book_commit_card here.</div><div class='del'>-</div><div class='del'>-2001-06-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Made e_card_simple_get_id return const char *.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Made</div><div class='del'>-	e_card_get_id return const char *.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-cardlist-model.c (e_cardlist_model_add): Made id</div><div class='del'>-	variable const here.  Added a break to make it slightly more</div><div class='del'>-	efficient.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Made</div><div class='del'>-	e_minicard_get_card_id return const char *.</div><div class='del'>-</div><div class='del'>-2001-06-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (entry_compare): Made this handle</div><div class='del'>-	the "id" property in searches.</div><div class='del'>-	(pas_backend_file_process_modify_card): Made id variable const</div><div class='del'>-	here.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (modify_card_handler): Made id</div><div class='del'>-	variable const here.</div><div class='del'>-</div><div class='del'>-2001-06-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c,</div><div class='del'>-	backend/ebook/e-book-listener.h, backend/ebook/e-book.c: Rolled</div><div class='del'>-	back the change 2 ago, dated 06/11/2001 01:51 in CVS, involving</div><div class='del'>-	e-book-listener.[ch] and e-book.c.</div><div class='del'>-</div><div class='del'>-2001-06-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_load_uri,</div><div class='del'>-	e_book_get_supported_fields, e_book_authenticate_user,</div><div class='del'>-	e_book_remove_card_by_id, e_book_add_vcard, e_book_commit_vcard,</div><div class='del'>-	e_book_get_cursor, e_book_get_book_view, e_book_get_changes): Made</div><div class='del'>-	it so that all of these functions queue their ops before calling</div><div class='del'>-	their CORBA functions.  This way, if the response is sent back</div><div class='del'>-	before the CORBA function returns there's no problem.  Added</div><div class='del'>-	e_book_unqueue_op so that the op could be unqueued if the CORBA</div><div class='del'>-	call fails.</div><div class='del'>-</div><div class='del'>-2001-06-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c, backend/ebook/e-book-listener.h</div><div class='del'>-	(e_book_listener_unpop_response): Added this function to put a</div><div class='del'>-	response back into the queue.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_check_listener_queue,</div><div class='del'>-	e_book_queue_op): Handle the case where the op hasn't been queued</div><div class='del'>-	yet when we get the response.  In this case we unpop the response.</div><div class='del'>-	Also, when queueing an op, we check to see if there are any</div><div class='del'>-	responses waiting.</div><div class='del'>-</div><div class='del'>-	* This change has been reverted.</div><div class='del'>-</div><div class='del'>-2001-06-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c, backend/ebook/e-card-compare.h</div><div class='del'>-	(e_card_locate_match_full): Added this function to let you do</div><div class='del'>-	slightly more complicated searches.</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-merging.c (e_card_merging_book_add_card): Use</div><div class='del'>-	e_card_locate_match_full to check if the card exists in the book</div><div class='del'>-	it's being added to instead of in the default book.</div><div class='del'>-</div><div class='del'>-2001-06-09  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_name): Removed unused email variable.</div><div class='del'>-</div><div class='del'>-2001-06-09  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c (use_common_book_cb): Null</div><div class='del'>-	terminate the strv here.</div><div class='del'>-	(e_card_locate_match): ref here instead of unref.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (e_card_simple_get): Handle a NULL</div><div class='del'>-	card here.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am (INCLUDES), gui/widgets/Makefile.am</div><div class='del'>-	(INCLUDES): Added addressbook/gui/merging here.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c (book_ready_cb),</div><div class='del'>-	gui/component/addressbook-component.c (dnd_drop_book_open_cb),</div><div class='del'>-	gui/widgets/e-addressbook-table-adapter.c</div><div class='del'>-	(addressbook_append_row), gui/widgets/e-addressbook-util.c</div><div class='del'>-	(add_card_cb), gui/widgets/e-addressbook-view.c</div><div class='del'>-	(selection_received), gui/widgets/e-minicard-control.c</div><div class='del'>-	(book_open_cb): Use e_card_merging_book_add_card instead of</div><div class='del'>-	e_book_add_card here.</div><div class='del'>-</div><div class='del'>-	* gui/Makefile.am (SUBDIRS): Added merging.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDADD),</div><div class='del'>-	gui/widgets/Makefile.am (minicard_test_LDADD,</div><div class='del'>-	minicard_widget_test_LDADD): Added libecardmerging.a here.</div><div class='del'>-</div><div class='del'>-	* gui/merging/, gui/merging/.cvsignore, gui/merging/Makefile.am:</div><div class='del'>-	New addressbook library.</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-duplicate-detected.glade: Glade file for</div><div class='del'>-	duplicate detected dialog.</div><div class='del'>-</div><div class='del'>-	* gui/merging/e-card-merging.c, gui/merging/e-card-merging.h: New</div><div class='del'>-	files for detecting duplicates before adding and putting up a</div><div class='del'>-	dialog if duplicates are found.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c: Include e-addressbook-util.h</div><div class='del'>-	here.</div><div class='del'>-</div><div class='del'>-2001-06-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (e_contact_editor_new): remove</div><div class='del'>-	the gtk_widget_show call...</div><div class='del'>-	(e_contact_editor_show): and put it here.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.h: add prototype for</div><div class='del'>-	e_contact_editor_show.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): call</div><div class='del'>-	e_addressbook_show_contact_editor.</div><div class='del'>-	(card_modified_cb): call e_addressbook_error_dialog if status !=</div><div class='del'>-	SUCCESS.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_event): call</div><div class='del'>-	e_addressbook_show_contact_editor.  also, use card_modified_cb as</div><div class='del'>-	the commit_card callback.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_double_click): clean</div><div class='del'>-	this area up alot, call e_addressbook_show_contact_editor.</div><div class='del'>-	(card_deleted_cb): call e_addressbook_error_dialog.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c</div><div class='del'>-	(card_modified_cb): new function, call e_addressbook_error_dialog</div><div class='del'>-	if the status != SUCCESS.</div><div class='del'>-	(addressbook_set_value_at): use card_modified_cb as the callback</div><div class='del'>-	for e_book_commit_card.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): add</div><div class='del'>-	e-addressbook-util.[ch].</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_contact_cb): use</div><div class='del'>-	e_addressbook_show_contact_editor here.</div><div class='del'>-</div><div class='del'>-2001-06-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (categories_clicked): Remove</div><div class='del'>-	references to ECategoryMasterListWombat.</div><div class='del'>-</div><div class='del'>-2001-06-05  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (remove_cb): Make</div><div class='del'>-	this work when multiple names are selected then right</div><div class='del'>-	click-&gt;Remove.</div><div class='del'>-</div><div class='del'>-2001-06-05  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_set_arg): Copy dates as they come</div><div class='del'>-	in.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_changes_foreach_key, pas_backend_file_changes,</div><div class='del'>-	pas_backend_file_process_remove_card,</div><div class='del'>-	pas_backend_file_process_modify_card,</div><div class='del'>-	pas_backend_file_build_all_cards_list, pas_backend_file_get_vcard,</div><div class='del'>-	pas_backend_file_maybe_upgrade_db): memset DBTs to 0 before using</div><div class='del'>-	them.</div><div class='del'>-	(pas_backend_file_build_all_cards_list): Reindented.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade: Replaced GnomeDateEdits</div><div class='del'>-	with a custom widget that creates an EDateEdit.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Use an EDateEdit here instead</div><div class='del'>-	of a GnomeDateEdit.</div><div class='del'>-</div><div class='del'>-2001-06-05  Jason Leach  &lt;jleach@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	(Fix bug #655: SelectNames doesn't let you remove addresses after</div><div class='del'>-	 you add them)</div><div class='del'>-	</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(section_right_click_cb): New function, provides a popup menu with</div><div class='del'>-	just "Remove" in it.</div><div class='del'>-	(remove_cb): New callback to do the remove.</div><div class='del'>-	(e_select_names_add_section): Attach the "right_click" signal to</div><div class='del'>-	the section_right_click_cb above.</div><div class='del'>-</div><div class='del'>-2001-06-05  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(completion_handler): Change the completion handler to use the</div><div class='del'>-	ECompletionMatch.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	General changes to convert for ECompletionMatch use.</div><div class='del'>-	(emailify_match): Use extra sort keys in ECompletionMatch to let</div><div class='del'>-	us ensure that the primary email address is always the first</div><div class='del'>-	option, the secondary comes second, etc.  There was no nice way to</div><div class='del'>-	do this previously.</div><div class='del'>-	(match_name): Removed code that adjusted score based on</div><div class='del'>-	similarities between the "real name" and the e-mail address.  It</div><div class='del'>-	seemed like a good idea at the time, but produced unexpected and</div><div class='del'>-	confusing results.</div><div class='del'>-</div><div class='del'>-2001-06-04  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-compare.c: Added.  Code for testing</div><div class='del'>-	if two ECards appear to pertain to the same contact (using loose</div><div class='del'>-	matching rules, as opposed to requiring exact equality) and to</div><div class='del'>-	query the addressbook for the "best match" to ECard.</div><div class='del'>-</div><div class='del'>-2001-06-03  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (set_status_message): remove spew,</div><div class='del'>-	and don't call the ShellView CORBA method if the interface doesn't</div><div class='del'>-	exist (for whatever reason.)</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_destroy):</div><div class='del'>-	unref the EAddressbookModel.</div><div class='del'>-	(create_minicard_view): unref the adapter.</div><div class='del'>-	(card_added_cb): call e_book_error_dialog if status != SUCCESS.</div><div class='del'>-	(card_modified_cb): same.</div><div class='del'>-	(card_removed_cb): new function, and same.</div><div class='del'>-	(delete_card_cb): pass card_removed_cb as the callback.</div><div class='del'>-	(emit_status_message): new function, just emit status_message.</div><div class='del'>-	(status_message): change to call emit_status_message.</div><div class='del'>-	(card_deleted_cb): emit_status_message ("Done."), and call</div><div class='del'>-	e_book_error_dialog if status != SUCCESS.</div><div class='del'>-	(do_remove): pass view in the closure arg.</div><div class='del'>-	(e_addressbook_view_delete_selection): emit status "Removing</div><div class='del'>-	cards..." before starting the removal.</div><div class='del'>-	(e_book_error_dialog): new function - pop up a (possibly) helpful</div><div class='del'>-	message about why an operation failed.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c</div><div class='del'>-	(e_minicard_view_widget_new): ref the EAddressbookReflowAdapter.</div><div class='del'>-	(e_minicard_view_widget_destroy): unref the adapter.</div><div class='del'>-	(e_minicard_view_widget_get_selection_model): if there isn't a</div><div class='del'>-	minicard view return NULL.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c</div><div class='del'>-	(e_addressbook_table_adapter_construct): ref the</div><div class='del'>-	EAddressbookModel.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c</div><div class='del'>-	(addressbook_finalize): rename this from addressbook_destroy, to</div><div class='del'>-	reflect the method change.</div><div class='del'>-	(e_addressbook_reflow_adapter_class_init): same.</div><div class='del'>-	(e_addressbook_reflow_adapter_construct): ref the</div><div class='del'>-	EAddressbookModel.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.h: add editable_set flag.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (writable_status): only record</div><div class='del'>-	the writable state of the addressbook if the user hasn't set it.</div><div class='del'>-	(e_addressbook_model_init): init editable_set to FALSE.</div><div class='del'>-	(e_addressbook_model_set_arg): set editable_set to TRUE.</div><div class='del'>-</div><div class='del'>-2001-06-03  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): Move</div><div class='del'>-	`$(DB3_LDADD)' before libeutil.</div><div class='del'>-</div><div class='del'>-2001-06-01  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): Add</div><div class='del'>-	$(DB3_LDADD)'.</div><div class='del'>-</div><div class='del'>-2001-05-31  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am (INCLUDES): Added db3 cflags.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Updated this to use db3.</div><div class='del'>-</div><div class='del'>-2001-05-31  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.h (EAddressbookView): Added</div><div class='del'>-	fields for the GalViewMenus and GalViewCollection; we need to keep</div><div class='del'>-	them around while the component is active.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(e_addressbook_view_setup_menus): Plug leak; unref the spec.</div><div class='del'>-	Unref the factories.  Do not unref the collection, since we need</div><div class='del'>-	it for the signal emission (okay, so the views object adds a</div><div class='del'>-	reference to it, but if we are interested in it we should keep a</div><div class='del'>-	reference anyways).</div><div class='del'>-	(e_addressbook_view_setup_menus): Create the collection and views</div><div class='del'>-	on the EAddressbookView's fields so that we can keep them around.</div><div class='del'>-	(e_addressbook_view_discard_menus): New function; gets rid of the</div><div class='del'>-	collection and views objects.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate_cb): Call</div><div class='del'>-	e_addressbook_view_discard_menus().</div><div class='del'>-</div><div class='del'>-2001-05-31  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.h (struct</div><div class='del'>-	_ESelectNames): add the EAddressbookModel* and change the</div><div class='del'>-	ETableModel's name to "adapter".</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c (set_book),</div><div class='del'>-	(addressbook_model_set_uri): these two things take an</div><div class='del'>-	EAddressbookModel* instead of an ETableModel now.</div><div class='del'>-	(e_addressbook_create_ebook_table): don't case the</div><div class='del'>-	EAddressbookModel* to ETableModel*, create an EAddressbookTableAdapter</div><div class='del'>-	on the EAddressbookModel instead.</div><div class='del'>-	(e_select_names_init): set e_select_names-&gt;adapter.</div><div class='del'>-</div><div class='del'>-2001-05-31  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (remove_card): decrement</div><div class='del'>-	data_count before emitting the card_removed signal, and break</div><div class='del'>-	after we've removed the matching card.</div><div class='del'>-	(e_addressbook_model_class_init): change signature of</div><div class='del'>-	"card_removed" signal to match what we emit (and what is</div><div class='del'>-	expected.)</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init): the</div><div class='del'>-	signal name is "destroy", not "destroyed".</div><div class='del'>-	(do_remove): new function, actually remove the card.</div><div class='del'>-	(e_addressbook_view_delete_selection): get this working for both</div><div class='del'>-	view types.</div><div class='del'>-</div><div class='del'>-2001-05-31  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Print Preview =&gt;</div><div class='del'>-	ContactsPrintPreview.  Changed peter's change so that the node</div><div class='del'>-	name is more in line with "Print.."'s</div><div class='del'>-</div><div class='del'>-2001-05-30  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Use the correct path to the print</div><div class='del'>-	preview menu item.</div><div class='del'>-</div><div class='del'>-2001-05-30  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (cut_contacts_cb): new function, for</div><div class='del'>-	the Cut verb.</div><div class='del'>-	(copy_contacts_cb): new function, for the Copy verb.</div><div class='del'>-	(paste_contacts_cb): new function, for the Paste verb.</div><div class='del'>-	(select_all_contacts_cb): new function, for the Select All verb.</div><div class='del'>-	(update_command_state): add handling for sensitivity of</div><div class='del'>-	Cut/Copy/Paste/Select All.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init): init</div><div class='del'>-	the invisible and set up selection/destroy signals.</div><div class='del'>-	(get_selection_model): new function, so we can get the</div><div class='del'>-	ETableSelectionModel from either view type.  makes lots of the</div><div class='del'>-	other functions easier, since we can get the list of selected</div><div class='del'>-	cards using the same code regardless of view type.</div><div class='del'>-	(invisible_destroyed): new function.</div><div class='del'>-	(selection_get): new function.  convert the clipboard list to</div><div class='del'>-	string.</div><div class='del'>-	(selection_clear_event): new function - free up the list of</div><div class='del'>-	ECards.</div><div class='del'>-	(selection_received): if the selection data is valid and</div><div class='del'>-	well-formed, add the corresponding cards to the ebook.</div><div class='del'>-	(add_to_list): new function.</div><div class='del'>-	(get_selected_cards): new function.</div><div class='del'>-	(e_addressbook_view_cut): new function, implement in terms of</div><div class='del'>-	_copy and _delete_selection.</div><div class='del'>-	(e_addressbook_view_copy): claim ownership of the CLIPBOARD</div><div class='del'>-	selection after saving the list of selected ECards.</div><div class='del'>-	(e_addressbook_view_paste): call gtk_selection_convert.</div><div class='del'>-	(e_addressbook_view_select_all): new function, using</div><div class='del'>-	e_selection_model_select_all.</div><div class='del'>-	(e_addressbook_view_can_print): re-implement in terms of</div><div class='del'>-	get_selection_model.</div><div class='del'>-	(e_addressbook_view_can_delete): same.</div><div class='del'>-	(e_addressbook_view_can_cut): new function.</div><div class='del'>-	(e_addressbook_view_can_copy): new function.</div><div class='del'>-	(e_addressbook_view_can_paste): new function.  hmm, always return</div><div class='del'>-	TRUE here.</div><div class='del'>-	(e_addressbook_view_can_select_all): new function.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add</div><div class='del'>-	selection stuff - the list of selected cards, and the GtkInvisible</div><div class='del'>-	selection owner, and add prototypes for</div><div class='del'>-	e_addressbook_view_[can]_{cut,copy,paste,select_all}.</div><div class='del'>-	</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.h: add a prototype for</div><div class='del'>-	e_minicard_view_widget_get_selection_model.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c</div><div class='del'>-	(e_minicard_view_widget_get_selection_model): new function.</div><div class='del'>-</div><div class='del'>-2001-05-27  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: #include</div><div class='del'>-	"evolution-shell-component-utils.h" rather than "e-gui-utils.h"</div><div class='del'>-	for e_pixmaps_update.</div><div class='del'>-</div><div class='del'>-2001-05-25  Peter Williams  &lt;peterw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Reference libeshell.la instead of</div><div class='del'>-	libeshell.a.</div><div class='del'>-</div><div class='del'>-2001-05-25  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c (addressbook_height):</div><div class='del'>-	Correct the height calculation here to not include the</div><div class='del'>-	E_CARD_SIMPLE_FIELD_FAMILY_NAME since it won't be displayed.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (remodel): Changed this to continue to</div><div class='del'>-	be more consistent and simpler.</div><div class='del'>-</div><div class='del'>-2001-05-23  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (view_destroy): fix strings such</div><div class='del'>-	that ones that happening at the beginning or during an operation</div><div class='del'>-	are followed by "..." and those that stop the operation are</div><div class='del'>-	followed by "."</div><div class='del'>-	(create_card_handler): same.</div><div class='del'>-	(ldap_op_process_current): same, and also call _notify_complete if</div><div class='del'>-	we can't connect to ldap server.</div><div class='del'>-	(poll_ldap): same, and change "Polling for LDAP search result" to</div><div class='del'>-	"Receiving LDAP search results"</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_search): call</div><div class='del'>-	notify_status_message at the beginning of this function, and</div><div class='del'>-	whenever we call _notify_complete.</div><div class='del'>-</div><div class='del'>-2001-05-23  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.h: add sequence_complete_id to</div><div class='del'>-	EAddressbookModel and stop_state_changed to</div><div class='del'>-	EAddressbookModelClass.  also, add prototype for</div><div class='del'>-	e_addressbook_model_can_stop.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (remove_book_view): disconnect</div><div class='del'>-	from "sequence_complete", and set search_in_progress to FALSE.</div><div class='del'>-	(sequence_complete): set search_in_progress to FALSE and emit</div><div class='del'>-	"stop_state_changed."</div><div class='del'>-	(e_addressbook_model_class_init): create the "stop_state_changed"</div><div class='del'>-	signal.</div><div class='del'>-	(e_addressbook_model_init): init stuff.</div><div class='del'>-	(book_view_loaded): connect to "sequence_complete" signal.</div><div class='del'>-	(book_view_loaded): set search_in_progress to TRUE and emit</div><div class='del'>-	"stop_state_changed"</div><div class='del'>-	(e_addressbook_model_stop): set search_in_progress to false, emit</div><div class='del'>-	"stop_state_changed", and set our status to "Search Interrupted."</div><div class='del'>-	(e_addressbook_model_can_stop): return search_in_progress.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):</div><div class='del'>-	connect to the stop_state_changed signal on EAddressbookModel.</div><div class='del'>-	(stop_state_changed): new function.</div><div class='del'>-	(e_addressbook_view_can_stop): call e_addressbook_model_can_stop.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (update_command_state): use</div><div class='del'>-	e_addressbook_view_can_stop to set the sensitivity of the stop</div><div class='del'>-	button.</div><div class='del'>-</div><div class='del'>-2001-05-22  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):</div><div class='del'>-	ref the listener for the duration of this function, since emitting</div><div class='del'>-	"responses_queued" may cause it to be unreffed by its EBook in</div><div class='del'>-	some cases, which could cause the second response_queue check to</div><div class='del'>-	look at garbage data if it got destroyed.</div><div class='del'>-	(e_book_listener_destroy): Call g_source_remove if idle_id is set.</div><div class='del'>-</div><div class='del'>-2001-05-22  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: track the change in</div><div class='del'>-	evolution-addressbook.xml's bonobo ui path's.</div><div class='del'>-</div><div class='del'>-2001-05-21  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (change_view_type): update_view_type</div><div class='del'>-	is gone, since the menu item is gone.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c (create_card): use</div><div class='del'>-	e_table_model_rows_inserted here.</div><div class='del'>-</div><div class='del'>-2001-05-20  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c</div><div class='del'>-	(addressbook_source_item_new): Removed an unused variable.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_get_property_fn): Made text here non-const.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(edit_contact_info_cb): Cast to a gpointer here.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_addressbook_create_ebook_table): Cast to E_TABLE_MODEL here.</div><div class='del'>-</div><div class='del'>-2001-05-18  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_name): Do a better job constructing match strings, so we</div><div class='del'>-	never try to use a segment of the name that isn't there (resulting</div><div class='del'>-	in ugly (null)'s in the string).  Boost our score if some part of</div><div class='del'>-	the name also matches the front part of the e-mail address, so the</div><div class='del'>-	name match will always trump the e-mail match.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_get_property_fn): Return the serialized EDestinations</div><div class='del'>-	(rather than just a string w/ e-mail addresses) through the bonobo</div><div class='del'>-	component's property bag.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_export_destinationv): Added.  A convenience routine</div><div class='del'>-	for serializing the model's EDestinations into a string.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(add_html_mail): Added.  Puts in a check menu item for whether or</div><div class='del'>-	not the recipient wants HTML mail.</div><div class='del'>-	(popup_menu_card): Add menu item for HTML mail.  Enable edit</div><div class='del'>-	contact info item.</div><div class='del'>-	(popup_menu_nocard): Add menu item for HTML mail.  Enable edit</div><div class='del'>-	contact info item.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c (e_book_use_local_address_book):</div><div class='del'>-	Added.  Fetches the local addressbook and caches it on the first</div><div class='del'>-	call.  This is meant to be an easy and efficient way to get at the</div><div class='del'>-	local addressbook with the minimum of code.</div><div class='del'>-	(e_book_query_address_locally): Added.  Convenience code that</div><div class='del'>-	does an e-mail only e_book_name_and_email_query against the</div><div class='del'>-	local address book.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c</div><div class='del'>-	(e_destination_set_html_mail_pref): Added.  Allows the intended</div><div class='del'>-	recipient's HTML mail preference to be manipulated.</div><div class='del'>-	(e_destination_get_email_verbose): Added.  Cleaned up to use</div><div class='del'>-	e_destination_get_name.</div><div class='del'>-	(e_destination_get_html_mail_pref): Added.  Read the recipient's HTML mail</div><div class='del'>-	preference.  If the destination is linked to a card, the</div><div class='del'>-	preference is taken from the card (unless it has been explicitly</div><div class='del'>-	overridden by a called to e_destination_set_html_mail_pref).</div><div class='del'>-	(e_destination_get_address_textv): Added.  Form a unified address string</div><div class='del'>-	from a NULL-terminated vector of EDestinations.</div><div class='del'>-	(e_destination_export): Added.  Serialize an EDestination to a string.</div><div class='del'>-	(e_destination_import): Added.  Unserialize a string to build an</div><div class='del'>-	EDestination.</div><div class='del'>-	(e_destination_exportv): Added.  Serialize a NULL-terminated vector of</div><div class='del'>-	EDestinations to a string.</div><div class='del'>-	(e_destination_importv): Added.  Unserialize a string to build a</div><div class='del'>-	NULL-terminated vector of EDestinations.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c:</div><div class='del'>-	Implemented local versions of g_strcasecmp and g_strncasecmp</div><div class='del'>-	(which should really be in glib, I think...) for utf8, and used</div><div class='del'>-	them to make this code utf8-safe.</div><div class='del'>-</div><div class='del'>-2001-05-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (update_command_state): no more</div><div class='del'>-	ContactFind command.</div><div class='del'>-</div><div class='del'>-2001-05-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c</div><div class='del'>-	(e_minicard_view_widget_class_init): add our selection_change</div><div class='del'>-	signal.</div><div class='del'>-	(e_minicard_view_widget_realize): connect to the ESelectionModel's</div><div class='del'>-	selection_changed signal.</div><div class='del'>-	(e_minicard_view_widget_selected_count): new function.</div><div class='del'>-	(selection_change): new function - emit our "selection_change"</div><div class='del'>-	signal.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.h (struct</div><div class='del'>-	_EMinicardViewWidgetClass): add selection_change signal.  also,</div><div class='del'>-	add prototype for e_minicard_view_widget_selected_count.  </div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(e_addressbook_view_class_init): add our command_state_change</div><div class='del'>-	signal.</div><div class='del'>-	(e_addressbook_view_init): connect to the writable_status signal</div><div class='del'>-	on the EAddressbookModel.</div><div class='del'>-	(minicard_selection_change): new function - calls</div><div class='del'>-	command_state_change.</div><div class='del'>-	(create_minicard_view): connect to selection_change on the</div><div class='del'>-	minicard_view so we know when to update command state.</div><div class='del'>-	(table_selection_change): new function - calls</div><div class='del'>-	command_state_change.</div><div class='del'>-	(writable_status): new function - calls command_state_change.</div><div class='del'>-	(command_state_change): new function - emits our</div><div class='del'>-	"command_state_change" signal.</div><div class='del'>-	(create_table_view): connect to the selection_change signal so we</div><div class='del'>-	know to update the command state.</div><div class='del'>-	(change_view_type): update the command state every time we change</div><div class='del'>-	view types.</div><div class='del'>-	(e_addressbook_view_can_create): new function.</div><div class='del'>-	(e_addressbook_view_can_print): new function.</div><div class='del'>-	(e_addressbook_view_can_delete): new function.</div><div class='del'>-	(e_addressbook_view_can_stop): new function.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.h (struct</div><div class='del'>-	_EAddressbookViewClass): add command_state_change signal, and</div><div class='del'>-	prototypes of functions the component can use to test the state of</div><div class='del'>-	commands.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (addressbook_destroy): unlink</div><div class='del'>-	the writable_status signal on the EBook.</div><div class='del'>-	(writable_status): new function.</div><div class='del'>-	(e_addressbook_model_class_init): add our writable_status signal.</div><div class='del'>-	(e_addressbook_model_init): init writable_status_id.</div><div class='del'>-	(e_addressbook_model_set_arg): unlink the writable_status signal</div><div class='del'>-	on the old EBook, and connect it on the new one.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.h: add writable_status signal.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (update_command_state): new</div><div class='del'>-	function, set the sensitivity of the bonobo commands.</div><div class='del'>-	(control_activate): update our command state immediately upon</div><div class='del'>-	activating the control.</div><div class='del'>-	(addressbook_factory_new_control): register command_state_change</div><div class='del'>-	to update the commands.</div><div class='del'>-</div><div class='del'>-2001-05-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c</div><div class='del'>-	(e_addressbook_search_dialog_init): initialize the model and</div><div class='del'>-	adapter.</div><div class='del'>-	(button_press): set on the model.</div><div class='del'>-	(e_addressbook_search_dialog_new): same.</div><div class='del'>-	(e_addressbook_search_dialog_set_arg): same.</div><div class='del'>-	(e_addressbook_search_dialog_destroy): unref the model and</div><div class='del'>-	adapter.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.h (struct</div><div class='del'>-	_EAddressbookSearchDialog): add our model and reflow adapter.</div><div class='del'>-</div><div class='del'>-2001-05-16  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c: (e_minicard_view_destroy): Fixed</div><div class='del'>-	up the lifetime of the drag_data_get signal a bit.</div><div class='del'>-</div><div class='del'>-2001-05-15  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (add_to_list): MinicardViewModel</div><div class='del'>-	-&gt; ReflowAdapter name change.</div><div class='del'>-	(get_card_list): same.</div><div class='del'>-	(e_minicard_view_drag_begin): same.</div><div class='del'>-	(supported_fields_cb): model -&gt; adapter.</div><div class='del'>-	(adapter_changed): hook up signals and set the empty message on</div><div class='del'>-	our adapter.</div><div class='del'>-	(e_minicard_view_set_arg): add support for "adapter", and set</div><div class='del'>-	model -&gt; adapter.</div><div class='del'>-	(e_minicard_view_get_arg): same.</div><div class='del'>-	(disconnect_signals): no more status_message.</div><div class='del'>-	(do_remove): track to use adapter.</div><div class='del'>-	(e_minicard_view_class_init): add adapter arg, and remove</div><div class='del'>-	status_message.</div><div class='del'>-	(e_minicard_view_init): all the code here is in adapter_changed</div><div class='del'>-	now.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.h (struct _EMinicardView):</div><div class='del'>-	EMinicardViewModel -&gt; EAddressbookReflowAdapter.</div><div class='del'>-	(struct _EMinicardViewClass): get rid of status_message.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c</div><div class='del'>-	(e_minicard_view_widget_class_init): remove the status_message</div><div class='del'>-	signal.</div><div class='del'>-	(e_minicard_view_widget_new): take the adapter as our argument,</div><div class='del'>-	and store it away for when we create the view.</div><div class='del'>-	(e_minicard_view_widget_realize): when we create the view just set</div><div class='del'>-	the adapter field on it.  also, don't connect to status_message.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.h (struct</div><div class='del'>-	_EMinicardViewWidget): add our adapter here, so we can pass it</div><div class='del'>-	into the view when we create it.</div><div class='del'>-	(struct _EMinicardViewWidgetClass): remove status_message.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (status_message): new function,</div><div class='del'>-	no more propagating status messages!</div><div class='del'>-	(e_addressbook_view_init): create our model and conenct to its</div><div class='del'>-	status_message signal.</div><div class='del'>-	(book_writable_cb): set "editable" on the model, not our object.</div><div class='del'>-	(e_addressbook_view_set_arg): same, but with "book" and "query" as</div><div class='del'>-	well.</div><div class='del'>-	(create_minicard_view): create our reflow adapter and pass it to</div><div class='del'>-	the minicard view widget.  also, call e_reflow_model_changed so</div><div class='del'>-	it'll pick up any already present cards.</div><div class='del'>-	(table_double_click): ADDRESSBOOK_MODEL -&gt; TABLE_ADAPTER.</div><div class='del'>-	(get_card_list_1): remove the cast, since we don't need it any</div><div class='del'>-	longer.</div><div class='del'>-	(table_right_click): ADDRESSBOOK_MODEL -&gt; TABLE_ADAPTER.</div><div class='del'>-	(table_drag_data_get): same.</div><div class='del'>-	(create_table_view): create the table adapter, and use it as our</div><div class='del'>-	ETableModel.</div><div class='del'>-	(change_view_type): remove the status_message hook up and setting</div><div class='del'>-	of query/book/editable.</div><div class='del'>-	(e_addressbook_view_stop): just call e_addressbook_model_stop here</div><div class='del'>-	instead of switching on the view type.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add</div><div class='del'>-	our EAddressbookModel.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): add the</div><div class='del'>-	adapter files, and remove e-minicard-view-model.[ch].</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-model.[ch]: removed.</div><div class='del'>-	</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.c: new file.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-table-adapter.h: new file.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.c: new file.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-reflow-adapter.h: new file.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c: rework this class to now</div><div class='del'>-	subclass from ETableModel anymore.  It not subclasses from</div><div class='del'>-	GtkObject, and we use table and reflow adapters to get at the</div><div class='del'>-	data.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.h: same.</div><div class='del'>-</div><div class='del'>-2001-05-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-model.c (remove_card): Fix a small</div><div class='del'>-	error not decreasing the data_count here.</div><div class='del'>-</div><div class='del'>-2001-05-13  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.h: add prototype for</div><div class='del'>-	addressbook_expand_uri.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c</div><div class='del'>-	(destination_folder_handle_drop): create an EBook for</div><div class='del'>-	@physical_uri.</div><div class='del'>-	(dnd_drop_book_open_cb): actually add the dropped cards.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_expand_uri): abstract</div><div class='del'>-	this code out from the set_prop method so we can use it in the</div><div class='del'>-	component.</div><div class='del'>-	(set_prop): call addressbook_expand_uri.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_load_cards_from_string): new</div><div class='del'>-	function.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.h: add prototype for</div><div class='del'>-	e_card_load_cards_from_string.</div><div class='del'>-</div><div class='del'>-2001-05-12  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c</div><div class='del'>-	(destination_folder_handle_drop): spew the data passed to us.</div><div class='del'>-	(destination_folder_handle_motion): the suggested_action is not an</div><div class='del'>-	ActionSet, but an Action, so don't or together multiple actions.</div><div class='del'>-</div><div class='del'>-2001-05-11  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c (addressbook_source_dialog):</div><div class='del'>-	correct bug causing the Ok button to never be enabled.</div><div class='del'>-</div><div class='del'>-2001-05-11  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (populate_context_menu):</div><div class='del'>-	example.</div><div class='del'>-</div><div class='del'>-2001-05-11  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_drag_data_get):</div><div class='del'>-	use e_card_list_get_vcard to build up the data to send.</div><div class='del'>-	(e_minicard_view_init): connect to the model's drag_begin signal.</div><div class='del'>-	(e_minicard_view_drag_begin): gather the list of cards being</div><div class='del'>-	dragged and call gtk_drag_begin.</div><div class='del'>-	(add_to_list): new function.</div><div class='del'>-	(get_card_list): same.</div><div class='del'>-	(disconnect_signals): disconnect the drag_data_get signal.</div><div class='del'>-	(e_minicard_view_init): connect to the drag_begin signal on our</div><div class='del'>-	model.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.h (struct _EMinicardView): change</div><div class='del'>-	drag_card to drag_list.</div><div class='del'>-	</div><div class='del'>-	* gui/widgets/e-minicard-view-model.c (minicard_drag_begin): new</div><div class='del'>-	function, emit our drag_begin signal.</div><div class='del'>-	(addressbook_incarnate): connect to the item's drag_begin signal.</div><div class='del'>-	(e_minicard_view_model_class_init): init our drag_begin signal.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-model.h: add drag_begin signal.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c (addressbook_source_dialog):</div><div class='del'>-	always loop through all source types here, making LDAP first so</div><div class='del'>-	it's forces as the first notebook item.</div><div class='del'>-	(addressbook_config_auth_label): remove SASL case.</div><div class='del'>-	(addressbook_source_edit_changed): same.</div><div class='del'>-	(addressbook_source_item_new): flag the area of code that needs to</div><div class='del'>-	go into the advanced dialog (if we add one before someone</div><div class='del'>-	graciously redesigns the entire addressbook gui :)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (ldap_unparse_auth): remove</div><div class='del'>-	SASL case.</div><div class='del'>-	(ldap_parse_auth): same.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.h: make LDAP come first in our</div><div class='del'>-	source type enumeration, and remove the SASL auth type.</div><div class='del'>-</div><div class='del'>-2001-05-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_set_arg): If the name is set and</div><div class='del'>-	the full_name or file_as haven't been yet, set them.</div><div class='del'>-</div><div class='del'>-2001-05-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Reordered the includes here.</div><div class='del'>-	(string_to_dbt): The sleepycat libdb documentation suggests</div><div class='del'>-	memseting the DBT to 0 so we do that here.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-model.c (addressbook_height): Skip</div><div class='del'>-	the E_CARD_SIMPLE_FIELD_FAMILY_NAME field.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (remodel): Skip the</div><div class='del'>-	E_CARD_SIMPLE_FIELD_FAMILY_NAME field.</div><div class='del'>-</div><div class='del'>-2001-05-11  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): only</div><div class='del'>-	check schema support if we've connected.</div><div class='del'>-</div><div class='del'>-2001-05-11  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (enable_writable_fields):</div><div class='del'>-	don't leak the ECard or ECardSimple.</div><div class='del'>-</div><div class='del'>-2001-05-08  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in:</div><div class='del'>-	Renamed the GnomeCard_Importer.oaf.in to this, and change the IID.</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Rename all the GnomeCard to VCard.</div><div class='del'>-</div><div class='del'>-	* evolution-vcard-importer.c: Make the GnomeCard a generic </div><div class='del'>-	vcard importer.</div><div class='del'>-</div><div class='del'>-2001-05-08  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (libebookinclude_HEADERS): Removed</div><div class='del'>-	e-card-pairs.h since we're not using it.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view.c (e_book_view_check_listener_queue):</div><div class='del'>-	Added break; to default: case here.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Added changed variable so as to avoid sync_card when possible.</div><div class='del'>-	(e_card_simple_destroy): Free all the data here properly.</div><div class='del'>-	(e_card_simple_get_arg): Slight simplification here.</div><div class='del'>-	(fill_in_info, e_card_simple_arbitrary_foreach,</div><div class='del'>-	e_card_simple_get_arbitrary): Call e_card_free_empty_lists here to</div><div class='del'>-	save a bit of memory.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Fixed up</div><div class='del'>-	includes a bit.</div><div class='del'>-	(e_card_list_get_vcard, e_card_list_send): Added these functions</div><div class='del'>-	for acting on a group of cards.</div><div class='del'>-	(parse_org): Cleaned up this function a bit.</div><div class='del'>-	(e_card_free_empty_lists): Added this function to delete</div><div class='del'>-	unnecessary ELists and save a bit of memory.</div><div class='del'>-	(e_v_object_get_child_value): Made this return NULL if not found</div><div class='del'>-	instead of g_strdup("").</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-save-as.c,</div><div class='del'>-	contact-editor/e-contact-save-as.h (e_contact_list_save_as): Added</div><div class='del'>-	this function to save multiple contacts.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am: Commented out reflow test.</div><div class='del'>-	(libeminicard_a_SOURCES): Added e-minicard-view-model.c and</div><div class='del'>-	e-minicard-view-model.h.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-model.c,</div><div class='del'>-	gui/widgets/e-minicard-view-model.h: Model for use in</div><div class='del'>-	EMinicardView.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h:</div><div class='del'>-	Reworked this to use the new EReflow stuff.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): Doesn't handle</div><div class='del'>-	right click menus now.  Emits a signal on the parent canvas item</div><div class='del'>-	instead.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print-envelope.c,</div><div class='del'>-	printing/e-contact-print-envelope.h</div><div class='del'>-	(e_contact_print_envelope_list_dialog_new): Added this function to</div><div class='del'>-	print multiple envelopes (only prints first for now.)</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c, printing/e-contact-print.h</div><div class='del'>-	(e_contact_print_card_list_dialog_new): Added this function to</div><div class='del'>-	print multiple cards.  Only prints the first for now.</div><div class='del'>-</div><div class='del'>-2001-05-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (remove_folder): flesh out</div><div class='del'>-	the function more.  It should work now, but there's no way to</div><div class='del'>-	invoke this method from the ui at the moment, heh.</div><div class='del'>-</div><div class='del'>-2001-05-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (book_open_cb): Use a different</div><div class='del'>-	error message in the ldap support/no ldap support/file cases.</div><div class='del'>-</div><div class='del'>-2001-05-07  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: use define from</div><div class='del'>-	widgets/misc/e-filter-bar.h instead of own enumeration and search menu</div><div class='del'>-	names.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am, gui/component/select-names/Makefile.am:</div><div class='del'>-	removed EVOLUTION_VERSION.</div><div class='del'>-</div><div class='del'>-2001-05-04  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (remove_folder): un-#if 0</div><div class='del'>-	this.</div><div class='del'>-	(xfer_folder): add skeleton code to validate xfer request.  always</div><div class='del'>-	notifies with PERMISSION_DENIED at present.</div><div class='del'>-	(populate_context_menu): un-#if 0 this.</div><div class='del'>-	(get_dnd_selection): same.</div><div class='del'>-	(destination_folder_handle_motion): new function.</div><div class='del'>-	(destination_folder_handle_drop): new function.</div><div class='del'>-	(factory_fn): create a EvolutionShellComponentDndDestinationFolder</div><div class='del'>-	interface, and add it to our shell component.</div><div class='del'>-</div><div class='del'>-2001-05-04  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_book_view): init change_id to NULL</div><div class='del'>-</div><div class='del'>-2001-05-02  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_view_free): unref the</div><div class='del'>-	book if the view is being destroyed</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_book_view): unref the book_view when</div><div class='del'>-	we are finished, it is only interesting if someone else has reffed</div><div class='del'>-	it now (weak reference)</div><div class='del'>-	(pas_backend_file_add_client): unref the book for the same reason</div><div class='del'>-	as above</div><div class='del'>-</div><div class='del'>-	* Fixes bug #2255</div><div class='del'>-</div><div class='del'>-2001-04-30  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (vcard_matches_search): if the</div><div class='del'>-	view does not contain a search context, the result is by default</div><div class='del'>-	false fixes #2470</div><div class='del'>-</div><div class='del'>-2001-04-25  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Remove call to</div><div class='del'>-	unicode_init.</div><div class='del'>-</div><div class='del'>-2001-04-23  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c: Lots of code has been</div><div class='del'>-	simplified here.</div><div class='del'>-	(e_address_popup_factory_new_control): Rather than directly pop</div><div class='del'>-	our control up in a window (via the e_address_popup_popup</div><div class='del'>-	function, which is now gone), just return the widget and let the</div><div class='del'>-	caller do the popping.  This works better, since it means we don't</div><div class='del'>-	have to work around the vagaries of bonobo focus &amp; event handling.</div><div class='del'>-	(e_address_popup_set_name): Refresh when both name &amp; email have</div><div class='del'>-	been set, rather than checking a stupid counter.</div><div class='del'>-	(e_address_popup_set_email): Ditto.</div><div class='del'>-</div><div class='del'>-2001-04-22  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c</div><div class='del'>-	(addressbook_storage_clear_sources): Added save_source_data here.</div><div class='del'>-</div><div class='del'>-2001-04-21  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c (clicked_cb): Properly</div><div class='del'>-	convert to utf8. (Bug #2256)</div><div class='del'>-	(build_quick_add_dialog): Properly convert from utf8. (Bug #2256)</div><div class='del'>-</div><div class='del'>-2001-04-16  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_name): Added.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(real_add_address_cb): Use e_select_names_model_append.  It's</div><div class='del'>-	nicer.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_append): Added.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(book_query_process_card_list): Filter out completion matches that</div><div class='del'>-	don't have an associated e-mail address.</div><div class='del'>-	(book_query_score): Give a bonus to the primary address, so that</div><div class='del'>-	it always comes up first in the completion results.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c (e_address_popup_refresh_names):</div><div class='del'>-	Convert utf8 strings into gtk strings before displaying.</div><div class='del'>-</div><div class='del'>-2001-04-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c,</div><div class='del'>-	backend/ebook/e-book-view-listener.h: Added the function</div><div class='del'>-	e_book_view_listener_stop to tell the book view listener to stop</div><div class='del'>-	sending signals.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view.c (e_book_view_destroy): Tell the</div><div class='del'>-	EBookViewListener to stop when we're destroyed.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (view_destroy,</div><div class='del'>-	pas_backend_file_process_get_book_view,</div><div class='del'>-	pas_backend_file_process_get_changes): Cleaned these up a bit</div><div class='del'>-	using bonobo_object_ref and bonobo_object_unref.</div><div class='del'>-	(pas_backend_file_process_get_book_view,</div><div class='del'>-	pas_backend_file_process_get_changes): bonobo_object_release_unref</div><div class='del'>-	the EBookListener here.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_process_get_book_view): Cleaned this up a bit</div><div class='del'>-	using bonobo_object_ref.  Make sure to unref the listener when</div><div class='del'>-	we're done with it.  Put the new book_view in the list before</div><div class='del'>-	telling the book_listener that it's ready.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-view.c (pas_book_view_construct): Cleaned</div><div class='del'>-	this up a bit using bonobo_object_dup_ref.</div><div class='del'>-	(pas_book_view_destroy): Cleaned this up a bit using</div><div class='del'>-	bonobo_object_release_unref.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_queue_get_book_view,</div><div class='del'>-	pas_book_queue_get_changes): bonobo_object_dup_ref here instead of</div><div class='del'>-	just duplicating.</div><div class='del'>-</div><div class='del'>-2001-04-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(impl_BookListener_respond_get_cursor): Ref the cursor here when</div><div class='del'>-	we receive it.</div><div class='del'>-	(impl_BookListener_respond_get_view,</div><div class='del'>-	impl_BookListener_respond_get_changes): Ref the book_view here</div><div class='del'>-	when we receive it.</div><div class='del'>-	(impl_BookListener_respond_open_book): Ref the book here when we</div><div class='del'>-	receive it.</div><div class='del'>-	(e_book_listener_destroy): Unref the objects in our queue here.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view.c (e_book_view_construct): Cleaned</div><div class='del'>-	this up using bonobo_object_dup_ref.</div><div class='del'>-	(e_book_view_destroy): Cleaned this up using</div><div class='del'>-	bonobo_object_release_unref.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_do_response_get_cursor,</div><div class='del'>-	e_book_do_response_get_view, e_book_do_response_get_changes,</div><div class='del'>-	e_book_unload_uri): Cleaned this up using</div><div class='del'>-	bonobo_object_release_unref.</div><div class='del'>-</div><div class='del'>-2001-04-13  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_get_property_fn): Get the ESelectNamesModel from the</div><div class='del'>-	widget's text model instead of storing it as a gtk_object_set_data</div><div class='del'>-	since it may change.</div><div class='del'>-</div><div class='del'>-2001-04-12  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (INITIAL_VCARD): Update the Voice</div><div class='del'>-	and Fax phone numbers too, finishing off bug #1667.</div><div class='del'>-</div><div class='del'>-2001-04-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (INITIAL_VCARD): Update the built</div><div class='del'>-	in VCard.</div><div class='del'>-</div><div class='del'>-2001-04-12  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_ecard): put the</div><div class='del'>-	business address into the pilot record as that is what we put into</div><div class='del'>-	the desktop record</div><div class='del'>-	(ecard_from_remote_record): set both the address label and</div><div class='del'>-	delivery address to avoid bad parser guessing, fixes #2143</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-types.h: remove deprecated pilot code</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: ditto</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.h: ditto</div><div class='del'>-	</div><div class='del'>-2001-04-11  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_ecard): Don't add</div><div class='del'>-	more than five phone numbers and set the remaining blank entries</div><div class='del'>-	to some reasonable defaults</div><div class='del'>-</div><div class='del'>-2001-04-11  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.h: Added</div><div class='del'>-	E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (accepted_dnd_types):</div><div class='del'>-	Fixed a warning here.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c: Modified this to have more</div><div class='del'>-	columns, but not let them be edited if they're not a simple</div><div class='del'>-	string.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_init): Fixed a</div><div class='del'>-	warning and a memory leak here.</div><div class='del'>-</div><div class='del'>-2001-04-10  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-gnomecard-importer.c: added missing #include.</div><div class='del'>-	* contact-editor/e-contact-editor.c (_arrow_pressed): popup menu items were</div><div class='del'>-	not translated after selecting one of them.</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: mark popup menu items with N_().</div><div class='del'>-	Updated list[] for translators.</div><div class='del'>-	* gui/widgets/e-minicard.c: same.</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_set_arg): fix warning</div><div class='del'>-	for "editable" arg.</div><div class='del'>-	* gui/widgets/e-minicard-view.c: convert "empty_message" to utf8.</div><div class='del'>-</div><div class='del'>-2001-04-09  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (remove_folder): stubbed,</div><div class='del'>-	#if 0'ed</div><div class='del'>-	(xfer_folder): same.</div><div class='del'>-	(populate_context_menu): same.</div><div class='del'>-	(get_dnd_selection): same.</div><div class='del'>-	(factory_fn): add the accepted drag types ("text/x-vard") to</div><div class='del'>-	folder_types.</div><div class='del'>-</div><div class='del'>-2001-04-09  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): on BUTTON_PRESS: if</div><div class='del'>-	it's button 1, store the button x, y, and set drag_button_down to</div><div class='del'>-	TRUE.  on BUTTON_RELEASE: always set drag_button_down to FALSE.</div><div class='del'>-	for MOTION_NOTIFY: initiate drag if the pointer has moved 3</div><div class='del'>-	pixels.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.h (struct _EMinicard): add fields for</div><div class='del'>-	button x, y, and a bit for if the button has been pressed so we</div><div class='del'>-	can tell whether a motion should be a drag.</div><div class='del'>-	(struct _EMinicardClass): add drag_begin signal.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_drag_begin): new</div><div class='del'>-	function, starts the drag.</div><div class='del'>-	(book_view_loaded): connect the "drag_data_get" signal.</div><div class='del'>-	(e_minicard_view_drag_data_get): new function.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.h (struct _EMinicardView): add</div><div class='del'>-	drag_card and id for canvas_drag_data_get_id.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_drag_data_get): new</div><div class='del'>-	function.</div><div class='del'>-	(create_table_view): add d&amp;d stuff.</div><div class='del'>-</div><div class='del'>-2001-04-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c: add #include &lt;sys/types.h&gt; since</div><div class='del'>-	gnome-print.h uses time_t without including it.  this really</div><div class='del'>-	should be fixed in gnome-print.</div><div class='del'>-</div><div class='del'>-2001-04-08  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):</div><div class='del'>-	make sure to notify new clients to the writable status of an</div><div class='del'>-	already open (and authenticated) book.</div><div class='del'>-</div><div class='del'>-2001-04-04  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.[ch]: Fix headers.</div><div class='del'>-	* component/addressbook-storage.c: Same here.</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c: Same here.</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: Same here.</div><div class='del'>-	* gui/widgets/e-minicard-label.c: Same here.</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c: Same here.</div><div class='del'>-	* gui/widgets/e-minicard-view.c: Same here.</div><div class='del'>-	* gui/widgets/e-minicard-widget-test.c: Same here.</div><div class='del'>-	* gui/widgets/e-minicard-widget.c: Same here.</div><div class='del'>-	* gui/widgets/e-minicard.c: Same here.</div><div class='del'>-	* gui/widgets/test-minicard-label.c: Same here.</div><div class='del'>-</div><div class='del'>-2001-04-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_double_click): Fixed a</div><div class='del'>-	crash here.</div><div class='del'>-</div><div class='del'>-2001-04-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (COLS): Made this table model</div><div class='del'>-	more consistent in the number of columns it has.</div><div class='del'>-	(addressbook_append_row): Fixed this function.  We removed the col</div><div class='del'>-	offset.</div><div class='del'>-</div><div class='del'>-2001-04-02  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-gnomecard-importer.c (importer_init): Shut</div><div class='del'>-	down and unregister the factory on exit. </div><div class='del'>-</div><div class='del'>-2001-04-01  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade: changed icon to</div><div class='del'>-	evolution-contacts-plain.png.</div><div class='del'>-	* gui/component/addressbook.c: use new pixmap cache. Added icon for new</div><div class='del'>-	contact, print, print preview, changed filenames of renamed icons.</div><div class='del'>-</div><div class='del'>-2001-03-31  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(real_add_address_cb): Call e_select_names_model_clean after</div><div class='del'>-	adding address.  This should deal with the bug reports related</div><div class='del'>-	to stray commas.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_clean): Added.  Remove all empty destinations.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_is_empty): Added.  Check</div><div class='del'>-	if an EDestination is in essentially a null state.</div><div class='del'>-</div><div class='del'>-2001-03-30  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_add_client):</div><div class='del'>-	Tell new clients that are added whether they're writable.</div><div class='del'>-</div><div class='del'>-2001-03-29  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c: Added #include &lt;libgnome/gnome-paper.h&gt;</div><div class='del'>-	</div><div class='del'>-	* printing/e-contact-print-envelope.c: Added #include &lt;time.h&gt;</div><div class='del'>-	and #include &lt;libgnome/gnome-paper.h&gt;</div><div class='del'>-</div><div class='del'>-2001-04-03  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_email): Better handle matching of "nameless" contacts.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_string): Better</div><div class='del'>-	handle the case of a "nameless" contact.</div><div class='del'>-</div><div class='del'>-2001-03-29  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* *.*: Clean up #includes. Replace &lt;gnome.h&gt;, &lt;bonobo.h&gt; and</div><div class='del'>-	&lt;gtk/gtk.h&gt; with more finegrained headers where needed.</div><div class='del'>-</div><div class='del'>-2001-03-28  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_set_arg): Fixed some crashes.</div><div class='del'>-</div><div class='del'>-2001-03-28  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c</div><div class='del'>-	(fill_in_info): Use E_CARD_SIMPLE_FIELD_NAME_OR_ORG instead of</div><div class='del'>-	getting the NAME and then the ORG.  That way if we expand</div><div class='del'>-	NAME_OR_ORG, this will use it.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_addressbook_create_ebook_table, SPEC): Use the correct column</div><div class='del'>-	in the SPEC.</div><div class='del'>-</div><div class='del'>-2001-03-25  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(e_select_names_completion_seq_complete_cb): Rather than starting</div><div class='del'>-	the pending query by directly calling</div><div class='del'>-	e_select_names_completion_do_query, call</div><div class='del'>-	e_completion_begin_search.  Circumventing the ECompletion API was</div><div class='del'>-	causing it to get confused in some cases.</div><div class='del'>-</div><div class='del'>-2001-03-23  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-widget.c (e_minicard_widget_set_card):</div><div class='del'>-	Added.  Call me old-fashioned, but I just prefer to have a real</div><div class='del'>-	API rather than doing everything via gtk_object_get/set-type</div><div class='del'>-	calls.</div><div class='del'>-	(e_minicard_widget_set_arg): Changed to call</div><div class='del'>-	e_minicard_widget_set_card.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c: Small changes to get rid of</div><div class='del'>-	compiler warnings.  (Casting out const, removed unused variables,</div><div class='del'>-	etc.)  Removed some debugging messages.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Added call</div><div class='del'>-	to e_address_popup_factory_init.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-popup.c: Added.  A popup gadget that is</div><div class='del'>-	invoked (as a bonobo control) when an address is left-clicked in</div><div class='del'>-	the mailer.  The addressbook is queries, and the address is either</div><div class='del'>-	displayed as a minicard (if it already exists) or in a "generic</div><div class='del'>-	format".  A button is provided for editting/adding the contact.</div><div class='del'>-	Some of the semantics of this widget are a bit... non-standard,</div><div class='del'>-	because of bonobo issues.  I can't really seem to replicate</div><div class='del'>-	popup-menu behavior because of how bonobo propogates events, etc.</div><div class='del'>-	so I've tried to produce something that I think is non-annoying.</div><div class='del'>-	YMMV.</div><div class='del'>-</div><div class='del'>-2001-03-22  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-gnomecard-importer.c: Update to the new</div><div class='del'>-	IDL.</div><div class='del'>-</div><div class='del'>-2001-03-20  Miguel de Icaza  &lt;miguel@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (update_pixmaps): Added artwork from</div><div class='del'>-	Jakub. </div><div class='del'>-</div><div class='del'>-2001-03-19  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* Merged branch:</div><div class='del'>-</div><div class='del'>-2001-03-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c: Call</div><div class='del'>-	e_selection_model_simple_insert_rows and</div><div class='del'>-	e_selection_model_simple_delete_rows instead of</div><div class='del'>-	e_selection_model_simple_insert_row and</div><div class='del'>-	e_selection_model_simple_delete_row.</div><div class='del'>-</div><div class='del'>-End of branch</div><div class='del'>-</div><div class='del'>-2001-03-17  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c: Brutally</div><div class='del'>-	refactored to boost performance in large-addressbook situations.</div><div class='del'>-	These fixes give accepable performance (even with the suboptimal</div><div class='del'>-	pas-backend-file searching) using tigert's addressbook-of-death.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_search): </div><div class='del'>-	Start feeding query matches back to the caller before the</div><div class='del'>-	entire search is complete; this gives us some "instant feedback"</div><div class='del'>-	rather than causing evolution to totally lock up...</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_queue_op): Tag all queued ops.</div><div class='del'>-	(e_book_cancel_op): Added.  Search for a pending op with a given</div><div class='del'>-	tag, and mark it as inactive.</div><div class='del'>-	(e_book_do_response_get_cursor): Don't execute callback if this</div><div class='del'>-	operations has been cancelled.</div><div class='del'>-	(e_book_do_response_get_view): Ditto.</div><div class='del'>-	(e_book_do_response_get_changes): Ditto.</div><div class='del'>-	(e_book_do_response_get_supported_fields): Ditto.</div><div class='del'>-	(e_book_get_supported_fields): Return an operation tag (that can</div><div class='del'>-	be used to cancel the operation) rather than just TRUE/FALSE.</div><div class='del'>-	Zero is always an invalid tag and is returned in the case of an</div><div class='del'>-	error, so this shouldn't break any code that looked at the return</div><div class='del'>-	value (unless it did so in a particularly stupid way, of course).</div><div class='del'>-	(e_book_get_cursor): Ditto.</div><div class='del'>-	(e_book_get_book_view): Ditto.</div><div class='del'>-	(e_book_get_changes): Ditto.</div><div class='del'>-	(e_book_cancel): Added.  Cancel a pending operation.  (Basically</div><div class='del'>-	a call to e_book_cancel_op with error checking, etc.)</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-types.h: Added E_BOOK_STATUS_CANCELLED.</div><div class='del'>-</div><div class='del'>-2001-03-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(e_book_listener_queue_writable_status): new function.</div><div class='del'>-	(impl_BookListener_report_writable): new function.</div><div class='del'>-	(e_book_listener_get_epv): fill in epv-&gt;notifyWritable.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.h: add writable status entries.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_do_writable_event): new function.</div><div class='del'>-	(e_book_check_listener_queue): add WritableStatusEvent to the</div><div class='del'>-	switch.</div><div class='del'>-	(e_book_class_init): register writable_status signal.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.h: add writable_status signal.</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl: add notifyWritable method to</div><div class='del'>-	BookListener.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_class_init): add "editable"</div><div class='del'>-	arg.</div><div class='del'>-	(e_minicard_init): init editable.</div><div class='del'>-	(e_minicard_set_arg): loop over the minicard fields setting their</div><div class='del'>-	"editable".</div><div class='del'>-	(e_minicard_get_arg): add editable.</div><div class='del'>-	(supported_fields_cb): use editable when creating the</div><div class='del'>-	contact_editor.</div><div class='del'>-	(add_field): set "editable" when creatin the e_minicard.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.h (struct _EMinicard): add "editable".</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_class_init): add</div><div class='del'>-	editable arg.</div><div class='del'>-	(e_minicard_view_init): init editable.</div><div class='del'>-	(create_card): pass editable to e_minicard canvas item.</div><div class='del'>-	(e_minicard_view_set_arg): bit of a hack - loop over all the</div><div class='del'>-	canvas items setting their "editable."</div><div class='del'>-	(e_minicard_view_get_arg): add editable.</div><div class='del'>-	(supported_fields_cb): use editable when creating the contact</div><div class='del'>-	editor.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.h (struct _EMinicardView): add</div><div class='del'>-	"editable."</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c</div><div class='del'>-	(e_minicard_view_widget_class_init): add "editable" field.</div><div class='del'>-	(e_minicard_view_widget_init): init editable to FALSE.</div><div class='del'>-	(e_minicard_view_widget_set_arg): save editable, and pass it along</div><div class='del'>-	the e-minicard-view.</div><div class='del'>-	(e_minicard_view_widget_realize): same.</div><div class='del'>-	(e_minicard_view_widget_get_arg): add editable.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.h (struct</div><div class='del'>-	_EMinicardViewWidget): add "editable" field.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-label.h (struct _EMinicardLabel): add</div><div class='del'>-	"editable" field.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-label.c (e_minicard_label_class_init):</div><div class='del'>-	add "editable" arg.</div><div class='del'>-	(e_minicard_label_set_arg): editable, set it on the e_text too.</div><div class='del'>-	(e_minicard_label_get_arg): editable.</div><div class='del'>-	(e_minicard_label_construct): set the "editable" field when we</div><div class='del'>-	create the e_text cavas item</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):</div><div class='del'>-	default editable to FALSE.</div><div class='del'>-	(book_writable_cb): new function, set our editable field and</div><div class='del'>-	gtk_object_set it on the active view.</div><div class='del'>-	(e_addressbook_view_set_arg): set the active view's editable when</div><div class='del'>-	we set the view's book, and connect the "writable_status" signal</div><div class='del'>-	to book_writable_cb.</div><div class='del'>-	(change_view_type): same.</div><div class='del'>-	(supported_fields_cb): use our "editable" when creating the</div><div class='del'>-	contact editor.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add</div><div class='del'>-	editable field.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (e_addressbook_model_init):</div><div class='del'>-	change the default of editable to FALSE.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_report_writable): new function.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.h: prototype for pas_book_report_writable.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): if</div><div class='del'>-	we open the file O_RDWR (or create it) report it as writable.  if</div><div class='del'>-	we can't open it as O_RDWR, try opening it read-only before we</div><div class='del'>-	attempt to create it.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_process_authenticate_user): if we authenticate</div><div class='del'>-	successfully, grant write permissions (this is lacking but there's</div><div class='del'>-	really nothing we can do to determine the extent of the access</div><div class='del'>-	afforded a user.)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2001-03-15  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-widget.c: Added addressbook querying and</div><div class='del'>-	"cardification" functions, which are turned off by default for now</div><div class='del'>-	because of addressbook bugs.  Added a popup menu option to turn</div><div class='del'>-	queries on, so that others can enjoy the thrill of massive flaming</div><div class='del'>-	death.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Made warnings always</div><div class='del'>-	be fatal.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-view.c: Added some debugging spew.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_search): Added</div><div class='del'>-	a little experimental code to try to make file searches scale</div><div class='del'>-	better.  #if 0/#endif-ed out for now.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c: #included e-book-util.h.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_name_match_string): Added.</div><div class='del'>-	Looser name-matching function.</div><div class='del'>-	(e_card_email_match_string): Added.  Loose e-mail matching.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c</div><div class='del'>-	(e_book_view_listener_check_queue): Added code to cause us to</div><div class='del'>-	abort rather than get trapped in a 100%-CPU-consuming loop in</div><div class='del'>-	certain situations.  Now we just need to figure out how to avoid</div><div class='del'>-	these situations altogether.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-util.c: Added.  Now contains the simple</div><div class='del'>-	query stuff and the open local addressbook functions.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c: Moved simple query stuff and open local</div><div class='del'>-	addressbook functions into e-book-util.c.</div><div class='del'>-</div><div class='del'>-2001-03-15  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-label.c (e_minicard_label_set_arg): </div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_set_arg, e_minicard_event):</div><div class='del'>-	Update arguments to e_canvas_item_grab_focus.</div><div class='del'>-</div><div class='del'>-2001-03-13  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (update_pixmaps): Fix a warning</div><div class='del'>-	here.</div><div class='del'>-</div><div class='del'>-2001-03-13  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (minicard_label_test_LDADD): Change to</div><div class='del'>-	ld order from Greg Williams.</div><div class='del'>-</div><div class='del'>-2001-03-13  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_book_view): Moved where we call</div><div class='del'>-	pas_book_respond_get_book_view.</div><div class='del'>-</div><div class='del'>-2001-03-12  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: add E_STRING_PROP for</div><div class='del'>-	categories.</div><div class='del'>-</div><div class='del'>-	* backend/pas/evolutionperson.schema: add categories attribute.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (field_data): add</div><div class='del'>-	E_CARD_SIMPLE_FIELD_CATEGORIES.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.h: add</div><div class='del'>-	E_CARD_SIMPLE_FIELD_CATEGORIES.</div><div class='del'>-</div><div class='del'>-2001-03-12  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (supported_fields_cb): add is_read_only</div><div class='del'>-	param.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (supported_fields_cb): add</div><div class='del'>-	is_read_only param.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (supported_fields_cb): add</div><div class='del'>-	is_read_only param.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_activate_obj): add is_read_only param.</div><div class='del'>-	also, include a little policy here and make it TRUE, as the user</div><div class='del'>-	shouldn't be editting in this context anyway (imo).</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (supported_fields_cb): add</div><div class='del'>-	is_read_only param.</div><div class='del'>-</div><div class='del'>-	* contact-editor/test-editor.c (main): add is_read_only param.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (set_read_only): new function,</div><div class='del'>-	that either enables or disables all the text fields, combo boxes,</div><div class='del'>-	and some buttons, depending on the state of is_read_only.</div><div class='del'>-	(e_contact_editor_class_init): add read/write arg "is_read_only".</div><div class='del'>-	(full_name_clicked): set the is_read_only of the fullname dialog</div><div class='del'>-	to the editor's.</div><div class='del'>-	(full_addr_clicked): same.</div><div class='del'>-	(e_contact_editor_new): add is_read_only param, that gets set</div><div class='del'>-	along with the other params.</div><div class='del'>-	(e_contact_editor_set_arg): add setter for is_read_only.</div><div class='del'>-	(e_contact_editor_get_arg): add getter for is_read_only.</div><div class='del'>-	(_phone_arrow_pressed): change TRUE to !editor-&gt;is_read_only for</div><div class='del'>-	entry.</div><div class='del'>-	(_email_arrow_pressed): same.</div><div class='del'>-	(_address_arrow_pressed): same.</div><div class='del'>-	(enable_writable_fields): same.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.c</div><div class='del'>-	(e_contact_editor_fullname_class_init): add read/write arg</div><div class='del'>-	"is_read_only".</div><div class='del'>-	(e_contact_editor_fullname_set_arg): add setter for is_read_only</div><div class='del'>-	that enables/disables all the entries/combos.</div><div class='del'>-	(e_contact_editor_fullname_get_arg): add getter for is_read_only.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.h (struct</div><div class='del'>-	_EContactEditorFullname): add is_read_only flag.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-address.c</div><div class='del'>-	(e_contact_editor_address_class_init): add read/write arg</div><div class='del'>-	"is_read_only".</div><div class='del'>-	(e_contact_editor_address_set_arg): add setter for is_read_only</div><div class='del'>-	that disables/enables all the entries/combos.</div><div class='del'>-	(e_contact_editor_address_get_arg): add getter for is_read_only.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-address.h (struct</div><div class='del'>-	_EContactEditorAddress): add is_read_only flag.</div><div class='del'>-</div><div class='del'>-2001-03-13  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Change the importer includes around a bit.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/evolution-gnomecard-importer.c: Correctly add the includes.</div><div class='del'>-</div><div class='del'>-2001-03-09  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: PISOCK_INCLUDEDIR has become</div><div class='del'>-	PISOCK_CFLAGS in gnome-pilot.m4 and remove capplet foo</div><div class='del'>-</div><div class='del'>-2001-03-11  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_simple_query): Added. A</div><div class='del'>-	simplified, cancellable query mechanism that lets you avoid</div><div class='del'>-	dealing with EBookView.</div><div class='del'>-	(e_book_simple_query_cancel): Added. Cancels a running query.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-types.h: Add enum EBookSimpleQueryStatus.</div><div class='del'>-</div><div class='del'>-2001-03-08  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c</div><div class='del'>-	(quick_add_cb): Switched to use e_contact_quick_add_free_form.</div><div class='del'>-	Removed debugging code, hopefully without introducing any bugs</div><div class='del'>-	in the process.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_insert_length): Fix bug with commas</div><div class='del'>-	inside of name/address combos.  As long as the comma is inside of</div><div class='del'>-	quotes, it will be treated as part of the name rather than as a</div><div class='del'>-	break between addresses.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(match_nickname): Use e_card_name_to_string for nickname match</div><div class='del'>-	strings.</div><div class='del'>-	(match_email): Use e_card_name_to_string for email match strings.</div><div class='del'>-	(e_select_names_completion_begin): Strip quotes out of query text,</div><div class='del'>-	so we don't produce malformed sexps.</div><div class='del'>-	Added William Blake quote easter egg.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c: Further attempts to fix...</div><div class='del'>-	mostly unsuccessful.</div><div class='del'>-	(e_contact_quick_add_free_form): Added.  Takes a single string</div><div class='del'>-	and tries to parse out (using some simple, loose rules) the</div><div class='del'>-	name and e-mail -- then calls e_contact_quick_add.  An attempt to </div><div class='del'>-	get the computer to automatically Do The Right Thing.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c: Fixed some broken indentation.  Yes, I'm</div><div class='del'>-	anal.</div><div class='del'>-</div><div class='del'>-	* gui/component/GNOME_Evolution_Addressbook.oafinfo: Added oaf_server</div><div class='del'>-	info for EAddressWidget.</div><div class='del'>-</div><div class='del'>-	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Added oaf_server</div><div class='del'>-	info for EAddressWidget.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Add call to</div><div class='del'>-	e_address_widget_factory_init.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-address-widget.h: </div><div class='del'>-	* gui/component/e-address-widget.c: Added.  A little widget (and a</div><div class='del'>-	Bonobo control, BTW) for displaying addresses, with a left-click</div><div class='del'>-	menu.  Used to display addresses in the mail viewer (as embedded</div><div class='del'>-	GtkHTML objects, replacing the text previously used).  Still quite</div><div class='del'>-	incomplete.</div><div class='del'>-</div><div class='del'>-2001-03-08  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Specify a</div><div class='del'>-	NULL `EvolutionShellComponentGetDndSelectionFn'.</div><div class='del'>-</div><div class='del'>-2001-03-06  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_insert_length): Fix glitch with</div><div class='del'>-	inserting comma-delimited stuff when length &gt; 1.</div><div class='del'>-</div><div class='del'>-2001-03-06  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_load_local_address_book): Added.</div><div class='del'>-	Just encapsulates opening</div><div class='del'>-	file://~username/evolution/local/Contactes/addressbook.db, so that</div><div class='del'>-	path doesn't need to be hardwired in throughout the code.</div><div class='del'>-</div><div class='del'>-2001-03-06  Benjamin Kahn  &lt;xkahn@cybersites.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c (clicked_cb): </div><div class='del'>-	Added the third argument to e_contact_editor_new.  (Cheated</div><div class='del'>-	and send NULL for the field argument, which is probably</div><div class='del'>-	troublesome.  It will be fixed soon by either clahey or </div><div class='del'>-	toshok.)</div><div class='del'>-</div><div class='del'>-2001-03-06  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c</div><div class='del'>-	(e_select_names_model_replace): Fix a reference counting bug.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c (popup_cb):</div><div class='del'>-	A callback for creating the appropriate popup by calling</div><div class='del'>-	e_select_names_popup.</div><div class='del'>-	(e_select_names_manager_create_entry): Connect popup_cb to the</div><div class='del'>-	entry's popup signal</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-popup.c: Added.  Code</div><div class='del'>-	for popup right-click menus for recipient entries.  Still a bit</div><div class='del'>-	incomplete.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.c (e_destination_get_email_num):</div><div class='del'>-	Added.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-quick-add.c: Added.  Some code and a</div><div class='del'>-	dialog for very quickly adding entries to the address book.</div><div class='del'>-	Still not fully working.</div><div class='del'>-</div><div class='del'>-2001-03-04  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c: Cleaned up the formatting in this</div><div class='del'>-	file a bit.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (e_contact_editor_set_arg):</div><div class='del'>-	Made it so that passing in NULL to the writable_fields arg sets</div><div class='del'>-	the set of writable fields to the empty set.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_activate_obj): Pass NULL as the</div><div class='del'>-	writable_fields argument here.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c: Don't offset by one here.</div><div class='del'>-	This way we will get the file_as field as one of our</div><div class='del'>-	ETableColumns.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (SPEC): Updated this for the</div><div class='del'>-	changes in ECardSimple.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (remodel): Don't remodel if the item</div><div class='del'>-	isn't realized.</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: doh, track renaming of</div><div class='del'>-	objectclass from evolvePerson to evolutionPerson.</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/evolutionperson.schema: rename evolveperson.schema</div><div class='del'>-	to this, and add remaining attributes.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: add remaining fields, and fix up</div><div class='del'>-	ones that were incorrent (either the ldap_attr or the query prop).</div><div class='del'>-</div><div class='del'>-2001-03-02  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: update sed script</div><div class='del'>-</div><div class='del'>-	* conduit/e-address.conduit.in: update for new pilot foo</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_activate_obj): track change to</div><div class='del'>-	e_contact_editor_new.</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (add_objectclass_mod): add</div><div class='del'>-	objectclasses for "person", "organizationalPerson", and "top" as</div><div class='del'>-	well, just to be complete.</div><div class='del'>-	(check_schema_support): rename check_for_evolve_person to this, to</div><div class='del'>-	reflect that we're doing more than just checking for that</div><div class='del'>-	objectClass.</div><div class='del'>-	(add_oc_attributes_to_supported_fields): new function.</div><div class='del'>-	(add_to_supported_fields): new function.</div><div class='del'>-	(pas_backend_ldap_destroy): unref supported_fields.</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (supported_fields_cb): new</div><div class='del'>-	function.</div><div class='del'>-	(e_minicard_view_event): split out the creation of the contact</div><div class='del'>-	editor to the supported_fields callback.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (supported_fields_cb): new function.</div><div class='del'>-	(e_minicard_event): split out the creation of the contact editor</div><div class='del'>-	to the supported_fields callback.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_double_click): split</div><div class='del'>-	function into two functions, since e_book_get_supported_fields</div><div class='del'>-	requires a callback now.</div><div class='del'>-	(supported_fields_cb): new function.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_contact_cb): split this into</div><div class='del'>-	two functions, since e_book_get_supported_fields requires a</div><div class='del'>-	callback now.</div><div class='del'>-	(supported_fields_cb): new function.</div><div class='del'>-</div><div class='del'>-	* contact-editor/test-editor.c (main): track change to</div><div class='del'>-	e_contact_editor_new (pass NULL for the writable_fields arg.)</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade: fix several labels so they</div><div class='del'>-	make better sense (since we look them up in e-contact-editor.c.)</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.h (struct _EContactEditor): add</div><div class='del'>-	writable_fields.  also, add it to e_contact_editor_new.</div><div class='del'>-	</div><div class='del'>-	* contact-editor/e-contact-editor.c (e_contact_editor_class_init):</div><div class='del'>-	add writable_fields arg.</div><div class='del'>-	(e_contact_editor_destroy): unref the writable_fields list.</div><div class='del'>-	(e_contact_editor_new): pass @fields as the writable_fields arg.</div><div class='del'>-	(e_contact_editor_set_arg): add writable_fields support.</div><div class='del'>-	(enable_writable_fields): new (very hairy) function, to disable</div><div class='del'>-	everything and reenable just the fields listed in the</div><div class='del'>-	writable_fields list.</div><div class='del'>-	(_email_arrow_pressed): set label-email1, entry-email1, and</div><div class='del'>-	checkbutton-htmlmail to be sensitive since the only way to get</div><div class='del'>-	here is to activate a writable field in the menu.</div><div class='del'>-	(_address_arrow_pressed): set label-address, button-fulladdr, and</div><div class='del'>-	text-address to be sensitive for the same reason.</div><div class='del'>-	(_phone_arrow_pressed): sensitize the label and entry for the same</div><div class='del'>-	reason.</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (field_data): add new entries for</div><div class='del'>-	phone enums, and fill in the ecard_field with (bogus in all but a</div><div class='del'>-	few cases) strings.  these are the strings sent from wombat to</div><div class='del'>-	evolution-addressbook for supported_fields.</div><div class='del'>-	(e_card_simple_get_ecard_field): new function.</div><div class='del'>-	(e_card_simple_map_phone_to_field): new function.</div><div class='del'>-	(e_card_simple_map_email_to_field): new function.</div><div class='del'>-	(e_card_simple_map_address_to_field): new function.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.h: add a few phone entries to the</div><div class='del'>-	ECardSimpleField enum, and add prototypes for mapping the list</div><div class='del'>-	types (phone, email, address) to ECardSimpleField.  Also, add</div><div class='del'>-	prototype for e_card_simple_get_ecard_field.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c</div><div class='del'>-	(e_book_do_response_get_supported_fields): don't build the EList</div><div class='del'>-	here, it's already built.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.h: change fields from the CORBA</div><div class='del'>-	sequence to the EList in our reponse struct.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(e_book_listener_queue_get_supported_fields_response): we make the</div><div class='del'>-	EList here, since after we return the CORBA list is freed up.</div><div class='del'>-</div><div class='del'>-2001-03-02  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_supported_fields): implement</div><div class='del'>-	properly, we support everything.</div><div class='del'>-</div><div class='del'>-2001-03-01  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_set_property_fn): Oops, we do need to be able to write to</div><div class='del'>-	"text" after all (for things like Reply-to: to work properly).</div><div class='del'>-	Fixed.</div><div class='del'>-	(impl_SelectNames_get_entry_for_section): Made "text" a writeable</div><div class='del'>-	property again.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_insert_length): Increment pos so that</div><div class='del'>-	we don't reverse strings when length &gt; 1 (a particularly amusing</div><div class='del'>-	bug).</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c</div><div class='del'>-	(e_select_names_completion_destroy): Check for NULL before calling</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (---)), to get rid of annoying error</div><div class='del'>-	messages.</div><div class='del'>-</div><div class='del'>-2001-03-01  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-	</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c: I am an</div><div class='del'>-	idiot.</div><div class='del'>-</div><div class='del'>-2001-03-01  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c</div><div class='del'>-	(fill_in_info): Change for new EDestination/ESelectNamesModel API.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_get_source): Added.  A function for</div><div class='del'>-	looking up the ESelectNamesModel by id.  (I didn't end up using</div><div class='del'>-	this function, but it might come in handy later.)</div><div class='del'>-	(e_select_names_manager_get_cards): #if 0/#endif out this</div><div class='del'>-	function.</div><div class='del'>-	(e_select_names_manager_create_entry): Modified to attach an</div><div class='del'>-	ESelectNamesCompletion to the entry we create.</div><div class='del'>-	(completion_handler): A post-completion handler for our EEntry, to</div><div class='del'>-	take the completion's extra data (an EDestination) and properly</div><div class='del'>-	stick it into our ESelectNamesModel.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(real_add_address_cb): Changed to operate on EDestinations rather</div><div class='del'>-	than ECards and to use the new ESelectNamesModel API.  This leads</div><div class='del'>-	to a rather nice code simplication.</div><div class='del'>-	(remove_address): Changed for new ESelectNamesModel API.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_get_property_fn): Rather than just passing the entry's text</div><div class='del'>-	through the property bag, get the "address text" from the model.</div><div class='del'>-	This returns a nice, verbose string of addresses with names</div><div class='del'>-	expanded when the address is tied to an ECard (i.e. "Jon</div><div class='del'>-	Trowbridge &lt;trow@ximian.com&gt;").</div><div class='del'>-	(impl_SelectNames_get_entry_for_section): Make the text property</div><div class='del'>-	read-only.</div><div class='del'>-	(entry_set_property_fn): ...and since it is read-only now, chop</div><div class='del'>-	out the setter code.</div><div class='del'>-	</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.h: </div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c: Again,</div><div class='del'>-	this code has been (pretty much) totally rewritten to convert all</div><div class='del'>-	text operations into changes on the ESelectNamesModel.  This lets</div><div class='del'>-	us give the associated EEntry some (IMHO) nice semantics regarding</div><div class='del'>-	whitespace, etc.  Includes object activation, so destinations tied</div><div class='del'>-	to ECards are underlined and can be double-clicked to bring up a</div><div class='del'>-	contact editor.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.h: </div><div class='del'>-	* gui/component/select-names/e-select-names-model.c: I've heavily</div><div class='del'>-	modified this object to both hide all implementation details</div><div class='del'>-	(which the old version exposed a bit too much for my peculiar</div><div class='del'>-	tastes) and to act as an EDestination container.  The old code put</div><div class='del'>-	the text model operations here.  I've moved them all to</div><div class='del'>-	ESelectNamesTextModel --- so the text model actions (insert,</div><div class='del'>-	delete, etc.) are all done through the API rather than operating on</div><div class='del'>-	ESelectNamesModel internals.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.c: Added.  A</div><div class='del'>-	fairly complicated object derived from ECompletion that searches</div><div class='del'>-	our local addressbook in various and sundry ways.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-completion.h: </div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-destination.h: </div><div class='del'>-	* backend/ebook/e-destination.c: Added.  This object encapsulates</div><div class='del'>-	a place to sent an email to, which can either be just a address as</div><div class='del'>-	a string ("trow@ximian.com"), a fancier string ("Jon Trowbridge</div><div class='del'>-	&lt;trow@ximian.com&gt;"), or an ECard and a specific address within</div><div class='del'>-	that ECard.</div><div class='del'>-</div><div class='del'>-2001-03-01  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,</div><div class='del'>-	gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Used</div><div class='del'>-	ESelectionModelSimple and the changes to EReflow and EReflowSorted</div><div class='del'>-	to get multiple selection in the minicard view.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/test-reflow.c: Changed this to get it to compile</div><div class='del'>-	with the changes to EReflow.</div><div class='del'>-</div><div class='del'>-2001-02-21  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_search): Made</div><div class='del'>-	this pay attention to the return value of e_sexp_parse.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_activate_obj): Fixed a const</div><div class='del'>-	inconsistency here.</div><div class='del'>-</div><div class='del'>-2001-02-21  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_queue_get_supported_fields):</div><div class='del'>-	new function.</div><div class='del'>-	(impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): track</div><div class='del'>-	change to idl.</div><div class='del'>-	(pas_book_respond_get_supported_fields): new function.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.h: add GetSupportedFields to the</div><div class='del'>-	PASOperation enum.  Also, add a stringlist field to the PASRequest</div><div class='del'>-	struct.  lastly, add a prototype for</div><div class='del'>-	pas_book_respond_get_supported_fields.</div><div class='del'>-	</div><div class='del'>-	* backend/pas/pas-backend.h: remove prototype for</div><div class='del'>-	pas_backend_get_supported_fields, and remove it from the vtable.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend.c (pas_backend_get_supported_fields):</div><div class='del'>-	remove.</div><div class='del'>-	(pas_backend_class_init): no vtable entry for get_supported_fields</div><div class='del'>-	anymore.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_process_get_supported_fields): new function.</div><div class='del'>-	(pas_backend_ldap_process_client_requests): add case for</div><div class='del'>-	GetSupportedFields.</div><div class='del'>-	(pas_backend_ldap_class_init): get_supported_fields isn't in</div><div class='del'>-	vtable anymore.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_get_supported_fields): new function.</div><div class='del'>-	(pas_backend_file_process_client_requests): add case for</div><div class='del'>-	GetSupportedFields.</div><div class='del'>-	(pas_backend_file_class_init): get_supported_fields isn't in</div><div class='del'>-	vtable anymore.</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl: Book::getSupportedFields now</div><div class='del'>-	returns void and add BookListener::notifySupportedFields.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/test-client.c (get_fields_cb): new function.</div><div class='del'>-	(auth_user_cb): track change to e_book_get_supported_fields.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c</div><div class='del'>-	(e_book_do_response_get_supported_fields): new function.</div><div class='del'>-	(e_book_check_listener_queue): add case</div><div class='del'>-	GetSupportedFieldsResponse.</div><div class='del'>-	(e_book_get_supported_fields): switch to async model.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.h: switch e_book_get_supported_fields to an</div><div class='del'>-	async model.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(e_book_listener_queue_get_supported_fields_response): new</div><div class='del'>-	function.</div><div class='del'>-	(impl_BookListener_response_get_supported_fields): new function.</div><div class='del'>-	(e_book_listener_get_epv): fill in epv's "notifySupportedFields"</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.h: add an async response for</div><div class='del'>-	GetSupportedFields and add a stringlist member to the</div><div class='del'>-	EBookListenerResponse struct.</div><div class='del'>-</div><div class='del'>-2001-02-20  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c (pas_book_factory_activate):</div><div class='del'>-	Moved the register_factory() code to here, since it was the only</div><div class='del'>-	thing being called anyways.</div><div class='del'>-	(PasBookFactoryPrivate): Added a "registered" flag.</div><div class='del'>-	(pas_book_factory_activate): Set the registered flag.</div><div class='del'>-	(pas_book_factory_destroy): Deactivate the factory when we go away.</div><div class='del'>-</div><div class='del'>-2001-02-20  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_get_supported_fields): new function.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.h: add e-book interface to getting</div><div class='del'>-	supported fields.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/test-client.c (auth_user_cb): shoe-horn in some</div><div class='del'>-	spew about supported fields.</div><div class='del'>-</div><div class='del'>-2001-02-19  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: Remove PISOCK_LIBDIR</div><div class='del'>-</div><div class='del'>-2001-02-19  Jon Trowbridge  &lt;trow@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_create_entry): When creating the entry,</div><div class='del'>-	open up an ebook (corresponding to the local addressbook) and make</div><div class='del'>-	the entry use an EAddressCompletion.</div><div class='del'>-	(completion_handler): Added; this is the actual completion</div><div class='del'>-	handler, which manipulates the entry when the user selects</div><div class='del'>-	something from the drop-down.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c: Various hacks</div><div class='del'>-	by clahey to unbreak e_select_names_model_add_item,</div><div class='del'>-	e_select_names_model_replace_item (which I added) and</div><div class='del'>-	e_select_names_model_remove_item.</div><div class='del'>-	</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c</div><div class='del'>-	(e_select_names_text_model_obj_count,</div><div class='del'>-	e_select_names_text_model_get_nth_obj): Make chunks of text that</div><div class='del'>-	correspond to ECards in the ESelectNamesModel be embedded objects.</div><div class='del'>-	(e_select_names_text_model_activate_obj): On activation, pop up a</div><div class='del'>-	contact editor for the embedded object's card.</div><div class='del'>-	(e_select_names_text_model_model_changed): Fixed to work with</div><div class='del'>-	ETextModel API changes.</div><div class='del'>-	(e_select_names_text_model_set_text): Make const correct.</div><div class='del'>-	(e_select_names_text_model_insert): Make const correct.</div><div class='del'>-	(e_select_names_text_model_insert_length): Make const correct.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-address-completion.h,</div><div class='del'>-	backend/ebook/e-address-completion.c: Added.  EAddressCompletion</div><div class='del'>-	is a derived class of ECompletion that does asynchronous address</div><div class='del'>-	lookups for completions.</div><div class='del'>-</div><div class='del'>-2001-02-17  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl: add sequence&lt;string&gt; typedef, and</div><div class='del'>-	add getSupportedFields method.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c</div><div class='del'>-	(impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): new</div><div class='del'>-	function.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend.c (pas_backend_class_init): init</div><div class='del'>-	get_supported_fields = NULL.</div><div class='del'>-	(pas_backend_get_supported_fields): new function.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend.h: add prototype for</div><div class='del'>-	pas_backend_get_supported_fields.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_get_supported_fields): new function.</div><div class='del'>-	(pas_backend_file_class_init): fill in get_supported_fields.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_get_supported_fields): new function.</div><div class='del'>-	(pas_backend_ldap_class_init): fill in get_supported_fields.</div><div class='del'>-</div><div class='del'>-2001-02-14  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: Undefine E_STRING_PROP and</div><div class='del'>-	E_LIST_PROP here.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h (e_contact_editor_raise): Added</div><div class='del'>-	this function.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c, gui/widgets/e-minicard.h</div><div class='del'>-	(e_minicard_event): Added an editor field to the EMinicard object.</div><div class='del'>-	Made it so that if you double click on the same card twice, it</div><div class='del'>-	doesn't open a new window, but instead raises the old.</div><div class='del'>-</div><div class='del'>-2001-02-08  Iain Holmes  &lt;iain@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (addressbook_source_free):</div><div class='del'>-	Free the ldap.binddn.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(e_addressbook_view_setup_menus): Free the dir strings.</div><div class='del'>-</div><div class='del'>-2001-02-08  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (categories_clicked): Set the</div><div class='del'>-	header on the category dialog we pop up.</div><div class='del'>-</div><div class='del'>-2001-02-12  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/GNOME_Evolution_Addressbook_GnomeCard_Importer.oaf.in: Translations.</div><div class='del'>-	* gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in:</div><div class='del'>-	Marked strings for translation in this newly created file.</div><div class='del'>-	* gui/component/select-names/Makefile.am: Hook up the .oaf.in files in the</div><div class='del'>-	xml-i18n-tools framework.</div><div class='del'>-	* gui/component/Makefile.am: Same as above.</div><div class='del'>-	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Marked stuff for translation here</div><div class='del'>-	too.</div><div class='del'>-	</div><div class='del'>-2001-02-11  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Removed an ancient #include</div><div class='del'>-	&lt;libgnorba/gnorba.h&gt;</div><div class='del'>-</div><div class='del'>-2001-02-11  Gediminas Paulauskas &lt;menesis@delfi.lt&gt;</div><div class='del'>-</div><div class='del'>-	Really use xml-i18n-tools.</div><div class='del'>-	</div><div class='del'>-	* conduit/e-address-conduit-control-applet.desktop: removed.</div><div class='del'>-	* conduit/e-address-conduit-control-applet.desktop.in: added empty.</div><div class='del'>-	* conduit/Makefile.am: reflect above changes, merge translations.</div><div class='del'>-	</div><div class='del'>-	* contact-editor/e-contact-editor-strings.h,</div><div class='del'>-	contact-editor/fulladdr.glade.h, contact-editor/fullname-strings.h,</div><div class='del'>-	contact-editor/e-contact-editor-confirm-delete.glade.h,</div><div class='del'>-	gui/component/select-names/select-names.glade.h:</div><div class='del'>-	removed these files, xml-i18n-extract takes care of strings itself.</div><div class='del'>-	</div><div class='del'>-	* contact-editor/*.glade,</div><div class='del'>-	gui/component/select-names/select-names.glade,</div><div class='del'>-	gui/widgets/alphabet.glade, printing/e-contact-print.glade:</div><div class='del'>-	changed project options to not output_translatable_strings.</div><div class='del'>-	</div><div class='del'>-	* contact-editor/Makefile.am, gui/widgets/Makefile.am,</div><div class='del'>-	gui/component/select-names/Makefile.am, printing/Makefile.am:</div><div class='del'>-	do not include removed files in EXTRA_DIST.</div><div class='del'>-</div><div class='del'>-2001-02-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (check_for_evolve_person): flesh</div><div class='del'>-	out this check.  #ifdef the entire thing OPENLDAP2, as it only</div><div class='del'>-	works with the new schema stuff in openldap 2.x (both on server</div><div class='del'>-	and client, so upgrade your server.)</div><div class='del'>-	</div><div class='del'>-2001-02-07  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: Added N_("* Click here to add</div><div class='del'>-	a contact *").</div><div class='del'>-</div><div class='del'>-2001-02-07  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): only</div><div class='del'>-	set the DEBUG_LEVEL if we're OPENLDAP2.</div><div class='del'>-</div><div class='del'>-2001-02-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (email_compare): return TRUE if</div><div class='del'>-	equal, FALSE otherwise.</div><div class='del'>-	(business_compare): same.</div><div class='del'>-	(homephone_compare): same.</div><div class='del'>-	(email_ber): return NULL if there are no elements in our list.</div><div class='del'>-	(homephone_ber): same.</div><div class='del'>-	(business_ber): same.</div><div class='del'>-	(build_mods_from_ecards): add smarts to handle list elements</div><div class='del'>-	properly (like email, business_phone, home_phone.)  now we'll</div><div class='del'>-	properly send updates if any element in the list changes.</div><div class='del'>-</div><div class='del'>-2001-02-06  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (INCLUDES): Added</div><div class='del'>-	-DEVOLUTION_DATADIR=\""$(datadir)"\".</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(e_addressbook_view_setup_menus): Changed the local and system</div><div class='del'>-	directories.</div><div class='del'>-</div><div class='del'>-2001-02-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (create_card_handler): doh,</div><div class='del'>-	didn't mean to commit this.</div><div class='del'>-	</div><div class='del'>-2001-02-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/evolveperson.schema: new file.  this will eventually</div><div class='del'>-	form the suggested additions to an existing openldap server that,</div><div class='del'>-	along with support for inetorgperson, will allow people to store</div><div class='del'>-	all evolution attributes in ldap.</div><div class='del'>-	</div><div class='del'>-2001-02-06  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_init): don't</div><div class='del'>-	need the = NULL's since we g_new0.</div><div class='del'>-	(check_for_evolve_person): new function.</div><div class='del'>-	(pas_backend_ldap_connect): check to see if the evolvePerson</div><div class='del'>-	objectclass is there.</div><div class='del'>-	(build_mods_from_ecards): right now, just silently skip the extra</div><div class='del'>-	attributes if we don't support evolvePerson.</div><div class='del'>-	(add_objectclass_mod): new function, add both inetOrgPerson and</div><div class='del'>-	(if it's available) evolvePerson as objectclasses.</div><div class='del'>-	(pas_backend_ldap_process_authenticate_user): also check to see if</div><div class='del'>-	evolvePerson is there, if we couldn't do it (due to auth reasons)</div><div class='del'>-	in the connect method.</div><div class='del'>-	(prop_info): change the telephoneNumber LDAP attribute to be used</div><div class='del'>-	for evolution's business phone numbers.  the primary phone number</div><div class='del'>-	will be a single valued attribute on evolvePerson.</div><div class='del'>-	(business_populate): new function.</div><div class='del'>-	(business_ber): new function.</div><div class='del'>-	(business_compare): new function.</div><div class='del'>-</div><div class='del'>-2001-02-05  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (create_card_handler): err,</div><div class='del'>-	allocate 2 char*s when i assign 2 char*s.</div><div class='del'>-</div><div class='del'>-2001-02-05  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (modify_card_handler): switch to</div><div class='del'>-	ldap_modify_ext_s if OPENLDAP2, as ldap_modify_s is deprecated.</div><div class='del'>-	(build_mods_from_ecards): don't include the mod if the value is ""</div><div class='del'>-	- this isn't valid on schema checking ldap servers.</div><div class='del'>-	(homephone_populate): new function.</div><div class='del'>-	(homephone_ber): new function.</div><div class='del'>-	(homephone_compare): new function.</div><div class='del'>-	(create_card_handler): add spew when adding cards so I can see</div><div class='del'>-	what's going on.</div><div class='del'>-2001-02-05  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c (table_add_elem): Save the</div><div class='del'>-	help_text in the closure.</div><div class='del'>-</div><div class='del'>-2001-02-05  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): Added</div><div class='del'>-	gal-view-factory-minicard.c, gal-view-factory-minicard.h,</div><div class='del'>-	gal-view-minicard.c, and gal-view-minicard.h.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/gal-view-factory-minicard.c,</div><div class='del'>-	gui/widgets/gal-view-factory-minicard.h,</div><div class='del'>-	gui/widgets/gal-view-minicard.c, and</div><div class='del'>-	gui/widgets/gal-view-minicard.h: New classes for minicard view</div><div class='del'>-	type.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: Deploy gal-view stuff</div><div class='del'>-	properly.</div><div class='del'>-	</div><div class='del'>-2001-02-05  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_get_vcard): Make the Note field</div><div class='del'>-	be quoted printable.</div><div class='del'>-</div><div class='del'>-2001-01-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c</div><div class='del'>-	(e_addressbook_search_dialog_init): This should be a close button,</div><div class='del'>-	not a cancel button.</div><div class='del'>-</div><div class='del'>-2001-02-04  Christopher James Lahey  &lt;clahey@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_activate_dialog): Call</div><div class='del'>-	e_select_names_set_default when appropriate.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h: Added support for</div><div class='del'>-	double clicking sending the selected contacts to the default</div><div class='del'>-	section.  Added a set_default function.  Made multiple selection</div><div class='del'>-	work.</div><div class='del'>-</div><div class='del'>-2001-01-29  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c</div><div class='del'>-	(addressbook_config_source_label): #ifdef INCLUDE_FILE_SOURCE.</div><div class='del'>-	(table_add_elem): add help_text parameter and set up focus_in</div><div class='del'>-	events to display the help in the dialog's html area.</div><div class='del'>-	(focus_help): new function, calls put_html on the help text.</div><div class='del'>-	(addressbook_ldap_auth_item_new): add help texts.</div><div class='del'>-	(addressbook_source_item_new): add help texts.</div><div class='del'>-	(addressbook_source_dialog): add help texts.</div><div class='del'>-</div><div class='del'>-2001-01-27  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_add_section): Remove the butt-ugly arrow icon and</div><div class='del'>-	replace it with a less invasive "-&gt;" icon.</div><div class='del'>-</div><div class='del'>-2001-01-25  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (build_mods_from_ecards): add</div><div class='del'>-	comment about the else block here.</div><div class='del'>-	(prop_info): add home_address, business_address, business_fax,</div><div class='del'>-	assistant, and isdn.</div><div class='del'>-</div><div class='del'>-2001-01-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): Made</div><div class='del'>-	this only add the initial VCard if it finds a file</div><div class='del'>-	"create-initial" in the directory it's creating the database in.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Added a</div><div class='del'>-	create_folder function.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c</div><div class='del'>-	(e_addressbook_search_dialog_init): Fixed an unused variable</div><div class='del'>-	warning.</div><div class='del'>-</div><div class='del'>-2001-01-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(e_addressbook_view_setup_menus): Setup the view collection</div><div class='del'>-	properly and handle the "display_view" signal.</div><div class='del'>-</div><div class='del'>-2001-01-25  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-	</div><div class='del'>-	* gui/component/addressbook.c (update_pixmaps): Consider the</div><div class='del'>-	placeholder in the path for the "Print" item.</div><div class='del'>-</div><div class='del'>-2001-01-25  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (update_pixmaps): Set the icon for</div><div class='del'>-	"/Toolbar/Find" to "24_find_contact.xpm".</div><div class='del'>-</div><div class='del'>-2001-01-25  Ettore Perazzoli  &lt;ettore@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (set_pixmap): New.</div><div class='del'>-	(update_pixmaps): New function, setting the pixmaps for the items</div><div class='del'>-	of type "pixbuf", using `set_pixmap'.</div><div class='del'>-	(control_activate): Call it.</div><div class='del'>-</div><div class='del'>-2001-01-25  Not Zed  &lt;NotZed@Ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: esexp api change fixes.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (entry_compare): Fix for e_sexp api changes.</div><div class='del'>-	(vcard_matches_search): esexp api fixes.</div><div class='del'>-	(pas_backend_file_search): Ouch, unref the e-sexp properly (not gtk object).</div><div class='del'>-</div><div class='del'>-2001-01-24  Chris Toshok  &lt;toshok@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (email_ber_func): make sure to</div><div class='del'>-	add the lengths here (include the \0?  anyone?).</div><div class='del'>-	(build_mods_from_ecards): if we're filling in mod-&gt;mod_bvalues,</div><div class='del'>-	set mod_op |= LDAP_MOD_BVALUES.</div><div class='del'>-</div><div class='del'>-2001-01-23  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-	</div><div class='del'>-	(Fix #1225: advanced search cancel/close)</div><div class='del'>-	</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c</div><div class='del'>-	(e_addressbook_search_dialog_init): Set it up with Search and a</div><div class='del'>-	Cancel button, Search is still the default.</div><div class='del'>-</div><div class='del'>-2001-01-23  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_ecard): properly ref</div><div class='del'>-	the ecard. still need to kill some memory leaks.</div><div class='del'>-</div><div class='del'>-2001-01-22  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: remove vfs dependency</div><div class='del'>-</div><div class='del'>-2001-01-21  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (delete_record):  Remove</div><div class='del'>-	deleted records from the pilot map so we don't have dupes in the future</div><div class='del'>-	</div><div class='del'>-2001-01-19  Dan Winship  &lt;danw@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (table_right_click): </div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_event): Update for</div><div class='del'>-	e_popup_menu_run prototype change.</div><div class='del'>-</div><div class='del'>-2001-01-19  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-</div><div class='del'>-	(Adding a boolean "entry_changed" BonoboPropertyBag arg)</div><div class='del'>-	</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_set_property_fn): Use a gtk_object_set_data to set the</div><div class='del'>-	property to TRUE here.</div><div class='del'>-</div><div class='del'>-	(entry_changed): New function, calls bonobo_control_set_property</div><div class='del'>-	if entry_changed hasn't been set to TRUE yet.</div><div class='del'>-	</div><div class='del'>-	(impl_SelectNames_get_entry_for_section): Connect "changed" on</div><div class='del'>-	each entry_widget to the new entry_changed() func.</div><div class='del'>-</div><div class='del'>-2001-01-19  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (ecard_from_remote_record): always free </div><div class='del'>-	the delivery elements and correct embarrassingly stupid memory error </div><div class='del'>-	that was causing the addressbook conduit problems.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c </div><div class='del'>-	(e_book_view_listener_check_queue): ref/unref ourself when processing </div><div class='del'>-	in case someone we signal unrefs us.</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (sequence_complete): disconnect signals</div><div class='del'>-	when complete</div><div class='del'>-</div><div class='del'>-2001-01-17  Federico Mena Quintero  &lt;federico@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c (pas_book_factory_activate): Made</div><div class='del'>-	it return a gboolean; it was completely ignoring the return value</div><div class='del'>-	from register_factory().</div><div class='del'>-</div><div class='del'>-2001-01-17  Larry Ewing  &lt;lewing@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/.cvsignore: add evolution-gnomecard-importer.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (oaf_DATA): don't require the pine</div><div class='del'>-	oainfo file until it is actually added to the repository.  We need</div><div class='del'>-	to keep the build working for nightlies to work.</div><div class='del'>-</div><div class='del'>-2001-01-16  Jason Leach  &lt;jasonleach@usa.net&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (INITIAL_VCARD): s/Helix</div><div class='del'>-	Code/Ximian/ for the initial contact card.</div><div class='del'>-</div><div class='del'>-2001-01-15  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (print_local): prevent segfaults and </div><div class='del'>-	buffer overflows</div><div class='del'>-	(print_remote): ditto</div><div class='del'>-</div><div class='del'>-2001-01-14  JP Rosevear  &lt;jpr@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: pass -module and -avoid-version to conduit</div><div class='del'>-	linker</div><div class='del'>-</div><div class='del'>-2001-01-12  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Pass NULL as</div><div class='del'>-	the @copy_folder_fn arg to `evolution_shell_component_new'.</div><div class='del'>-</div><div class='del'>-2001-01-12  Miguel de Icaza  &lt;miguel@ximian.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: added i18n for etable.</div><div class='del'>-</div><div class='del'>-2001-01-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_process_create_card): get a book view from</div><div class='del'>-	somewhere so we can give status messages - choose the first one in</div><div class='del'>-	the list.</div><div class='del'>-	(pas_backend_ldap_process_modify_card): same.</div><div class='del'>-	(pas_backend_ldap_process_remove_card): same.</div><div class='del'>-	(prop_info): add more properties, like home_phone, mobile, pager,</div><div class='del'>-	uri, org_unit, office, title, and manager.</div><div class='del'>-</div><div class='del'>-2001-01-09  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (minicard_widget_test_LDADD): Put GNOME</div><div class='del'>-	libraries at the end to make the thing compile.</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am: Order LDADD flags correctly so it compiles.</div><div class='del'>-</div><div class='del'>-2001-01-09  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	connect with the EAddressbookView's status_message signal.</div><div class='del'>-	(set_status_message): set the status message on the ShellView</div><div class='del'>-	Interface associated with our control.</div><div class='del'>-	(retrieve_shell_view_interface_from_control): new function.  get</div><div class='del'>-	the shell view inteface associated with a control.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c</div><div class='del'>-	(e_addressbook_view_class_init): register status_message signal.</div><div class='del'>-	(status_message): new function, emit our status_message signal.</div><div class='del'>-	(change_view_type): connect with the view-&gt;object's</div><div class='del'>-	"status_message" signal.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.h (struct</div><div class='del'>-	_EAddressbookViewClass): add status_message signal.</div><div class='del'>-</div><div class='del'>-2001-01-09  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c</div><div class='del'>-	(e_minicard_view_widget_class_init): register our status_message</div><div class='del'>-	signal.</div><div class='del'>-	(status_message): new function, emit our status_message signal.</div><div class='del'>-	(e_minicard_view_widget_realize): connect to the EMinicardView's</div><div class='del'>-	status_message signal.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.h: add status_message signal.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.c (e_minicard_view_class_init):</div><div class='del'>-	register our status_message signal.</div><div class='del'>-	(e_minicard_view_init): init status_message_id.</div><div class='del'>-	(status_message): new function, emit our status_message signal.</div><div class='del'>-	(book_view_loaded): connect to the EBookView's status_message</div><div class='del'>-	signal.</div><div class='del'>-	(disconnect_signals): disconnect status_message_id.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.h: add status_mesage_id, and</div><div class='del'>-	status_message signal.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (status_message): new</div><div class='del'>-	function, emit our status_message.</div><div class='del'>-	(e_addressbook_model_class_init): register our "status_message"</div><div class='del'>-	signal.</div><div class='del'>-	(book_view_loaded): connect to the EBookView's status_message</div><div class='del'>-	signal, so we can chain it to our parent.</div><div class='del'>-	(e_addressbook_model_init): init status_message_id.</div><div class='del'>-	(remove_book_view): disconnect status_message_id.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.h: add status_message_id, and</div><div class='del'>-	status_message signal.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c change the objectclass we create</div><div class='del'>-	objects with to "inetOrgPerson" as it encompasses the fields we</div><div class='del'>-	use.</div><div class='del'>-	(create_dn_from_ecard): remove the mail/org handling from</div><div class='del'>-	here.  we just prepend cn=$cn onto the base dn.</div><div class='del'>-	(create_card_handler): remove the NULL that build_mods_from_ecards</div><div class='del'>-	adds at the end, and insert our objectClass.</div><div class='del'>-	(modify_card_handler): call search_for_dn to get the ECardSimple</div><div class='del'>-	of the old card, since it might (and does in the current code)</div><div class='del'>-	doing a brute force search.</div><div class='del'>-	(search_for_dn): new function, to search for an entry by its dn.</div><div class='del'>-	right now we brute force (objectclass=*) under the base dn and</div><div class='del'>-	compare dn's.  going to add a first pass that explodes the dn and</div><div class='del'>-	searches that way, using (objectclass=*) as a last resort.  also,</div><div class='del'>-	here's where we'd put the extensibleMatch code if we want to go</div><div class='del'>-	that route.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_set_arg): if we're setting the</div><div class='del'>-	full name regenerate ecard-&gt;name.</div><div class='del'>-</div><div class='del'>-2001-01-04  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c</div><div class='del'>-	(e_book_listener_queue_authentication_response): new function.</div><div class='del'>-	(impl_BookListener_respond_authentication_result): new function.</div><div class='del'>-	(e_book_listener_get_epv): fill in</div><div class='del'>-	epv-&gt;notifyAuthenticationResult.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.h: add AuthenticationResponse to</div><div class='del'>-	EBookListenerOperation.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_authenticate_user): new function.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.h: add prototype for</div><div class='del'>-	e_book_authenticate_user.</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl (GNOME:Evolution:Addressbook:Book):</div><div class='del'>-	add authenticateUser method.</div><div class='del'>-	(GNOME:Evolution:Addressbook:BookListener): add</div><div class='del'>-	AuthenticationFailed and AuthenticationRequired to CallStatus.</div><div class='del'>-	also add notifyAuthenticationResult method.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c</div><div class='del'>-	(pas_backend_file_process_authenticate_user): dummy</div><div class='del'>-	authenticate_user function that always succeeds.</div><div class='del'>-	(pas_backend_file_process_client_requests): respond to the</div><div class='del'>-	AuthenticateUser request.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query):</div><div class='del'>-	gtk_object_unref(sexp) =&gt; s_exp_unref(sexp).</div><div class='del'>-	(pas_backend_ldap_process_authenticate_user): fill in to use</div><div class='del'>-	ldap_simple_bind_s.</div><div class='del'>-	(pas_backend_ldap_process_client_requests): respond to the</div><div class='del'>-	AuthenticateUser request.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_queue_authenticate_user): new</div><div class='del'>-	function.</div><div class='del'>-	(impl_GNOME_Evolution_Addressbook_Book_authenticateUser): new</div><div class='del'>-	function.</div><div class='del'>-	(pas_book_respond_authenticate_user): new function.</div><div class='del'>-	(pas_book_get_epv): fill in epv-&gt;authenticateUser.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.h: add AuthenticateUser operation type, and</div><div class='del'>-	add user/passwd to the PASRequest struct.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c</div><div class='del'>-	(addressbook_storage_get_source_by_uri): new function.  should use</div><div class='del'>-	a hashtable, perhaps, but the lists will generally be small</div><div class='del'>-	anyway.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.h: add prototype for</div><div class='del'>-	addressbook_storage_get_source_by_uri.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c</div><div class='del'>-	(addressbook_source_dialog_set_source): fill in the binddn if the</div><div class='del'>-	auth page is shown.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (book_open_cb): shoe-horn</div><div class='del'>-	authentication in here.  if the source was configured to use</div><div class='del'>-	authentication, authenticate the user after opening the ebook.</div><div class='del'>-	also, be paranoid and clear out the password after authenticating.</div><div class='del'>-	(book_auth_cb): callback for auth.  set the "book" arg on the</div><div class='del'>-	view-&gt;view here.</div><div class='del'>-	(passwd_cb): set the view's passwd that'll be used in</div><div class='del'>-	book_open_cb.</div><div class='del'>-	(addressbook_view_free): g_free view-&gt;passwd.</div><div class='del'>-</div><div class='del'>-2001-01-04  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c,</div><div class='del'>-	gui/component/addressbook-component.h</div><div class='del'>-	(addressbook_component_get_shell_client): Added this function.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h: Added code for the</div><div class='del'>-	ability to switch between different folders.  This doesn't work</div><div class='del'>-	yet.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/select-names.glade,</div><div class='del'>-	gui/component/select-names/select-names.glade.h: Added an option</div><div class='del'>-	menu to this dialog.</div><div class='del'>-</div><div class='del'>-2001-01-04  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: Fix hard coded library names that were </div><div class='del'>-	accidentally committed (i'm looking at you miggie)</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (categories_clicked): Reflect</div><div class='del'>-	renaming.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.[hc]: These are</div><div class='del'>-	living in gal now</div><div class='del'>-	</div><div class='del'>-2001-01-04  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_free): </div><div class='del'>-	Need to e_sexp_unref the the sexp, not gtk_object_unref it.</div><div class='del'>-</div><div class='del'>-2001-01-03  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c (get_view): check</div><div class='del'>-	capabilities is valid before doing a strstr.</div><div class='del'>-</div><div class='del'>-2001-01-03  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_search):</div><div class='del'>-	g_strdup things we g_free.</div><div class='del'>-</div><div class='del'>-2001-01-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (delete_cb): Make sure this</div><div class='del'>-	won't crash if the given contact is removed from the database</div><div class='del'>-	while this function is being called.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c: Made sure this won't crash if the</div><div class='del'>-	given contact is removed from the database while the right click</div><div class='del'>-	menu is being displayed.</div><div class='del'>-</div><div class='del'>-2000-12-30  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c (edit_source_clicked): copy</div><div class='del'>-	the dialog's source, destroy the dialog after we're done, and make</div><div class='del'>-	sure to update both columns in the clist.</div><div class='del'>-	(add_source_clicked): copy the dialog's source, and destroy the</div><div class='del'>-	dialog when we're done.</div><div class='del'>-	(addressbook_source_dialog_destroy): free up all the dialog's</div><div class='del'>-	memory.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (set_prop): allow file: uri's that</div><div class='del'>-	point to files, not just dirs that contain addressbook.db.  The</div><div class='del'>-	rule is the addressbook file has to end in .db.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.c (file_source_foreach):</div><div class='del'>-	contactserver =&gt; contactfile.  cut and paste error.</div><div class='del'>-	(addressbook_storage_init_source_uri): use file://%s to build the</div><div class='del'>-	uri.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-server-dialog.[ch]: forgot to remove these</div><div class='del'>-	in my last commit.</div><div class='del'>-</div><div class='del'>-2000-12-29  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (config_cb): new function, calling</div><div class='del'>-	our new config ui code.</div><div class='del'>-	(control_activate): no longer load evolution-addressbook-ldap.xml,</div><div class='del'>-	as it's not there.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (owner_set_cb):</div><div class='del'>-	setup_ldap_storage =&gt; addressbook_storage_setup.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_SOURCES):</div><div class='del'>-	remove e-ldap-storage.[ch] and add addressbook-storage.[ch].</div><div class='del'>-	(glade_DATA): remove ldap-server-dialog.glade and add</div><div class='del'>-	addressbook-config.glade.</div><div class='del'>-	(EXTRA_DIST): same.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.[ch]: add another dialog to</div><div class='del'>-	give a list of our sources and offer the Add/Delete/Edit</div><div class='del'>-	interface.  This plugs into the previous dialog work (the source</div><div class='del'>-	editor.)</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-storage.[ch]: new files, containing</div><div class='del'>-	the remains of e-ldap-storage.[ch] and adding the new</div><div class='del'>-	AddressbookSource type and it's subordinates.  Also, the xml</div><div class='del'>-	format has changed slightly and the file name is no longer</div><div class='del'>-	~/evolution/ldap-servers.xml - it's</div><div class='del'>-	~/evolution/addressbook-sources.xml.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.glade: new file, new config</div><div class='del'>-	interface.</div><div class='del'>-</div><div class='del'>-	* gui/component/ldap-server-dialog.glade: removed.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.[ch]: removed.</div><div class='del'>-</div><div class='del'>-2000-12-28  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_SOURCES): add</div><div class='del'>-	addressbook-config.[ch].</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-config.c,</div><div class='del'>-	gui/component/addressbook-config.h: new files, containing at the</div><div class='del'>-	moment a beautiful "new/edit source dialog" inspired by the</div><div class='del'>-	mail-config-gui code.  It'll be ready for prime time after rev'ing</div><div class='del'>-	the .xml file the addressbook uses to store it's "other sources"</div><div class='del'>-	to include files, and the addition of the ldap auth stuff.</div><div class='del'>-</div><div class='del'>-2000-12-25  Miguel de Icaza  &lt;miguel@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c (e_minicard_realize): Set draw</div><div class='del'>-	background to FALSE.</div><div class='del'>-	</div><div class='del'>-	* gui/widgets/e-minicard-label.c (e_minicard_label_construct): ditto.</div><div class='del'>-	(e_minicard_label_construct): ditto</div><div class='del'>-</div><div class='del'>-2000-12-23  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/fullname-strings.h,</div><div class='del'>-	contact-editor/fullname.glade: Added Ms. and Miss to the prefix</div><div class='del'>-	drop down box.  Patch submitted by Martin Hicks &lt;mort@bork.org&gt;.</div><div class='del'>-</div><div class='del'>-2000-12-21  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (cursor_cb): Ref the cards that get put</div><div class='del'>-	in the change list</div><div class='del'>-	(next_changed_item): util function to get the real next changed item</div><div class='del'>-	(compute_status): really compute the status of the record</div><div class='del'>-	(local_record_from_uid): Set the id of the temporary card</div><div class='del'>-	(check_for_slow_setting): Make this check a little saner</div><div class='del'>-	(card_added): Only record the CardObjectChange if the card is not</div><div class='del'>-	archived</div><div class='del'>-	(card_changed): ditto</div><div class='del'>-	(card_removed): ditto</div><div class='del'>-	(set_status_cleared): actually clear the status</div><div class='del'>-	(for_each_modified): Clean out cruft and use next_changed_item</div><div class='del'>-	(add_record): Set the new id properly in our local card copy</div><div class='del'>-	(replace_record): handle the case where the record has been deleted</div><div class='del'>-	and we need to call add.  need to update the changed_hash entry</div><div class='del'>-	(delete_record): Don't panic if the card is not found, its already</div><div class='del'>-	been deleted.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): </div><div class='del'>-	The change_context no longer has a del_cards member</div><div class='del'>-	(pas_backend_file_book_view_free): ditto</div><div class='del'>-	(pas_backend_file_process_get_changes): ditto</div><div class='del'>-	(pas_backend_file_changes_foreach_key): just record the id</div><div class='del'>-	(pas_backend_file_changes): notify_remove needs an id not a vcard</div><div class='del'>-</div><div class='del'>-2000-12-20  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (match): Use my own wrapper</div><div class='del'>-	functions instead of trying to *directly* access the the data </div><div class='del'>-	structures my self</div><div class='del'>-	(post_sync): Put in hack to prevent syncing the same records twice</div><div class='del'>-	(local_record_from_uid): set the card id when creating a blank one</div><div class='del'>-	(add_record): Set the id of the card we have and don't go to the</div><div class='del'>-	server to get the latest version</div><div class='del'>-</div><div class='del'>-2000-12-19  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (ecard_from_remote_record): Convert</div><div class='del'>-	pilot strings to utf for the e-cards.</div><div class='del'>-	</div><div class='del'>-2000-12-19  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_ecard): Convert ecard</div><div class='del'>-	strings to pilot encodings</div><div class='del'>-</div><div class='del'>-2000-12-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (delete): Made it so that if</div><div class='del'>-	you select multiple contacts, the right click menu to delete</div><div class='del'>-	deletes them all.</div><div class='del'>-</div><div class='del'>-2000-12-18  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (ldap_error_to_response): always</div><div class='del'>-	use LDAP_NAME_ERROR (in the openldap1 case it's #defined to</div><div class='del'>-	NAME_ERROR).</div><div class='del'>-	(build_card_from_entry): ldap_get_values can return NULL.  also,</div><div class='del'>-	openldap2 keeps us from getting at ldap-&gt;ld_errno, so we can't</div><div class='del'>-	tell if there was a decoding error like we used to.  the double</div><div class='del'>-	free problem where ldap would free the ber if there was a decoding</div><div class='del'>-	problem might be fixed now..  further investigation is needed.</div><div class='del'>-	for now we leak in openldap2.</div><div class='del'>-	(ldap_search_handler): the ldap structure is opaque, so use</div><div class='del'>-	ldap_search_ext to give the extra information (the max responses,</div><div class='del'>-	timeout, etc.) in the openldap2 case.</div><div class='del'>-</div><div class='del'>-2000-12-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (ldap_error_to_response): Test</div><div class='del'>-	for the existance of LDAP_NAME_ERROR and if it exists as a macro,</div><div class='del'>-	use it instead of NAME_ERROR.</div><div class='del'>-</div><div class='del'>-2000-12-14  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/GNOME_Evolution_Addressbook.oafinfo: update cut</div><div class='del'>-	and paste description error.</div><div class='del'>-</div><div class='del'>-2000-12-13  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-control.c (stream_read): NULL-terminate</div><div class='del'>-	the returned vcard so we don't sometimes end up with trailing</div><div class='del'>-	junk that makes libversit unhappy.</div><div class='del'>-</div><div class='del'>-2000-12-13  Iain Holmes  &lt;iain@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c </div><div class='del'>-	(e_select_names_add_section): Make the -&gt; into a GNOME stock image.</div><div class='del'>-</div><div class='del'>-2000-12-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_init): Connect to the "cursor_change" signal on</div><div class='del'>-	the ETable here instead of the ETableScrolled.</div><div class='del'>-	(remove_address): Added the col and event parameters to this</div><div class='del'>-	callback to match the added parameters to the double click signal.</div><div class='del'>-	(e_select_names_add_section): Connect to the "double_click" signal</div><div class='del'>-	on the ETable here instead of the ETableScrolled.</div><div class='del'>-</div><div class='del'>-2000-12-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_set_arg): When setting the "name"</div><div class='del'>-	argument, copy the incoming name.  This fixes a crash.</div><div class='del'>-</div><div class='del'>-2000-12-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Made editing the name using</div><div class='del'>-	the full name button set the file as entry properly.  Made it</div><div class='del'>-	so that the address parse that the user chooses after</div><div class='del'>-	clicking on the Full Address... button gets saved.</div><div class='del'>-</div><div class='del'>-2000-12-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (full_name_clicked): Made it</div><div class='del'>-	so that the editor-&gt;name is set after the entry is changed.  This</div><div class='del'>-	means that the reparse that the person chose is saved.</div><div class='del'>-</div><div class='del'>-2000-12-07  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (setup_ldap_storage): Pass NULL</div><div class='del'>-	as the @toplevel_node_handler_id argument to</div><div class='del'>-	`evolution_storage_new'.</div><div class='del'>-</div><div class='del'>-2000-12-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Fixed some formatting.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.h: Removed an</div><div class='del'>-	unneeded #include.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: Connect to the signals on the</div><div class='del'>-	ETable instead of the ETableScrolled.</div><div class='del'>-</div><div class='del'>-2000-12-07  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_uid): Pass "" rather</div><div class='del'>-	than NULL to e_card_new.</div><div class='del'>-	(local_record_from_ecard): Make sure ecard-&gt;name is valid</div><div class='del'>-	(check_for_slow_setting): Remove hard coded test value</div><div class='del'>-	(card_added): g_strdup the resul of e_card_get_id</div><div class='del'>-	(card_changed): ditto</div><div class='del'>-</div><div class='del'>-2000-12-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: Got rid of code referencing</div><div class='del'>-	the ETableScrolled proxy functions.</div><div class='del'>-</div><div class='del'>-2000-12-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Moved the gal view menu stuff from</div><div class='del'>-	here to EAddressbookView.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.h: New function to set up the menus</div><div class='del'>-	for the EAddressbookView.</div><div class='del'>-</div><div class='del'>-2000-12-06  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: Another conduit build fix</div><div class='del'>-</div><div class='del'>-2000-12-05  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_changes_foreach_key): </div><div class='del'>-	Create an empty vcard with the appropriate id for deleted cards</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (ecard_from_remote_record): Ensure the</div><div class='del'>-	address fields are added sensibly</div><div class='del'>-</div><div class='del'>-2000-12-05  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (setup_ldap_storage): Updated the</div><div class='del'>-	call to `evolution_storage_new()': pass NULL for</div><div class='del'>-	@toplevel_node_uri.</div><div class='del'>-</div><div class='del'>-2000-11-28  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_to_pilot_record): Return</div><div class='del'>-	a struct rather than a pointer to a struct</div><div class='del'>-	(view_cb): kill warning</div><div class='del'>-	(compare): local_record_to_pilot_record now returns a struct</div><div class='del'>-	(prepare): ditto</div><div class='del'>-	(free_prepare): remove as per gnome-pilot changes</div><div class='del'>-	(conduit_get_gpilot_conduit): don't listen for free_prepare signal</div><div class='del'>-</div><div class='del'>-2000-11-27  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.h: Remove "complete" field</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (print_local): Make it print useful debug</div><div class='del'>-	info</div><div class='del'>-	(print_remote): ditto</div><div class='del'>-	(local_record_from_ecard): Make sure phone numbers get out to the pilot</div><div class='del'>-	(ecard_from_remote_record): Set phone strings to "" if they are null</div><div class='del'>-	(sequence_complete): unref the book view</div><div class='del'>-	(view_cb): ref the book view</div><div class='del'>-	(free_prepare): do nothing</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_free): </div><div class='del'>-	Destroy the card lists with the rest of the view.</div><div class='del'>-	(pas_backend_file_changes): Don't destroy the card lists here</div><div class='del'>-	(pas_backend_file_book_view_free): Free the card/id lists in the</div><div class='del'>-	change context here, the correct place.</div><div class='del'>-	(pas_backend_file_changes): instead of here...</div><div class='del'>-</div><div class='del'>-2000-11-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Set view.change_context to NULL</div><div class='del'>-	in pas_backend_file_process_get_book_view.  Changed</div><div class='del'>-	pas_backend_file_book_view_copy a bit.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: Got rid of a warning.</div><div class='del'>-</div><div class='del'>-2000-11-18  Matt Bissiri  &lt;matt@bissiri.org&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am:</div><div class='del'>-	Add widgets/menus/libmenus.la to evolution_addressbook_LDADD</div><div class='del'>-	so that it will link properly now that gal-view-menus.[ch]</div><div class='del'>-	was moved from gal into evolution.</div><div class='del'>-</div><div class='del'>-2000-11-15  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): </div><div class='del'>-	Initialize destination struct with '0's.</div><div class='del'>-</div><div class='del'>-2000-11-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Changed the mime type from "text/vcard"</div><div class='del'>-	to "text/x-vcard".</div><div class='del'>-</div><div class='del'>-2000-11-11  Matt Bissiri  &lt;bissiri@eecs.umich.edu&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/.cvsignore: Add idl-generated files.</div><div class='del'>-	* backend/ebook/e-book.c: (e_book_do_response_get_changes):</div><div class='del'>-	* backend/ebook/e-card.c: (e_card_send):</div><div class='del'>-	s/Evolution_/GNOME_Evolution_/g;</div><div class='del'>-</div><div class='del'>-2000-11-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Link in composer bonobo code.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added code to</div><div class='del'>-	send mail to an ECard or send an ECard as a VCard attachment.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Add verbs to send the contact</div><div class='del'>-	as a VCard or send mail to the contact.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c: Removed some unused</div><div class='del'>-	variables.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c:</div><div class='del'>-	Added menu items to send the contact as a VCard or send mail to</div><div class='del'>-	the contact.</div><div class='del'>-</div><div class='del'>-2000-11-11  Matt Bissiri  &lt;bissiri@eecs.umich.edu&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.oafinfo:</div><div class='del'>-	* gui/component/select-names/evolution-addressbook-select-names.oafinfo:</div><div class='del'>-	Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*"</div><div class='del'>-	to sync up with yesterday's IDL re-scoping.</div><div class='del'>-</div><div class='del'>-2000-11-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Put in gal view menus for testing</div><div class='del'>-	purposes.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print-envelope.c: Fixed up envelope printing</div><div class='del'>-	a bit.  Added code for printing return addresses.</div><div class='del'>-</div><div class='del'>-2000-11-09  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.h: Add changed_hash, change list and complete bool</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (local_record_from_ecard): Add empty field checks</div><div class='del'>-	(card_added): callback for book view</div><div class='del'>-	(card_changed): ditto</div><div class='del'>-	(card_removed): ditto</div><div class='del'>-	(sequence_complete): ditto</div><div class='del'>-	(view_cb): callback for the get changes call</div><div class='del'>-	(pre_sync): force synchronous loading of book view</div><div class='del'>-	(for_each): we already have the card so create the local record directly</div><div class='del'>-	(for_each_modified): Uncomment and fix</div><div class='del'>-	(delete_record): ditto</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: link against gal for ebook - needs fixing</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_do_response_get_changes): Properly respond</div><div class='del'>-	to a get_changes call</div><div class='del'>-	(e_book_check_listener_queue): define the get changes response operation</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-listener.c (e_book_listener_queue_get_changes_response):</div><div class='del'>-	Queue up a get changes response</div><div class='del'>-	(impl_BookListener_respond_get_changes): Implement the get_changes method</div><div class='del'>-	(e_book_listener_get_epv): add get_changes implementation to epv</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): Only</div><div class='del'>-	copy the search_context and change_context elements if they actually exist</div><div class='del'>-	(pas_backend_file_changes): Hard code a path for now, only notify if</div><div class='del'>-	there is something to notify about</div><div class='del'>-</div><div class='del'>-2000-11-07  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.h: Update PASRequest structure</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (impl_Evolution_Book_get_changes): update param name</div><div class='del'>-	(pas_book_queue_get_changes): Use PASRequest change_id slot</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): </div><div class='del'>-	Properly copy change_id and change_context</div><div class='del'>-	(pas_backend_file_book_view_free): Free change_id/change_context</div><div class='del'>-	(pas_backend_file_changes_foreach_key): Callback to figure out the</div><div class='del'>-	deleted cards</div><div class='del'>-	(pas_backend_file_changes): Use new e-dbhash stuff to implement.</div><div class='del'>-	Write out updated hash</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl: Rename get_changes param</div><div class='del'>-</div><div class='del'>-2000-11-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Switched from EAddressbookSearch to</div><div class='del'>-	ESearchBar.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am, gui/widgets/e-addressbook-search.c,</div><div class='del'>-	gui/widgets/e-addressbook-search.h: Removed EAddressbookSearch.</div><div class='del'>-	This has been moved to filter/ and renamed ESearchBar.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print-envelope.c: Forgot to set the font.</div><div class='del'>-	This works for me now.</div><div class='del'>-</div><div class='del'>-2000-11-06  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(impl_SelectNames_get_entry_for_section): Duplicate the object</div><div class='del'>-	reference before returning.</div><div class='del'>-</div><div class='del'>-2000-11-05  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c: Add</div><div class='del'>-	menus items to the envelope printing stuff.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Hook up the search menu.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-search.c,</div><div class='del'>-	gui/widgets/e-addressbook-search.h: Add the search menu.</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am: Add e-contact-print-envelope.c and</div><div class='del'>-	e-contact-print-envelope.h.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print-envelope.c,</div><div class='del'>-	printing/e-contact-print-envelope.h: Added envelope printing.</div><div class='del'>-</div><div class='del'>-2000-11-03  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Makefile.am: Clean the idl-generated</div><div class='del'>-	files properly.</div><div class='del'>-</div><div class='del'>-2000-11-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/.cvsignore, gui/minicard/.cvsignore: Removed these</div><div class='del'>-	unnecessary .cvsignores.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Switch to using EAddressbookSearch</div><div class='del'>-	instead of custom quick search widget.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Made this do a</div><div class='del'>-	slightly better job of rendering names.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am: Added e-addressbook-search.c and</div><div class='del'>-	e-addressbook-search.h.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-search.c,</div><div class='del'>-	gui/widgets/e-addressbook-search.h: New class that puts up an</div><div class='del'>-	entry and a combo box.</div><div class='del'>-</div><div class='del'>-2000-11-01  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (load_ldap_data): </div><div class='del'>-	(e_ldap_storage_add_server): Add "highlighted" flag to</div><div class='del'>-	evolution_storage_new_folder</div><div class='del'>-</div><div class='del'>-2000-10-31  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (cursor_cb): Let the warning make sense</div><div class='del'>-	(compute_pid): remove</div><div class='del'>-	(local_record_from_ecard): Create local record from ecard - not finished</div><div class='del'>-	(local_record_from_uid): Obtain local_record from uid with the proper</div><div class='del'>-	e-book way</div><div class='del'>-	(set_status_cleared): Add empty callback</div><div class='del'>-	(add_archive_record): kill</div><div class='del'>-	(delete_archive_record): kill</div><div class='del'>-	(archive_record): Add empty callback</div><div class='del'>-	(conduit_get_gpilot_conduit): Update signal connects</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (vcard_change_type): Function to determine</div><div class='del'>-	the type of change - not finished</div><div class='del'>-	(pas_backend_file_search_changes): Create a view and callback based on </div><div class='del'>-	how the cards have changed</div><div class='del'>-	(pas_backend_file_process_get_changes): Implement the get changes operation</div><div class='del'>-	for files</div><div class='del'>-	(pas_backend_file_process_client_requests): Add GetChanges method for</div><div class='del'>-	processing</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_queue_get_changes): Add changes to</div><div class='del'>-	the list</div><div class='del'>-	(impl_Evolution_Book_get_changes): implement object method</div><div class='del'>-	(pas_book_get_epv): Add get changes to epv</div><div class='del'>-	(pas_book_respond_get_changes): Respond to the get changes operation</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.h: Add GetChanges PASOperation</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl: add get_changes and respond_get_changes</div><div class='del'>-	methods</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_get_changes): Client function</div><div class='del'>-	to a view of the changed objects</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.h: New prototype</div><div class='del'>-</div><div class='del'>-2000-10-30  Kjartan Maraas  &lt;kmaraas@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* backend/e-book/e-card.c: Fixed marking of strings</div><div class='del'>-	for translation. Use "_(" instead of "_ (".</div><div class='del'>-	* gui/component/addressbook-factory.c: Add missing</div><div class='del'>-	calls to bindtextdomain() and textdomain noticed by</div><div class='del'>-	Dan Winship.</div><div class='del'>-	* gui/component/addressbook.c: Marked string for translation.</div><div class='del'>-	</div><div class='del'>-2000-10-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am, gui/search/Makefile.am,</div><div class='del'>-	printing/Makefile.am: Fixed these to include EXTRA_GNOME_CFLAGS.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c: Turned off</div><div class='del'>-	newlines in header fields.</div><div class='del'>-</div><div class='del'>-2000-10-26  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c (e_contact_print_letter_tab),</div><div class='del'>-	(complete_sequence, e_contact_do_print_phone_list, lowify):</div><div class='del'>-	unsigned charness.</div><div class='del'>-</div><div class='del'>-2000-10-25  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (ldap_op_process_current): only</div><div class='del'>-	call the handler if the if we're connected, and if we fail to</div><div class='del'>-	connect finish the op and post a message.</div><div class='del'>-	(pas_backend_ldap_connect): add debug spew if DEBUG is defined.</div><div class='del'>-	(modify_card_handler): LDAP_RES_SEARCH_ENTRY =&gt; LDAP_SUCCESS.</div><div class='del'>-	(modify_card_handler): only perform the ldap_modify_s if we have a</div><div class='del'>-	list of modifications.</div><div class='del'>-	(get_cursor_handler): use ldap_error_to_response here.</div><div class='del'>-	(pas_backend_ldap_load_uri): use LDAP_PORT instead of the constant</div><div class='del'>-	389.</div><div class='del'>-</div><div class='del'>-2000-10-23  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Makefile.am (INCLUDES): </div><div class='del'>-	* gui/component/Makefile.am (INCLUDES): Update EVOLUTION_LOCALEDIR</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am (INCLUDES): </div><div class='del'>-	* backend/ebook/Makefile.am (INCLUDES): Update GNOMELOCALEDIR.</div><div class='del'>-</div><div class='del'>-2000-10-23  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.h: Use new libeconduit calls and</div><div class='del'>-	abstraction</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c: ditto</div><div class='del'>-	</div><div class='del'>-2000-10-23  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (pre_sync): Use e_pilot_map_read</div><div class='del'>-	(post_sync): Use e_pilot_map_write</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: Link libeconduit and not libical</div><div class='del'>-</div><div class='del'>-2000-10-20  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (tb_save_and_close_cb): </div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (toggle_view_as_cb): </div><div class='del'>-</div><div class='del'>-2000-10-20  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.h: New structure of file - similar</div><div class='del'>-	to calendar/todo conduits</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c: ditto</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit-config.h: Config stuff for conduit</div><div class='del'>-</div><div class='del'>-	* conduit/.cvsignore: Update</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am: Build fixes</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit-control-applet.desktop: Renamed</div><div class='del'>-	to e-address-conduit-control-applet.desktop</div><div class='del'>-</div><div class='del'>-	* conduit/address.conduit.in: Renamed to e-address.conduit.in</div><div class='del'>-</div><div class='del'>-2000-10-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c (SPEC): Remove Family name</div><div class='del'>-	column since it's a bit weird.  This also fixes the initial state</div><div class='del'>-	since all of the column choices were off by one.</div><div class='del'>-</div><div class='del'>-2000-10-19  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am (glade_DATA): Remove</div><div class='del'>-	`e-contact-print.glade.h'.</div><div class='del'>-	(EXTRA_DIST): Move here.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (glade_DATA): Remove</div><div class='del'>-	`ldap-server-dialog.glade.h'.</div><div class='del'>-	(EXTRA_DIST): Move here.</div><div class='del'>-</div><div class='del'>-2000-10-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Change how the extension field acts when</div><div class='del'>-	converting delivery addresses to labels.</div><div class='del'>-</div><div class='del'>-2000-10-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added the</div><div class='del'>-	function e_card_delivery_address_to_label.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-address.c: Fixed a potential</div><div class='del'>-	crash.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Made this save the changed</div><div class='del'>-	data to the string version of the address.</div><div class='del'>-</div><div class='del'>-2000-10-19  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (change_view_type): update to new</div><div class='del'>-	UI handler.</div><div class='del'>-	(update_view_type): split from (change_view_type).</div><div class='del'>-	(control_activate): add an update_view_type.</div><div class='del'>-</div><div class='del'>-2000-10-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c: Change NAME_OR_ORG to return the</div><div class='del'>-	email address if both name and organization are taken.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Fixed up the spec</div><div class='del'>-	strings in this class.  Removed the "cursor_mode" argument to</div><div class='del'>-	ETable since it's part of the spec now.</div><div class='del'>-</div><div class='del'>-2000-10-17  Iain Holmes  &lt;iain@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade: Change the initial dialog </div><div class='del'>-	visibility to FALSE</div><div class='del'>-	so the contact editor doesn't flash when it appears.</div><div class='del'>-</div><div class='del'>-2000-10-16  Iain Holmes  &lt;iain@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c </div><div class='del'>-	(e_select_names_manager_activate_dialog): Only allow one dialog</div><div class='del'>-	per manager.</div><div class='del'>-</div><div class='del'>-2000-10-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/fulladdr.glade: Fixed a typo.  Made this look a</div><div class='del'>-	bit better.</div><div class='del'>-</div><div class='del'>-2000-10-15  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Makefile.am:</div><div class='del'>-	* gui/component/Makefile.am: Remove CPPFLAGS since they just</div><div class='del'>-	duplicate flags that were already in INCLUDES.</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am (ecpsdir): </div><div class='del'>-	* gui/widgets/Makefile.am:</div><div class='del'>-	* contact-editor/Makefile.am: Move -D flags from CPPFLAGS to</div><div class='del'>-	INCLUDES so they don't override any CPPFLAGS set at configure</div><div class='del'>-	time.</div><div class='del'>-</div><div class='del'>-2000-10-14  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): if we are in</div><div class='del'>-	LDAP mode then merge in the extra few items, otherwise just merge</div><div class='del'>-	the standard thing; saves duplication.</div><div class='del'>-</div><div class='del'>-2000-10-14  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.oafinfo: Added</div><div class='del'>-	"evolution:shell-component-icon" property.</div><div class='del'>-</div><div class='del'>-2000-10-14  Iain Holmes  &lt;iain@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c </div><div class='del'>-	(e_select_names_manager_activate_dialog): Only allow one dialog</div><div class='del'>-	per id.</div><div class='del'>-	(e_select_names_manager_destroy): Destroy the hashtable.</div><div class='del'>-	(e_select_names_manager_init): Init the hashtable.</div><div class='del'>-</div><div class='del'>-2000-10-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h:</div><div class='del'>-	Rearranged these fields a bit more.</div><div class='del'>-</div><div class='del'>-2000-10-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c,</div><div class='del'>-	gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.c: Changed these for boolean</div><div class='del'>-	ascending attribute instead of int ascending attribute.  Fixed</div><div class='del'>-	e-select-names to not use a column past the end of its array.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-address.c,</div><div class='del'>-	contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h:</div><div class='del'>-	Rearranged the address editor dialog.</div><div class='del'>-</div><div class='del'>-2000-10-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Fixed the column</div><div class='del'>-	elements, the no-headers attribute and added a cursor-mode=line</div><div class='del'>-	attribute.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.c: Fixed the column elements here.</div><div class='del'>-</div><div class='del'>-2000-10-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c,</div><div class='del'>-	gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.c: Updated these to the new style</div><div class='del'>-	ETables.</div><div class='del'>-</div><div class='del'>-2000-10-06  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c (get_widget): Removed</div><div class='del'>-	ondemand callback nonsense from rule_context_load().</div><div class='del'>-</div><div class='del'>-2000-10-05  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (create_ui): upd.</div><div class='del'>-	(e_contact_editor_init): upd.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate_cb): upd.</div><div class='del'>-	(control_deactivate): kill.</div><div class='del'>-	(control_activate): upd.</div><div class='del'>-</div><div class='del'>-2000-09-22  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): update.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (create_ui): upd.</div><div class='del'>-</div><div class='del'>-Fri Sep 29 07:33:54 2000  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Made it so</div><div class='del'>- 	that minicard doesn't write out changes to the backend unless</div><div class='del'>- 	something's actually changed.</div><div class='del'>-</div><div class='del'>-Tue Sep 26 16:28:47 2000  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Make sure that card-&gt;name and</div><div class='del'>- 	card-&gt;full_name are always valid.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Removed some unused</div><div class='del'>- 	variables.</div><div class='del'>-</div><div class='del'>-2000-09-22  Matt Bissiri  &lt;bissiri@eecs.umich.edu&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.c (extract_info): If</div><div class='del'>-	(editor-&gt;name == NULL), store ptr to newly allocated ECardName in</div><div class='del'>- 	editor-&gt;name, not just in a stack variable.  This fixes a crash</div><div class='del'>- 	which happened when you click "New", then click "Full Name...",</div><div class='del'>- 	then enter name, then click "OK".</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_name_to_string): Add</div><div class='del'>- 	g_return_val_if_fail.</div><div class='del'>-</div><div class='del'>-2000-09-25  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am:</div><div class='del'>-	* gui/component/Makefile.am:</div><div class='del'>-	* contact-editor/Makefile.am:</div><div class='del'>-	* printing/Makefile.am: Look for ename in /e-util/ename instead of</div><div class='del'>-	/addressbook/ename</div><div class='del'>-	</div><div class='del'>-	* backend/ebook/e-card.c: Updated to include e-util/ename/*.h</div><div class='del'>-</div><div class='del'>-	* ename: Moved to /e-util so it could be shared</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): took out ename</div><div class='del'>-</div><div class='del'>-2000-09-25  Nat Friedman  &lt;nat@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/e-name-western-tables.h: Added a ton of new prefixes and</div><div class='del'>-	suffixes.</div><div class='del'>-</div><div class='del'>-2000-09-22  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): update.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (create_ui): upd.</div><div class='del'>-</div><div class='del'>-2000-09-22  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: lots of changes.  flesh out the</div><div class='del'>- 	remove/modify/create functions.  add another flag for the property</div><div class='del'>- 	table, PROP_DN, which makes it easy for us to determine when we</div><div class='del'>- 	need to create a new DN for a record when we're modifying.  also</div><div class='del'>- 	add a ber_func to the table for PROP_TYPE_LIST fields, which fills</div><div class='del'>- 	in the list of bvalues that we send to the ldap server.  The</div><div class='del'>- 	add/modify/delete stuff hasn't been tested yet, and it hopelessly</div><div class='del'>- 	complex (yay ldap).</div><div class='del'>-	(ldap_search_handler): act synchronous when ldap_search responds</div><div class='del'>- 	with -1.</div><div class='del'>-	(view_destroy): use pas_book_view_notify_status_message.</div><div class='del'>-	(ldap_op_process_current): same</div><div class='del'>-	(ldap_op_process): same</div><div class='del'>-	(poll_ldap): same</div><div class='del'>-	(ldap_search_handler): same</div><div class='del'>-</div><div class='del'>-2000-09-22  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.h: add</div><div class='del'>- 	E_CARD_SIMPLE_FIELD_FAMILY_NAME to the enum.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c (field_data): add</div><div class='del'>- 	E_CARD_SIMPLE_FIELD_FAMILY_NAME.</div><div class='del'>-	(e_card_simple_get): add getter for FAMILY_NAME.</div><div class='del'>-</div><div class='del'>-2000-09-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Made addresses be quoted printable again</div><div class='del'>- 	so that they will encode properly if they have carriage returns in</div><div class='del'>- 	them.  This is possible now because of a fix in libversit.</div><div class='del'>-</div><div class='del'>-2000-09-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c,</div><div class='del'>- 	backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c,</div><div class='del'>- 	backend/ebook/e-book-view.h, backend/idl/addressbook.idl,</div><div class='del'>- 	backend/pas/pas-book-view.c, backend/pas/pas-book-view.h: Added a</div><div class='del'>- 	function to set the status message associated with a given view.</div><div class='del'>-  	This is not yet implemented in the gui.</div><div class='del'>-</div><div class='del'>-2000-09-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c, backend/ebook/e-book.h,</div><div class='del'>-	backend/idl/addressbook.idl, backend/pas/pas-backend-file.c,</div><div class='del'>-	backend/pas/pas-backend-ldap.c, backend/pas-backend.c,</div><div class='del'>-	backend/pas/pas-backend.h, backend/pas/pas-book.c,</div><div class='del'>-	backend/pas/pas-book.h: Added a function to query static</div><div class='del'>-	capabilities (capabilities that can be reported immediately) and</div><div class='del'>-	implemented them in the 2 servers.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added a View All button and a Stop</div><div class='del'>-	button.  Sorted out the new directory server stuff a bit.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-model.c,</div><div class='del'>-	gui/widgets/e-addressbook-model.h: Cleaned up a bit.  Added a stop</div><div class='del'>-	function.  Check for capabilities before deciding whether to load</div><div class='del'>-	all cards when initially viewed.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.h: Added stop and view all</div><div class='del'>-	functions.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c,</div><div class='del'>-	gui/widgets/e-minicard-view-widget.h,</div><div class='del'>-	gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h:</div><div class='del'>-	Added a stop function.  Check for capabilities before deciding</div><div class='del'>-	whether to load all cards when initially viewed.</div><div class='del'>-</div><div class='del'>-2000-09-21  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): remove _UIHandler</div><div class='del'>-</div><div class='del'>-2000-09-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-pine-addressbook.c: Added a missing include</div><div class='del'>-	of ctype.h.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Fixed a problem where using a</div><div class='del'>-	GList was causing us to not be reentrant.  We now use an EList</div><div class='del'>-	here and so now this is reentrant.  This should fix the "wombat</div><div class='del'>-	crashes every time you run evolution" bug.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Fixed a type mismatch.</div><div class='del'>-</div><div class='del'>-2000-09-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-pine-addressbook.c: Make this work when a</div><div class='del'>-	field is spread across multiple lines.</div><div class='del'>-</div><div class='del'>-2000-09-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added a</div><div class='del'>-	wants_html field to cards.  Uses "x-mozilla-html".</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added definition of</div><div class='del'>-	EVOLUTION_DATADIR.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade: Make Wants HTML check</div><div class='del'>-	button visible.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Make Wants HTML check button</div><div class='del'>-	active.  Fix UI stuff to use XML.  Set parent window of</div><div class='del'>-	confirm_delete dialog.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c: Set</div><div class='del'>-	the parent window of the confirm_delete dialog.</div><div class='del'>-	</div><div class='del'>-2000-09-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c: Fixed display of the minicards</div><div class='del'>-	when the addressbook was first loading.  (It was overwriting a</div><div class='del'>-	string with NULL during init.)</div><div class='del'>-</div><div class='del'>-2000-09-19  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/Makefile.am (ruledir): Use $(datadir), not</div><div class='del'>-	$(prefix)/share</div><div class='del'>-</div><div class='del'>-2000-09-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am, contact-editor/Makefile.am,</div><div class='del'>-	ename/Makefile.am, gui/component/Makefile.am,</div><div class='del'>-	gui/widgets/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and</div><div class='del'>-	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/pas/pas-backend-file.c,</div><div class='del'>-	contact-editor/e-contact-editor-address.c,</div><div class='del'>-	contact-editor/e-contact-editor-categories.c,</div><div class='del'>-	contact-editor/e-contact-editor-categories.h,</div><div class='del'>-	contact-editor/e-contact-editor-fullname.c,</div><div class='del'>-	contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-save-as.c, ename/e-address-western.c,</div><div class='del'>-	ename/test-ename-western-gtk.c,</div><div class='del'>-	gui/component/addressbook-factory.c, gui/component/addressbook.c,</div><div class='del'>-	gui/component/e-cardlist-model.h, gui/component/e-ldap-storage.c,</div><div class='del'>-	gui/component/select-names/e-select-names-bonobo.c,</div><div class='del'>-	gui/component/select-names/e-select-names-manager.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-table-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-table-model.h,</div><div class='del'>-	gui/component/select-names/e-select-names-text-model.h,</div><div class='del'>-	gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h,</div><div class='del'>-	gui/search/e-addressbook-search-dialog.c,</div><div class='del'>-	gui/widgets/e-addressbook-model.h,</div><div class='del'>-	gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-label.c,</div><div class='del'>-	gui/widgets/e-minicard-view-widget.c,</div><div class='del'>-	gui/widgets/e-minicard-view-widget.h,</div><div class='del'>-	gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,</div><div class='del'>-	gui/widgets/e-minicard-widget.h, gui/widgets/e-minicard.c,</div><div class='del'>-	gui/widgets/test-minicard-label.c, gui/widgets/test-reflow.c,</div><div class='del'>-	printing/e-contact-print.c: Fixed the #include lines to deal</div><div class='del'>-	properly with gal.</div><div class='del'>-	</div><div class='del'>-2000-09-15  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.h,</div><div class='del'>-	contact-editor/e-contact-save-as.h,</div><div class='del'>-	gui/widgets/e-addressbook-model.h,</div><div class='del'>-	gui/widgets/e-minicard-view-widget.h,</div><div class='del'>-	gui/widgets/e-minicard-view.h, gui/widgets/e-minicard.c,</div><div class='del'>-	gui/widgets/e-minicard.h: Fixed the paths of some .h #includes.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Removed all of the code to actually</div><div class='del'>-	create and display the correct view of the addressbook and moved</div><div class='del'>-	it to the new class gui/widgets/e-addressbook-view.c.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am: Added everything necessary for</div><div class='del'>-	e-addressbook-view.c and e-addressbook-view.h.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-addressbook-view.c,</div><div class='del'>-	gui/widgets/e-addressbook-view.h: New class to deal with actual</div><div class='del'>-	display of addresses and switching between card view and table</div><div class='del'>-	view.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view-widget.c: Made this deal more</div><div class='del'>-	gracefully with having the book set to NULL.</div><div class='del'>-</div><div class='del'>-2000-09-16  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: fix broken include.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (INCLUDES): define datadir.</div><div class='del'>-	(evolution_addressbook_SOURCES): remove e-addressbook-model.[ch]</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): use datadir.</div><div class='del'>-</div><div class='del'>-2000-09-16  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (gladedir): Define.</div><div class='del'>-	(glade_DATA): Install `alphabet.glade'.</div><div class='del'>-	(EXTRA_DIST): Define.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (glade_DATA): Remove `alphabet.glade'.</div><div class='del'>-	(EXTRA_DIST): Remove `alphabet.glade.h'.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): Add</div><div class='del'>-	`e-addressbook-model.c' and `e-addressbook-model.h'.  I hope this</div><div class='del'>-	is what Chris meant to do.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (INCLUDES): Add</div><div class='del'>-	`-I$(top_srcdir)/addressbook/gui/widgets'.</div><div class='del'>-	(evolution_addressbook_SOURCES): Remove `e-addressbook-model.c'</div><div class='del'>-	and `e-addressbook-model.h'.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: #include</div><div class='del'>-	"e-addressbook-model.h" from "addressbook/gui/widgets" instead of</div><div class='del'>-	"addressbook/gui/component", as it has been moved there.</div><div class='del'>-</div><div class='del'>-2000-09-15  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: split all the ldap operations</div><div class='del'>-	into 2 halves, a handler, and destructor, and create a structure</div><div class='del'>-	containing two function pointers and any data they need.  this</div><div class='del'>-	allows us queue up pending operations (since the LDAP*'s are no</div><div class='del'>-	longer view specific.  there's one per backend.)  also, add</div><div class='del'>-	support for restarting async operations if the SERVER DOWN error</div><div class='del'>-	isn't communicated until sometime after the handler is called (as</div><div class='del'>-	is the case with the async search stuff.)</div><div class='del'>-</div><div class='del'>-2000-09-14  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Call unicode_init</div><div class='del'>-	for e-font stuff.</div><div class='del'>-</div><div class='del'>-2000-09-14  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am, gui/widgets/Makefile.am: Added</div><div class='del'>-	$(GNOME_PRINT_LIBS) to all of the test files in these directories.</div><div class='del'>-</div><div class='del'>-2000-09-14  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDADD): fix path.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: update include.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c: update include.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/e-minicard-view.h: update include.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c: update include path.</div><div class='del'>-</div><div class='del'>-2000-09-13  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (e_contact_editor_init): hack.</div><div class='del'>-	(create_toolbar): ditto.</div><div class='del'>-</div><div class='del'>-2000-09-07  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Radicaly update UI handler code.</div><div class='del'>-</div><div class='del'>-2000-09-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/widgets/*, gui/minicard/*: Moved gui/minicard to</div><div class='del'>-	gui/widgets, except for e-reflow.c, e-reflow.h, e-reflow-sorted.c,</div><div class='del'>-	and e-reflow-sorted.h.</div><div class='del'>-</div><div class='del'>-	* gui/widgets/Makefile.am: Added e-reflow to the INCLUDES list and</div><div class='del'>-	libereflow.a to a bunch of LDADD lines.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDADD): Added</div><div class='del'>-	libereflow.a here.</div><div class='del'>-</div><div class='del'>-	* gui/Makefile.am (SUBDIRS): Replaced minicard with widgets.</div><div class='del'>-</div><div class='del'>-2000-09-12  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Makefile.am: Add space after `-I'</div><div class='del'>-	when invoking `orbit-idl'.</div><div class='del'>-</div><div class='del'>-2000-09-12  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (EXTRA_DIST): Remove `ui.xml'.</div><div class='del'>-</div><div class='del'>-2000-09-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Fixed a crash error.</div><div class='del'>-</div><div class='del'>-2000-09-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/e-address-western.c: Fixed some warnings.</div><div class='del'>-</div><div class='del'>-2000-09-11  Jesse Pavel &lt;jpavel@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/e-address-western.c: fixed certain address parsing</div><div class='del'>-	problems.</div><div class='del'>-</div><div class='del'>-2000-09-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/fulladdr.glade: Made this a bit better balanced.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Make the toolbar button for find do</div><div class='del'>-	the same thing that the menu item for search does.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c: Made the top half of</div><div class='del'>-	this not expand.</div><div class='del'>-</div><div class='del'>-2000-09-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Removed a bunch of redundant code.  Made it so that when you set</div><div class='del'>-	an address label, it sets the delivery address as well.  Added</div><div class='del'>-	functions to set and get the delivery address.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added code to</div><div class='del'>-	convert and address label to a delivery address.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added e-contact-editor-address.[ch],</div><div class='del'>-	fulladdr.glade, fulladdr.glade.h.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Switched from a label</div><div class='del'>-	to a button to show the parsed address.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-address.c,</div><div class='del'>-	contact-editor/e-contact-editor-address.h: New class to implement</div><div class='del'>-	the parsed address dialog.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.c,</div><div class='del'>-	contact-editor/e-contact-editor-fullname.h: Added const to the</div><div class='del'>-	_new function.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Implemented clicking on the</div><div class='del'>-	address button.</div><div class='del'>-</div><div class='del'>-	* contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h:</div><div class='del'>-	New glade files for the parsed address dialog.</div><div class='del'>-</div><div class='del'>-	* contact-editor/fullname-strings.h, fullname.glade: Changed these</div><div class='del'>-	accellabels to labels.</div><div class='del'>-</div><div class='del'>-	* ename/Makefile.am: Added e-address-western.c.</div><div class='del'>-</div><div class='del'>-	* ename/e-address-western.c: Fixed some warnings.</div><div class='del'>-</div><div class='del'>-2000-09-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/e-address-western.c: Added by Jesse.</div><div class='del'>-</div><div class='del'>-2000-09-08  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-label.c (e_minicard_label_construct):</div><div class='del'>-	Use canvas default font</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c (e_minicard_realize): Ditto</div><div class='del'>-	(get_left_width): Ditto</div><div class='del'>-</div><div class='del'>-2000-09-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Fixed a few warnings.</div><div class='del'>-</div><div class='del'>-2000-09-02  Lauris kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: e_utf8 wrappers</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: e_utf8 wrappers</div><div class='del'>-</div><div class='del'>-2000-09-01  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (load_ldap_data): Updated for the</div><div class='del'>-	extra arg now needed by `evolution_storage_new_folder()'.</div><div class='del'>-	(e_ldap_storage_add_server): Likewise.</div><div class='del'>-</div><div class='del'>-2000-08-31  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am (INCLUDES): Add `BONOBO_GNOME_CFLAGS' and</div><div class='del'>-	`-I$(top_srcdir)'.</div><div class='del'>-</div><div class='del'>-2000-08-31  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Install load-gnomecard-addressbook</div><div class='del'>-	and load-pine-addressbook.</div><div class='del'>-</div><div class='del'>-2000-08-30  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c: Countless small changes for gnome-print 0.21+</div><div class='del'>-</div><div class='del'>-2000-08-30  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.oafinfo: Add a name to the minicard</div><div class='del'>-	viewer.</div><div class='del'>-</div><div class='del'>-2000-08-29  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c: </div><div class='del'>-	* backend/ebook/test-client.c: </div><div class='del'>-	* backend/ebook/test-client-list.c: </div><div class='del'>-	* backend/ebook/load-gnomecard-addressbook.c: </div><div class='del'>-	* backend/ebook/load-pine-addressbook.c: </div><div class='del'>-	* backend/pas/pas-book-factory.c: </div><div class='del'>-	* conduit/address-conduit.h: Remove USING_OAF checks</div><div class='del'>-</div><div class='del'>-2000-08-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Use the right argument name to turn</div><div class='del'>-	on grid lines.</div><div class='del'>-</div><div class='del'>-2000-08-26  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am: Comment out minicard-view-test</div><div class='del'>-	since its gnorba dependent</div><div class='del'>-	</div><div class='del'>-2000-08-26  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Remove gnorba stuff</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c (e_minicard_control_factory_init):</div><div class='del'>-	ditto</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: ditto</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c: ditto</div><div class='del'>-</div><div class='del'>-2000-08-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* demo/* Removed the demo directory since it's no longer used.</div><div class='del'>-</div><div class='del'>-2000-08-26  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am: Remove gnorba stuff</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.gnorba: Kill</div><div class='del'>-	</div><div class='del'>-2000-08-26  JP Rosevear  &lt;jpr@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.gnorba: Kill</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am:  Remove gnorba stuff</div><div class='del'>-</div><div class='del'>-2000-08-25  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDFLAGS): Add</div><div class='del'>-	-export-dynamic so libglade will be able to resolve custom widget</div><div class='del'>-	callbacks.</div><div class='del'>-</div><div class='del'>-2000-08-23  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (func_contains): Use e_utf8_strstrcase</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.c (fill_in_field): Use e_utf8 wrapper</div><div class='del'>-	(extract_field): Same</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (full_name_clicked): Don't crash</div><div class='del'>-</div><div class='del'>-	* ename/Makefile.am: Link demo with libeutil.la</div><div class='del'>-</div><div class='del'>-	* ename/test-ename-western-gtk.c (full_changed_cb): Use e_utf8 wrapper</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (find_contact_cb): Use e_utf8 wrapper</div><div class='del'>-	(search_entry_activated): Same</div><div class='del'>-</div><div class='del'>-2000-08-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c: Fix an error in the</div><div class='del'>-	arguments to rule_context_load.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Fix this to not mess up if the person</div><div class='del'>-	passes a VCard with a carriage return in the mailing address.</div><div class='del'>-</div><div class='del'>-2000-08-14  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/addresstypes.xml: Fixed fullname-&gt;full_name for</div><div class='del'>-	search field.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c (get_widget): Check we</div><div class='del'>-	actually got any parts to build the dialogue with.</div><div class='del'>-</div><div class='del'>-2000-08-13  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (owner_set_cb): Set the</div><div class='del'>-	global_shell_client nastyhack when we know it.</div><div class='del'>-	This is only required to link with the filter code ...</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDADD): Added</div><div class='del'>-	libfilter.a to the link line.</div><div class='del'>-</div><div class='del'>-	* gui/search/Makefile.am (noinst_LIBRARIES): Change library name</div><div class='del'>-	from libaddressbooksearchdialog to libaddressbooksearch, as used</div><div class='del'>-	elsewhere.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c (get_widget):</div><div class='del'>-	Implement.</div><div class='del'>-	(get_query): Likewise.</div><div class='del'>-	(e_addressbook_search_dialog_destroy): Unref filter stuff when</div><div class='del'>-	done.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_deactivate): Added chris's</div><div class='del'>-	patch to put the meny in</div><div class='del'>-</div><div class='del'>-2000-08-22  Lauris Kaplinski  &lt;lauris@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Use e_utf8 wrappers everywhere</div><div class='del'>-</div><div class='del'>-2000-08-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/e-card.h: Started adding a time zone field to ECard.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c: Added</div><div class='del'>-	e_table_model_pre_change where appropriate.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c: Added a ref and unref pair.</div><div class='del'>-</div><div class='del'>-2000-08-22  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Linked in the search dialog again.</div><div class='del'>-	It looks like some changes in the shell made this not work.</div><div class='del'>-</div><div class='del'>-2000-08-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c, conduit/address-conduit.h: Changed</div><div class='del'>-	this to use ECardSimple.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Fixed a memory leak.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added stuff to the right click</div><div class='del'>-	menu.  Activated the new search dialog that doesn't quite work</div><div class='del'>-	yet.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c: Fixed some run time warnings.</div><div class='del'>-</div><div class='del'>-2000-08-15  Larry Ewing  &lt;lewing@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c (e_minicard_event): use style colors</div><div class='del'>-	for the selected state.  This doesn't properly redraw the minicard</div><div class='del'>-	when there is a style_change event, that is next.</div><div class='del'>-	(e_minicard_realize): use style colors.</div><div class='del'>-</div><div class='del'>-2000-08-14  Peter Williams  &lt;peterw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Include the proper db1/db.h</div><div class='del'>-	as in RedHat 7.0 -- patch from Kenny Graunke &lt;kwg@teleport.com&gt;</div><div class='del'>-</div><div class='del'>-2000-08-13  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/Makefile.am (libaddress_conduit_la_SOURCES): add</div><div class='del'>-	address-conduit.h</div><div class='del'>-</div><div class='del'>-	* Makefile.am (CONDUIT_SUBDIR): only set subdir if</div><div class='del'>-	ENABLE_PILOT_CONDUITS is set.</div><div class='del'>-</div><div class='del'>-2000-08-13  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am (SUBDIRS): add conduit subdir.</div><div class='del'>-</div><div class='del'>-2000-08-13  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (conduit_get_gpilot_conduit): add</div><div class='del'>-	special oaf initialization hack so conduit can find wombat, and</div><div class='del'>-	accept all cookies so that we can actually talk to oaf.</div><div class='del'>-</div><div class='del'>-2000-08-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Fixed a typo that cause the</div><div class='del'>-	wrong field to be searched.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Made the select</div><div class='del'>-	names dialog only display entries with email addresses.</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade: Fixed a typo in the name of</div><div class='del'>-	the first phone entry.</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/Makefile.am,</div><div class='del'>-	gui/search/e-addressbook-search-dialog.c,</div><div class='del'>-	gui/search/e-addressbook-search-dialog.h: A few small interface</div><div class='del'>-	fixes.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Link in the addressbook search</div><div class='del'>-	dialog.</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/Makefile.am: Added the search directory.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c: Fixed a potential crash.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow-sorted.h: Fixed an include line.</div><div class='del'>-</div><div class='del'>-	* gui/search/.cvsignore, gui/search/Makefile.am: New files.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c: Fixed compilation.</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am: Ettore fixed compilation.</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/.cvsignore: Added load-gnomecard-addressbook.</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c,</div><div class='del'>-	gui/search/e-addressbook-search-dialog.h: Made this into a Gtk</div><div class='del'>-	object.</div><div class='del'>-</div><div class='del'>-2000-08-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-view.c: Ref our book view listener.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Updated to use new minicard view</div><div class='del'>-	widget.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am: Added e-minicard-view-widget.c and</div><div class='del'>-	e-minicard-view-widget.h.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view-widget.c,</div><div class='del'>-	gui/minicard/e-minicard-view-widget.h: New class that's just a</div><div class='del'>-	minicard view in an ECanvas.</div><div class='del'>-</div><div class='del'>-	* gui/search/e-addressbook-search-dialog.c: New file for</div><div class='del'>-	implementing a search dialog.</div><div class='del'>-</div><div class='del'>-2000-08-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (transmit): implement code to encode</div><div class='del'>-	the first email address and send to the pilot.</div><div class='del'>-	(get_phone_label_by_flag): rename find_phone_label_for_flags to</div><div class='del'>-	this, and implement by calling get_phone_label_by_name.</div><div class='del'>-</div><div class='del'>-2000-08-11  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (ecard_from_remote_record): add code</div><div class='del'>-	for handling email addresses from pilot (which stores it as a</div><div class='del'>-	phone number entry.  go figure.)</div><div class='del'>-	(check_for_slow_setting): #if 0 out, since we don't use it (yet).</div><div class='del'>-	(update_record): un #if 0 the code to handle the case where the</div><div class='del'>-	pilot info has changed for a local record.</div><div class='del'>-	(merge_ecard_with_remote_record): implement function, but for now</div><div class='del'>-	just return the existing (desktop) record - we still don't allow</div><div class='del'>-	merge from the pilot.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-2000-08-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/addresstypes.xml: Changed a couple of input field</div><div class='del'>-	names.</div><div class='del'>-</div><div class='del'>-2000-08-10  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Remove prototype for</div><div class='del'>-	`setup_ldap_storage()', which shouldn't be here anyway.</div><div class='del'>-</div><div class='del'>-2000-08-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/search/, gui/search/addresstypes.xml: New search dialog for</div><div class='del'>-	addressbook.</div><div class='del'>-</div><div class='del'>-2000-08-10  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (owner_set_cb): Update for</div><div class='del'>-	changed prototype, pass evolution_homedir arg to</div><div class='del'>-	setup_ldap_storage.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (setup_ldap_storage): Now takes</div><div class='del'>-	an evolution_homedir arg, uses that to generate the path to the</div><div class='del'>-	ldapservers.xml file, and stores the result in a static variable.</div><div class='del'>-	(e_ldap_storage_add_server, e_ldap_storage_remove_server): Use that</div><div class='del'>-	static variable rather than hardcoding the path to the file.</div><div class='del'>-</div><div class='del'>-2000-08-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Fixed any search to not crash on</div><div class='del'>-	missing phone numbers or email addresses.</div><div class='del'>-</div><div class='del'>-2000-08-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c: Added a button to save to</div><div class='del'>-	your addressbook.</div><div class='del'>-</div><div class='del'>-2000-08-09  Cody Russell  &lt;bratsche@gnome.org&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Make the toolbar honor the user's</div><div class='del'>-	gnomecc settings for detachable toolbars.</div><div class='del'>-</div><div class='del'>-2000-08-09  Nat Friedman  &lt;nat@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/e-name-western-tables.h: Added some military prefixes.</div><div class='del'>-</div><div class='del'>-2000-08-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-2000-08-09  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): Add the stock</div><div class='del'>-	print icon to the print item.</div><div class='del'>-</div><div class='del'>-2000-08-09  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): Put the print</div><div class='del'>-	item in the right placeholder so that it gets the right position</div><div class='del'>-	in the "File" menu.</div><div class='del'>-	(control_deactivate): Updated accordingly.</div><div class='del'>-</div><div class='del'>-2000-08-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c, gui/minicard/e-minicard.c: Changed</div><div class='del'>-	e_popup_menu_run call to match the new arguments.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.oafinfo: Fixed this file to work</div><div class='del'>-	properly.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c: Use the correct oafinfo ID</div><div class='del'>-	here.  Also cleaned up the code a bit with the help of Michael</div><div class='del'>-	Meeks.</div><div class='del'>-</div><div class='del'>-2000-08-08  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c (e_addressbook_model_init):</div><div class='del'>-	use x-evolution-any-field.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (search_entry_activated): use</div><div class='del'>-	x-evolution-any-field.</div><div class='del'>-	(change_view_type): same.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c (e_minicard_view_init): set query</div><div class='del'>-	to x-evolution-any-field.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (func_contains): support</div><div class='del'>-	x-evolution-any-field for matching any evolution supported field.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (compare_email): switch to using</div><div class='del'>-	ECardSimple calls.</div><div class='del'>-	(compare_phone): same.</div><div class='del'>-	(compare_address): same.</div><div class='del'>-	(entry_compare): switch to using ECardSimple calls, and support a</div><div class='del'>-	'x-evolution-any-field' wildcard field.</div><div class='del'>-	(vcard_matches_search): use an ECardSimple.</div><div class='del'>-</div><div class='del'>-2000-08-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Removed the next and prev</div><div class='del'>-	toolbar buttons since they don't do anything.</div><div class='del'>-</div><div class='del'>-2000-08-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor.c: Fixed the tab order to not</div><div class='del'>-	repeat the web page address field.</div><div class='del'>-</div><div class='del'>-2000-08-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Fixed the tab order for this</div><div class='del'>-	dialog.</div><div class='del'>-</div><div class='del'>-2000-08-05  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Cast to (char *) in</div><div class='del'>-	e_card_load_cards_from_file since libversit isn't const correct.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-2000-08-04  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): unref.</div><div class='del'>-</div><div class='del'>-	* demo/addressbook.c (control_activate): unref.</div><div class='del'>-</div><div class='del'>-2000-08-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c,</div><div class='del'>-	gui/component/e-addressbook-model.c: Emit "model_pre_change"</div><div class='del'>-	signal as appropriate.</div><div class='del'>-</div><div class='del'>-2000-08-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c: Adapted this to supply the</div><div class='del'>-	new append_row API of ETableModel.</div><div class='del'>-</div><div class='del'>-2000-07-31  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Changed the default set of columns.</div><div class='del'>-</div><div class='del'>-2000-07-29  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Added load-gnomecard-addressbook</div><div class='del'>-	compilation.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added</div><div class='del'>-	e_card_load_cards_from_file helper function to load multiple cards</div><div class='del'>-	from a single file.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-gnomecard-addressbook.c: New file to load</div><div class='del'>-	vcard files.  I think this is the format that gnomecard uses so if</div><div class='del'>-	you copy your gnomecard file to gnomecard.vcf and then run this</div><div class='del'>-	program in the same directory, it'll copy all your gnome contacts</div><div class='del'>-	into evolution.  It needs to be changed to take a filename as a</div><div class='del'>-	parameter.  Some fields (phone and address information, for</div><div class='del'>-	example) aren't displayed properly, but are saved.  This is new</div><div class='del'>-	code, so some other than phone and address may be lost.</div><div class='del'>-</div><div class='del'>-2000-07-28  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am: Add `pas-backend-ldap.c' and</div><div class='del'>-	`pas-backend-ldap.h' to `EXTRA_DIST' so they get distributed even</div><div class='del'>-	if the OpenLDAP support is not enabled.</div><div class='del'>-</div><div class='del'>-2000-07-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-pine-addressbook.c: Changed the URI to load</div><div class='del'>-	to.</div><div class='del'>-</div><div class='del'>-2000-07-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-widget-test.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-2000-07-26  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (view_destroy): wait to free the</div><div class='del'>-	view until we've taken care of freeing its internals.  also, close</div><div class='del'>-	the ldap connection here.</div><div class='del'>-	(pas_backend_ldap_connect): rename p_b_l_ensure_connected to this,</div><div class='del'>-	since it's always called when we create a view.</div><div class='del'>-	(pas_backend_ldap_build_all_cards_list): open an ldap connection</div><div class='del'>-	in this function and close it at the end.</div><div class='del'>-	(poll_ldap): make sure to call ldap_unbind to close the view's</div><div class='del'>-	connection here.</div><div class='del'>-	(pas_backend_ldap_search): call pas_backend_ldap_connect here -</div><div class='del'>-	ldap_unbind will either be called from poll_ldap or from</div><div class='del'>-	view_destroy.</div><div class='del'>-	(pas_backend_ldap_get_vcard): the PASBackendLDAP no longer has an</div><div class='del'>-	LDAP*.</div><div class='del'>-</div><div class='del'>-2000-07-26  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_build_all_cards_list): add support for user settable scope.</div><div class='del'>-	(pas_backend_ldap_search): same.</div><div class='del'>-	(pas_backend_ldap_load_uri): same.</div><div class='del'>-</div><div class='del'>-2000-07-26  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.oafinfo: lowercasify the</div><div class='del'>-	supported_mime_types</div><div class='del'>-</div><div class='del'>-2000-07-25  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-types.h: add enum for e-card pilot status.</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c: #ifdef out all the archiving code with SUPPORT_ARCHIVING.</div><div class='del'>-	(purge): implement correctly - deleting ecards whose pilot status is DELETED.</div><div class='del'>-	(set_status): implement.</div><div class='del'>-	(set_pilot_id): add gtk_main call here to change commit_card into a synchronous</div><div class='del'>-	(delete_all): implement correctly - don't delete the records, just set their status to DELETED.</div><div class='del'>-	(local_record_from_ecard): get the current status from the ecard.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_get_vcard): add vcard support for pilot status.</div><div class='del'>-	(parse_pilot_status): new function.</div><div class='del'>-	(e_card_class_init): add pilot status object arg.</div><div class='del'>-	(e_card_set_arg): add pilot status support.</div><div class='del'>-	(e_card_get_arg): same.</div><div class='del'>-	(e_card_init): initialize pilot_status to 0.</div><div class='del'>-</div><div class='del'>-2000-07-25  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c: add comment headers to signals that</div><div class='del'>-	didn't have any.</div><div class='del'>-	</div><div class='del'>-2000-07-25  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* conduit/address-conduit.c (start_address_server): use the user's</div><div class='del'>-	Contact db.  not toshok's.</div><div class='del'>-</div><div class='del'>-2000-07-25  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-pine-addressbook.c (book_open_cb): check we</div><div class='del'>-	opened ok.</div><div class='del'>-</div><div class='del'>-2000-07-25  Seth Alves  &lt;alves@hungry.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/Makefile.am (libename_static_la_LDFLAGS): build static</div><div class='del'>-	version of the library for address conduit to use</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: build a static version of the library</div><div class='del'>-	to link into the conduit</div><div class='del'>-</div><div class='del'>-2000-07-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Added a #define for</div><div class='del'>-	"X-EVOLUTION-PILOTID".  Added a parse_pilot_id to read pilot id's</div><div class='del'>-	in properly from VCards.  Rearranged some field orders.  Added a</div><div class='del'>-	get_arg case for ARG_PILOTID.  Initialize pilot_id field to 0.</div><div class='del'>-</div><div class='del'>-2000-07-24  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.h: add pilot_id.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_get_vcard): add support for</div><div class='del'>-	X-EVOLUTION-PILOTD vcard field.</div><div class='del'>-	(e_card_class_init): add pilot_id arg.</div><div class='del'>-	(e_card_set_arg): handle pilot_id arg.</div><div class='del'>-</div><div class='del'>-2000-07-23  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c: Remove the idle handler</div><div class='del'>-	when we're destroyed.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c: Fixed the spacing on the card</div><div class='del'>-	header.</div><div class='del'>-</div><div class='del'>-2000-07-20  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.oafinfo: Fixed the oaf info.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/.cvsignore, gui/minicard/Makefile.am,</div><div class='del'>-	gui/minicard/e-minicard-widget-test.c: Added a test for the</div><div class='del'>-	minicard widget.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c: Fixed the mime type.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Fixed some crashes if your parent</div><div class='del'>-	isn't a minicard view.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.oafinfo: Removed.</div><div class='del'>-</div><div class='del'>-2000-07-20  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Update for</div><div class='del'>-	the new `evolution_shell_component_new()'.</div><div class='del'>-</div><div class='del'>-2000-07-19  Fatih Demir	&lt;kabalak@gmx.net&gt;</div><div class='del'>-	</div><div class='del'>-	* conduit/address-conduit-control-applet.desktop:</div><div class='del'>-		Added the Turkish desktop entry.</div><div class='del'>-</div><div class='del'>-2000-07-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c: Added "text/vCard" to the</div><div class='del'>-	list of mime types we support.</div><div class='del'>-</div><div class='del'>-2000-07-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am: Added</div><div class='del'>-	gui/minicard/e-minicard-control.c,</div><div class='del'>-	gui/minicard/e-minicard-control.h,</div><div class='del'>-	gui/minicard/e-minicard-widget.c, and</div><div class='del'>-	gui/minicard/e-minicard-widget.h.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c,</div><div class='del'>-	gui/minicard/e-minicard-control.h,</div><div class='del'>-	gui/minicard/e-minicard-widget.c,</div><div class='del'>-	gui/minicard/e-minicard-widget.h: Got these to compile.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.gnorba,</div><div class='del'>-	gui/minicard/e-minicard-control.oafinfo: Copied directly from</div><div class='del'>-	bonobo-clock-control.  These aren't done yet.</div><div class='del'>-</div><div class='del'>-2000-07-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-control.c,</div><div class='del'>-	gui/minicard/e-minicard-control.h,</div><div class='del'>-	gui/minicard/e-minicard-widget.c,</div><div class='del'>-	gui/minicard/e-minicard-widget.h: New files for using a minicard</div><div class='del'>-	as a widget or a bonobo control.</div><div class='del'>-</div><div class='del'>-2000-07-14  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (ldap_server_foreach): duh.</div><div class='del'>-	don't save the port in the host slot either.</div><div class='del'>-</div><div class='del'>-2000-07-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-confirm-delete.glade,</div><div class='del'>-	contact-editor/e-contact-editor-confirm-delete.glade.h: Added</div><div class='del'>-	these.</div><div class='del'>-</div><div class='del'>-2000-07-13  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Switched the order of compilation of printing and</div><div class='del'>-	contact-editor.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added printing libraries and a</div><div class='del'>-	confirm delete dialog glade file.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Enabled the delete and print</div><div class='del'>-	functions as well as providing a confirm delete dialog to the</div><div class='del'>-	outside world.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Made the delete button on new cards</div><div class='del'>-	active.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am: Added printing libraries to a number</div><div class='del'>-	of test programs.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Added print and delete to the right</div><div class='del'>-	click menu.  Made the delete button on the card editor active.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c, printing/e-contact-print.h: Added a</div><div class='del'>-	function to print a single card.</div><div class='del'>-</div><div class='del'>-2000-07-12  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (ldap_server_foreach): oops.  fix</div><div class='del'>-	typo that was saving the port in the rootdn spot.</div><div class='del'>-	(save_ldap_data): make this a bit safer - writing to a new file</div><div class='del'>-	and renaming it.</div><div class='del'>-	(load_ldap_data): make this a bit smarter - if parsing the</div><div class='del'>-	ldapservers.xml file fails and there's a .new file there,</div><div class='del'>-	rename it.</div><div class='del'>-	</div><div class='del'>-2000-07-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Do case insensitive compares.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c: Make quick search</div><div class='del'>-	search both name and company name.</div><div class='del'>-</div><div class='del'>-2000-07-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Add icons to the toolbars.</div><div class='del'>-</div><div class='del'>-2000-07-12  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added installation of arrow.png.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Use EVOLUTIONDIR #define.</div><div class='del'>-</div><div class='del'>-2000-07-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Removed an unused function</div><div class='del'>-</div><div class='del'>-2000-07-10  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Makefile.am (EXTRA_DIST): add idl</div><div class='del'>-	file to EXTRA_DIST</div><div class='del'>-</div><div class='del'>-2000-07-10  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): Remove the</div><div class='del'>-	SelectNames test.</div><div class='del'>-</div><div class='del'>-2000-07-10  Peter Williams  &lt;peterw@curious-george.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c: (Clahey's fix)</div><div class='del'>-	Make multiple addresses be concatenated correctly.</div><div class='del'>-</div><div class='del'>-2000-07-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c,</div><div class='del'>-	gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h: Switched from ETable</div><div class='del'>-	to ETableScrolled.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/minicard/e-minicard.c: Don't display mailer or</div><div class='del'>-	"name or org" fields.</div><div class='del'>-</div><div class='del'>-2000-07-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Added a field that gives the name if it exists and the company</div><div class='del'>-	name otherwise.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c: Formatting changes.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c: Added</div><div class='del'>-	stripping of names and display of company name if name doesn't</div><div class='del'>-	exist.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Fixed up the</div><div class='del'>-	display so that we display both name and email address.</div><div class='del'>-</div><div class='del'>-2000-07-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c: Fixed a small</div><div class='del'>-	off by one error that was causing an extra character to get</div><div class='del'>-	deleted sometimes.</div><div class='del'>-</div><div class='del'>-2000-07-09  Anders Carlsson  &lt;andersca@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/test-reflow.c (allocate_callback): Fix off by one bug with</div><div class='del'>-	scroll region setting.</div><div class='del'>-	(resize): Likewise.</div><div class='del'>-	(main): Put the contacts list in an EScrolledFrame instead of using a</div><div class='del'>-	separate GtkScrollbar.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow.c (e_reflow_event): Don't change mouse cursor and</div><div class='del'>-	don't allow drags on dividers that aren't visible.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (allocate_callback): Fix off by one bug with</div><div class='del'>-	scroll region setting.</div><div class='del'>-	(resize): Likewise.</div><div class='del'>-	(create_minicard_view): Put the contacts list in an EScrolledFrame instead of</div><div class='del'>-	using a separate GtkScrollbar.</div><div class='del'>-</div><div class='del'>-2000-07-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Removed unused do_nothing_cb</div><div class='del'>-	function.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c,</div><div class='del'>-	gui/component/select-names/e-select-names-manager.h: Made the OK</div><div class='del'>-	and Cancel buttons in the ESelectNames dialog we create work</div><div class='del'>-	properly.</div><div class='del'>-	</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.h: Added</div><div class='del'>-	e_select_names_model_duplicate.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c: Made the</div><div class='del'>-	text be set correctly if there's already data in the source when</div><div class='del'>-	the text model is created.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h: Removed handling of</div><div class='del'>-	the buttons (the user of this dialog will have to handle them.)</div><div class='del'>-	Added e_select_names_get_source.  Fixed some typos.</div><div class='del'>-</div><div class='del'>-2000-07-09  Not Zed  &lt;NotZed@HelixCode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Link the toolbar print button to</div><div class='del'>-	the print callback.</div><div class='del'>-</div><div class='del'>-2000-07-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c</div><div class='del'>-	(e_select_names_clicked): Hitting OK or Cancel at least closes the</div><div class='del'>-	dialog now.</div><div class='del'>-</div><div class='del'>-2000-07-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_create_entry): Set the returned entry to</div><div class='del'>-	use the ellipsis.</div><div class='del'>-</div><div class='del'>-2000-07-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c: Include</div><div class='del'>-	e-select-names-factory.h.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c: Handle a NULL</div><div class='del'>-	iterator properly in the replace function.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c: Fill in</div><div class='del'>-	info properly in the value_at function.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c: Don't</div><div class='del'>-	strlen a NULL text object.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Close if the person</div><div class='del'>-	hits ok or cancel (doesn't yet actually undo changes if Cancel is</div><div class='del'>-	hit.)  Handle removing addresses when they're double clicked on.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/select-names.glade,</div><div class='del'>-	gui/component/select-names/select-names.glade.h: Hid some unused</div><div class='del'>-	fields and changed the text at the top of the dialog.</div><div class='del'>-</div><div class='del'>-2000-07-08  Jeffrey Stedfast  &lt;fejj@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/.cvsignore: Ignore dynamically </div><div class='del'>-	created source files</div><div class='del'>-</div><div class='del'>-2000-07-08  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c</div><div class='del'>-	(entry_get_property_fn): New function to set the properties.</div><div class='del'>-</div><div class='del'>-2000-07-08  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Start up the factory</div><div class='del'>-	for `Evolution::Addressbook::SelectNames'.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/evolution-addressbook-select-names.oafinfo:</div><div class='del'>-	New.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-factory.c: New.</div><div class='del'>-	* gui/component/select-names/e-select-names-factory.h: New.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.c: New.</div><div class='del'>-	* gui/component/select-names/e-select-names-bonobo.h: New.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c (main): Call</div><div class='del'>-	`e_select_names_factory_init()'.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c</div><div class='del'>-	(e_select_names_manager_add_section): Made const-aware.</div><div class='del'>-	(e_select_names_manager_create_entry): Made const-aware.</div><div class='del'>-	(e_select_names_manager_activate_dialog): Made const-aware.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Evolution-Addressbook-SelectNames.idl:</div><div class='del'>-	New.</div><div class='del'>-</div><div class='del'>-2000-07-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c,</div><div class='del'>-	gui/component/e-addressbook-model.h: Added an "editable" argument.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Set our</div><div class='del'>-	EAddressModel to not be editable.</div><div class='del'>-</div><div class='del'>-2000-07-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Changed to line</div><div class='del'>-	mode.</div><div class='del'>-</div><div class='del'>-2000-07-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.c: Implemented the</div><div class='del'>-	get_cards function.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Implemented adding</div><div class='del'>-	cards through the interface.</div><div class='del'>-</div><div class='del'>-2000-07-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c: Make the</div><div class='del'>-	entry widgets we create editable.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c: Use</div><div class='del'>-	e_strsplit instead of g_strsplit.  Fixed an off by 1 error.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c: When</div><div class='del'>-	the model changes, send a model changed signal.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c: Made</div><div class='del'>-	changing this work correctly if it's empty.  Made change signals</div><div class='del'>-	propagate properly.  Is a bit better about freeing iterators when</div><div class='del'>-	done.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c: Made the finished</div><div class='del'>-	lists be in order instead of being sorted.</div><div class='del'>-</div><div class='del'>-2000-07-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_server_cb): Since</div><div class='del'>-	ELDAPServer-&gt;port is a char *, allocate a string with the number</div><div class='del'>-	389 contained.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Make the select names test test the</div><div class='del'>-	new code instead of the old way of getting to an ESelectNames</div><div class='del'>-	dialog.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c: Coded</div><div class='del'>-	storing the model for each section, creating an entry and</div><div class='del'>-	returning it, and for activating the dialog.  Wrote a bit of the</div><div class='del'>-	get_cards code, but not all of it.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.h: Coded all of</div><div class='del'>-	the code needed to make ESelectNamesTextModel work (it doesn't</div><div class='del'>-	yet, but all the code should be there.)  Removed</div><div class='del'>-	E_SELECT_NAMES_MODEL_DATA_TYPE_SEPARATION_MATERIAL.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-text-model.c: Changed</div><div class='del'>-	these to compensate for removal of</div><div class='del'>-	E_SELECT_NAMES_MODEL_DATA_TYPE_SEPARATION_MATERIAL.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.h,</div><div class='del'>-	gui/component/select-names/e-select-names-text-model.h: Fixed some</div><div class='del'>-	silly typos.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h: Added a parameter to</div><div class='del'>-	add_section that lets you specify the source ESelectNamesModel.</div><div class='del'>-	</div><div class='del'>-2000-07-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.h: add scope to ELDAPServer, and</div><div class='del'>-	make port a string.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (load_ldap_data): don't load a</div><div class='del'>-	uri, load all the bits and pieces and build up the uri when</div><div class='del'>-	creating the folder, according to the openldap url format.</div><div class='del'>-	(ldap_server_foreach): store out each of the individual uri</div><div class='del'>-	pieces.</div><div class='del'>-	(e_ldap_storage_remove_server): free the new fields.</div><div class='del'>-	(get_string_value): if the text is empty, return the empty string</div><div class='del'>-	instead of NULL.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-server-dialog.c (extract_server_info): port is a string now.</div><div class='del'>-	(fill_in_server_info): port is a string now.</div><div class='del'>-</div><div class='del'>-2000-07-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Changed "FIXME: Save and</div><div class='del'>-	Close" to "Save and Close".  Removed some toolbar items that will</div><div class='del'>-	never be used.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.h: Added functions</div><div class='del'>-	to allow you to modify the model (not implemented yet.)</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-table-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-table-model.h: Finished</div><div class='del'>-	this.  Doesn't support changing the model at all.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-text-model.c: Finished</div><div class='del'>-	this.  Changing the model by typing is done, but doesn't work</div><div class='del'>-	since none of the functions in the base model are implemented.</div><div class='del'>-</div><div class='del'>-2000-07-05  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_server_cb): call</div><div class='del'>-	e_ldap_storage_add_server call.</div><div class='del'>-</div><div class='del'>-	* gui/component/ldap-server-dialog.glade: add name row.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-server-dialog.h: remove the ELDAPServer type.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-server-dialog.c (extract_server_info): add</div><div class='del'>-	support for the name-entry.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-server-dialog.c (fill_in_server_info): same.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.h: add ELDAPServer type, and add</div><div class='del'>-	prototypes for e_ldap_storage_add_server and</div><div class='del'>-	e_ldap_storage_remove_server.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (e_ldap_storage_add_server): new</div><div class='del'>-	function, add it to our hash table, add a shell folder, and save</div><div class='del'>-	out the metadata.</div><div class='del'>-	(ldap_server_foreach): add the ldap server info under a</div><div class='del'>-	"contactserver" node.</div><div class='del'>-	(setup_ldap_storage): create our hashtable.</div><div class='del'>-</div><div class='del'>-2000-07-05  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (set_prop): remove hack to read</div><div class='del'>-	"uri" file from local directory.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_SOURCES): add</div><div class='del'>-	e-ldap-storage.{c,h}</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (owner_set_cb): call</div><div class='del'>-	setup_ldap_storage.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.c (setup_ldap_storage): Register</div><div class='del'>-	the LDAP storage and load the .xml file.</div><div class='del'>-	(load_ldap_data): function to load our xml file.</div><div class='del'>-	(save_ldap_data): function to save our xml file.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-storage.h: new file.</div><div class='del'>-</div><div class='del'>-2000-07-03  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/e-select-names-manager.c,</div><div class='del'>-	gui/component/select-names/e-select-names-text-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names.c: Fixed more compile</div><div class='del'>-	errors.</div><div class='del'>-</div><div class='del'>-2000-07-03  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/Makefile.am: Fixed compile error.</div><div class='del'>-</div><div class='del'>-2000-07-03  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Removed e-card-iterator.c,</div><div class='del'>-	e-card-iterator.h, e-card-list-iterator.c, e-card-list-iterator.h,</div><div class='del'>-	e-card-list.c, e-card-list.h.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-iterator.c,</div><div class='del'>-	backend/ebook/e-card-iterator.h,</div><div class='del'>-	backend/ebook/e-card-list-iterator.c,</div><div class='del'>-	backend/ebook/e-card-list-iterator.h, backend/ebook/e-card-list.c,</div><div class='del'>-	backend/ebook/e-card-list.h: Removed in favor or versions without</div><div class='del'>-	the -card in the e-util directory since these classes are not</div><div class='del'>-	specific to cards at all.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h,</div><div class='del'>-	backend/ebook/e-card.c, backend/ebook/e-card.h,</div><div class='del'>-	backend/ebook/load-pine-addressbook.c, backend/ebook/test-card.c,</div><div class='del'>-	backend/pas/pas-backend-file.c: Changed the references to</div><div class='del'>-	e-card-list.c and friends to e-list.c and friends.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Added #include</div><div class='del'>-	&lt;e-contact-save-as.h&gt; to fix a warning.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Moved a number of classes associated</div><div class='del'>-	with the select-names object to the new select-names directory.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Changed the reference to</div><div class='del'>-	e-select-names.h.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-select-names.c, gui/component/e-select-names.h,</div><div class='del'>-	gui/component/select-names.glade,</div><div class='del'>-	gui/component/select-names.glade.h: Moved these files into</div><div class='del'>-	select-names/.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/.cvsignore,</div><div class='del'>-	gui/component/select-names/Makefile.am,</div><div class='del'>-	gui/component/select-names/e-select-names-manager.c,</div><div class='del'>-	gui/component/select-names/e-select-names-manager.h,</div><div class='del'>-	gui/component/select-names/e-select-names-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-model.h,</div><div class='del'>-	gui/component/select-names/e-select-names-table-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-table-model.h,</div><div class='del'>-	gui/component/select-names/e-select-names-text-model.c,</div><div class='del'>-	gui/component/select-names/e-select-names-text-model.h,</div><div class='del'>-	gui/component/select-names/e-select-names.c,</div><div class='del'>-	gui/component/select-names/e-select-names.h,</div><div class='del'>-	gui/component/select-names/recipient.glade,</div><div class='del'>-	gui/component/select-names/select-names.glade,</div><div class='del'>-	gui/component/select-names/select-names.glade.h: New files for</div><div class='del'>-	select names dialog (e-select-names.c, e-select-names.h,</div><div class='del'>-	select-names.glade, select-names.glade.h and recipient.glade moved</div><div class='del'>-	from gui/component/.)</div><div class='del'>-</div><div class='del'>-2000-06-29  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (owner_set_cb): Get an</div><div class='del'>-	EvolutionShellClient instead of an Evolution_Shell to match the</div><div class='del'>-	changes in libeshell.</div><div class='del'>-</div><div class='del'>-2000-06-28  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names/,</div><div class='del'>-	gui/component/select-names/e-select-names-manager.c,</div><div class='del'>-	gui/component/select-names/e-select-names-manager.h: New select</div><div class='del'>-	names manager interface (Not complete.)</div><div class='del'>-</div><div class='del'>-2000-06-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c,</div><div class='del'>-	addressbook/gui/component/e-cardlist-model.c: Added</div><div class='del'>-	value_to_string handlers.</div><div class='del'>-</div><div class='del'>-	* demo/addressbook-widget.c, demo/demo.c: Removed usage of "x" and</div><div class='del'>-	"y" arguments.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/addressbook.c: Activated Click To Add</div><div class='del'>-	and set the click to add message.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/e-addressbook-model.c: Added</div><div class='del'>-	value_to_string and append_row handlers.</div><div class='del'>-</div><div class='del'>-	* addressbook/gui/component/e-select-names.c: Added a column.</div><div class='del'>-</div><div class='del'>-2000-06-26  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (poll_ldap): remove spew.</div><div class='del'>-	(pas_backend_ldap_ensure_connected): duh, don't access a pointer</div><div class='del'>-	we know to be NULL.</div><div class='del'>-	(query_prop_to_ldap): rename map_e_card_prop_to_ldap to this.</div><div class='del'>-	easier to type.</div><div class='del'>-</div><div class='del'>-2000-06-21  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/test-minicard-label.c,</div><div class='del'>-	gui/minicard/test-minicard.c, gui/minicard/test-reflow.c: Remove</div><div class='del'>-	usage of "x" and "y" arguments.</div><div class='del'>-</div><div class='del'>-2000-06-18    &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am (INCLUDES): Use</div><div class='del'>-	`$(BONOBO_GNOME_CFLAGS)' so that we compile when Bonobo is not in</div><div class='del'>-	the default GNOME prefix.</div><div class='del'>-</div><div class='del'>-2000-06-17  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-label.c,</div><div class='del'>-	gui/minicard/e-minicard-label.h, gui/minicard/e-minicard.c: Made</div><div class='del'>-	the left column of minicards not get any wider than the widest</div><div class='del'>-	possible name.</div><div class='del'>-</div><div class='del'>-2000-06-13  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (SHELL_OBJS): Removed.</div><div class='del'>-	(evolution_addressbook_LDADD): Link with</div><div class='del'>-	`$(top_builddir)/shell/libeshell.a'.</div><div class='del'>-</div><div class='del'>-2000-06-12  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Removed the</div><div class='del'>-	ETableModel thaw handler.</div><div class='del'>-	* gui/component/e-cardlist-model.c: Likewise.</div><div class='del'>-</div><div class='del'>-2000-06-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-select-names.c: Fixed the widget reparenting.</div><div class='del'>-</div><div class='del'>-2000-06-11  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Added glade files.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added a test of the Select Names</div><div class='del'>-	functionality.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c: Made this class_init</div><div class='del'>-	function a bit cleaner.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-select-names.c: Tested this and fixed some</div><div class='del'>-	obvious errors.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names.glade: The main window shouldn't be</div><div class='del'>-	visible by default.</div><div class='del'>-</div><div class='del'>-2000-06-11  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am (contact_editor_test_LDADD): Link</div><div class='del'>-	with libemiscwidgets.a.</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_LDADD): Likewise.</div><div class='del'>-	* gui/minicard/Makefile.am (minicard_test_LDADD): Likewise.</div><div class='del'>-	(reflow_test_LDADD): Likewise.</div><div class='del'>-	(minicard_view_test_LDADD): Likewise.</div><div class='del'>-</div><div class='del'>-2000-06-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-cardlist-model.c: Renamed a bunch of functions</div><div class='del'>-	for better readability.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-select-names.c, gui/component/e-select-names.h:</div><div class='del'>-	This should be a working dialog now.</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names.glade: Changed the name &amp; creation</div><div class='del'>-	function of the ETable here.</div><div class='del'>-</div><div class='del'>-2000-06-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/select-names.glade,</div><div class='del'>-	gui/component/select-names.glade.h: Glade files for Select Names</div><div class='del'>-	dialog.</div><div class='del'>-</div><div class='del'>-2000-06-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Do e_card_simple_sync and</div><div class='del'>-	extract_info more often.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added table printing code.</div><div class='del'>-</div><div class='del'>-2000-06-09  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (factory_fn): Pass NULL</div><div class='del'>-	for the new args @create_folder_fn and @remove_folder_fn.</div><div class='del'>-</div><div class='del'>-2000-06-08  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c (create_view): Updated for</div><div class='del'>-	the new `EvolutionShellComponentCreateViewFn'.  Return</div><div class='del'>-	`EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDTYPE' if @type is not</div><div class='del'>-	"contacts".</div><div class='del'>-</div><div class='del'>-2000-06-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Bind Save As to save the</div><div class='del'>-	current view of the contact as a vcard.</div><div class='del'>-</div><div class='del'>-2000-06-08  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (save_card): Doh, sync the</div><div class='del'>-	card simple and extract the card info.</div><div class='del'>-</div><div class='del'>-2000-06-08  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.h (EContactEditor): Now this</div><div class='del'>-	derives from GtkObject.  It follows the same strategy as the</div><div class='del'>-	EventEditor in the calendar.</div><div class='del'>-	(EContactEditor): Added an is_new_card field so that we can know</div><div class='del'>-	whether to add() or commit() the card.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c (e_contact_editor_get_type):</div><div class='del'>-	Derive from GtkObject.</div><div class='del'>-	(e_contact_editor_class_init): Likewise.</div><div class='del'>-	(e_contact_editor_class_init): Added an "is_new_card" argument.</div><div class='del'>-	(e_contact_editor_set_arg): Handle ARG_IS_NEW_CARD.</div><div class='del'>-	(e_contact_editor_get_arg): Likewise.</div><div class='del'>-	(e_contact_editor_new): Take in an is_new_arg argument and set it</div><div class='del'>-	on the object.</div><div class='del'>-	(e_contact_editor_init): Load the app widget into the app field of</div><div class='del'>-	the EContactEditor structure.  Create its UIHandler as well.</div><div class='del'>-	(e_contact_editor_class_init): New "add_card", "commit_card", and</div><div class='del'>-	"editor_closed" signals.</div><div class='del'>-</div><div class='del'>-	* contact-editor/test-editor.c (main): Modified for the new API.</div><div class='del'>-	(editor_closed_cb): Tweaked for the new API.</div><div class='del'>-	Since this test program does not use Bonobo, it doesn't work,</div><div class='del'>-	though.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_contact_cb): Use the new</div><div class='del'>-	contact editor API.</div><div class='del'>-	(table_double_click): Ditto.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c (e_minicard_view_event): Use the</div><div class='del'>-	new contact editor API.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c (e_minicard_event): Use the new</div><div class='del'>-	contact editor API.</div><div class='del'>-</div><div class='del'>-2000-06-08  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am (contact_editor_test_LDADD): Remove</div><div class='del'>-	the `$(srcdir)/' prefix from `libecontacteditor.a' because [of</div><div class='del'>-	course] the library is built in the build directory, not in the</div><div class='del'>-	source directory.</div><div class='del'>-	* gui/minicard/Makefile.am (minicard_test_LDADD): Likewise with</div><div class='del'>-	`libeminicard.a'.</div><div class='del'>-	(minicard_label_test_LDADD): Likewise.</div><div class='del'>-	(reflow_test_LDADD): Likewise.</div><div class='del'>-	(minicard_view_test_LDADD): Likewise.</div><div class='del'>-</div><div class='del'>-2000-06-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Bind right click on the ETable to</div><div class='del'>-	"Save to VCard."</div><div class='del'>-</div><div class='del'>-2000-06-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Made phone/email/address</div><div class='del'>-	labels change correctly again.</div><div class='del'>-</div><div class='del'>-2000-06-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: Made</div><div class='del'>-	evolution-addressbook shut down when the shell is done with it.</div><div class='del'>-</div><div class='del'>-2000-06-02  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard.c: Made</div><div class='del'>-	double click only work on the first button.</div><div class='del'>-</div><div class='del'>-2000-06-01  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: return TRUE if opening a contact</div><div class='del'>-	editor so that we don't get a "new dialog" contact editor.</div><div class='del'>-</div><div class='del'>-2000-06-01  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (new_contact_cb): Use the stock</div><div class='del'>-	cancel button for the dialog.</div><div class='del'>-	(table_double_click): Likewise.</div><div class='del'>-	(find_contact_cb): Likewise.</div><div class='del'>-</div><div class='del'>-2000-05-31  Miguel de Icaza  &lt;miguel@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade: Added accelerators for</div><div class='del'>-	the remaining items.</div><div class='del'>-</div><div class='del'>-	Add spacing, beautify the dialogs.</div><div class='del'>-</div><div class='del'>-2000-06-01  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): Put the toolbar</div><div class='del'>-	into a frame to make it look like standard GNOME toolbars.  Also,</div><div class='del'>-	set `GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL' so that it does not do</div><div class='del'>-	evil things when its moved to the left or the right of the window.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-cardlist-model.c,</div><div class='del'>-	gui/component/e-cardlist-model.h: New files for card list.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Fixed a memory leak.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/alphabet.glade: Made the alphabet buttons not</div><div class='del'>-	focusable.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c: Made the "123" button work.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow-sorted.c: Made all buttons past the last</div><div class='del'>-	letter available work.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/alphabet.glade: Added a bit of space around the</div><div class='del'>-	alphabet bar.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Added alphabet.glade and</div><div class='del'>-	alphabet.glade.h.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c, gui/component/alphabet.glade,</div><div class='del'>-	gui/component/alphabet.glade.h: Added an alphabet bar.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard-view.h,</div><div class='del'>-	gui/minicard/e-reflow-sorted.c, gui/minicard/e-reflow-sorted.h:</div><div class='del'>-	Added the ability to just to a particular spot in the reflow.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am: Added BONOBO_GNOME_CFLAGS to CPPFLAGS.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c: Made double clicking create a</div><div class='del'>-	new card.  Set the empty message.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Made sorting be case insensitive.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow-sorted.c, e-reflow.c, e-reflow.h: Added a</div><div class='del'>-	message for when the reflow is empty.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c, printing/medbook.ecps: Made the</div><div class='del'>-	default printout be full page.  Made sorting case insensitive.</div><div class='del'>-</div><div class='del'>-2000-05-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.c,</div><div class='del'>-	backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c,</div><div class='del'>-	backend/ebook/e-book-view.h, backend/idl/addressbook.idl,</div><div class='del'>-	backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c,</div><div class='del'>-	backend/pas/pas-book-factory.c, backend/pas/pas-book-view.c,</div><div class='del'>-	backend/pas/pas-book-view.h: Added "sequence_complete" signal.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c: Made printing wait for</div><div class='del'>-	"sequence_complete" signal and made it sort.</div><div class='del'>-</div><div class='del'>-2000-05-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c,</div><div class='del'>-	gui/component/e-addressbook-model.c,</div><div class='del'>-	gui/component/e-addressbook-model.h: Added double click to open</div><div class='del'>-	contact editor.</div><div class='del'>-</div><div class='del'>-2000-05-25  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Removed some columns.</div><div class='del'>-</div><div class='del'>-2000-05-25  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (addressbook_factory_new_control):</div><div class='del'>-	New function.</div><div class='del'>-	(addressbook_factory): Use it.</div><div class='del'>-</div><div class='del'>-	* Makefile.am (evolution_addressbook_LDADD): Link with</div><div class='del'>-	`evolution-shell-component.o' from the shell directory.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-component.c: New.</div><div class='del'>-	* gui/component/addressbook-component.h: New.</div><div class='del'>-</div><div class='del'>-2000-05-23  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Switched printing and gui.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-view-listener.h,</div><div class='del'>-	backend/ebook/e-book-view.h, backend/ebook/e-book.h,</div><div class='del'>-	backend/ebook/e-card-cursor.h, backend/ebook/e-card-list.h,</div><div class='del'>-	backend/ebook/e-card-simple.h, backend/ebook/e-card.h: Fixed the</div><div class='del'>-	#defines to work elsewhere in evolution.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Added linking to libecontactprint.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added a menu item to print the</div><div class='del'>-	current query.</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am: Add linking to libebook and requirements.</div><div class='del'>-	Add installation of ecps files.</div><div class='del'>-</div><div class='del'>-	* printing/e-contact-print.c, printing/e-contact-print.h: Changed</div><div class='del'>-	this to use real data from an EBook.</div><div class='del'>-</div><div class='del'>-	* printing/test-print.c: Made this pass NULL, NULL to</div><div class='del'>-	e_contact_print_dialog_new so that it will compile.</div><div class='del'>-</div><div class='del'>-2000-05-23  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-save-as.c: Fixed some memory leaks.</div><div class='del'>-</div><div class='del'>-2000-05-23  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added e-contact-editor-save-as.c and</div><div class='del'>-	e-contact-editor-save-as.h.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-save-as.c,</div><div class='del'>-	contact-editor/e-contact-save-as.h: New files that display a save</div><div class='del'>-	as dialog and then save the given card to that file.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Call e_contact_save_as in a right</div><div class='del'>-	click menu.</div><div class='del'>-</div><div class='del'>-2000-05-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c,</div><div class='del'>-	gui/component/e-addressbook-model.c: Added initialize_value and</div><div class='del'>-	value_is_empty callbacks.</div><div class='del'>-</div><div class='del'>-2000-05-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Fixed a bug that broke</div><div class='del'>-	address field support.</div><div class='del'>-</div><div class='del'>-2000-05-19  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Added support for arbitrary</div><div class='del'>-	fields in the contact editor.</div><div class='del'>-</div><div class='del'>-2000-05-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Fixed e_card_name_copy and</div><div class='del'>-	e_card_arbitrary_copy to deal correctly with a passed NULL.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Removed imagesdir stuff.</div><div class='del'>-</div><div class='del'>-	* contact-editor/arrow.png: Made this transparent.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Renamed some widgets</div><div class='del'>-	and added custom widgets for all of the images.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Worked on making this work</div><div class='del'>-	decently well with messed up glade files.  Cleaned up a lot of code.</div><div class='del'>-</div><div class='del'>-2000-05-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Fixed the code to write out and read in</div><div class='del'>-	arbitrary fields.</div><div class='del'>-</div><div class='del'>-2000-05-18  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h,</div><div class='del'>-	backend/ebook/e-card-types.h, backend/ebook/e-card.c,</div><div class='del'>-	backend/ebook/e-card.h: Implemented "MAILER" field.  Added</div><div class='del'>-	arbitrary field support.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-2000-05-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Added E_CARD_SIMPLE_FIELD_MAILER.  Not implemented yet.</div><div class='del'>-</div><div class='del'>-2000-05-16  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (construct_email_list): convert to use ECardSimple.</div><div class='del'>-	(poll_ldap): same.</div><div class='del'>-</div><div class='del'>-2000-05-16  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.h: add typedefs for the can_write</div><div class='del'>-	functions, and add parameters to pas_book_new.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c (pas_book_construct): add can_write/can_write_card params.</div><div class='del'>-	(pas_book_new): same.</div><div class='del'>-	(impl_Evolution_Book_can_write): new function.</div><div class='del'>-	(impl_Evolution_Book_can_write_card): same.</div><div class='del'>-	(pas_book_get_epv): assign the can_write/can_write_card slots in the epv.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_can_write): new function.</div><div class='del'>-	(pas_backend_ldap_can_write_card): same.</div><div class='del'>-	(pas_backend_ldap_add_client): add can_write/can_write_card to pas_book_new call.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_can_write_card): new function, calls can_write.</div><div class='del'>-	(pas_backend_file_can_write): same.</div><div class='del'>-	(can_write): return TRUE if we can write to the addressbook file.</div><div class='del'>-	(pas_backend_file_add_client): add can_write/can_write_card to pas_book_new call.</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl (Evolution): add can_write and</div><div class='del'>-	can_write_card permission requests.</div><div class='del'>-</div><div class='del'>-2000-05-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (e_card_get_vcard): Fixed a large memory leak.</div><div class='del'>-</div><div class='del'>-2000-05-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c (add_list_unique): Fixed another memory</div><div class='del'>-	leak.</div><div class='del'>-</div><div class='del'>-2000-05-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/pas/pas-backend-file.c,</div><div class='del'>-	contact-editor/e-contact-editor.c, ename/e-name-western.c,</div><div class='del'>-	gui/component/addressbook.c, gui/minicard/e-minicard-view.c: Fixed</div><div class='del'>-	some memory leaks.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Rearranged some code.</div><div class='del'>-</div><div class='del'>-2000-05-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Fixed a reference</div><div class='del'>-	leak.</div><div class='del'>-</div><div class='del'>-2000-05-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Fixed a compile</div><div class='del'>-	error.</div><div class='del'>-</div><div class='del'>-2000-05-16  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Got rid of a</div><div class='del'>-	memory leak.  Rearranged a couple functions.</div><div class='del'>-	</div><div class='del'>-	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard-view.h:</div><div class='del'>-	Added some code to stop watching the EBook when the canvas is</div><div class='del'>-	destroyed (apparently the canvas is destroyed before our widget is</div><div class='del'>-	destroyed.)</div><div class='del'>-</div><div class='del'>-2000-05-14  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-categories.c: Use the correct</div><div class='del'>-	policy for resize.</div><div class='del'>-</div><div class='del'>-2000-05-14  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Added libeutil for e-card's support</div><div class='del'>-	for categories.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-list.c, backend/ebook/e-card-list.h: Added</div><div class='del'>-	a function to get the length.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added categories</div><div class='del'>-	support (accessible either as "categories" or "category_list".)</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added e-table and all of the</div><div class='del'>-	categories files.</div><div class='del'>-</div><div class='del'>-	* contact-editor/categories.glade,</div><div class='del'>-	contact-editor/categories-strings.h,</div><div class='del'>-	contact-editor/e-contact-editor-categories.c,</div><div class='del'>-	contact-editor/e-contact-editor-categories.h:</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Rearranged this dialog.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Rearranged dialog a bit.</div><div class='del'>-	Added opening of categories dialog.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Rearranged libraries so that</div><div class='del'>-	libetable would be available for the contact editor categories</div><div class='del'>-	dialog.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Fix for new ETable resizing.  Make</div><div class='del'>-	contact editor dialog resizable.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am: Added libetable contact editor</div><div class='del'>-	categories dialog.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Make contact editor dialog resizable.</div><div class='del'>-</div><div class='del'>-2000-05-12  Miguel de Icaza  &lt;miguel@gnu.org&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/fulname.glade: Use accelerators here.</div><div class='del'>-</div><div class='del'>-2000-05-13  Valek Filippov  &lt;frob@df.ru&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/ldap-server-dialog.glade: save translatable strings</div><div class='del'>-	* gui/component/ldap-server-dialog.glade.h: file with strings</div><div class='del'>-	* printing/e-contact-print.glade: save translatable strings</div><div class='del'>-	* printing/e-contact-print.glade.h: file with strings</div><div class='del'>-		</div><div class='del'>-2000-05-11  Dan Winship  &lt;danw@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_activate): Now that we</div><div class='del'>-	depend on recent gnome-libs we can make the toolbar detachable</div><div class='del'>-	again.</div><div class='del'>-</div><div class='del'>-2000-05-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Make the table view be sorted by</div><div class='del'>-	name initially.</div><div class='del'>-</div><div class='del'>-2000-05-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c: Send a proper response when you</div><div class='del'>-	can't find the ldap URI.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Cleaned up the open error dialog a</div><div class='del'>-	bit.</div><div class='del'>-</div><div class='del'>-2000-05-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added a dialog for when you can't</div><div class='del'>-	open an addressbook.</div><div class='del'>-</div><div class='del'>-2000-05-10  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Added e-book-types.h, e-card-pairs.h,</div><div class='del'>-	e-card-types.h.</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am: Added pas-backend-ldap.h.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added a proper EXTRA_DIST section.</div><div class='del'>-	Removed some old defines.</div><div class='del'>-</div><div class='del'>-	* ename/Makefile.am: Added e-name-western-tables.h.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Added e-ldap-server-dialog.h.  Added</div><div class='del'>-	a proper EXTRA_DIST section.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow.c: Added a missed cast.</div><div class='del'>-</div><div class='del'>-	* printing/Makefile.am: Added a proper EXTRA_DIST section.</div><div class='del'>-	</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Make sure that the canvas</div><div class='del'>-	doesn't intercept keyboard focus.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Use new art.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Replaced the Address</div><div class='del'>-	button with a label and rearranged the address area a bit.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Reenable editting.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow-sorted.c: Make reflow flow on deletion.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Destroy the view object when</div><div class='del'>-	leaving the minicard view.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow-sorted.c: Fixed reflow sorting to call</div><div class='del'>-	reflow_request when sorting on an item changes.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c: Make File As change if name or</div><div class='del'>-	company are changed pretty much anywhere.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Turned off having minicard editing</div><div class='del'>-	effect anything since it's so crashy.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c: Enabled a couple more fields</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Added a default card to all new</div><div class='del'>-	file backends.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c: Rearranged order of things</div><div class='del'>-	getting destroyed.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c: Rearranged order of things</div><div class='del'>-	getting destroyed.  Don't set attributes of non-null or destroyed</div><div class='del'>-	items.  Destroy parent object when destroyed.  Maintain ref_count</div><div class='del'>-	of items in list.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Don't set attributes of non-null</div><div class='del'>-	items.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow-sorted.c: Maintain ref_count of items in</div><div class='del'>-	list.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-reflow.c: Maintain ref_count of items in list.</div><div class='del'>-	Destroy parent object when destroyed.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c: Fixed some indentation.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Changed Email to</div><div class='del'>-	Primary Email.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Added checkmarks to indicate</div><div class='del'>-	if data exists in the pull down menus for the phone, address, and</div><div class='del'>-	email fields.</div><div class='del'>-</div><div class='del'>-2000-05-09  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c: Fixed the string duplication</div><div class='del'>-	problem.  Fixed the business/home address string mix up.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Made the minicard view the default</div><div class='del'>-	view.</div><div class='del'>-</div><div class='del'>-2000-05-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c: Fixed this up a bit.  Syncing</div><div class='del'>-	should work better now.</div><div class='del'>-</div><div class='del'>-2000-05-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard.c,</div><div class='del'>-	gui/minicard/e-minicard.h, gui/minicard/e-reflow-sorted.c,</div><div class='del'>-	gui/minicard/e-reflow-sorted.h: Made a minimal number of things be</div><div class='del'>-	destroyed and recreated when updating a field.</div><div class='del'>-</div><div class='del'>-2000-05-07    &lt;toshok@the-dot-in.helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c (remodel): make sure to free the</div><div class='del'>-	return value of e_card_simple_get.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (teardown_table_view): destroy the</div><div class='del'>-	ECardSimple here, plug memory leak.</div><div class='del'>-	(create_table_view): use view-&gt;simple so we can destroy the</div><div class='del'>-	ECardSimple later on.</div><div class='del'>-</div><div class='del'>-2000-05-07  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/e-name-western.c (e_name_western_extract_middle): comment</div><div class='del'>-	function, and fix an ABR.</div><div class='del'>-</div><div class='del'>-2000-05-07  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/e-name-western.c (e_name_western_cleanup_string): comment</div><div class='del'>-	function, and fix an ABR.</div><div class='del'>-</div><div class='del'>-2000-05-08  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Added saving in minicard view.</div><div class='del'>-</div><div class='del'>-2000-05-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Fixed an off by 2 error.</div><div class='del'>-</div><div class='del'>-2000-05-07  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (set_prop): don't create a new</div><div class='del'>-	ebook.  instead, unload the current uri (if there is one) and load</div><div class='del'>-	the new one.</div><div class='del'>-	(addressbook_factory): create the ebook once.</div><div class='del'>-</div><div class='del'>-2000-05-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c: Replaced some model_changed</div><div class='del'>-	calls with row_inserted calls.</div><div class='del'>-</div><div class='del'>-2000-05-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c:</div><div class='del'>-	Removed some code that was notifying too many clients at the wrong</div><div class='del'>-	times.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Set view-&gt;book.  Unreffed</div><div class='del'>-	view-&gt;book.  Unreffed the model instead of destroying it.  Removed</div><div class='del'>-	the /tmp/test.db stuff.</div><div class='del'>-</div><div class='del'>-2000-05-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Make the addressbook create the</div><div class='del'>-	correct file uri.  Added a default query.  Initialize view-&gt;model</div><div class='del'>-	and view-&gt;view to NULL.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c,</div><div class='del'>-	gui/minicard/e-minicard-view.c: Only call get_book_view if both</div><div class='del'>-	book and query and non-null.</div><div class='del'>-</div><div class='del'>-2000-05-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_deactivate): remove the</div><div class='del'>-	separator and toggle view items as well.</div><div class='del'>-	(toggle_view_as_cb): callback for the "/View/Toggle View" menu</div><div class='del'>-	item.</div><div class='del'>-	(get_query): getter for the query string that takes into account</div><div class='del'>-	the two view types.</div><div class='del'>-	(set_query): setter for the query string that takes into account</div><div class='del'>-	the two view types.</div><div class='del'>-	(set_book): setter for the EBook type - not really a setter, since</div><div class='del'>-	the book is kept in the AddressbookView, but this method actually</div><div class='del'>-	sets the "book" property on the current view.</div><div class='del'>-	(find_contact_cb): make use of get/set_query</div><div class='del'>-	(search_entry_activated): make use of set_query.</div><div class='del'>-	(control_activate): add a menu separator and an item to toggle</div><div class='del'>-	between view types.</div><div class='del'>-	(book_open_cb): make use of set_book.</div><div class='del'>-	(ebook_create): no longer needs to return the EBook, since we set</div><div class='del'>-	the book field in our view.</div><div class='del'>-	(teardown_minicard_view): destructor function for the minicard</div><div class='del'>-	specific ui.</div><div class='del'>-	(create_minicard_view): constructor function for the minicard</div><div class='del'>-	specific ui.</div><div class='del'>-	(teardown_table_view): destructor function for the e-table</div><div class='del'>-	specific ui.</div><div class='del'>-	(create_table_view): constructor function for the e-table specific</div><div class='del'>-	ui.</div><div class='del'>-	(change_view_type): destroy the old and create the new view ui,</div><div class='del'>-	change the label of the Toggle View menu item, and reset the book</div><div class='del'>-	and query on the new view type.</div><div class='del'>-	(addressbook_factory): create an all-encompassing vbox that the</div><div class='del'>-	view uses to create the bonobo control, which contains 1 widget</div><div class='del'>-	per ui specific view (the e-table in the table case, and another</div><div class='del'>-	vbox in the minicard case.)  use change_view_type to create the</div><div class='del'>-	initial view.</div><div class='del'>-</div><div class='del'>-2000-05-07  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c: Made a NULL callback just mean to not</div><div class='del'>-	call back.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Reordered fields.  Added a get_const function to get a constant</div><div class='del'>-	string that persists until the simple is destroyed.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: Added e-addressbook-model.c and</div><div class='del'>-	e-addressbook-model.h and all of the libraries and includes that</div><div class='del'>-	they are dependent on.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c: Initialize e cursors.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Added inactive code to display an</div><div class='del'>-	ETable view of the addressbook.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-addressbook-model.c,</div><div class='del'>-	gui/component/e-addressbook-model.h: New files to implement an</div><div class='del'>-	ETable model with a EBook back end.</div><div class='del'>-	</div><div class='del'>-2000-05-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	Mostly finished ECardSimple.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Changed this to match with</div><div class='del'>-	some of the changes to ECardSimple.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Changed this to look for</div><div class='del'>-	"addressbook.db" in the given directory if it doesn't find the</div><div class='del'>-	file "uri".</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c, gui/minicard/e-minicard.h: Changed</div><div class='del'>-	this to use ECardSimple.</div><div class='del'>-</div><div class='del'>-2000-05-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-	</div><div class='del'>-	* gui/component/.cvsignore: ignore evolution-addressbook.pure</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am: add support for generating </div><div class='del'>-	evolution-addressbook.pure.</div><div class='del'>-</div><div class='del'>-2000-05-06  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_load_uri): if a</div><div class='del'>-	port isn't specified in the uri default to 389.</div><div class='del'>-</div><div class='del'>-2000-05-06  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: Made this take a uri through its</div><div class='del'>-	property bag.</div><div class='del'>-</div><div class='del'>-2000-05-05  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Added e-card-simple.c and</div><div class='del'>-	e-card-simple.h.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:</div><div class='del'>-	New card wrapper class to simplify things.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Changed e-contact-editor to use</div><div class='del'>-	ECardSimple a bit.</div><div class='del'>-</div><div class='del'>-2000-05-03  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_deactivate): #ifdef</div><div class='del'>-	HAVE_LDAP the ldap specific stuff.</div><div class='del'>-	(null_cb): same.</div><div class='del'>-	(control_activate): same.</div><div class='del'>-</div><div class='del'>-2000-05-02  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (INCLUDES): Add</div><div class='del'>-	`-I$(top_srcdir)/addressbook/ename'.</div><div class='del'>-</div><div class='del'>-2000-05-02  Matt Loper  &lt;matt@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* demo/Makefile.am: set G_LOG_DOMAIN.</div><div class='del'>-	* printing/Makefile.am: same.</div><div class='del'>-</div><div class='del'>-2000-05-01  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c: Add back in the</div><div class='del'>-	CORBA_Object_release.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c: Properly duplicate and release the</div><div class='del'>-	listener passed to us.</div><div class='del'>-</div><div class='del'>-2000-05-01  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c:</div><div class='del'>-	Made uri slightly better managed.</div><div class='del'>-	</div><div class='del'>-	* backend/pas/pas-book-factory.c</div><div class='del'>-	(pas_book_factory_process_request): Remove this</div><div class='del'>-	CORBA_Object_release that causes things not to work.  This is just</div><div class='del'>-	a temporary fix until we figure out what's actually wrong.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book.c: Fixed a copy and paste error in a warning.</div><div class='del'>-	</div><div class='del'>-2000-05-01  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Switched the subdirs order since backend depends on</div><div class='del'>-	ename.</div><div class='del'>-</div><div class='del'>-2000-05-01  Larry Ewing  &lt;lewing@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_remove_client):</div><div class='del'>-	fix a typo in the for loop.</div><div class='del'>-</div><div class='del'>-2000-05-01  Michael Meeks  &lt;michael@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c: include gtk.</div><div class='del'>-</div><div class='del'>-2000-04-30  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book-types.h (EBookStatus): Added new status</div><div class='del'>-	values for the IDL stuff.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.h (PASBookFactoryClass): New</div><div class='del'>-	"last_book_gone" signal.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c</div><div class='del'>-	(pas_book_factory_launch_backend): Better error handling.</div><div class='del'>-	(pas_book_factory_process_queue): Let</div><div class='del'>-	pas_book_factory_process_request() free the request.</div><div class='del'>-	(pas_book_factory_process_request): Free the request here.</div><div class='del'>-	Perform better error handling.</div><div class='del'>-	(free_active_server_map_entry): Free an active server map entry;</div><div class='del'>-	free the URI key and unref the backend value.  This function was</div><div class='del'>-	renamed; the old one was trying to CORBA_Object_unref() a GTK+</div><div class='del'>-	object!</div><div class='del'>-	(remove_backends_entry): Free a backend table entry; free the URI</div><div class='del'>-	key.</div><div class='del'>-	(backend_last_client_gone_cb): Remove the backend from the active</div><div class='del'>-	server map and emit the "last_book_gone" signal if appropriate.</div><div class='del'>-	(pas_book_factory_get_n_backends): New function to query the</div><div class='del'>-	number of running backends in an addressbook factory.</div><div class='del'>-</div><div class='del'>-	* backend/idl/addressbook.idl (BookListener::CallStatus): Added a</div><div class='del'>-	ProtocolNotSupported code.  This is for when the addressbook</div><div class='del'>-	factory cannot find a provider for the requested URI.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend.h (PASBackendClass): New</div><div class='del'>-	"last_client_gone" signal.</div><div class='del'>-	(PASBackendClass): New get_uri virtual method.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend.c (pas_backend_load_uri): Return a</div><div class='del'>-	gboolean success code.</div><div class='del'>-	(pas_backend_add_client): Return a gboolean success code.</div><div class='del'>-	(pas_backend_last_client_gone): New function used by backend</div><div class='del'>-	implementations to notify upwards when the backend's last client</div><div class='del'>-	is destroyed.</div><div class='del'>-	(pas_backend_get_uri): New function to get the URI of a backend.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c (pas_backend_file_add_client):</div><div class='del'>-	Pass the backend as the closure data to the "destroy" handler of</div><div class='del'>-	the book.  We cannot call pas_book_get_backend() in the callback</div><div class='del'>-	since the book's private data has already been destroyed when the</div><div class='del'>-	callback is invoked.  Alternatively, we could move the private</div><div class='del'>-	data destruction step to the book's ::finalize() method.</div><div class='del'>-	(pas_backend_file_book_destroy_cb): Get the backend from the</div><div class='del'>-	callback's data, not from the book.</div><div class='del'>-	(pas_backend_file_remove_client): Remove the book from the list of</div><div class='del'>-	clients.  When all clients go away, call</div><div class='del'>-	pas_backend_last_client_gone().</div><div class='del'>-	(PASBackendFilePrivate): Added an uri field.</div><div class='del'>-	(pas_backend_file_get_uri): Implement the get_uri method.</div><div class='del'>-	(pas_backend_file_load_uri): Return a gboolean success code.</div><div class='del'>-	Also, store the URI in the private structure.</div><div class='del'>-	(pas_backend_file_add_client): Return a gboolean success code.</div><div class='del'>-	Also, call pas_backend_last_client_gone() if appropriate.</div><div class='del'>-	(pas_backend_file_destroy): Free the bf-&gt;priv-&gt;uri.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):</div><div class='del'>-	Pass the backend as the closure data to the "destroy" handler of</div><div class='del'>-	the book.  See above for rationale.</div><div class='del'>-	(pas_backend_ldap_book_destroy_cb): Get the backend from the</div><div class='del'>-	callback's data.</div><div class='del'>-	(pas_backend_ldap_remove_client): Remove the book from the list of</div><div class='del'>-	clients.  When all clients go away, call</div><div class='del'>-	pas_backend_last_client_gone().</div><div class='del'>-	(pas_backend_ldap_load_uri): Return a gboolean success code.</div><div class='del'>-	(pas_backend_ldap_add_client): Return a gboolean success code.</div><div class='del'>-	Also, call pas_backend_last_client_gone() if appropriate.</div><div class='del'>-	(PASBackendLDAPPrivate): New uri field.</div><div class='del'>-	(pas_backend_ldap_get_uri): Implement the get_uri method.</div><div class='del'>-	(pas_backend_ldap_load_uri): Store the uri in the private</div><div class='del'>-	structure.</div><div class='del'>-	(pas_backend_ldap_destroy): Free the bl-&gt;priv-&gt;uri.</div><div class='del'>-</div><div class='del'>-2000-04-30  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (evolution_addressbook_SOURCES): added</div><div class='del'>-	e-ldap-server-dialog.c</div><div class='del'>-	(glade_DATA): added ldap-server-dialog.glade</div><div class='del'>-</div><div class='del'>-	* gui/component/ldap-server-dialog.glade: new file.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-server-dialog.h: new file.</div><div class='del'>-</div><div class='del'>-	* gui/component/e-ldap-server-dialog.c: new file, contains logic</div><div class='del'>-	associated with ldap server dialog.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c (control_deactivate): remove the</div><div class='del'>-	directory server menu item.</div><div class='del'>-	(null_cb): do nothing callback for e_book_load_uri call.  should</div><div class='del'>-	change to (at the very least) pop up a dialog if there was an</div><div class='del'>-	error.</div><div class='del'>-	(new_server_cb): new function - really just switches to a</div><div class='del'>-	particular ldap server, since the information isn't saved</div><div class='del'>-	anywhere.</div><div class='del'>-	(control_activate): add directory server menu item.</div><div class='del'>-</div><div class='del'>-2000-04-30  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c (e_book_load_uri): create the book</div><div class='del'>-	listener here, since it's destroyed in unload_uri.</div><div class='del'>-	(e_book_construct): remove the book listener construction here.</div><div class='del'>-</div><div class='del'>-2000-04-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/.cvsignore: Added load-pine-addressbook.</div><div class='del'>-</div><div class='del'>-2000-04-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor.c, gui/minicard/e-minicard.c: Made</div><div class='del'>-	some fields invisible that were visible before.</div><div class='del'>-</div><div class='del'>-2000-04-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c: Make file as not have the : after it if</div><div class='del'>-	it's empty.  If there's no name, or file_as, fill in these fields</div><div class='del'>-	with defaults based on full_name or name respectively.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/load-pine-addressbook.c: New file to do import of</div><div class='del'>-	pine .addressbook files.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Made empty fields act as the</div><div class='del'>-	empty string for searches.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Made the File As field update</div><div class='del'>-	properly as you edit the name and company fields.  Added the pull</div><div class='del'>-	down list of File As choices.  Made sure that all fields will</div><div class='del'>-	be set to NULL if they are deleted to the empty string.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/e-minicard.c: Use the File As field instead of the</div><div class='del'>-	Full Name field for the header.  Make identical compares on the</div><div class='del'>-	File As field do a compare on the uid.</div><div class='del'>-</div><div class='del'>-2000-04-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.c,</div><div class='del'>-	contact-editor/fullname.glade: Fixed a string mismatch.</div><div class='del'>-</div><div class='del'>-2000-04-30  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Added ename includes and libs.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added</div><div class='del'>-	e_card_name_from_string.  Added header for</div><div class='del'>-	e_card_delivery_address_from_string, even though it's not</div><div class='del'>-	implemented yet.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Removed the ename includes since we</div><div class='del'>-	no longer use ename directly here.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Fixed this to properly save</div><div class='del'>-	the address labels displayed.  Updated this to use the function</div><div class='del'>-	e_card_name_from_string instead of doing it by hand.</div><div class='del'>-</div><div class='del'>-	* contact-editor/fullname-strings.h,</div><div class='del'>-	contact-editor/fullname.glade: Deleted an unused field.  Changed</div><div class='del'>-	the set of prefixes and suffixes.</div><div class='del'>-</div><div class='del'>-2000-04-30  Chris Toshok  &lt;toshok@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-ldap.c</div><div class='del'>-	(pas_backend_ldap_ensure_connected): add support for a rootdn in</div><div class='del'>-	the uri.</div><div class='del'>-	(pas_backend_ldap_build_all_cards_list): make use of the rootdn in</div><div class='del'>-	the call to ldap_search_s.</div><div class='del'>-	(pas_backend_ldap_search): same.</div><div class='del'>-	(pas_backend_ldap_load_uri): get the rootdn out of the passed in uri.</div><div class='del'>-</div><div class='del'>-2000-04-29  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added</div><div class='del'>-	e_card_phone_new e_card_delivery_address_new,</div><div class='del'>-	e_card_delivery_address_to_string, e_card_name_copy,</div><div class='del'>-	e_card_name_new, e_card_name_to_string, and made e_card_name_free</div><div class='del'>-	public.  Removed some unused code.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Fixed a warning.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am: Added e-contact-editor-fullname.[ch]</div><div class='del'>-	and fullname.glade.  Added e-name libs and includes.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor-fullname.c,</div><div class='del'>-	contact-editor/e-contact-editor-fullname.h,</div><div class='del'>-	contact-editor/fullname-strings.h, contact-editor/fullname.glade:</div><div class='del'>-	New dialog for editing the fields of a name separately.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Create an</div><div class='del'>-	EContactEditorFullname when you click on the Full Name button.</div><div class='del'>-	Maintain a parsed name at all times.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am, gui/minicard/Makefile.am: Added</div><div class='del'>-	e-name libs.</div><div class='del'>-</div><div class='del'>-2000-04-28  Larry Ewing  &lt;lewing@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c (register_factory): fix the</div><div class='del'>-	`USING_OAF' changes so that they work for when we are not using</div><div class='del'>-	oaf.</div><div class='del'>-</div><div class='del'>-2000-04-27  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* ename/Makefile.am</div><div class='del'>-	(gnome_libs): Use `BONOBO_GNOME_LIBS'.</div><div class='del'>-	(INCLUDES): Add `-I$(srcdir)/..'.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-book-factory.c</div><div class='del'>-	(register_factory): New function to register the factory.</div><div class='del'>-	Implementation different according to `USING_OAF'.</div><div class='del'>-	(pas_book_factory_activate): Use `register_factory()'.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook.c: New #define `CONTROL_FACTORY_ID',</div><div class='del'>-	varying depending on whether we are `USING_OAF'.</div><div class='del'>-	(addressbook_factory_init): Use `CONTROL_FACTORY_ID'.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/test-client.c (init_corba): New function,</div><div class='del'>-	implemented differently according to the `USING_OAF' #define.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-book.c: New #define `CARDSERVER_OAF_ID'.</div><div class='del'>-	(e_book_construct): Work with OAF #if `USING_OAF'.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (gnome_libs): Removed.</div><div class='del'>-	(corbadir): Removed.</div><div class='del'>-	(ebook_libs): Removed.</div><div class='del'>-	(test_client_LDADD): Just add `libebook.la'.</div><div class='del'>-	(test_card_LDADD): Likewise.</div><div class='del'>-	(test_client_list_LDADD): Likewise.</div><div class='del'>-</div><div class='del'>-	* gui/component/addressbook-factory.c</div><div class='del'>-	(init_corba): New helper function, implemented differently</div><div class='del'>-	according to `USING_OAF'.</div><div class='del'>-	(main): Call `init_corba()'.</div><div class='del'>-</div><div class='del'>-2000-04-27  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added file as,</div><div class='del'>-	office, manager, assistant, spouse, and anniversary fields.  These</div><div class='del'>-	all use "X-EVOLUTION-" fields in the VCards.</div><div class='del'>-</div><div class='del'>-	* backend/pas/pas-backend-file.c: Added all the new fields (except</div><div class='del'>-	anniversary) to the list of fields.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Fixed some misnamed</div><div class='del'>-	fields and fixed the placement of the comments field.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Made the newly added fields</div><div class='del'>-	display properly.</div><div class='del'>-</div><div class='del'>-	* Makefile.am: Added ename.</div><div class='del'>-</div><div class='del'>-	* ename/e-name-western.h, ename/test-ename-western-gtk.c,</div><div class='del'>-	ename/test-ename-western.c: Fixed up some #includes.</div><div class='del'>-</div><div class='del'>-	* ename/.cvsignore: Added .cvsignore.</div><div class='del'>-</div><div class='del'>-2000-04-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-types.h, backend/ebook/e-card.c,</div><div class='del'>-	backend/ebook/e-card.h: Added an address label field.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Got rid of some unused</div><div class='del'>-	fields.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Added the address label field.</div><div class='del'>-	Load only.  Editing these fields seems to mess things up.</div><div class='del'>-</div><div class='del'>-2000-04-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c: Added proper handling of the</div><div class='del'>-	email field.</div><div class='del'>-</div><div class='del'>-2000-04-26  Christopher James Lahey  &lt;clahey@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* backend/ebook/e-card-types.h, backend/ebook/e-card.c,</div><div class='del'>-	gui/minicard/e-minicard.c: Prefixed the ADDR_ flags.</div><div class='del'>-</div><div class='del'>-	* contact-editor/contact-editor.glade,</div><div class='del'>-	contact-editor/e-contact-editor-strings.h: Edited the glade file.</div><div class='del'>-	Removed all the fields that we don't use.</div><div class='del'>-</div><div class='del'>-	* contact-editor/e-contact-editor.c,</div><div class='del'>-	contact-editor/e-contact-editor.h: Made the phone fields work</div><div class='del'>-	properly.  The address and email fields are temporarily turned off</div><div class='del'>-	until they can be made to work as the phone fields do.</div><div class='del'>-</div><div class='del'>-2000-04-25  Ettore Perazzoli  &lt;ettore@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am (INCLUDES): Use</div><div class='del'>-	`$(BONOBO_GNOME_CFLAGS)'.</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am (idl_flags): Add `-I $(datadir)/idl' to</div><div class='del'>-	pick up IDL files in the installation prefix as well.</div><div class='del'>-	(INCLUDES): Use `$(BONOBO_GNOME_CFLAGS)'.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am (ORBIT_IDL): Use `-I $(datadir)/idl'</div><div class='del'>-	to get the IDLs from the installation prefix as well.</div><div class='del'>-	(INCLUDES): Add `$(BONOBO_GNOME_CFLAGS)'.</div><div class='del'>-	(test_client_LDADD): Use `$(BONOBO_GNOME_LIBS)' instead of</div><div class='del'>-	hardcoding `-lbonobo'!  Also get rid of some other useless flags,</div><div class='del'>-	as `$(BONOBO_GNOME_LIBS)' really has all what we need.</div><div class='del'>-	(test_client_list_LDADD): Likewise.</div><div class='del'>-	(test_card_LDADD): Likewise.</div><div class='del'>-</div><div class='del'>-2000-04-18  Federico Mena Quintero  &lt;federico@helixcode.com&gt;</div><div class='del'>-</div><div class='del'>-	* gui/minicard/Makefile.am (INCLUDES): Use "e-minicard" as the log</div><div class='del'>-	domain.</div><div class='del'>-</div><div class='del'>-	* gui/component/Makefile.am (INCLUDES): Use</div><div class='del'>-	"evolution-addressbook" as the log domain.</div><div class='del'>-</div><div class='del'>-	* backend/pas/Makefile.am: Build libpas.a, not a shared library.</div><div class='del'>-	Do not install any header files.</div><div class='del'>-	(INCLUDES): Remove spurious include paths.</div><div class='del'>-</div><div class='del'>-	* backend/pas/*.[ch]: Fix includes.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/Makefile.am: Do not install the test programs.</div><div class='del'>-	Fixed some include weirdness.</div><div class='del'>-</div><div class='del'>-	* backend/ebook/*.[ch]: Fix includes.</div><div class='del'>-</div><div class='del'>-	* contact-editor/Makefile.am (INCLUDES): Set the log domain to</div><div class='del'>-	"contact-editor".</div><div class='del'>-	(INCLUDES): Fix.</div><div class='del'>-</div><div class='del'>-	* contact-editor/*.[ch]: Fix includes.</div><div class='del'>-</div><div class='del'>-	* gui/minicard/*.[ch]: Fix includes.</div><div class='del'>-</div><div class='del'>-	* ChangeLog: Started a ChangeLog here.</div><div class='head'>diff --git a/addressbook/E-CARD-NEEDED-FIELDS b/addressbook/E-CARD-NEEDED-FIELDS<br/>deleted file mode 100644<br/>index e227d1b130..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/E-CARD-NEEDED-FIELDS?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/E-CARD-NEEDED-FIELDS</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-I will add these fields as I get a chance to.</div><div class='del'>-</div><div class='del'>-Thanks,</div><div class='del'>-    Chris Lahey</div><div class='del'>-</div><div class='del'>-X-EVOLUTION-LIST			boolean if this is a mailing list.</div><div class='del'>-X-EVOLUTION-LIST-SHOW-ADDRESSES		boolean whether to list all email addresses in the To: line or to treat the list kind of like a BCC.</div><div class='del'>-X-EVOLUTION-RELATED-CONTACTS		EDestionationList of related contacts.</div><div class='del'>-REV					last changed date.
\ No newline at end of file</div><div class='head'>diff --git a/addressbook/Makefile.am b/addressbook/Makefile.am<br/>deleted file mode 100644<br/>index 9aad9c1b30..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-if ENABLE_PILOT_CONDUITS</div><div class='del'>-CONDUIT_SUBDIR=conduit</div><div class='del'>-endif</div><div class='del'>-</div><div class='del'>-SUBDIRS =	\</div><div class='del'>-	backend printing gui $(CONDUIT_SUBDIR)</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/.cvsignore b/addressbook/backend/.cvsignore<br/>deleted file mode 100644<br/>index 09980ae6ba..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='head'>diff --git a/addressbook/backend/Makefile.am b/addressbook/backend/Makefile.am<br/>deleted file mode 100644<br/>index b2807b2480..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1 +0,0 @@</div><div class='del'>-SUBDIRS = idl ebook pas</div><div class='head'>diff --git a/addressbook/backend/ebook/.cvsignore b/addressbook/backend/ebook/.cvsignore<br/>deleted file mode 100644<br/>index deec6ea2e7..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,25 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-.pure</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='del'>-addressbook-stubs.c</div><div class='del'>-addressbook-skels.c</div><div class='del'>-addressbook-common.c</div><div class='del'>-addressbook.h</div><div class='del'>-test-card</div><div class='del'>-test-client</div><div class='del'>-test-client-list</div><div class='del'>-load-pine-addressbook</div><div class='del'>-load-gnomecard-addressbook</div><div class='del'>-evolution-vcard-importer</div><div class='del'>-evolution-gnomecard-importer</div><div class='del'>-evolution-ldif-importer</div><div class='del'>-Evolution-Composer-stubs.c</div><div class='del'>-Evolution-Composer-skels.c</div><div class='del'>-Evolution-Composer-common.c</div><div class='del'>-Evolution-Composer.h</div><div class='del'>-GNOME_Evolution_Addressbook_VCard_Importer.oaf</div><div class='del'>-GNOME_Evolution_Addressbook_LDIF_Importer.oaf</div><div class='head'>diff --git a/addressbook/backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in b/addressbook/backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in<br/>deleted file mode 100644<br/>index b022dcde67..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,29 +0,0 @@</div><div class='del'>-&lt;oaf_info&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_LDIF_ImporterFactory"</div><div class='del'>-	    type="exe"</div><div class='del'>-	    location="evolution-ldif-importer"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/ObjectFactory:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="Factory to import LDIF files into Evolution."/&gt;</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_LDIF_Importer"</div><div class='del'>-	    type="factory"</div><div class='del'>-	    location="OAFIID:GNOME_Evolution_Addressbook_LDIF_ImporterFactory"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/Evolution/Importer:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="evolution:menu-name" type="string"</div><div class='del'>-		       value="LDAP Data Interchange Format (.ldif)"/&gt;</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="Imports LDIF files into Evolution."/&gt;</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_info&gt;</div><div class='head'>diff --git a/addressbook/backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in b/addressbook/backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in<br/>deleted file mode 100644<br/>index 9cd4699633..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,29 +0,0 @@</div><div class='del'>-&lt;oaf_info&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_VCard_ImporterFactory"</div><div class='del'>-	    type="exe"</div><div class='del'>-	    location="evolution-vcard-importer"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/ObjectFactory:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="Factory to import VCard files into Evolution."/&gt;</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_VCard_Importer"</div><div class='del'>-	    type="factory"</div><div class='del'>-	    location="OAFIID:GNOME_Evolution_Addressbook_VCard_ImporterFactory"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/Evolution/Importer:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="evolution:menu-name" type="string"</div><div class='del'>-		       value="VCard (.vcf, .gcrd)"/&gt;</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="Imports VCard files into Evolution."/&gt;</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_info&gt;</div><div class='head'>diff --git a/addressbook/backend/ebook/Makefile.am b/addressbook/backend/ebook/Makefile.am<br/>deleted file mode 100644<br/>index ea49ad47f3..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,203 +0,0 @@</div><div class='del'>-noinst_PROGRAMS = test-card test-client test-client-list</div><div class='del'>-</div><div class='del'>-bin_PROGRAMS =	evolution-vcard-importer 		\</div><div class='del'>-		evolution-ldif-importer			\</div><div class='del'>-		load-pine-addressbook			\</div><div class='del'>-		load-gnomecard-addressbook</div><div class='del'>-</div><div class='del'>-CORBA_SOURCE =						\</div><div class='del'>-	addressbook.h					\</div><div class='del'>-	addressbook-common.c				\</div><div class='del'>-	addressbook-stubs.c				\</div><div class='del'>-	addressbook-skels.c				\</div><div class='del'>-        Evolution-Composer.h              \</div><div class='del'>-        Evolution-Composer-common.c       \</div><div class='del'>-        Evolution-Composer-skels.c        \</div><div class='del'>-        Evolution-Composer-stubs.c</div><div class='del'>-</div><div class='del'>-idls =							\</div><div class='del'>-	$(srcdir)/../idl/addressbook.idl		\</div><div class='del'>-	$(srcdir)/../../../composer/Evolution-Composer.idl</div><div class='del'>-</div><div class='del'>-idl_flags = `$(GNOME_CONFIG) --cflags idl` -I $(datadir)/idl</div><div class='del'>-</div><div class='del'>-$(CORBA_SOURCE): $(idls)</div><div class='del'>-	$(ORBIT_IDL) -I $(srcdir) $(idls) $(idl_flags)</div><div class='del'>-</div><div class='del'>-INCLUDES =						\</div><div class='del'>-        -DGNOMELOCALEDIR=\""$(localedir)"\"        \</div><div class='del'>-	-DG_LOG_DOMAIN=\"EBook\"			\</div><div class='del'>-	-I$(top_srcdir) 				\</div><div class='del'>-	-I$(top_srcdir)/camel				\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend		\</div><div class='del'>-	-I$(top_srcdir)/addressbook/ename		\</div><div class='del'>-	-I$(top_builddir)/addressbook/backend		\</div><div class='del'>-	-I$(top_builddir)/addressbook/ename		\</div><div class='del'>-	-I$(top_builddir)/shell				\</div><div class='del'>-	-I$(top_srcdir)/shell				\</div><div class='del'>-        $(BONOBO_GNOME_CFLAGS)				\</div><div class='del'>-	$(EXTRA_GNOME_CFLAGS)</div><div class='del'>-</div><div class='del'>-lib_LTLIBRARIES = libebook.la</div><div class='del'>-</div><div class='del'>-libebook_la_SOURCES =					\</div><div class='del'>-	$(CORBA_SOURCE)					\</div><div class='del'>-	e-book-listener.c				\</div><div class='del'>-	e-book-view-listener.c				\</div><div class='del'>-	e-book-view.c					\</div><div class='del'>-	e-book.c					\</div><div class='del'>-	e-book-util.c					\</div><div class='del'>-	e-card-cursor.c					\</div><div class='del'>-	e-card-simple.c					\</div><div class='del'>-	e-card.c					\</div><div class='del'>-	e-card-compare.c				\</div><div class='del'>-	e-destination.c</div><div class='del'>-</div><div class='del'>-libebookincludedir = $(includedir)/evolution/ebook</div><div class='del'>-</div><div class='del'>-libebookinclude_HEADERS =				\</div><div class='del'>-	e-book-listener.h				\</div><div class='del'>-	e-book-types.h					\</div><div class='del'>-	e-book-view-listener.h				\</div><div class='del'>-	e-book-view.h					\</div><div class='del'>-	e-book.h					\</div><div class='del'>-	e-book-util.h					\</div><div class='del'>-	e-card-cursor.h					\</div><div class='del'>-	e-card-simple.h					\</div><div class='del'>-	e-card-types.h					\</div><div class='del'>-	e-card.h					\</div><div class='del'>-	e-card-compare.h				\</div><div class='del'>-	e-destination.h</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#</div><div class='del'>-# make a static library for use by addressbook's conduit's shared library</div><div class='del'>-#</div><div class='del'>-noinst_LTLIBRARIES = libebook-static.la</div><div class='del'>-libebook_static_la_SOURCES = $(libebook_la_SOURCES)</div><div class='del'>-libebook_static_la_LDFLAGS = --all-static</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-test_client_SOURCES =					\</div><div class='del'>-	test-client.c</div><div class='del'>-</div><div class='del'>-test_client_LDADD =					\</div><div class='del'>-	libebook.la					\</div><div class='del'>-	$(BONOBO_CONF_LIBS)				\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)				\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)				\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la		\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la		\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la		\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la	\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la</div><div class='del'>-</div><div class='del'>-test_client_list_SOURCES =				\</div><div class='del'>-	test-client-list.c</div><div class='del'>-</div><div class='del'>-test_client_list_LDADD =				\</div><div class='del'>-	libebook.la					\</div><div class='del'>-	$(BONOBO_CONF_LIBS)				\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)				\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)				\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la		\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la		\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la	\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la		\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la</div><div class='del'>-</div><div class='del'>-test_card_SOURCES =					\</div><div class='del'>-	test-card.c</div><div class='del'>-</div><div class='del'>-test_card_LDADD =					\</div><div class='del'>-	libebook.la					\</div><div class='del'>-	$(BONOBO_CONF_LIBS)				\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)				\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)				\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la		\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la		\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la	\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la		\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la</div><div class='del'>-</div><div class='del'>-evolution_vcard_importer_SOURCES =			\</div><div class='del'>-	evolution-vcard-importer.c</div><div class='del'>-evolution_vcard_importer_LDADD =				\</div><div class='del'>-	libebook.la						\</div><div class='del'>-	$(BONOBO_CONF_LIBS)					\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)					\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)					\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la			\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la		\</div><div class='del'>-	$(top_builddir)/shell/importer/libevolution-importer.la \</div><div class='del'>-	$(DB3_LDADD)						\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la		\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la			\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la</div><div class='del'>-</div><div class='del'>-evolution_ldif_importer_SOURCES =			\</div><div class='del'>-	evolution-ldif-importer.c</div><div class='del'>-evolution_ldif_importer_LDADD =				\</div><div class='del'>-	libebook.la						\</div><div class='del'>-	$(BONOBO_CONF_LIBS)					\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)					\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)					\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la			\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la		\</div><div class='del'>-	$(top_builddir)/shell/importer/libevolution-importer.la \</div><div class='del'>-	$(DB3_LDADD)						\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la		\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la			\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la</div><div class='del'>-</div><div class='del'>-load_pine_addressbook_SOURCES =				\</div><div class='del'>-	load-pine-addressbook.c</div><div class='del'>-</div><div class='del'>-load_pine_addressbook_LDADD =				\</div><div class='del'>-	libebook.la					\</div><div class='del'>-	$(BONOBO_CONF_LIBS)				\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)				\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)				\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la		\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la		\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la	\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la		\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-load_gnomecard_addressbook_SOURCES =			\</div><div class='del'>-	load-gnomecard-addressbook.c</div><div class='del'>-</div><div class='del'>-load_gnomecard_addressbook_LDADD =			\</div><div class='del'>-	libebook.la					\</div><div class='del'>-	$(BONOBO_CONF_LIBS)				\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)				\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)				\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la		\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la		\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la	\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la		\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-BUILT_SOURCES = $(CORBA_SOURCE)</div><div class='del'>-CLEANFILES    = $(BUILT_SOURCES)</div><div class='del'>-</div><div class='del'>-dist-hook:</div><div class='del'>-	cd $(distdir); rm -f $(BUILT_SOURCES)</div><div class='del'>-</div><div class='del'>-oafdir = $(datadir)/oaf</div><div class='del'>-oaf_in_files =	GNOME_Evolution_Addressbook_VCard_Importer.oaf.in \</div><div class='del'>-		GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in</div><div class='del'>-oaf_DATA = $(oaf_in_files:.oaf.in=.oaf)</div><div class='del'>-</div><div class='del'>-@XML_I18N_MERGE_OAF_RULE@</div><div class='del'>-</div><div class='del'>-# add this back when you add the file to the archive ;)</div><div class='del'>-#	GNOME_Evolution_Addressbook_Pine_Importer.oafinfo</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = $(oaf_in_files) $(oaf_DATA)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/TODO b/addressbook/backend/ebook/TODO<br/>deleted file mode 100644<br/>index a69703cd92..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/TODO?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/TODO</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2 +0,0 @@</div><div class='del'>-* Make sure open_book_progress does not use the EBook op queue; make</div><div class='del'>-  sure it works.</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-listener.c b/addressbook/backend/ebook/e-book-listener.c<br/>deleted file mode 100644<br/>index a66701847d..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-listener.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-listener.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,826 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Exports the BookListener interface.  Maintains a queue of messages</div><div class='del'>- * which come in on the interface.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include "e-book-listener.h"</div><div class='del'>-</div><div class='del'>-static EBookStatus e_book_listener_convert_status (GNOME_Evolution_Addressbook_BookListener_CallStatus status);</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	RESPONSES_QUEUED,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint e_book_listener_signals [LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-static BonoboObjectClass          *e_book_listener_parent_class;</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookListener__vepv  e_book_listener_vepv;</div><div class='del'>-</div><div class='del'>-struct _EBookListenerPrivate {</div><div class='del'>-	GList   *response_queue;</div><div class='del'>-	gint     timeout_id;</div><div class='del'>-</div><div class='del'>-	guint timeout_lock : 1;</div><div class='del'>-	guint stopped      : 1;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-response_free (EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	if (resp == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	g_free (resp-&gt;msg);</div><div class='del'>-	g_free (resp-&gt;id);</div><div class='del'>-</div><div class='del'>-	if (resp-&gt;book != CORBA_OBJECT_NIL) {</div><div class='del'>-		CORBA_Environment ev;</div><div class='del'>-		</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-		</div><div class='del'>-		bonobo_object_release_unref (resp-&gt;book, &amp;ev);</div><div class='del'>-		</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("e_book_listener_destroy: "</div><div class='del'>-				   "Exception destroying book "</div><div class='del'>-				   "in response queue!\n");</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (resp-&gt;cursor != CORBA_OBJECT_NIL) {</div><div class='del'>-		CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-		</div><div class='del'>-		bonobo_object_release_unref (resp-&gt;cursor, &amp;ev);</div><div class='del'>-</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("e_book_listener_destroy: "</div><div class='del'>-				   "Exception destroying cursor "</div><div class='del'>-				   "in response queue!\n");</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (resp-&gt;book_view != CORBA_OBJECT_NIL) {</div><div class='del'>-		CORBA_Environment ev;</div><div class='del'>-		</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-		</div><div class='del'>-		bonobo_object_release_unref (resp-&gt;book_view, &amp;ev);</div><div class='del'>-		</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("e_book_listener_destroy: "</div><div class='del'>-				   "Exception destroying book_view "</div><div class='del'>-				   "in response queue!\n");</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	g_free (resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_book_listener_check_queue (EBookListener *listener)</div><div class='del'>-{</div><div class='del'>-	if (listener-&gt;priv-&gt;timeout_lock)</div><div class='del'>-		return TRUE;</div><div class='del'>-</div><div class='del'>-	listener-&gt;priv-&gt;timeout_lock = TRUE;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;response_queue != NULL &amp;&amp; !listener-&gt;priv-&gt;stopped) {</div><div class='del'>-		gtk_signal_emit (GTK_OBJECT (listener), e_book_listener_signals [RESPONSES_QUEUED]);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;response_queue == NULL || listener-&gt;priv-&gt;stopped) {</div><div class='del'>-		listener-&gt;priv-&gt;timeout_id = 0;</div><div class='del'>-		listener-&gt;priv-&gt;timeout_lock = FALSE;</div><div class='del'>-		bonobo_object_unref (BONOBO_OBJECT (listener)); /* release the timeout's reference */</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	listener-&gt;priv-&gt;timeout_lock = FALSE;</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_response (EBookListener         *listener,</div><div class='del'>-				EBookListenerResponse *response)</div><div class='del'>-{</div><div class='del'>-	if (response == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped) {</div><div class='del'>-		response_free (response);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	listener-&gt;priv-&gt;response_queue = g_list_append (listener-&gt;priv-&gt;response_queue, response);</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;timeout_id == 0) {</div><div class='del'>-</div><div class='del'>-		/* 20 == an arbitrary small integer */</div><div class='del'>-		listener-&gt;priv-&gt;timeout_id = g_timeout_add (20, (GSourceFunc) e_book_listener_check_queue, listener);</div><div class='del'>-</div><div class='del'>-		/* Hold a reference on behalf of the timeout */</div><div class='del'>-		bonobo_object_ref (BONOBO_OBJECT (listener));</div><div class='del'>-		</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Add, Remove, Modify */</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_generic_response (EBookListener          *listener,</div><div class='del'>-					EBookListenerOperation  op,</div><div class='del'>-					EBookStatus             status)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op     = op;</div><div class='del'>-	resp-&gt;status = status;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_open_response (EBookListener  *listener,</div><div class='del'>-				     EBookStatus     status,</div><div class='del'>-				     GNOME_Evolution_Addressbook_Book  book)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op     = OpenBookResponse;</div><div class='del'>-	resp-&gt;status = status;</div><div class='del'>-	resp-&gt;book   = book;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_open_progress (EBookListener *listener,</div><div class='del'>-				     const char    *msg,</div><div class='del'>-				     short          percent)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op      = OpenProgressEvent;</div><div class='del'>-	resp-&gt;msg     = g_strdup (msg);</div><div class='del'>-	resp-&gt;percent = percent;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_create_card_response (EBookListener *listener,</div><div class='del'>-					    EBookStatus    status,</div><div class='del'>-					    const char    *id)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op     = CreateCardResponse;</div><div class='del'>-	resp-&gt;status = status;</div><div class='del'>-	resp-&gt;id     = g_strdup (id);</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_get_vcard_response (EBookListener        *listener,</div><div class='del'>-					  EBookStatus           status,</div><div class='del'>-					  const char           *vcard)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-	</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp         = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op     = GetCardResponse;</div><div class='del'>-	resp-&gt;status = status;</div><div class='del'>-	resp-&gt;vcard  = g_strdup (vcard);</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_get_cursor_response (EBookListener        *listener,</div><div class='del'>-					   EBookStatus           status,</div><div class='del'>-					   GNOME_Evolution_Addressbook_CardCursor  cursor)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-	</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op     = GetCursorResponse;</div><div class='del'>-	resp-&gt;status = status;</div><div class='del'>-	resp-&gt;cursor = cursor;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_get_view_response (EBookListener        *listener,</div><div class='del'>-					 EBookStatus           status,</div><div class='del'>-					 GNOME_Evolution_Addressbook_BookView    book_view)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-	</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = GetBookViewResponse;</div><div class='del'>-	resp-&gt;status    = status;</div><div class='del'>-	resp-&gt;book_view = book_view;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_get_changes_response (EBookListener        *listener,</div><div class='del'>-					    EBookStatus           status,</div><div class='del'>-					    GNOME_Evolution_Addressbook_BookView book_view)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-	</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = GetChangesResponse;</div><div class='del'>-	resp-&gt;status    = status;</div><div class='del'>-	resp-&gt;book_view = book_view;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_link_status (EBookListener *listener,</div><div class='del'>-				   gboolean       connected)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = LinkStatusEvent;</div><div class='del'>-	resp-&gt;connected = connected;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_writable_status (EBookListener *listener,</div><div class='del'>-				       gboolean       writable)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = WritableStatusEvent;</div><div class='del'>-	resp-&gt;writable  = writable;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_authentication_response (EBookListener *listener,</div><div class='del'>-					       EBookStatus    status)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op     = AuthenticationResponse;</div><div class='del'>-	resp-&gt;status = status;</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_queue_get_supported_fields_response (EBookListener *listener,</div><div class='del'>-						     EBookStatus status,</div><div class='del'>-						     const GNOME_Evolution_Addressbook_stringlist *fields)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op     = GetSupportedFieldsResponse;</div><div class='del'>-	resp-&gt;status = status;</div><div class='del'>-	resp-&gt;fields = e_list_new ((EListCopyFunc)g_strdup, (EListFreeFunc)g_free, NULL);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; fields-&gt;_length; i ++) {</div><div class='del'>-		e_list_append (resp-&gt;fields, fields-&gt;_buffer[i]);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_create_card (PortableServer_Servant                   servant,</div><div class='del'>-				       const GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-				       const GNOME_Evolution_Addressbook_CardId id,</div><div class='del'>-				       CORBA_Environment                       *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_create_card_response (</div><div class='del'>-		listener,</div><div class='del'>-		e_book_listener_convert_status (status),</div><div class='del'>-		id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_remove_card (PortableServer_Servant servant,</div><div class='del'>-				       const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-				       CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_generic_response (</div><div class='del'>-		listener, RemoveCardResponse,</div><div class='del'>-		e_book_listener_convert_status (status));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_modify_card (PortableServer_Servant servant,</div><div class='del'>-				       const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-				       CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_generic_response (</div><div class='del'>-		listener, ModifyCardResponse,</div><div class='del'>-		e_book_listener_convert_status (status));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_get_vcard (PortableServer_Servant servant,</div><div class='del'>-				     const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-				     const GNOME_Evolution_Addressbook_VCard card,</div><div class='del'>-				     CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener        *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_get_vcard_response (</div><div class='del'>-		listener,</div><div class='del'>-		e_book_listener_convert_status (status),</div><div class='del'>-		g_strdup (card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_get_cursor (PortableServer_Servant servant,</div><div class='del'>-				      const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-				      const GNOME_Evolution_Addressbook_CardCursor cursor,</div><div class='del'>-				      CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener        *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-	GNOME_Evolution_Addressbook_CardCursor  cursor_copy;</div><div class='del'>-</div><div class='del'>-	cursor_copy = bonobo_object_dup_ref (cursor, ev);</div><div class='del'>-</div><div class='del'>-	if (ev-&gt;_major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("EBookListener: Exception while duplicating CardCursor!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_get_cursor_response (</div><div class='del'>-		listener,</div><div class='del'>-		e_book_listener_convert_status (status),</div><div class='del'>-		cursor_copy);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_get_view (PortableServer_Servant servant,</div><div class='del'>-				    const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-				    const GNOME_Evolution_Addressbook_BookView book_view,</div><div class='del'>-				    CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener        *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-	GNOME_Evolution_Addressbook_BookView    book_view_copy;</div><div class='del'>-</div><div class='del'>-	book_view_copy = bonobo_object_dup_ref (book_view, ev);</div><div class='del'>-</div><div class='del'>-	if (ev-&gt;_major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("EBookListener: Exception while duplicating BookView.\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_get_view_response (</div><div class='del'>-		listener,</div><div class='del'>-		e_book_listener_convert_status (status),</div><div class='del'>-		book_view_copy);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_get_changes (PortableServer_Servant servant,</div><div class='del'>-				       const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-				       const GNOME_Evolution_Addressbook_BookView book_view,</div><div class='del'>-				       CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener        *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-	GNOME_Evolution_Addressbook_BookView    book_view_copy;</div><div class='del'>-</div><div class='del'>-	book_view_copy = bonobo_object_dup_ref (book_view, ev);</div><div class='del'>-</div><div class='del'>-	if (ev-&gt;_major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("EBookListener: Exception while duplicating BookView.\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_get_changes_response (</div><div class='del'>-		listener,</div><div class='del'>-		e_book_listener_convert_status (status),</div><div class='del'>-		book_view_copy);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_open_book (PortableServer_Servant servant,</div><div class='del'>-				     const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-				     const GNOME_Evolution_Addressbook_Book book,</div><div class='del'>-				     CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener  *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-	GNOME_Evolution_Addressbook_Book  book_copy;</div><div class='del'>-</div><div class='del'>-	book_copy = bonobo_object_dup_ref (book, ev);</div><div class='del'>-</div><div class='del'>-	if (ev-&gt;_major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("EBookListener: Exception while duplicating Book!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_open_response (</div><div class='del'>-		listener,</div><div class='del'>-		e_book_listener_convert_status (status),</div><div class='del'>-		book_copy);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_report_open_book_progress (PortableServer_Servant servant,</div><div class='del'>-					     const CORBA_char *status_message,</div><div class='del'>-					     const CORBA_short percent,</div><div class='del'>-					     CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_open_progress (</div><div class='del'>-		listener, status_message, percent);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_respond_authentication_result (PortableServer_Servant servant,</div><div class='del'>-						 const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-						 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_authentication_response (</div><div class='del'>-				       listener, status);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_response_get_supported_fields (PortableServer_Servant servant,</div><div class='del'>-						 const GNOME_Evolution_Addressbook_BookListener_CallStatus status,</div><div class='del'>-						 const GNOME_Evolution_Addressbook_stringlist *fields,</div><div class='del'>-						 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_get_supported_fields_response (</div><div class='del'>-				     listener, status, fields);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_report_connection_status (PortableServer_Servant servant,</div><div class='del'>-					    const CORBA_boolean connected,</div><div class='del'>-					    CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_link_status (</div><div class='del'>-		listener, connected);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookListener_report_writable (PortableServer_Servant servant,</div><div class='del'>-				   const CORBA_boolean writable,</div><div class='del'>-				   CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_listener_queue_writable_status (listener, writable);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_listener_check_pending:</div><div class='del'>- * @listener: the #EBookListener </div><div class='del'>- *</div><div class='del'>- * Returns: the number of items on the response queue,</div><div class='del'>- * or -1 if the @listener is isn't an #EBookListener.</div><div class='del'>- */</div><div class='del'>-int</div><div class='del'>-e_book_listener_check_pending (EBookListener *listener)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (listener != NULL,              -1);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK_LISTENER (listener), -1);</div><div class='del'>-</div><div class='del'>-	return g_list_length (listener-&gt;priv-&gt;response_queue);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_listener_pop_response:</div><div class='del'>- * @listener: the #EBookListener for which a request is to be popped</div><div class='del'>- *</div><div class='del'>- * Returns: an #EBookListenerResponse if there are responses on the</div><div class='del'>- * queue to be returned; %NULL if there aren't, or if the @listener</div><div class='del'>- * isn't an EBookListener.</div><div class='del'>- */</div><div class='del'>-EBookListenerResponse *</div><div class='del'>-e_book_listener_pop_response (EBookListener *listener)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-	GList                 *popped;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (listener != NULL,              NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK_LISTENER (listener), NULL);</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;response_queue == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	resp = listener-&gt;priv-&gt;response_queue-&gt;data;</div><div class='del'>-</div><div class='del'>-	popped = listener-&gt;priv-&gt;response_queue;</div><div class='del'>-	listener-&gt;priv-&gt;response_queue =</div><div class='del'>-		g_list_remove_link (listener-&gt;priv-&gt;response_queue,</div><div class='del'>-				    listener-&gt;priv-&gt;response_queue);</div><div class='del'>-	g_list_free_1 (popped);</div><div class='del'>-</div><div class='del'>-	return resp;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static EBookStatus</div><div class='del'>-e_book_listener_convert_status (const GNOME_Evolution_Addressbook_BookListener_CallStatus status)</div><div class='del'>-{</div><div class='del'>-	switch (status) {</div><div class='del'>-	case GNOME_Evolution_Addressbook_BookListener_Success:</div><div class='del'>-		return E_BOOK_STATUS_SUCCESS;</div><div class='del'>-	case GNOME_Evolution_Addressbook_BookListener_RepositoryOffline:</div><div class='del'>-		return E_BOOK_STATUS_REPOSITORY_OFFLINE;</div><div class='del'>-	case GNOME_Evolution_Addressbook_BookListener_PermissionDenied:</div><div class='del'>-		return E_BOOK_STATUS_PERMISSION_DENIED;</div><div class='del'>-	case GNOME_Evolution_Addressbook_BookListener_CardNotFound:</div><div class='del'>-		return E_BOOK_STATUS_CARD_NOT_FOUND;</div><div class='del'>-	case GNOME_Evolution_Addressbook_BookListener_CardIdAlreadyExists:</div><div class='del'>-		return E_BOOK_STATUS_CARD_ID_ALREADY_EXISTS;</div><div class='del'>-	case GNOME_Evolution_Addressbook_BookListener_ProtocolNotSupported:</div><div class='del'>-		return E_BOOK_STATUS_PROTOCOL_NOT_SUPPORTED;</div><div class='del'>-	case GNOME_Evolution_Addressbook_BookListener_OtherError:</div><div class='del'>-		return E_BOOK_STATUS_OTHER_ERROR;</div><div class='del'>-	default:</div><div class='del'>-		g_warning ("e_book_listener_convert_status: Unknown status "</div><div class='del'>-			   "from card server: %d\n", (int) status);</div><div class='del'>-		return E_BOOK_STATUS_UNKNOWN;</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static EBookListener *</div><div class='del'>-e_book_listener_construct (EBookListener *listener)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookListener *servant;</div><div class='del'>-	CORBA_Environment           ev;</div><div class='del'>-	CORBA_Object                obj;</div><div class='del'>-</div><div class='del'>-	g_assert (listener != NULL);</div><div class='del'>-	g_assert (E_IS_BOOK_LISTENER (listener));</div><div class='del'>-</div><div class='del'>-	servant = (POA_GNOME_Evolution_Addressbook_BookListener *) g_new0 (BonoboObjectServant, 1);</div><div class='del'>-	servant-&gt;vepv = &amp;e_book_listener_vepv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookListener__init ((PortableServer_Servant) servant, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	obj = bonobo_object_activate_servant (BONOBO_OBJECT (listener), servant);</div><div class='del'>-	if (obj == CORBA_OBJECT_NIL) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_object_construct (BONOBO_OBJECT (listener), obj);</div><div class='del'>-</div><div class='del'>-	return listener;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_listener_new:</div><div class='del'>- * @book: the #EBook for which the listener is to be bound</div><div class='del'>- *</div><div class='del'>- * Creates and returns a new #EBookListener for the book.</div><div class='del'>- *</div><div class='del'>- * Returns: a new #EBookListener</div><div class='del'>- */</div><div class='del'>-EBookListener *</div><div class='del'>-e_book_listener_new ()</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener;</div><div class='del'>-	EBookListener *retval;</div><div class='del'>-</div><div class='del'>-	listener = gtk_type_new (E_BOOK_LISTENER_TYPE);</div><div class='del'>-</div><div class='del'>-	retval = e_book_listener_construct (listener);</div><div class='del'>-</div><div class='del'>-	if (retval == NULL) {</div><div class='del'>-		g_warning ("e_book_listener_new: Error constructing "</div><div class='del'>-			   "EBookListener!\n");</div><div class='del'>-		bonobo_object_unref (BONOBO_OBJECT (listener));</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_init (EBookListener *listener)</div><div class='del'>-{</div><div class='del'>-	listener-&gt;priv = g_new0 (EBookListenerPrivate, 1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_listener_stop (EBookListener *listener)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_BOOK_LISTENER (listener));</div><div class='del'>-</div><div class='del'>-	listener-&gt;priv-&gt;stopped = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	EBookListener *listener = E_BOOK_LISTENER (object);</div><div class='del'>-	GList *l;</div><div class='del'>-</div><div class='del'>-	/* Remove our response queue handler: In theory, this can never happen since we</div><div class='del'>-	 always hold a reference to the listener while the timeout is running. */</div><div class='del'>-	if (listener-&gt;priv-&gt;timeout_id) {</div><div class='del'>-		g_source_remove (listener-&gt;priv-&gt;timeout_id);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Clean up anything still sitting in response_queue */</div><div class='del'>-	for (l = listener-&gt;priv-&gt;response_queue; l != NULL; l = l-&gt;next) {</div><div class='del'>-		EBookListenerResponse *resp = l-&gt;data;</div><div class='del'>-</div><div class='del'>-		response_free (resp);</div><div class='del'>-	}</div><div class='del'>-	g_list_free (listener-&gt;priv-&gt;response_queue);</div><div class='del'>-</div><div class='del'>-	g_free (listener-&gt;priv);</div><div class='del'>-	</div><div class='del'>-	GTK_OBJECT_CLASS (e_book_listener_parent_class)-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookListener__epv *</div><div class='del'>-e_book_listener_get_epv (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookListener__epv *epv;</div><div class='del'>-</div><div class='del'>-	epv                             = g_new0 (POA_GNOME_Evolution_Addressbook_BookListener__epv, 1);</div><div class='del'>-</div><div class='del'>-	epv-&gt;notifyOpenBookProgress     = impl_BookListener_report_open_book_progress;</div><div class='del'>-	epv-&gt;notifyBookOpened           = impl_BookListener_respond_open_book;</div><div class='del'>-</div><div class='del'>-	epv-&gt;notifyCardCreated          = impl_BookListener_respond_create_card;</div><div class='del'>-	epv-&gt;notifyCardRemoved          = impl_BookListener_respond_remove_card;</div><div class='del'>-	epv-&gt;notifyCardModified         = impl_BookListener_respond_modify_card;</div><div class='del'>-</div><div class='del'>-	epv-&gt;notifyAuthenticationResult = impl_BookListener_respond_authentication_result;</div><div class='del'>-	epv-&gt;notifySupportedFields      = impl_BookListener_response_get_supported_fields;</div><div class='del'>-</div><div class='del'>-	epv-&gt;notifyCardRequested        = impl_BookListener_respond_get_vcard;</div><div class='del'>-	epv-&gt;notifyCursorRequested      = impl_BookListener_respond_get_cursor;</div><div class='del'>-	epv-&gt;notifyViewRequested        = impl_BookListener_respond_get_view;</div><div class='del'>-	epv-&gt;notifyChangesRequested     = impl_BookListener_respond_get_changes;</div><div class='del'>-</div><div class='del'>-	epv-&gt;notifyConnectionStatus     = impl_BookListener_report_connection_status;</div><div class='del'>-	epv-&gt;notifyWritable             = impl_BookListener_report_writable;</div><div class='del'>-</div><div class='del'>-	return epv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_corba_class_init (void)</div><div class='del'>-{</div><div class='del'>-	e_book_listener_vepv.Bonobo_Unknown_epv          = bonobo_object_get_epv ();</div><div class='del'>-	e_book_listener_vepv.GNOME_Evolution_Addressbook_BookListener_epv = e_book_listener_get_epv ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_listener_class_init (EBookListenerClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	e_book_listener_parent_class = gtk_type_class (bonobo_object_get_type ());</div><div class='del'>-</div><div class='del'>-	e_book_listener_signals [RESPONSES_QUEUED] =</div><div class='del'>-		gtk_signal_new ("responses_queued",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookListenerClass, responses_queued),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, e_book_listener_signals, LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_book_listener_destroy;</div><div class='del'>-</div><div class='del'>-	e_book_listener_corba_class_init ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_listener_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-e_book_listener_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"EBookListener",</div><div class='del'>-			sizeof (EBookListener),</div><div class='del'>-			sizeof (EBookListenerClass),</div><div class='del'>-			(GtkClassInitFunc)  e_book_listener_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_book_listener_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (bonobo_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-listener.h b/addressbook/backend/ebook/e-book-listener.h<br/>deleted file mode 100644<br/>index f546c9a029..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-listener.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-listener.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,109 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * A client-side GtkObject which exposes the</div><div class='del'>- * Evolution:BookListener interface.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_BOOK_LISTENER_H__</div><div class='del'>-#define __E_BOOK_LISTENER_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-#include &lt;ebook/addressbook.h&gt;</div><div class='del'>-#include &lt;ebook/e-book-types.h&gt;</div><div class='del'>-#include &lt;e-util/e-list.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef struct _EBookListener EBookListener;</div><div class='del'>-typedef struct _EBookListenerClass EBookListenerClass;</div><div class='del'>-typedef struct _EBookListenerPrivate EBookListenerPrivate;</div><div class='del'>-</div><div class='del'>-struct _EBookListener {</div><div class='del'>-	BonoboObject           parent;</div><div class='del'>-	EBookListenerPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EBookListenerClass {</div><div class='del'>-	BonoboObjectClass parent;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Signals</div><div class='del'>-	 */</div><div class='del'>-	void (*responses_queued) (void);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	/* Async responses */</div><div class='del'>-	OpenBookResponse,</div><div class='del'>-	CreateCardResponse,</div><div class='del'>-	RemoveCardResponse,</div><div class='del'>-	ModifyCardResponse,</div><div class='del'>-	GetCardResponse,</div><div class='del'>-	GetCursorResponse,</div><div class='del'>-	GetBookViewResponse,</div><div class='del'>-	GetChangesResponse,</div><div class='del'>-	AuthenticationResponse,</div><div class='del'>-	GetSupportedFieldsResponse,</div><div class='del'>-</div><div class='del'>-	/* Async events */</div><div class='del'>-	LinkStatusEvent,</div><div class='del'>-	WritableStatusEvent,</div><div class='del'>-	OpenProgressEvent,</div><div class='del'>-} EBookListenerOperation;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	EBookListenerOperation  op;</div><div class='del'>-</div><div class='del'>-	/* For most Response notifications */</div><div class='del'>-	EBookStatus             status;</div><div class='del'>-</div><div class='del'>-	/* For OpenBookResponse */</div><div class='del'>-	GNOME_Evolution_Addressbook_Book          book;</div><div class='del'>-</div><div class='del'>-	/* For GetCursorResponse */</div><div class='del'>-	GNOME_Evolution_Addressbook_CardCursor    cursor;</div><div class='del'>-</div><div class='del'>-	/* For GetBookViewReponse */</div><div class='del'>-	GNOME_Evolution_Addressbook_BookView      book_view;</div><div class='del'>-</div><div class='del'>-	/* For GetSupportedFields */</div><div class='del'>-	EList                                    *fields;</div><div class='del'>-</div><div class='del'>-	/* For OpenProgressEvent */</div><div class='del'>-	char                   *msg;</div><div class='del'>-	short                   percent;</div><div class='del'>-</div><div class='del'>-	/* For LinkStatusEvent */</div><div class='del'>-	gboolean                connected;</div><div class='del'>-</div><div class='del'>-	/* For WritableStatusEvent */</div><div class='del'>-	gboolean                writable;</div><div class='del'>-</div><div class='del'>-	/* For Card[Added|Removed|Modified]Event */</div><div class='del'>-	char                   *id;</div><div class='del'>-	char                   *vcard;</div><div class='del'>-} EBookListenerResponse;</div><div class='del'>-</div><div class='del'>-EBookListener         *e_book_listener_new            (void);</div><div class='del'>-int                    e_book_listener_check_pending  (EBookListener *listener);</div><div class='del'>-EBookListenerResponse *e_book_listener_pop_response   (EBookListener *listener);</div><div class='del'>-GtkType                e_book_listener_get_type       (void);</div><div class='del'>-void                   e_book_listener_stop           (EBookListener *listener);</div><div class='del'>-</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookListener__epv *e_book_listener_get_epv (void);</div><div class='del'>-</div><div class='del'>-#define E_BOOK_LISTENER_TYPE        (e_book_listener_get_type ())</div><div class='del'>-#define E_BOOK_LISTENER(o)          (GTK_CHECK_CAST ((o), E_BOOK_LISTENER_TYPE, EBookListener))</div><div class='del'>-#define E_BOOK_LISTENER_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_BOOK_LISTENER_TYPE, EBookListenerClass))</div><div class='del'>-#define E_IS_BOOK_LISTENER(o)       (GTK_CHECK_TYPE ((o), E_BOOK_LISTENER_TYPE))</div><div class='del'>-#define E_IS_BOOK_LISTENER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_BOOK_LISTENER_TYPE))</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_BOOK_LISTENER_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-types.h b/addressbook/backend/ebook/e-book-types.h<br/>deleted file mode 100644<br/>index 0a477678eb..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-types.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-types.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,39 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * A client-side GtkObject which exposes the</div><div class='del'>- * Evolution:BookListener interface.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_BOOK_TYPES_H__</div><div class='del'>-#define __E_BOOK_TYPES_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	E_BOOK_STATUS_SUCCESS,</div><div class='del'>-	E_BOOK_STATUS_UNKNOWN,</div><div class='del'>-	E_BOOK_STATUS_REPOSITORY_OFFLINE,</div><div class='del'>-	E_BOOK_STATUS_PERMISSION_DENIED,</div><div class='del'>-	E_BOOK_STATUS_CARD_NOT_FOUND,</div><div class='del'>-	E_BOOK_STATUS_CARD_ID_ALREADY_EXISTS,</div><div class='del'>-	E_BOOK_STATUS_PROTOCOL_NOT_SUPPORTED,</div><div class='del'>-	E_BOOK_STATUS_CANCELLED,</div><div class='del'>-	E_BOOK_STATUS_OTHER_ERROR</div><div class='del'>-} EBookStatus;</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS,</div><div class='del'>-	E_BOOK_SIMPLE_QUERY_STATUS_CANCELLED,</div><div class='del'>-	E_BOOK_SIMPLE_QUERY_STATUS_OTHER_ERROR</div><div class='del'>-} EBookSimpleQueryStatus;</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_BOOK_TYPES_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-util.c b/addressbook/backend/ebook/e-book-util.c<br/>deleted file mode 100644<br/>index 2470d72950..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-util.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-util.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,586 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-book-util.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include "e-book-util.h"</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-util.h&gt;</div><div class='del'>-#include "e-card-compare.h"</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_book_load_local_address_book (EBook *book, EBookCallback open_response, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	gchar *filename;</div><div class='del'>-	gchar *uri;</div><div class='del'>-	gboolean rv;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,          FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book),      FALSE);</div><div class='del'>-	g_return_val_if_fail (open_response != NULL, FALSE);</div><div class='del'>-</div><div class='del'>-	filename = gnome_util_prepend_user_home ("evolution/local/Contacts/addressbook.db");</div><div class='del'>-	uri = g_strdup_printf ("file://%s", filename);</div><div class='del'>-</div><div class='del'>-	rv = e_book_load_uri (book, uri, open_response, closure);</div><div class='del'>-</div><div class='del'>-	if (!rv) {</div><div class='del'>-		g_warning ("Couldn't load local addressbook %s", uri);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (filename);</div><div class='del'>-	g_free (uri);</div><div class='del'>-</div><div class='del'>-	return rv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static EBook *common_local_book = NULL;</div><div class='del'>-</div><div class='del'>-typedef struct _CommonBookInfo CommonBookInfo;</div><div class='del'>-struct _CommonBookInfo {</div><div class='del'>-	EBookCommonCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-got_local_book_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	CommonBookInfo *info = (CommonBookInfo *) closure;</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-</div><div class='del'>-		/* We try not to leak in a race condition where the</div><div class='del'>-		   local book got loaded twice. */</div><div class='del'>-</div><div class='del'>-		if (common_local_book) {</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-			book = common_local_book;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		info-&gt;cb (book, info-&gt;closure);</div><div class='del'>-</div><div class='del'>-		if (common_local_book == NULL) {</div><div class='del'>-			common_local_book = book;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-	} else {</div><div class='del'>-</div><div class='del'>-		info-&gt;cb (NULL, info-&gt;closure);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-	g_free (info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_use_local_address_book (EBookCommonCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	CommonBookInfo *info;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (cb != NULL);</div><div class='del'>-</div><div class='del'>-	if (common_local_book != NULL) {</div><div class='del'>-		cb (common_local_book, closure);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	info = g_new0 (CommonBookInfo, 1);</div><div class='del'>-	info-&gt;cb = cb;</div><div class='del'>-	info-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	book = e_book_new ();</div><div class='del'>-	if (! e_book_load_local_address_book (book, got_local_book_cb, info)) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-		g_free (info);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Simple Query Stuff</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct _SimpleQueryInfo SimpleQueryInfo;</div><div class='del'>-struct _SimpleQueryInfo {</div><div class='del'>-	guint tag;</div><div class='del'>-	EBook *book;</div><div class='del'>-	gchar *query;</div><div class='del'>-	EBookSimpleQueryCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-	EBookView *view;</div><div class='del'>-	guint add_tag;</div><div class='del'>-	guint seq_complete_tag;</div><div class='del'>-	GList *cards;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_add_simple_query (EBook *book, SimpleQueryInfo *info)</div><div class='del'>-{</div><div class='del'>-	GList *pending = gtk_object_get_data (GTK_OBJECT (book), "sq_pending");</div><div class='del'>-	pending = g_list_prepend (pending, info);</div><div class='del'>-	gtk_object_set_data (GTK_OBJECT (book), "sq_pending", pending);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static SimpleQueryInfo *</div><div class='del'>-book_lookup_simple_query (EBook *book, guint tag)</div><div class='del'>-{</div><div class='del'>-	GList *pending = gtk_object_get_data (GTK_OBJECT (book), "sq_pending");</div><div class='del'>-	while (pending) {</div><div class='del'>-		SimpleQueryInfo *sq = pending-&gt;data;</div><div class='del'>-		if (sq-&gt;tag == tag)</div><div class='del'>-			return sq;</div><div class='del'>-		pending = g_list_next (pending);</div><div class='del'>-	}</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_remove_simple_query (EBook *book, SimpleQueryInfo *info)</div><div class='del'>-{</div><div class='del'>-	GList *pending = gtk_object_get_data (GTK_OBJECT (book), "sq_pending");</div><div class='del'>-	GList *i;</div><div class='del'>-</div><div class='del'>-	for (i=pending; i != NULL; i = g_list_next (i)) {</div><div class='del'>-		if (i-&gt;data == info) {</div><div class='del'>-			pending = g_list_remove_link (pending, i);</div><div class='del'>-			g_list_free_1 (i);</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	gtk_object_set_data (GTK_OBJECT (book), "sq_pending", pending);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static guint</div><div class='del'>-book_issue_tag (EBook *book)</div><div class='del'>-{</div><div class='del'>-	gpointer ptr = gtk_object_get_data (GTK_OBJECT (book), "sq_tag");</div><div class='del'>-	guint tag = GPOINTER_TO_UINT (ptr);</div><div class='del'>-	if (tag == 0)</div><div class='del'>-		tag = 1;</div><div class='del'>-	gtk_object_set_data (GTK_OBJECT (book), "sq_tag", GUINT_TO_POINTER (tag+1));</div><div class='del'>-	return tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static SimpleQueryInfo *</div><div class='del'>-simple_query_new (EBook *book, const char *query, EBookSimpleQueryCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	SimpleQueryInfo *sq = g_new0 (SimpleQueryInfo, 1);</div><div class='del'>-</div><div class='del'>-	sq-&gt;tag = book_issue_tag (book);</div><div class='del'>-	sq-&gt;book = book;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (book));</div><div class='del'>-	sq-&gt;query = g_strdup_printf (query);</div><div class='del'>-	sq-&gt;cb = cb;</div><div class='del'>-	sq-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	/* Automatically add ourselves to the EBook's pending list. */</div><div class='del'>-	book_add_simple_query (book, sq);</div><div class='del'>-</div><div class='del'>-	return sq;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-simple_query_disconnect (SimpleQueryInfo *sq)</div><div class='del'>-{</div><div class='del'>-	if (sq-&gt;add_tag) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (sq-&gt;view), sq-&gt;add_tag);</div><div class='del'>-		sq-&gt;add_tag = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (sq-&gt;seq_complete_tag) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (sq-&gt;view), sq-&gt;seq_complete_tag);</div><div class='del'>-		sq-&gt;seq_complete_tag = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (sq-&gt;view) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (sq-&gt;view));</div><div class='del'>-		sq-&gt;view = NULL;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-simple_query_free (SimpleQueryInfo *sq)</div><div class='del'>-{</div><div class='del'>-	/* Remove ourselves from the EBook's pending list. */</div><div class='del'>-	book_remove_simple_query (sq-&gt;book, sq);</div><div class='del'>-</div><div class='del'>-	g_free (sq-&gt;query);</div><div class='del'>-</div><div class='del'>-	simple_query_disconnect (sq);</div><div class='del'>-</div><div class='del'>-	if (sq-&gt;book)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (sq-&gt;book));</div><div class='del'>-</div><div class='del'>-	g_list_foreach (sq-&gt;cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (sq-&gt;cards);</div><div class='del'>-</div><div class='del'>-	g_free (sq);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-simple_query_card_added_cb (EBookView *view, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	SimpleQueryInfo *sq = closure;</div><div class='del'>-</div><div class='del'>-	sq-&gt;cards = g_list_concat (sq-&gt;cards, g_list_copy ((GList *) cards));</div><div class='del'>-	g_list_foreach ((GList *) cards, (GFunc) gtk_object_ref, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-simple_query_sequence_complete_cb (EBookView *view, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	SimpleQueryInfo *sq = closure;</div><div class='del'>-</div><div class='del'>-	/* Disconnect signals, so that we don't pick up any changes to the book that occur</div><div class='del'>-	   in our callback */</div><div class='del'>-	simple_query_disconnect (sq);</div><div class='del'>-	sq-&gt;cb (sq-&gt;book, E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS, sq-&gt;cards, sq-&gt;closure);</div><div class='del'>-	simple_query_free (sq);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-simple_query_book_view_cb (EBook *book, EBookStatus status, EBookView *book_view, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	SimpleQueryInfo *sq = closure;</div><div class='del'>-</div><div class='del'>-	if (status != E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		sq-&gt;cb (sq-&gt;book, E_BOOK_SIMPLE_QUERY_STATUS_OTHER_ERROR, NULL, sq-&gt;closure);</div><div class='del'>-		simple_query_free (sq);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	sq-&gt;view = book_view;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (book_view));</div><div class='del'>-</div><div class='del'>-	sq-&gt;add_tag = gtk_signal_connect (GTK_OBJECT (sq-&gt;view),</div><div class='del'>-					  "card_added",</div><div class='del'>-					  GTK_SIGNAL_FUNC (simple_query_card_added_cb),</div><div class='del'>-					  sq);</div><div class='del'>-	sq-&gt;seq_complete_tag = gtk_signal_connect (GTK_OBJECT (sq-&gt;view),</div><div class='del'>-						   "sequence_complete",</div><div class='del'>-						   GTK_SIGNAL_FUNC (simple_query_sequence_complete_cb),</div><div class='del'>-						   sq);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-guint</div><div class='del'>-e_book_simple_query (EBook *book, const char *query, EBookSimpleQueryCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	SimpleQueryInfo *sq;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book &amp;&amp; E_IS_BOOK (book), 0);</div><div class='del'>-	g_return_val_if_fail (query, 0);</div><div class='del'>-	g_return_val_if_fail (cb, 0);</div><div class='del'>-</div><div class='del'>-	sq = simple_query_new (book, query, cb, closure);</div><div class='del'>-	e_book_get_book_view (book, (gchar *) query, simple_query_book_view_cb, sq);</div><div class='del'>-</div><div class='del'>-	return sq-&gt;tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_simple_query_cancel (EBook *book, guint tag)</div><div class='del'>-{</div><div class='del'>-	SimpleQueryInfo *sq;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (book &amp;&amp; E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	sq = book_lookup_simple_query (book, tag);</div><div class='del'>-</div><div class='del'>-	if (sq) {</div><div class='del'>-		sq-&gt;cb (sq-&gt;book, E_BOOK_SIMPLE_QUERY_STATUS_CANCELLED, NULL, sq-&gt;closure);</div><div class='del'>-		simple_query_free (sq);</div><div class='del'>-	} else {</div><div class='del'>-		g_warning ("Simple query tag %d is unknown", tag);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Specialized Queries</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct _NameEmailQueryInfo NameEmailQueryInfo;</div><div class='del'>-struct _NameEmailQueryInfo {</div><div class='del'>-	gchar *name;</div><div class='del'>-	gchar *email;</div><div class='del'>-	EBookSimpleQueryCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-name_email_query_info_free (NameEmailQueryInfo *info)</div><div class='del'>-{</div><div class='del'>-	if (info) {</div><div class='del'>-		g_free (info-&gt;name);</div><div class='del'>-		g_free (info-&gt;email);</div><div class='del'>-		g_free (info);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-name_and_email_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	NameEmailQueryInfo *info = closure;</div><div class='del'>-	GList *filtered_cards = NULL;</div><div class='del'>-</div><div class='del'>-	while (cards) {</div><div class='del'>-		ECard *card = E_CARD (cards-&gt;data);</div><div class='del'>-		if ((info-&gt;name == NULL || e_card_compare_name_to_string (card, info-&gt;name) &gt;= E_CARD_MATCH_VAGUE)</div><div class='del'>-		    &amp;&amp; (info-&gt;email == NULL || e_card_email_match_string (card, info-&gt;email))) {</div><div class='del'>-			filtered_cards = g_list_append (filtered_cards, card);</div><div class='del'>-		}</div><div class='del'>-		cards = g_list_next (cards);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	info-&gt;cb (book, status, filtered_cards, info-&gt;closure);</div><div class='del'>-</div><div class='del'>-	g_list_free (filtered_cards);</div><div class='del'>-</div><div class='del'>-	name_email_query_info_free (info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-guint</div><div class='del'>-e_book_name_and_email_query (EBook *book,</div><div class='del'>-			     const gchar *name,</div><div class='del'>-			     const gchar *email,</div><div class='del'>-			     EBookSimpleQueryCallback cb,</div><div class='del'>-			     gpointer closure)</div><div class='del'>-{</div><div class='del'>-	NameEmailQueryInfo *info;</div><div class='del'>-	gchar *email_query=NULL, *name_query=NULL, *query;</div><div class='del'>-	guint tag;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book &amp;&amp; E_IS_BOOK (book), 0);</div><div class='del'>-	g_return_val_if_fail (cb != NULL, 0);</div><div class='del'>-</div><div class='del'>-	if (name &amp;&amp; !*name)</div><div class='del'>-		name = NULL;</div><div class='del'>-	if (email &amp;&amp; !*email)</div><div class='del'>-		email = NULL;</div><div class='del'>-</div><div class='del'>-	if (name == NULL &amp;&amp; email == NULL)</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	/* Build our e-mail query.</div><div class='del'>-	 * We only query against the username part of the address, to avoid not matching</div><div class='del'>-	 * fred@foo.com and fred@mail.foo.com.  While their may be namespace collisions</div><div class='del'>-	 * in the usernames of everyone out there, it shouldn't be that bad.  (Famous last words.)</div><div class='del'>-	 */</div><div class='del'>-	if (email) {</div><div class='del'>-		const gchar *t = email;</div><div class='del'>-		while (*t &amp;&amp; *t != '@')</div><div class='del'>-			++t;</div><div class='del'>-		if (*t == '@') {</div><div class='del'>-			email_query = g_strdup_printf ("(beginswith \"email\" \"%.*s@\")", t-email, email);</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-			email_query = g_strdup_printf ("(beginswith \"email\" \"%s\")", email);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Build our name query.</div><div class='del'>-	 * We only do name-query stuff if we don't have an e-mail address.  Our basic assumption</div><div class='del'>-	 * is that the username part of the email is good enough to keep the amount of stuff returned</div><div class='del'>-	 * in the query relatively small.</div><div class='del'>-	 */</div><div class='del'>-	if (name &amp;&amp; !email) {</div><div class='del'>-		gchar *name_cpy = g_strdup (name), *qjoined;</div><div class='del'>-		gchar **namev;</div><div class='del'>-		gint i, count=0;</div><div class='del'>-</div><div class='del'>-		g_strstrip (name_cpy);</div><div class='del'>-		namev = g_strsplit (name_cpy, " ", 0);</div><div class='del'>-		for (i=0; namev[i]; ++i) {</div><div class='del'>-			if (*namev[i]) {</div><div class='del'>-				char *str = namev[i];</div><div class='del'>-</div><div class='del'>-				namev[i] = g_strdup_printf ("(contains \"file_as\" \"%s\")", namev[i]);</div><div class='del'>-				++count;</div><div class='del'>-</div><div class='del'>-				g_free (str);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		qjoined = g_strjoinv (" ", namev);</div><div class='del'>-		if (count &gt; 1) {</div><div class='del'>-			name_query = g_strdup_printf ("(or %s)", qjoined);</div><div class='del'>-		} else {</div><div class='del'>-			name_query = qjoined;</div><div class='del'>-			qjoined = NULL;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		g_free (name_cpy);</div><div class='del'>-		g_strfreev (namev);</div><div class='del'>-		g_free (qjoined);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Assemble our e-mail &amp; name queries */</div><div class='del'>-	if (email_query &amp;&amp; name_query) {</div><div class='del'>-		query = g_strdup_printf ("(and %s %s)", email_query, name_query);</div><div class='del'>-	} else if (email_query) {</div><div class='del'>-		query = email_query;</div><div class='del'>-		email_query = NULL;</div><div class='del'>-	} else if (name_query) {</div><div class='del'>-		query = name_query;</div><div class='del'>-		name_query = NULL;</div><div class='del'>-	} else</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	info = g_new0 (NameEmailQueryInfo, 1);</div><div class='del'>-	info-&gt;name = g_strdup (name);</div><div class='del'>-	info-&gt;email = g_strdup (email);</div><div class='del'>-	info-&gt;cb = cb;</div><div class='del'>-	info-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	tag = e_book_simple_query (book, query, name_and_email_cb, info);</div><div class='del'>-</div><div class='del'>-	g_free (email_query);</div><div class='del'>-	g_free (name_query);</div><div class='del'>-	g_free (query);</div><div class='del'>-</div><div class='del'>-	return tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Simple nickname query</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct _NicknameQueryInfo NicknameQueryInfo;</div><div class='del'>-struct _NicknameQueryInfo {</div><div class='del'>-	gchar *nickname;</div><div class='del'>-	EBookSimpleQueryCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-nickname_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	NicknameQueryInfo *info = closure;</div><div class='del'>-</div><div class='del'>-	if (info-&gt;cb)</div><div class='del'>-		info-&gt;cb (book, status, cards, info-&gt;closure);</div><div class='del'>-</div><div class='del'>-	g_free (info-&gt;nickname);</div><div class='del'>-	g_free (info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-guint</div><div class='del'>-e_book_nickname_query (EBook *book,</div><div class='del'>-		       const char *nickname,</div><div class='del'>-		       EBookSimpleQueryCallback cb,</div><div class='del'>-		       gpointer closure)</div><div class='del'>-{</div><div class='del'>-	NicknameQueryInfo *info;</div><div class='del'>-	gchar *query;</div><div class='del'>-	guint retval;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), 0);</div><div class='del'>-	g_return_val_if_fail (nickname != NULL, 0);</div><div class='del'>-</div><div class='del'>-	/* The empty-string case shouldn't generate a warning. */</div><div class='del'>-	if (! *nickname)</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	info = g_new0 (NicknameQueryInfo, 1);</div><div class='del'>-	info-&gt;nickname = g_strdup (nickname);</div><div class='del'>-	info-&gt;cb = cb;</div><div class='del'>-	info-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	query = g_strdup_printf ("(is \"nickname\" \"%s\")", info-&gt;nickname);</div><div class='del'>-</div><div class='del'>-	retval = e_book_simple_query (book, query, nickname_cb, info);</div><div class='del'>-</div><div class='del'>-	g_free (query);</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  Convenience routine to check for addresses in the local address book.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct _HaveAddressInfo HaveAddressInfo;</div><div class='del'>-struct _HaveAddressInfo {</div><div class='del'>-	gchar *email;</div><div class='del'>-	EBookHaveAddressCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-have_address_query_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	HaveAddressInfo *info = (HaveAddressInfo *) closure;</div><div class='del'>-	</div><div class='del'>-	info-&gt;cb (book, </div><div class='del'>-		  info-&gt;email,</div><div class='del'>-		  cards &amp;&amp; (status == E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS) ? E_CARD (cards-&gt;data) : NULL,</div><div class='del'>-		  info-&gt;closure);</div><div class='del'>-</div><div class='del'>-	g_free (info-&gt;email);</div><div class='del'>-	g_free (info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-have_address_book_open_cb (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	HaveAddressInfo *info = (HaveAddressInfo *) closure;</div><div class='del'>-</div><div class='del'>-	if (book) {</div><div class='del'>-</div><div class='del'>-		e_book_name_and_email_query (book, NULL, info-&gt;email, have_address_query_cb, info);</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-</div><div class='del'>-		info-&gt;cb (NULL, info-&gt;email, NULL, info-&gt;closure);</div><div class='del'>-</div><div class='del'>-		g_free (info-&gt;email);</div><div class='del'>-		g_free (info);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_query_address_locally (const gchar *email,</div><div class='del'>-			      EBookHaveAddressCallback cb,</div><div class='del'>-			      gpointer closure)</div><div class='del'>-{</div><div class='del'>-	HaveAddressInfo *info;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (email != NULL);</div><div class='del'>-	g_return_if_fail (cb != NULL);</div><div class='del'>-</div><div class='del'>-	info = g_new0 (HaveAddressInfo, 1);</div><div class='del'>-	info-&gt;email = g_strdup (email);</div><div class='del'>-	info-&gt;cb = cb;</div><div class='del'>-	info-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	e_book_use_local_address_book (have_address_book_open_cb, info);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-util.h b/addressbook/backend/ebook/e-book-util.h<br/>deleted file mode 100644<br/>index 69965c8363..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-util.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-util.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,79 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-book-util.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_BOOK_UTIL_H__</div><div class='del'>-#define __E_BOOK_UTIL_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include "e-book.h"</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-/* Callbacks for asynchronous functions. */</div><div class='del'>-typedef void (*EBookCommonCallback)      (EBook *book, gpointer closure);</div><div class='del'>-typedef void (*EBookSimpleQueryCallback) (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure);</div><div class='del'>-typedef void (*EBookHaveAddressCallback) (EBook *book, const gchar *addr, ECard *card, gpointer closure);</div><div class='del'>-</div><div class='del'>-gboolean e_book_load_local_address_book (EBook *book, </div><div class='del'>-					 EBookCallback open_response, </div><div class='del'>-					 gpointer closure);</div><div class='del'>-</div><div class='del'>-void     e_book_use_local_address_book  (EBookCommonCallback cb, gpointer closure);</div><div class='del'>-</div><div class='del'>-/* Simple Query Interface. */</div><div class='del'>-</div><div class='del'>-guint     e_book_simple_query             (EBook                    *book,</div><div class='del'>-					   const char               *query,</div><div class='del'>-					   EBookSimpleQueryCallback  cb,</div><div class='del'>-					   gpointer                  closure);</div><div class='del'>-void      e_book_simple_query_cancel      (EBook                    *book,</div><div class='del'>-					   guint                     tag);</div><div class='del'>-</div><div class='del'>-/* Specialized Name/Email Queries */</div><div class='del'>-</div><div class='del'>-guint e_book_name_and_email_query (EBook *book,</div><div class='del'>-				   const char *name,</div><div class='del'>-				   const char *email,</div><div class='del'>-				   EBookSimpleQueryCallback cb,</div><div class='del'>-				   gpointer closure);</div><div class='del'>-</div><div class='del'>-guint e_book_nickname_query (EBook *book,</div><div class='del'>-			     const char *nickname,</div><div class='del'>-			     EBookSimpleQueryCallback cb,</div><div class='del'>-			     gpointer closure);</div><div class='del'>-</div><div class='del'>-/* Returns the ECard associated to email in the callback,</div><div class='del'>-   or NULL if no match is found in the local address book. */</div><div class='del'>-void e_book_query_address_locally (const gchar *email,</div><div class='del'>-				   EBookHaveAddressCallback cb,</div><div class='del'>-				   gpointer closure);</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_BOOK_UTIL_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-view-listener.c b/addressbook/backend/ebook/e-book-view-listener.c<br/>deleted file mode 100644<br/>index 40e467ef93..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-view-listener.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-view-listener.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,461 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Exports the BookViewListener interface.  Maintains a queue of messages</div><div class='del'>- * which come in on the interface.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include "e-book-view-listener.h"</div><div class='del'>-#include "e-book-view.h"</div><div class='del'>-#include "e-card.h"</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	RESPONSES_QUEUED,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint e_book_view_listener_signals [LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-static BonoboObjectClass          *e_book_view_listener_parent_class;</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookViewListener__vepv  e_book_view_listener_vepv;</div><div class='del'>-</div><div class='del'>-struct _EBookViewListenerPrivate {</div><div class='del'>-	GList   *response_queue;</div><div class='del'>-	gint     timeout_id;</div><div class='del'>-</div><div class='del'>-	guint timeout_lock : 1;</div><div class='del'>-	guint stopped      : 1;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_book_view_listener_check_queue (EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	if (listener-&gt;priv-&gt;timeout_lock)</div><div class='del'>-		return TRUE;</div><div class='del'>-</div><div class='del'>-	listener-&gt;priv-&gt;timeout_lock = TRUE;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;response_queue != NULL &amp;&amp; !listener-&gt;priv-&gt;stopped) {</div><div class='del'>-		gtk_signal_emit (GTK_OBJECT (listener), e_book_view_listener_signals [RESPONSES_QUEUED]);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;response_queue == NULL || listener-&gt;priv-&gt;stopped) {</div><div class='del'>-		listener-&gt;priv-&gt;timeout_id = 0;</div><div class='del'>-		listener-&gt;priv-&gt;timeout_lock = FALSE;</div><div class='del'>-		bonobo_object_unref (BONOBO_OBJECT (listener));</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	listener-&gt;priv-&gt;timeout_lock = FALSE;</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_queue_response (EBookViewListener         *listener,</div><div class='del'>-				     EBookViewListenerResponse *response)</div><div class='del'>-{</div><div class='del'>-	if (response == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped) {</div><div class='del'>-		/* Free response and return */</div><div class='del'>-		g_free (response-&gt;id);</div><div class='del'>-		g_list_foreach (response-&gt;cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-		g_list_free (response-&gt;cards);</div><div class='del'>-		g_free (response-&gt;message);</div><div class='del'>-		g_free (response);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	listener-&gt;priv-&gt;response_queue = g_list_append (listener-&gt;priv-&gt;response_queue, response);</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;timeout_id == 0) {</div><div class='del'>-</div><div class='del'>-		/* Here, 20 == an arbitrary small number */		</div><div class='del'>-		listener-&gt;priv-&gt;timeout_id = g_timeout_add (20, (GSourceFunc) e_book_view_listener_check_queue, listener);</div><div class='del'>-</div><div class='del'>-		/* Hold a reference to the listener on behalf of the timeout */</div><div class='del'>-		bonobo_object_ref (BONOBO_OBJECT (listener));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Add, Remove, Modify */</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_queue_empty_event (EBookViewListener          *listener,</div><div class='del'>-					EBookViewListenerOperation  op)</div><div class='del'>-{</div><div class='del'>-	EBookViewListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookViewListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = op;</div><div class='del'>-	resp-&gt;id        = NULL;</div><div class='del'>-	resp-&gt;cards     = NULL;</div><div class='del'>-	resp-&gt;message   = NULL;</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Add, Remove, Modify */</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_queue_id_event (EBookViewListener          *listener,</div><div class='del'>-				     EBookViewListenerOperation  op,</div><div class='del'>-				     const char             *id)</div><div class='del'>-{</div><div class='del'>-	EBookViewListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookViewListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = op;</div><div class='del'>-	resp-&gt;id        = g_strdup (id);</div><div class='del'>-	resp-&gt;cards     = NULL;</div><div class='del'>-	resp-&gt;message   = NULL;</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Add, Remove, Modify */</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_queue_sequence_event (EBookViewListener          *listener,</div><div class='del'>-					   EBookViewListenerOperation  op,</div><div class='del'>-					   const GNOME_Evolution_Addressbook_VCardList  *cards)</div><div class='del'>-{</div><div class='del'>-	EBookViewListenerResponse *resp;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookViewListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = op;</div><div class='del'>-	resp-&gt;id        = NULL;</div><div class='del'>-	resp-&gt;cards     = NULL;</div><div class='del'>-	resp-&gt;message   = NULL;</div><div class='del'>-	</div><div class='del'>-	for ( i = 0; i &lt; cards-&gt;_length; i++ ) {</div><div class='del'>-		resp-&gt;cards = g_list_append(resp-&gt;cards, e_card_new(cards-&gt;_buffer[i]));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Status Message */</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_queue_message_event (EBookViewListener          *listener,</div><div class='del'>-					  EBookViewListenerOperation  op,</div><div class='del'>-					  const char                 *message)</div><div class='del'>-{</div><div class='del'>-	EBookViewListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;stopped)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	resp = g_new0 (EBookViewListenerResponse, 1);</div><div class='del'>-</div><div class='del'>-	resp-&gt;op        = op;</div><div class='del'>-	resp-&gt;id        = NULL;</div><div class='del'>-	resp-&gt;cards     = NULL;</div><div class='del'>-	resp-&gt;message   = g_strdup(message);</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_response (listener, resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookViewListener_notify_card_added (PortableServer_Servant servant,</div><div class='del'>-					 const GNOME_Evolution_Addressbook_VCardList *cards,</div><div class='del'>-					 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_sequence_event (</div><div class='del'>-		listener, CardAddedEvent, cards);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookViewListener_notify_card_removed (PortableServer_Servant servant,</div><div class='del'>-					   const GNOME_Evolution_Addressbook_CardId id,</div><div class='del'>-					   CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_id_event (</div><div class='del'>-		listener, CardRemovedEvent, (const char *) id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookViewListener_notify_card_changed (PortableServer_Servant servant,</div><div class='del'>-					   const GNOME_Evolution_Addressbook_VCardList *cards,</div><div class='del'>-					   CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_sequence_event (</div><div class='del'>-		listener, CardModifiedEvent, cards);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookViewListener_notify_sequence_complete (PortableServer_Servant servant,</div><div class='del'>-						CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_empty_event (listener, SequenceCompleteEvent);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_BookViewListener_notify_status_message (PortableServer_Servant  servant,</div><div class='del'>-					     const char             *message,</div><div class='del'>-					     CORBA_Environment      *ev)</div><div class='del'>-{</div><div class='del'>-	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_queue_message_event (listener, StatusMessageEvent, message);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_view_listener_check_pending:</div><div class='del'>- * @listener: the #EBookViewListener </div><div class='del'>- *</div><div class='del'>- * Returns: the number of items on the response queue,</div><div class='del'>- * or -1 if the @listener is isn't an #EBookViewListener.</div><div class='del'>- */</div><div class='del'>-int</div><div class='del'>-e_book_view_listener_check_pending (EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (listener != NULL,              -1);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK_VIEW_LISTENER (listener), -1);</div><div class='del'>-</div><div class='del'>-	return g_list_length (listener-&gt;priv-&gt;response_queue);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_view_listener_pop_response:</div><div class='del'>- * @listener: the #EBookViewListener for which a request is to be popped</div><div class='del'>- *</div><div class='del'>- * Returns: an #EBookViewListenerResponse if there are responses on the</div><div class='del'>- * queue to be returned; %NULL if there aren't, or if the @listener</div><div class='del'>- * isn't an EBookViewListener.</div><div class='del'>- */</div><div class='del'>-EBookViewListenerResponse *</div><div class='del'>-e_book_view_listener_pop_response (EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	EBookViewListenerResponse *resp;</div><div class='del'>-	GList                 *popped;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (listener != NULL,              NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK_VIEW_LISTENER (listener), NULL);</div><div class='del'>-</div><div class='del'>-	if (listener-&gt;priv-&gt;response_queue == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	resp = listener-&gt;priv-&gt;response_queue-&gt;data;</div><div class='del'>-</div><div class='del'>-	popped = listener-&gt;priv-&gt;response_queue;</div><div class='del'>-	listener-&gt;priv-&gt;response_queue =</div><div class='del'>-		g_list_remove_link (listener-&gt;priv-&gt;response_queue,</div><div class='del'>-				    listener-&gt;priv-&gt;response_queue);</div><div class='del'>-	g_list_free_1 (popped);</div><div class='del'>-</div><div class='del'>-	return resp;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static EBookViewListener *</div><div class='del'>-e_book_view_listener_construct (EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookViewListener *servant;</div><div class='del'>-	CORBA_Environment           ev;</div><div class='del'>-	CORBA_Object                obj;</div><div class='del'>-</div><div class='del'>-	g_assert (listener != NULL);</div><div class='del'>-	g_assert (E_IS_BOOK_VIEW_LISTENER (listener));</div><div class='del'>-</div><div class='del'>-	servant = (POA_GNOME_Evolution_Addressbook_BookViewListener *) g_new0 (BonoboObjectServant, 1);</div><div class='del'>-	servant-&gt;vepv = &amp;e_book_view_listener_vepv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookViewListener__init ((PortableServer_Servant) servant, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	obj = bonobo_object_activate_servant (BONOBO_OBJECT (listener), servant);</div><div class='del'>-	if (obj == CORBA_OBJECT_NIL) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_object_construct (BONOBO_OBJECT (listener), obj);</div><div class='del'>-</div><div class='del'>-	return listener;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_view_listener_new:</div><div class='del'>- * @book: the #EBookView for which the listener is to be bound</div><div class='del'>- *</div><div class='del'>- * Creates and returns a new #EBookViewListener for the book.</div><div class='del'>- *</div><div class='del'>- * Returns: a new #EBookViewListener</div><div class='del'>- */</div><div class='del'>-EBookViewListener *</div><div class='del'>-e_book_view_listener_new ()</div><div class='del'>-{</div><div class='del'>-	EBookViewListener *listener;</div><div class='del'>-	EBookViewListener *retval;</div><div class='del'>-</div><div class='del'>-	listener = gtk_type_new (E_BOOK_VIEW_LISTENER_TYPE);</div><div class='del'>-</div><div class='del'>-	retval = e_book_view_listener_construct (listener);</div><div class='del'>-</div><div class='del'>-	if (retval == NULL) {</div><div class='del'>-		g_warning ("e_book_view_listener_new: Error constructing "</div><div class='del'>-			   "EBookViewListener!\n");</div><div class='del'>-		bonobo_object_unref (BONOBO_OBJECT (listener));</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_init (EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	listener-&gt;priv                 = g_new0 (EBookViewListenerPrivate, 1);</div><div class='del'>-	listener-&gt;priv-&gt;response_queue = NULL;</div><div class='del'>-	listener-&gt;priv-&gt;timeout_id     = 0;</div><div class='del'>-	listener-&gt;priv-&gt;timeout_lock   = FALSE;</div><div class='del'>-	listener-&gt;priv-&gt;stopped        = FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_view_listener_stop (EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_BOOK_VIEW_LISTENER (listener));</div><div class='del'>-	listener-&gt;priv-&gt;stopped = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (object);</div><div class='del'>-	GList *l;</div><div class='del'>-	</div><div class='del'>-	/* Remove our response queue handler: In theory, this can never happen since we</div><div class='del'>-	 always hold a reference to the listener while the timeout is running. */</div><div class='del'>-	if (listener-&gt;priv-&gt;timeout_id) {</div><div class='del'>-		g_source_remove (listener-&gt;priv-&gt;timeout_id);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Clear out the queue */</div><div class='del'>-	for (l = listener-&gt;priv-&gt;response_queue; l != NULL; l = l-&gt;next) {</div><div class='del'>-		EBookViewListenerResponse *resp = l-&gt;data;</div><div class='del'>-</div><div class='del'>-		g_free(resp-&gt;id);</div><div class='del'>-</div><div class='del'>-		g_list_foreach(resp-&gt;cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-		g_list_free(resp-&gt;cards);</div><div class='del'>-		resp-&gt;cards = NULL;</div><div class='del'>-</div><div class='del'>-		g_free (resp-&gt;message);</div><div class='del'>-		resp-&gt;message = NULL;</div><div class='del'>-</div><div class='del'>-		g_free (resp);</div><div class='del'>-	}</div><div class='del'>-	g_list_free (listener-&gt;priv-&gt;response_queue);</div><div class='del'>-	</div><div class='del'>-	g_free (listener-&gt;priv);</div><div class='del'>-	listener-&gt;priv = NULL;</div><div class='del'>-	</div><div class='del'>-	GTK_OBJECT_CLASS (e_book_view_listener_parent_class)-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookViewListener__epv *</div><div class='del'>-e_book_view_listener_get_epv (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookViewListener__epv *epv;</div><div class='del'>-</div><div class='del'>-	epv = g_new0 (POA_GNOME_Evolution_Addressbook_BookViewListener__epv, 1);</div><div class='del'>-</div><div class='del'>-	epv-&gt;notifyCardChanged      = impl_BookViewListener_notify_card_changed;</div><div class='del'>-	epv-&gt;notifyCardRemoved      = impl_BookViewListener_notify_card_removed;</div><div class='del'>-	epv-&gt;notifyCardAdded        = impl_BookViewListener_notify_card_added;</div><div class='del'>-	epv-&gt;notifySequenceComplete = impl_BookViewListener_notify_sequence_complete;</div><div class='del'>-	epv-&gt;notifyStatusMessage    = impl_BookViewListener_notify_status_message;</div><div class='del'>-</div><div class='del'>-	return epv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_corba_class_init (void)</div><div class='del'>-{</div><div class='del'>-	e_book_view_listener_vepv.Bonobo_Unknown_epv          = bonobo_object_get_epv ();</div><div class='del'>-	e_book_view_listener_vepv.GNOME_Evolution_Addressbook_BookViewListener_epv = e_book_view_listener_get_epv ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_listener_class_init (EBookViewListenerClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_parent_class = gtk_type_class (bonobo_object_get_type ());</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_signals [RESPONSES_QUEUED] =</div><div class='del'>-		gtk_signal_new ("responses_queued",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookViewListenerClass, responses_queued),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, e_book_view_listener_signals, LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_book_view_listener_destroy;</div><div class='del'>-</div><div class='del'>-	e_book_view_listener_corba_class_init ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_view_listener_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-e_book_view_listener_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"EBookViewListener",</div><div class='del'>-			sizeof (EBookViewListener),</div><div class='del'>-			sizeof (EBookViewListenerClass),</div><div class='del'>-			(GtkClassInitFunc)  e_book_view_listener_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_book_view_listener_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (bonobo_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-view-listener.h b/addressbook/backend/ebook/e-book-view-listener.h<br/>deleted file mode 100644<br/>index d373872ad0..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-view-listener.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-view-listener.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,78 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * A client-side GtkObject which exposes the</div><div class='del'>- * Evolution:BookViewListener interface.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_BOOK_VIEW_LISTENER_H__</div><div class='del'>-#define __E_BOOK_VIEW_LISTENER_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/addressbook.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef struct _EBookViewListener EBookViewListener;</div><div class='del'>-typedef struct _EBookViewListenerClass EBookViewListenerClass;</div><div class='del'>-typedef struct _EBookViewListenerPrivate EBookViewListenerPrivate;</div><div class='del'>-</div><div class='del'>-struct _EBookViewListener {</div><div class='del'>-	BonoboObject           parent;</div><div class='del'>-	EBookViewListenerPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EBookViewListenerClass {</div><div class='del'>-	BonoboObjectClass parent;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Signals</div><div class='del'>-	 */</div><div class='del'>-	void (*responses_queued) (void);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	/* Async events */</div><div class='del'>-	CardAddedEvent,</div><div class='del'>-	CardRemovedEvent,</div><div class='del'>-	CardModifiedEvent,</div><div class='del'>-	SequenceCompleteEvent,</div><div class='del'>-	StatusMessageEvent,</div><div class='del'>-} EBookViewListenerOperation;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	EBookViewListenerOperation  op;</div><div class='del'>-</div><div class='del'>-	/* For CardRemovedEvent */</div><div class='del'>-	char                   *id;</div><div class='del'>-</div><div class='del'>-	/* For Card[Added|Modified]Event */</div><div class='del'>-	GList                  *cards; /* Of type ECard. */</div><div class='del'>-</div><div class='del'>-	/* For StatusMessageEvent */</div><div class='del'>-	char                   *message;</div><div class='del'>-	</div><div class='del'>-} EBookViewListenerResponse;</div><div class='del'>-</div><div class='del'>-EBookViewListener         *e_book_view_listener_new            (void);</div><div class='del'>-int                        e_book_view_listener_check_pending  (EBookViewListener *listener);</div><div class='del'>-EBookViewListenerResponse *e_book_view_listener_pop_response   (EBookViewListener *listener);</div><div class='del'>-GtkType                    e_book_view_listener_get_type       (void);</div><div class='del'>-void                       e_book_view_listener_stop           (EBookViewListener *listener);</div><div class='del'>-</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookViewListener__epv *e_book_view_listener_get_epv (void);</div><div class='del'>-</div><div class='del'>-#define E_BOOK_VIEW_LISTENER_TYPE        (e_book_view_listener_get_type ())</div><div class='del'>-#define E_BOOK_VIEW_LISTENER(o)          (GTK_CHECK_CAST ((o), E_BOOK_VIEW_LISTENER_TYPE, EBookViewListener))</div><div class='del'>-#define E_BOOK_VIEW_LISTENER_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_BOOK_VIEW_LISTENER_TYPE, EBookViewListenerClass))</div><div class='del'>-#define E_IS_BOOK_VIEW_LISTENER(o)       (GTK_CHECK_TYPE ((o), E_BOOK_VIEW_LISTENER_TYPE))</div><div class='del'>-#define E_IS_BOOK_VIEW_LISTENER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_BOOK_VIEW_LISTENER_TYPE))</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_BOOK_VIEW_LISTENER_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-view.c b/addressbook/backend/ebook/e-book-view.c<br/>deleted file mode 100644<br/>index 1af893bcd6..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-view.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-view.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,351 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * The Evolution addressbook client object.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 1999, 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmarshal.h&gt;</div><div class='del'>-</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "e-card-cursor.h"</div><div class='del'>-#include "e-book-view-listener.h"</div><div class='del'>-#include "e-book-view.h"</div><div class='del'>-#include "e-book.h"</div><div class='del'>-</div><div class='del'>-GtkObjectClass *e_book_view_parent_class;</div><div class='del'>-</div><div class='del'>-struct _EBookViewPrivate {</div><div class='del'>-	GNOME_Evolution_Addressbook_BookView     corba_book_view;</div><div class='del'>-</div><div class='del'>-	EBook                 *book;</div><div class='del'>-	</div><div class='del'>-	EBookViewListener     *listener;</div><div class='del'>-</div><div class='del'>-	int                    responses_queued_id;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	CARD_CHANGED,</div><div class='del'>-	CARD_REMOVED,</div><div class='del'>-	CARD_ADDED,</div><div class='del'>-	SEQUENCE_COMPLETE,</div><div class='del'>-	STATUS_MESSAGE,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint e_book_view_signals [LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_book_iterator (gpointer data, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD (data);</div><div class='del'>-	EBook *book = E_BOOK (closure);</div><div class='del'>-</div><div class='del'>-	e_card_set_book (card, book);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_do_added_event (EBookView                 *book_view,</div><div class='del'>-			    EBookViewListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	if (book_view-&gt;priv-&gt;book)</div><div class='del'>-		g_list_foreach (resp-&gt;cards, add_book_iterator, book_view-&gt;priv-&gt;book);</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book_view), e_book_view_signals [CARD_ADDED],</div><div class='del'>-			 resp-&gt;cards);</div><div class='del'>-</div><div class='del'>-	g_list_foreach (resp-&gt;cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (resp-&gt;cards);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_do_modified_event (EBookView                 *book_view,</div><div class='del'>-			       EBookViewListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	if (book_view-&gt;priv-&gt;book)</div><div class='del'>-		g_list_foreach (resp-&gt;cards, add_book_iterator, book_view-&gt;priv-&gt;book);</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book_view), e_book_view_signals [CARD_CHANGED],</div><div class='del'>-			 resp-&gt;cards);</div><div class='del'>-</div><div class='del'>-	g_list_foreach (resp-&gt;cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (resp-&gt;cards);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_do_removed_event (EBookView                 *book_view,</div><div class='del'>-			      EBookViewListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book_view), e_book_view_signals [CARD_REMOVED],</div><div class='del'>-			 resp-&gt;id);</div><div class='del'>-</div><div class='del'>-	g_free(resp-&gt;id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_do_complete_event (EBookView                 *book_view,</div><div class='del'>-			      EBookViewListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book_view), e_book_view_signals [SEQUENCE_COMPLETE]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_do_status_message_event (EBookView                 *book_view,</div><div class='del'>-				     EBookViewListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book_view), e_book_view_signals [STATUS_MESSAGE],</div><div class='del'>-			 resp-&gt;message);</div><div class='del'>-	g_free(resp-&gt;message);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Reading notices out of the EBookViewListener's queue.</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_book_view_check_listener_queue (EBookViewListener *listener, EBookView *book_view)</div><div class='del'>-{</div><div class='del'>-	EBookViewListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	resp = e_book_view_listener_pop_response (listener);</div><div class='del'>-	</div><div class='del'>-	if (resp == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	switch (resp-&gt;op) {</div><div class='del'>-	case CardAddedEvent:</div><div class='del'>-		e_book_view_do_added_event (book_view, resp);</div><div class='del'>-		break;</div><div class='del'>-	case CardModifiedEvent:</div><div class='del'>-		e_book_view_do_modified_event (book_view, resp);</div><div class='del'>-		break;</div><div class='del'>-	case CardRemovedEvent:</div><div class='del'>-		e_book_view_do_removed_event (book_view, resp);</div><div class='del'>-		break;</div><div class='del'>-	case SequenceCompleteEvent:</div><div class='del'>-		e_book_view_do_complete_event (book_view, resp);</div><div class='del'>-		break;</div><div class='del'>-	case StatusMessageEvent:</div><div class='del'>-		e_book_view_do_status_message_event (book_view, resp);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		g_error ("EBookView: Unknown operation %d in listener queue!\n",</div><div class='del'>-			 resp-&gt;op);</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_book_view_construct (EBookView *book_view, GNOME_Evolution_Addressbook_BookView corba_book_view, EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment  ev;</div><div class='del'>-	g_return_val_if_fail (book_view != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK_VIEW (book_view), FALSE);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Copy in the corba_book_view.</div><div class='del'>-	 */</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	book_view-&gt;priv-&gt;corba_book_view = bonobo_object_dup_ref(corba_book_view, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_view_construct: Exception duplicating corba_book_view.\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		book_view-&gt;priv-&gt;corba_book_view = NULL;</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Create our local BookListener interface.</div><div class='del'>-	 */</div><div class='del'>-	book_view-&gt;priv-&gt;listener = listener;</div><div class='del'>-	book_view-&gt;priv-&gt;responses_queued_id = gtk_signal_connect (GTK_OBJECT (book_view-&gt;priv-&gt;listener), "responses_queued",</div><div class='del'>-								   e_book_view_check_listener_queue, book_view);</div><div class='del'>-</div><div class='del'>-	bonobo_object_ref(BONOBO_OBJECT(book_view-&gt;priv-&gt;listener));</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_view_new:</div><div class='del'>- */</div><div class='del'>-EBookView *</div><div class='del'>-e_book_view_new (GNOME_Evolution_Addressbook_BookView corba_book_view, EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	EBookView *book_view;</div><div class='del'>-</div><div class='del'>-	book_view = gtk_type_new (E_BOOK_VIEW_TYPE);</div><div class='del'>-</div><div class='del'>-	if (! e_book_view_construct (book_view, corba_book_view, listener)) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book_view));</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return book_view;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_view_set_book (EBookView *book_view, EBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (book_view &amp;&amp; E_IS_BOOK_VIEW (book_view));</div><div class='del'>-	g_return_if_fail (book &amp;&amp; E_IS_BOOK (book));</div><div class='del'>-	g_return_if_fail (book_view-&gt;priv-&gt;book == NULL);</div><div class='del'>-</div><div class='del'>-	book_view-&gt;priv-&gt;book = book;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (book));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_view_stop (EBookView *book_view)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (book_view &amp;&amp; E_IS_BOOK_VIEW (book_view));</div><div class='del'>-	if (book_view-&gt;priv-&gt;listener)</div><div class='del'>-		e_book_view_listener_stop (book_view-&gt;priv-&gt;listener);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_init (EBookView *book_view)</div><div class='del'>-{</div><div class='del'>-	book_view-&gt;priv                      = g_new0 (EBookViewPrivate, 1);</div><div class='del'>-	book_view-&gt;priv-&gt;book                = NULL;</div><div class='del'>-	book_view-&gt;priv-&gt;corba_book_view     = CORBA_OBJECT_NIL;</div><div class='del'>-	book_view-&gt;priv-&gt;listener            = NULL;</div><div class='del'>-	book_view-&gt;priv-&gt;responses_queued_id = 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	EBookView             *book_view = E_BOOK_VIEW (object);</div><div class='del'>-	CORBA_Environment  ev;</div><div class='del'>-</div><div class='del'>-	if (book_view-&gt;priv-&gt;book) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book_view-&gt;priv-&gt;book));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (book_view-&gt;priv-&gt;corba_book_view) {</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-		bonobo_object_release_unref (book_view-&gt;priv-&gt;corba_book_view, &amp;ev);</div><div class='del'>-</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("EBookView: Exception while releasing BookView\n");</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (book_view-&gt;priv-&gt;listener) {</div><div class='del'>-		if (book_view-&gt;priv-&gt;responses_queued_id)</div><div class='del'>-			gtk_signal_disconnect(GTK_OBJECT(book_view-&gt;priv-&gt;listener),</div><div class='del'>-					      book_view-&gt;priv-&gt;responses_queued_id);</div><div class='del'>-		e_book_view_listener_stop (book_view-&gt;priv-&gt;listener);</div><div class='del'>-		bonobo_object_unref (BONOBO_OBJECT(book_view-&gt;priv-&gt;listener));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (book_view-&gt;priv);</div><div class='del'>-</div><div class='del'>-	if (GTK_OBJECT_CLASS (e_book_view_parent_class)-&gt;destroy)</div><div class='del'>-		GTK_OBJECT_CLASS (e_book_view_parent_class)-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_view_class_init (EBookViewClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	e_book_view_parent_class = gtk_type_class (gtk_object_get_type ());</div><div class='del'>-</div><div class='del'>-	e_book_view_signals [CARD_CHANGED] =</div><div class='del'>-		gtk_signal_new ("card_changed",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookViewClass, card_changed),</div><div class='del'>-				gtk_marshal_NONE__POINTER,</div><div class='del'>-				GTK_TYPE_NONE, 1,</div><div class='del'>-				GTK_TYPE_POINTER);</div><div class='del'>-</div><div class='del'>-	e_book_view_signals [CARD_ADDED] =</div><div class='del'>-		gtk_signal_new ("card_added",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookViewClass, card_added),</div><div class='del'>-				gtk_marshal_NONE__STRING,</div><div class='del'>-				GTK_TYPE_NONE, 1,</div><div class='del'>-				GTK_TYPE_STRING);</div><div class='del'>-</div><div class='del'>-	e_book_view_signals [CARD_REMOVED] =</div><div class='del'>-		gtk_signal_new ("card_removed",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookViewClass, card_removed),</div><div class='del'>-				gtk_marshal_NONE__POINTER,</div><div class='del'>-				GTK_TYPE_NONE, 1,</div><div class='del'>-				GTK_TYPE_POINTER);</div><div class='del'>-</div><div class='del'>-	e_book_view_signals [SEQUENCE_COMPLETE] =</div><div class='del'>-		gtk_signal_new ("sequence_complete",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookViewClass, sequence_complete),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	e_book_view_signals [STATUS_MESSAGE] =</div><div class='del'>-		gtk_signal_new ("status_message",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookViewClass, status_message),</div><div class='del'>-				gtk_marshal_NONE__STRING,</div><div class='del'>-				GTK_TYPE_NONE, 1,</div><div class='del'>-				GTK_TYPE_STRING);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, e_book_view_signals,</div><div class='del'>-				      LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	klass-&gt;card_changed = NULL;</div><div class='del'>-	klass-&gt;card_added = NULL;</div><div class='del'>-	klass-&gt;card_removed = NULL;</div><div class='del'>-	klass-&gt;sequence_complete = NULL;</div><div class='del'>-	klass-&gt;status_message = NULL;</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_book_view_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_view_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-e_book_view_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"EBookView",</div><div class='del'>-			sizeof (EBookView),</div><div class='del'>-			sizeof (EBookViewClass),</div><div class='del'>-			(GtkClassInitFunc)  e_book_view_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_book_view_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (gtk_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book-view.h b/addressbook/backend/ebook/e-book-view.h<br/>deleted file mode 100644<br/>index 86326ca5b7..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book-view.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book-view.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,62 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * The Evolution addressbook client object.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 1999, 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_BOOK_VIEW_H__</div><div class='del'>-#define __E_BOOK_VIEW_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-view-listener.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef struct _EBookView        EBookView;</div><div class='del'>-typedef struct _EBookViewClass   EBookViewClass;</div><div class='del'>-typedef struct _EBookViewPrivate EBookViewPrivate;</div><div class='del'>-</div><div class='del'>-struct _EBook;  /* Forward reference */</div><div class='del'>-</div><div class='del'>-struct _EBookView {</div><div class='del'>-	GtkObject     parent;</div><div class='del'>-	EBookViewPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EBookViewClass {</div><div class='del'>-	GtkObjectClass parent;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Signals.</div><div class='del'>-	 */</div><div class='del'>-	void (* card_changed)      (EBookView *book_view, const GList *cards);</div><div class='del'>-	void (* card_removed)      (EBookView *book_view, const char *id);</div><div class='del'>-	void (* card_added)        (EBookView *book_view, const GList *cards);</div><div class='del'>-	void (* sequence_complete) (EBookView *book_view);</div><div class='del'>-	void (* status_message)    (EBookView *book_view, const char *message);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Creating a new addressbook. */</div><div class='del'>-EBookView         *e_book_view_new                    (GNOME_Evolution_Addressbook_BookView corba_book_view, EBookViewListener *listener);</div><div class='del'>-</div><div class='del'>-GtkType            e_book_view_get_type               (void);</div><div class='del'>-</div><div class='del'>-void               e_book_view_set_book               (EBookView *book_view, struct _EBook *book);</div><div class='del'>-</div><div class='del'>-void               e_book_view_stop                   (EBookView *book_view);</div><div class='del'>-</div><div class='del'>-#define E_BOOK_VIEW_TYPE        (e_book_view_get_type ())</div><div class='del'>-#define E_BOOK_VIEW(o)          (GTK_CHECK_CAST ((o), E_BOOK_VIEW_TYPE, EBookView))</div><div class='del'>-#define E_BOOK_VIEW_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_BOOK_VIEW_TYPE, EBookViewClass))</div><div class='del'>-#define E_IS_BOOK_VIEW(o)       (GTK_CHECK_TYPE ((o), E_BOOK_VIEW_TYPE))</div><div class='del'>-#define E_IS_BOOK_VIEW_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_BOOK_VIEW_TYPE))</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_BOOK_VIEW_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book.c b/addressbook/backend/ebook/e-book.c<br/>deleted file mode 100644<br/>index 41d5ec7e06..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1490 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * The Evolution addressbook client object.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 1999, 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmarshal.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "e-card-cursor.h"</div><div class='del'>-#include "e-book-listener.h"</div><div class='del'>-#include "e-book.h"</div><div class='del'>-</div><div class='del'>-GtkObjectClass *e_book_parent_class;</div><div class='del'>-</div><div class='del'>-#define CARDSERVER_OAF_ID "OAFIID:GNOME_Evolution_Wombat_ServerFactory"</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	URINotLoaded,</div><div class='del'>-	URILoading,</div><div class='del'>-	URILoaded</div><div class='del'>-} EBookLoadState;</div><div class='del'>-</div><div class='del'>-struct _EBookPrivate {</div><div class='del'>-	GList *book_factories;</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	EBookListener	      *listener;</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book         corba_book;</div><div class='del'>-</div><div class='del'>-	EBookLoadState         load_state;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * The operation queue.  New operations are appended to the</div><div class='del'>-	 * end of the queue.  When responses come back from the PAS,</div><div class='del'>-	 * the op structures are popped off the front of the queue.</div><div class='del'>-	 */</div><div class='del'>-	GList                 *pending_ops;</div><div class='del'>-</div><div class='del'>-	guint op_tag;</div><div class='del'>-</div><div class='del'>-	gchar *uri;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	OPEN_PROGRESS,</div><div class='del'>-	WRITABLE_STATUS,</div><div class='del'>-	LINK_STATUS,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint e_book_signals [LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	guint     tag;</div><div class='del'>-	gboolean  active;</div><div class='del'>-	gpointer  cb;</div><div class='del'>-	gpointer  closure;</div><div class='del'>-	EBookViewListener *listener;</div><div class='del'>-} EBookOp;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Local response queue management.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_op_free (EBookOp *op)</div><div class='del'>-{</div><div class='del'>-	if (op-&gt;listener) {</div><div class='del'>-		bonobo_object_unref (BONOBO_OBJECT (op-&gt;listener));</div><div class='del'>-		op-&gt;listener = NULL;</div><div class='del'>-	}</div><div class='del'>-	g_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static guint</div><div class='del'>-e_book_queue_op (EBook    *book,</div><div class='del'>-		 gpointer  cb,</div><div class='del'>-		 gpointer  closure,</div><div class='del'>-		 EBookViewListener *listener)</div><div class='del'>-{</div><div class='del'>-	EBookOp *op;</div><div class='del'>-</div><div class='del'>-	op           = g_new0 (EBookOp, 1);</div><div class='del'>-	op-&gt;tag      = book-&gt;priv-&gt;op_tag++;</div><div class='del'>-	op-&gt;active   = TRUE;</div><div class='del'>-	op-&gt;cb       = cb;</div><div class='del'>-	op-&gt;closure  = closure;</div><div class='del'>-	op-&gt;listener = listener;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;listener)</div><div class='del'>-		bonobo_object_ref (BONOBO_OBJECT (op-&gt;listener));</div><div class='del'>-</div><div class='del'>-	book-&gt;priv-&gt;pending_ops =</div><div class='del'>-		g_list_append (book-&gt;priv-&gt;pending_ops, op);</div><div class='del'>-</div><div class='del'>-	return op-&gt;tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Local response queue management.</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_book_unqueue_op (EBook    *book)</div><div class='del'>-{</div><div class='del'>-	EBookOp *op;</div><div class='del'>-	GList *removed;</div><div class='del'>-</div><div class='del'>-	removed = g_list_last (book-&gt;priv-&gt;pending_ops);</div><div class='del'>-</div><div class='del'>-	if (removed) {</div><div class='del'>-		book-&gt;priv-&gt;pending_ops = g_list_remove_link (book-&gt;priv-&gt;pending_ops,</div><div class='del'>-							      removed);</div><div class='del'>-		op = removed-&gt;data;</div><div class='del'>-		e_book_op_free (op);</div><div class='del'>-		g_list_free_1 (removed);</div><div class='del'>-		book-&gt;priv-&gt;op_tag--;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static EBookOp *</div><div class='del'>-e_book_pop_op (EBook *book)</div><div class='del'>-{</div><div class='del'>-	GList   *popped;</div><div class='del'>-	EBookOp *op;</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;pending_ops == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	op = book-&gt;priv-&gt;pending_ops-&gt;data;</div><div class='del'>-</div><div class='del'>-	popped = book-&gt;priv-&gt;pending_ops;</div><div class='del'>-	book-&gt;priv-&gt;pending_ops =</div><div class='del'>-		g_list_remove_link (book-&gt;priv-&gt;pending_ops,</div><div class='del'>-				    book-&gt;priv-&gt;pending_ops);</div><div class='del'>-</div><div class='del'>-	g_list_free_1 (popped);</div><div class='del'>-</div><div class='del'>-	return op;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_book_cancel_op (EBook *book, guint tag)</div><div class='del'>-{</div><div class='del'>-	GList *iter;</div><div class='del'>-	gboolean cancelled = FALSE;</div><div class='del'>-</div><div class='del'>-	for (iter = book-&gt;priv-&gt;pending_ops; iter != NULL &amp;&amp; !cancelled; iter = g_list_next (iter)) {</div><div class='del'>-		EBookOp *op = iter-&gt;data;</div><div class='del'>-		if (op-&gt;tag == tag) {</div><div class='del'>-			op-&gt;active = FALSE;</div><div class='del'>-			cancelled = TRUE;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return cancelled;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_create_card (EBook                 *book,</div><div class='del'>-				EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	EBookOp *op;</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_create_card: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (op-&gt;cb)</div><div class='del'>-		((EBookIdCallback) op-&gt;cb) (book, resp-&gt;status, resp-&gt;id, op-&gt;closure);</div><div class='del'>-	g_free (resp-&gt;id);</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_generic (EBook                 *book,</div><div class='del'>-			    EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	EBookOp *op;</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_generic: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (op-&gt;cb)</div><div class='del'>-		((EBookCallback) op-&gt;cb) (book, resp-&gt;status, op-&gt;closure);</div><div class='del'>-</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_get_vcard (EBook                 *book,</div><div class='del'>-			      EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	EBookOp *op;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_get_vcard: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	if (resp-&gt;vcard != NULL) {</div><div class='del'>-</div><div class='del'>-		card = e_card_new(resp-&gt;vcard);</div><div class='del'>-</div><div class='del'>-		if (card != NULL) {</div><div class='del'>-			e_card_set_book (card, book);</div><div class='del'>-			if (op-&gt;cb) {</div><div class='del'>-				if (op-&gt;active)</div><div class='del'>-					((EBookCardCallback) op-&gt;cb) (book, resp-&gt;status, card, op-&gt;closure);</div><div class='del'>-				else</div><div class='del'>-					((EBookCardCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-		} else {</div><div class='del'>-			((EBookCursorCallback) op-&gt;cb) (book, resp-&gt;status, NULL, op-&gt;closure);</div><div class='del'>-		}</div><div class='del'>-	} else {</div><div class='del'>-		((EBookCardCallback) op-&gt;cb) (book, resp-&gt;status, NULL, op-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (resp-&gt;vcard);</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_get_cursor (EBook                 *book,</div><div class='del'>-			       EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	EBookOp *op;</div><div class='del'>-	ECardCursor *cursor;</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_get_cursor: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	cursor = e_card_cursor_new(resp-&gt;cursor);</div><div class='del'>-</div><div class='del'>-	if (cursor != NULL) {</div><div class='del'>-		if (op-&gt;cb) {</div><div class='del'>-			if (op-&gt;active)</div><div class='del'>-				((EBookCursorCallback) op-&gt;cb) (book, resp-&gt;status, cursor, op-&gt;closure);</div><div class='del'>-			else</div><div class='del'>-				((EBookCursorCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/*</div><div class='del'>-		 * Release the remote GNOME_Evolution_Addressbook_Book in the PAS.</div><div class='del'>-		 */</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-		bonobo_object_release_unref (resp-&gt;cursor, &amp;ev);</div><div class='del'>-</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("e_book_do_response_get_cursor: Exception releasing "</div><div class='del'>-				   "remote GNOME_Evolution_Addressbook_CardCursor interface!\n");</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(cursor));</div><div class='del'>-	} else {</div><div class='del'>-		((EBookCursorCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_get_view (EBook                 *book,</div><div class='del'>-			     EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	EBookOp *op;</div><div class='del'>-	EBookView *book_view;</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_get_view: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	book_view = e_book_view_new (resp-&gt;book_view, op-&gt;listener);</div><div class='del'>-</div><div class='del'>-	if (book_view != NULL) {</div><div class='del'>-		e_book_view_set_book (book_view, book);</div><div class='del'>-</div><div class='del'>-		/* Only execute the callback if the operation is still flagged as active (i.e. hasn't</div><div class='del'>-		   been cancelled.  This is mildly wasteful since we unnecessaryily create the</div><div class='del'>-		   book_view, etc... but I'm leery of tinkering with the CORBA magic. */</div><div class='del'>-		if (op-&gt;cb) {</div><div class='del'>-			if (op-&gt;active)</div><div class='del'>-				((EBookBookViewCallback) op-&gt;cb) (book, resp-&gt;status, book_view, op-&gt;closure);</div><div class='del'>-			else</div><div class='del'>-				((EBookBookViewCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-		}</div><div class='del'>-	</div><div class='del'>-		/*</div><div class='del'>-		 * Release the remote GNOME_Evolution_Addressbook_Book in the PAS.</div><div class='del'>-		 */</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-		bonobo_object_release_unref  (resp-&gt;book_view, &amp;ev);</div><div class='del'>-</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("e_book_do_response_get_view: Exception releasing "</div><div class='del'>-				   "remote GNOME_Evolution_Addressbook_BookView interface!\n");</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(book_view));</div><div class='del'>-	} else {</div><div class='del'>-		e_book_view_listener_stop (op-&gt;listener);</div><div class='del'>-		((EBookBookViewCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_get_changes (EBook                 *book,</div><div class='del'>-				EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	EBookOp *op;</div><div class='del'>-	EBookView *book_view;</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_get_changes: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	book_view = e_book_view_new (resp-&gt;book_view, op-&gt;listener);</div><div class='del'>-</div><div class='del'>-	if (book_view != NULL) {</div><div class='del'>-		e_book_view_set_book (book_view, book);</div><div class='del'>-	</div><div class='del'>-		if (op-&gt;cb) {</div><div class='del'>-			if (op-&gt;active)</div><div class='del'>-				((EBookBookViewCallback) op-&gt;cb) (book, resp-&gt;status, book_view, op-&gt;closure);</div><div class='del'>-			else</div><div class='del'>-				((EBookBookViewCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/*</div><div class='del'>-		 * Release the remote GNOME_Evolution_Addressbook_BookView in the PAS.</div><div class='del'>-		 */</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-		bonobo_object_release_unref  (resp-&gt;book_view, &amp;ev);</div><div class='del'>-</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("e_book_do_response_get_changes: Exception releasing "</div><div class='del'>-				   "remote GNOME_Evolution_Addressbook_BookView interface!\n");</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(book_view));</div><div class='del'>-	} else {</div><div class='del'>-		e_book_view_listener_stop (op-&gt;listener);</div><div class='del'>-		((EBookBookViewCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_open (EBook                 *book,</div><div class='del'>-			 EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	EBookOp *op;</div><div class='del'>-</div><div class='del'>-	if (resp-&gt;status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		book-&gt;priv-&gt;corba_book  = resp-&gt;book;</div><div class='del'>-		book-&gt;priv-&gt;load_state  = URILoaded;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_open: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (op-&gt;cb)</div><div class='del'>-		((EBookCallback) op-&gt;cb) (book, resp-&gt;status, op-&gt;closure);</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_progress_event (EBook                 *book,</div><div class='del'>-			  EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book), e_book_signals [OPEN_PROGRESS],</div><div class='del'>-			 resp-&gt;msg, resp-&gt;percent);</div><div class='del'>-</div><div class='del'>-	g_free (resp-&gt;msg);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_link_event (EBook                 *book,</div><div class='del'>-		      EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book), e_book_signals [LINK_STATUS],</div><div class='del'>-			 resp-&gt;connected);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_writable_event (EBook                 *book,</div><div class='del'>-			  EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (book), e_book_signals [WRITABLE_STATUS],</div><div class='del'>-			 resp-&gt;writable);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_do_response_get_supported_fields (EBook                 *book,</div><div class='del'>-					 EBookListenerResponse *resp)</div><div class='del'>-{</div><div class='del'>-	EBookOp *op;</div><div class='del'>-</div><div class='del'>-	op = e_book_pop_op (book);</div><div class='del'>-</div><div class='del'>-	if (op == NULL) {</div><div class='del'>-		g_warning ("e_book_do_response_get_supported_fields: Cannot find operation "</div><div class='del'>-			   "in local op queue!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (op-&gt;cb) {</div><div class='del'>-		if (op-&gt;active)</div><div class='del'>-			((EBookFieldsCallback) op-&gt;cb) (book, resp-&gt;status, resp-&gt;fields, op-&gt;closure);</div><div class='del'>-		else</div><div class='del'>-			((EBookFieldsCallback) op-&gt;cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_op_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Reading notices out of the EBookListener's queue.</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_book_check_listener_queue (EBookListener *listener, EBook *book)</div><div class='del'>-{</div><div class='del'>-	EBookListenerResponse *resp;</div><div class='del'>-</div><div class='del'>-	resp = e_book_listener_pop_response (listener);</div><div class='del'>-</div><div class='del'>-	if (resp == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	switch (resp-&gt;op) {</div><div class='del'>-	case CreateCardResponse:</div><div class='del'>-		e_book_do_response_create_card (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case RemoveCardResponse:</div><div class='del'>-	case ModifyCardResponse:</div><div class='del'>-	case AuthenticationResponse:</div><div class='del'>-		e_book_do_response_generic (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case GetCardResponse:</div><div class='del'>-		e_book_do_response_get_vcard (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case GetCursorResponse:</div><div class='del'>-		e_book_do_response_get_cursor (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case GetBookViewResponse:</div><div class='del'>-		e_book_do_response_get_view(book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case GetChangesResponse:</div><div class='del'>-		e_book_do_response_get_changes(book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case OpenBookResponse:</div><div class='del'>-		e_book_do_response_open (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case GetSupportedFieldsResponse:</div><div class='del'>-		e_book_do_response_get_supported_fields (book, resp);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case OpenProgressEvent:</div><div class='del'>-		e_book_do_progress_event (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case LinkStatusEvent:</div><div class='del'>-		e_book_do_link_event (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	case WritableStatusEvent:</div><div class='del'>-		e_book_do_writable_event (book, resp);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		g_error ("EBook: Unknown operation %d in listener queue!\n",</div><div class='del'>-			 resp-&gt;op);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (resp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_load_uri:</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char                      *uri;</div><div class='del'>-	EBookCallback              open_response;</div><div class='del'>-	gpointer                   closure;</div><div class='del'>-} EBookLoadURIData;</div><div class='del'>-</div><div class='del'>-static void e_book_load_uri_from_factory (EBook *book,</div><div class='del'>-					  GNOME_Evolution_Addressbook_BookFactory factory,</div><div class='del'>-					  EBookLoadURIData *load_uri_data);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_load_uri_step (EBook *book, EBookStatus status, EBookLoadURIData *data)</div><div class='del'>-{</div><div class='del'>-	/* iterate to the next possible CardFactory, or fail</div><div class='del'>-	   if it's the last one */</div><div class='del'>-	book-&gt;priv-&gt;iter = book-&gt;priv-&gt;book_factories-&gt;next;</div><div class='del'>-	if (book-&gt;priv-&gt;iter) {</div><div class='del'>-		GNOME_Evolution_Addressbook_BookFactory factory = book-&gt;priv-&gt;iter-&gt;data;</div><div class='del'>-		e_book_load_uri_from_factory (book, factory, data);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		EBookCallback cb = data-&gt;open_response;</div><div class='del'>-		gpointer closure = data-&gt;closure;</div><div class='del'>-</div><div class='del'>-		g_free (data);</div><div class='del'>-</div><div class='del'>-		cb (book, status, closure);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_load_uri_open_cb (EBook *book, EBookStatus status, EBookLoadURIData *data)</div><div class='del'>-{</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		EBookCallback cb = data-&gt;open_response;</div><div class='del'>-		gpointer closure = data-&gt;closure;</div><div class='del'>-</div><div class='del'>-		g_free (data);</div><div class='del'>-</div><div class='del'>-		cb (book, status, closure);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		e_book_load_uri_step (book, status, data);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_load_uri_from_factory (EBook *book,</div><div class='del'>-			      GNOME_Evolution_Addressbook_BookFactory factory,</div><div class='del'>-			      EBookLoadURIData *load_uri_data)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	e_book_queue_op (book, e_book_load_uri_open_cb, load_uri_data, NULL);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookFactory_openBook (</div><div class='del'>-		factory, book-&gt;priv-&gt;uri,</div><div class='del'>-		bonobo_object_corba_objref (BONOBO_OBJECT (book-&gt;priv-&gt;listener)),</div><div class='del'>-		&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_load_uri: CORBA exception while opening addressbook!\n");</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_load_uri_step (book, E_BOOK_STATUS_OTHER_ERROR, load_uri_data);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-activate_factories_for_uri (EBook *book, const char *uri)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	OAF_ServerInfoList *info_list;</div><div class='del'>-	int i;</div><div class='del'>-	char *protocol, *query, *colon;</div><div class='del'>-</div><div class='del'>-	colon = strchr (uri, ':');</div><div class='del'>-	if (!colon) {</div><div class='del'>-		g_warning ("e_book_load_uri: Unable to determine protocol in the URI\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	protocol = g_strndup (uri, colon-uri);</div><div class='del'>-	query = g_strdup_printf ("repo_ids.has ('IDL:GNOME/Evolution/BookFactory:1.0')"</div><div class='del'>-#if 0</div><div class='del'>-				 " AND addressbook:supported_protocols.has ('%s')", protocol</div><div class='del'>-#endif</div><div class='del'>-				 );</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	</div><div class='del'>-	info_list = oaf_query (query, NULL, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("Eeek!  Cannot perform OAF query for book factories.");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (info_list-&gt;_length == 0) {</div><div class='del'>-		g_warning ("Can't find installed BookFactory that handles protocol '%s'.", protocol);</div><div class='del'>-		g_free (protocol);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (protocol);</div><div class='del'>-	g_free (query);</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; info_list-&gt;_length; i ++) {</div><div class='del'>-		const OAF_ServerInfo *info;</div><div class='del'>-		GNOME_Evolution_Addressbook_BookFactory factory;</div><div class='del'>-</div><div class='del'>-		info = info_list-&gt;_buffer + i;</div><div class='del'>-</div><div class='del'>-		factory = oaf_activate_from_id (info-&gt;iid, 0, NULL, NULL);</div><div class='del'>-</div><div class='del'>-		if (factory == CORBA_OBJECT_NIL)</div><div class='del'>-			g_warning ("e_book_construct: Could not obtain a handle "</div><div class='del'>-				   "to the Personal Addressbook Server with IID `%s'\n", info-&gt;iid);</div><div class='del'>-		else</div><div class='del'>-			book-&gt;priv-&gt;book_factories = g_list_append (book-&gt;priv-&gt;book_factories,</div><div class='del'>-								    factory);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_free (info_list);</div><div class='del'>-</div><div class='del'>-	if (!book-&gt;priv-&gt;book_factories) {</div><div class='del'>-		g_warning ("Couldn't activate any book factories.");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_book_load_uri (EBook                     *book,</div><div class='del'>-		 const char                *uri,</div><div class='del'>-		 EBookCallback              open_response,</div><div class='del'>-		 gpointer                   closure)</div><div class='del'>-{</div><div class='del'>-	EBookLoadURIData *load_uri_data;</div><div class='del'>-	GNOME_Evolution_Addressbook_BookFactory factory;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,          FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book),      FALSE);</div><div class='del'>-	g_return_val_if_fail (uri != NULL,           FALSE);</div><div class='del'>-	g_return_val_if_fail (open_response != NULL, FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URINotLoaded) {</div><div class='del'>-		g_warning ("e_book_load_uri: Attempted to load a URI "</div><div class='del'>-			   "on a book which already has a URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* try to find a list of factories that can handle the protocol */</div><div class='del'>-	if (!activate_factories_for_uri (book, uri)) {</div><div class='del'>-		open_response (NULL, E_BOOK_STATUS_PROTOCOL_NOT_SUPPORTED, closure);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-		</div><div class='del'>-	g_free (book-&gt;priv-&gt;uri);</div><div class='del'>-	book-&gt;priv-&gt;uri = g_strdup (uri);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Create our local BookListener interface.</div><div class='del'>-	 */</div><div class='del'>-	book-&gt;priv-&gt;listener = e_book_listener_new ();</div><div class='del'>-	if (book-&gt;priv-&gt;listener == NULL) {</div><div class='del'>-		g_warning ("e_book_load_uri: Could not create EBookListener!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (book-&gt;priv-&gt;listener), "responses_queued",</div><div class='del'>-			    e_book_check_listener_queue, book);</div><div class='del'>-</div><div class='del'>-	load_uri_data = g_new (EBookLoadURIData, 1);</div><div class='del'>-	load_uri_data-&gt;open_response = open_response;</div><div class='del'>-	load_uri_data-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	/* initialize the iterator, and load from the first one*/</div><div class='del'>-	book-&gt;priv-&gt;iter = book-&gt;priv-&gt;book_factories;</div><div class='del'>-</div><div class='del'>-	factory = book-&gt;priv-&gt;iter-&gt;data;</div><div class='del'>-</div><div class='del'>-	e_book_load_uri_from_factory (book, factory, load_uri_data);</div><div class='del'>-</div><div class='del'>-	book-&gt;priv-&gt;load_state = URILoading;</div><div class='del'>-</div><div class='del'>-	/* Now we play the waiting game. */</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_unload_uri:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-e_book_unload_uri (EBook *book)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (book != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * FIXME: Make sure this works if the URI is still being</div><div class='del'>-	 * loaded.</div><div class='del'>-	 */</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_unload_uri: No URI is loaded!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Release the remote GNOME_Evolution_Addressbook_Book in the PAS.</div><div class='del'>-	 */</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	bonobo_object_release_unref  (book-&gt;priv-&gt;corba_book, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_unload_uri: Exception releasing "</div><div class='del'>-			   "remote book interface!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	e_book_listener_stop (book-&gt;priv-&gt;listener);</div><div class='del'>-	bonobo_object_unref (BONOBO_OBJECT (book-&gt;priv-&gt;listener));</div><div class='del'>-</div><div class='del'>-	book-&gt;priv-&gt;listener   = NULL;</div><div class='del'>-	book-&gt;priv-&gt;load_state = URINotLoaded;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const char *</div><div class='del'>-e_book_get_uri (EBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (book &amp;&amp; E_IS_BOOK (book), NULL);</div><div class='del'>-</div><div class='del'>-	return book-&gt;priv-&gt;uri;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-e_book_get_static_capabilities (EBook *book)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	char *temp;</div><div class='del'>-	char *ret_val;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_unload_uri: No URI is loaded!\n");</div><div class='del'>-		return g_strdup("");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	temp = GNOME_Evolution_Addressbook_Book_getStaticCapabilities(book-&gt;priv-&gt;corba_book, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_get_static_capabilities: Exception "</div><div class='del'>-			   "during get_static_capabilities!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ret_val = g_strdup(temp);</div><div class='del'>-	CORBA_free(temp);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-guint</div><div class='del'>-e_book_get_supported_fields (EBook              *book,</div><div class='del'>-			     EBookFieldsCallback cb,</div><div class='del'>-			     gpointer            closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	guint tag;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_unload_uri: No URI is loaded!\n");</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	tag = e_book_queue_op (book, cb, closure, NULL);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_getSupportedFields(book-&gt;priv-&gt;corba_book, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_get_supported_fields: Exception "</div><div class='del'>-			   "during get_supported_fields!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_book_construct (EBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (book != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-</div><div class='del'>-	book-&gt;priv-&gt;book_factories = NULL;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_new:</div><div class='del'>- */</div><div class='del'>-EBook *</div><div class='del'>-e_book_new (void)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-</div><div class='del'>-	book = gtk_type_new (E_BOOK_TYPE);</div><div class='del'>-</div><div class='del'>-	if (! e_book_construct (book)) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return book;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* User authentication. */</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_authenticate_user (EBook         *book,</div><div class='del'>-			  const char    *user,</div><div class='del'>-			  const char    *passwd,</div><div class='del'>-			  EBookCallback cb,</div><div class='del'>-			  gpointer      closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment  ev;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (book != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_authenticate_user: No URI loaded!\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	e_book_queue_op (book, cb, closure, NULL);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_authenticateUser (book-&gt;priv-&gt;corba_book,</div><div class='del'>-							   user,</div><div class='del'>-							   passwd,</div><div class='del'>-							   &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_authenticate_user: Exception authenticating user with the PAS!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Fetching cards */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_get_card:</div><div class='del'>- */</div><div class='del'>-guint</div><div class='del'>-e_book_get_card (EBook             *book,</div><div class='del'>-		 const char        *id,</div><div class='del'>-		 EBookCardCallback  cb,</div><div class='del'>-		 gpointer           closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	guint tag;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,     0);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), 0);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_get_card: No URI loaded!\n");</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	tag = e_book_queue_op (book, cb, closure, NULL);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_getVCard (book-&gt;priv-&gt;corba_book, (const GNOME_Evolution_Addressbook_VCard) id, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_get_card: Exception "</div><div class='del'>-			   "getting card!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deleting cards. */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_remove_card:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-e_book_remove_card (EBook         *book,</div><div class='del'>-		    ECard         *card,</div><div class='del'>-		    EBookCallback  cb,</div><div class='del'>-		    gpointer       closure)</div><div class='del'>-{</div><div class='del'>-	const char *id;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-	g_return_val_if_fail (card != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card), FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_remove_card: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	id = e_card_get_id (card);</div><div class='del'>-	g_assert (id != NULL);</div><div class='del'>-</div><div class='del'>-	return e_book_remove_card_by_id (book, id, cb, closure);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_remove_card_by_id:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-e_book_remove_card_by_id (EBook         *book,</div><div class='del'>-			  const char    *id,</div><div class='del'>-			  EBookCallback  cb,</div><div class='del'>-			  gpointer       closure)</div><div class='del'>-</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-	g_return_val_if_fail (id != NULL,       FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_remove_card_by_id: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	e_book_queue_op (book, cb, closure, NULL);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_removeCard (</div><div class='del'>-		book-&gt;priv-&gt;corba_book, (const GNOME_Evolution_Addressbook_CardId) id, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_remove_card_by_id: CORBA exception "</div><div class='del'>-			   "talking to PAS!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Adding cards. */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_add_card:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-e_book_add_card (EBook           *book,</div><div class='del'>-		 ECard           *card,</div><div class='del'>-		 EBookIdCallback  cb,</div><div class='del'>-		 gpointer         closure)</div><div class='del'>-</div><div class='del'>-{</div><div class='del'>-	char     *vcard;</div><div class='del'>-	gboolean  retval;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-	g_return_val_if_fail (card != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card), FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_add_card: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	vcard = e_card_get_vcard_assume_utf8 (card);</div><div class='del'>-</div><div class='del'>-	if (vcard == NULL) {</div><div class='del'>-		g_warning ("e_book_add_card: Cannot convert card to VCard string!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	retval = e_book_add_vcard (book, vcard, cb, closure);</div><div class='del'>-</div><div class='del'>-	g_free (vcard);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;book &amp;&amp; card-&gt;book != book)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;book));</div><div class='del'>-	card-&gt;book = book;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (card-&gt;book));</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_add_vcard:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-e_book_add_vcard (EBook           *book,</div><div class='del'>-		  const char      *vcard,</div><div class='del'>-		  EBookIdCallback  cb,</div><div class='del'>-		  gpointer         closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book  != NULL,    FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-	g_return_val_if_fail (vcard != NULL,    FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_add_vcard: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	e_book_queue_op (book, (EBookCallback) cb, closure, NULL);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_addCard (</div><div class='del'>-		book-&gt;priv-&gt;corba_book, (const GNOME_Evolution_Addressbook_VCard) vcard, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_add_vcard: Exception adding card to PAS!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Modifying cards. */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_commit_card:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-e_book_commit_card (EBook         *book,</div><div class='del'>-		    ECard         *card,</div><div class='del'>-		    EBookCallback  cb,</div><div class='del'>-		    gpointer       closure)</div><div class='del'>-{</div><div class='del'>-	char     *vcard;</div><div class='del'>-	gboolean  retval;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (book  != NULL,    FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-	g_return_val_if_fail (card != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card), FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_commit_card: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	vcard = e_card_get_vcard_assume_utf8 (card);</div><div class='del'>-</div><div class='del'>-	if (vcard == NULL) {</div><div class='del'>-		g_warning ("e_book_commit_card: Error "</div><div class='del'>-			   "getting VCard for card!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	retval = e_book_commit_vcard (book, vcard, cb, closure);</div><div class='del'>-</div><div class='del'>-	g_free (vcard);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;book &amp;&amp; card-&gt;book != book)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;book));</div><div class='del'>-	card-&gt;book = book;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (card-&gt;book));</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_commit_vcard:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-e_book_commit_vcard (EBook         *book,</div><div class='del'>-		     const char    *vcard,</div><div class='del'>-		     EBookCallback  cb,</div><div class='del'>-		     gpointer       closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book  != NULL,    FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-	g_return_val_if_fail (vcard != NULL,    FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_commit_vcard: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	e_book_queue_op (book, cb, closure, NULL);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_modifyCard (</div><div class='del'>-		book-&gt;priv-&gt;corba_book, (const GNOME_Evolution_Addressbook_VCard) vcard, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_commit_vcard: Exception "</div><div class='del'>-			   "modifying card in PAS!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_check_connection:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-e_book_check_connection (EBook *book)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,     FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), FALSE);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_check_connection: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_checkConnection (book-&gt;priv-&gt;corba_book, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_check_connection: Exception "</div><div class='del'>-			   "querying the PAS!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-guint</div><div class='del'>-e_book_get_cursor       (EBook               *book,</div><div class='del'>-			 gchar               *query,</div><div class='del'>-			 EBookCursorCallback  cb,</div><div class='del'>-			 gpointer             closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	guint tag;</div><div class='del'>-  </div><div class='del'>-	g_return_val_if_fail (book != NULL,     0);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), 0);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_check_connection: No URI loaded!\n");</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	tag = e_book_queue_op (book, cb, closure, NULL);</div><div class='del'>-	</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_getCursor (book-&gt;priv-&gt;corba_book, query, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_get_all_cards: Exception "</div><div class='del'>-			   "querying list of cards!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-guint</div><div class='del'>-e_book_get_book_view       (EBook                 *book,</div><div class='del'>-			    const gchar           *query,</div><div class='del'>-			    EBookBookViewCallback  cb,</div><div class='del'>-			    gpointer               closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	EBookViewListener *listener;</div><div class='del'>-	guint tag;</div><div class='del'>-  </div><div class='del'>-	g_return_val_if_fail (book != NULL,     0);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), 0);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_get_book_view: No URI loaded!\n");</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	listener = e_book_view_listener_new();</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	tag = e_book_queue_op (book, cb, closure, listener);</div><div class='del'>-	</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_getBookView (book-&gt;priv-&gt;corba_book, bonobo_object_corba_objref(BONOBO_OBJECT(listener)), query, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_get_book_view: Exception "</div><div class='del'>-			   "getting book_view!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-guint</div><div class='del'>-e_book_get_changes         (EBook                 *book,</div><div class='del'>-			    gchar                 *changeid,</div><div class='del'>-			    EBookBookViewCallback  cb,</div><div class='del'>-			    gpointer               closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	EBookViewListener *listener;</div><div class='del'>-	guint tag;</div><div class='del'>-  </div><div class='del'>-	g_return_val_if_fail (book != NULL,     0);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), 0);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_get_changes: No URI loaded!\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	listener = e_book_view_listener_new();</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	tag = e_book_queue_op (book, cb, closure, listener);</div><div class='del'>-	</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_getChanges (book-&gt;priv-&gt;corba_book, bonobo_object_corba_objref(BONOBO_OBJECT(listener)), changeid, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_changes: Exception "</div><div class='del'>-			   "getting changes!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		e_book_unqueue_op (book);</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return tag;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_cancel</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_book_cancel (EBook *book, guint tag)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (book != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_BOOK (book));</div><div class='del'>-	g_return_if_fail (tag != 0);</div><div class='del'>-</div><div class='del'>-	/* In an attempt to be useful, we take a bit of extra care in reporting</div><div class='del'>-	   errors.  This might come in handy someday. */</div><div class='del'>-	if (tag &gt;= book-&gt;priv-&gt;op_tag)</div><div class='del'>-		g_warning ("Attempt to cancel unassigned operation (%u)", tag);</div><div class='del'>-	else if (! e_book_cancel_op (book, tag))</div><div class='del'>-		g_warning ("Attempt to cancel unknown operation (%u)", tag); </div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_get_name:</div><div class='del'>- */</div><div class='del'>-char *</div><div class='del'>-e_book_get_name (EBook *book)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment  ev;</div><div class='del'>-	char              *retval;</div><div class='del'>-	char              *name;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,     NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), NULL);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state != URILoaded) {</div><div class='del'>-		g_warning ("e_book_get_name: No URI loaded!\n");</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	name = GNOME_Evolution_Addressbook_Book_getName (book-&gt;priv-&gt;corba_book, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_book_get_name: Exception getting name from PAS!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (name == NULL) {</div><div class='del'>-		g_warning ("e_book_get_name: Got NULL name from PAS!\n");</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	retval = g_strdup (name);</div><div class='del'>-	CORBA_free (name);</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_init (EBook *book)</div><div class='del'>-{</div><div class='del'>-	book-&gt;priv             = g_new0 (EBookPrivate, 1);</div><div class='del'>-	book-&gt;priv-&gt;load_state = URINotLoaded;</div><div class='del'>-	book-&gt;priv-&gt;op_tag     = 1;</div><div class='del'>-	book-&gt;priv-&gt;uri        = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	EBook             *book = E_BOOK (object);</div><div class='del'>-	CORBA_Environment  ev;</div><div class='del'>-	GList *l;</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;load_state == URILoaded)</div><div class='del'>-		e_book_unload_uri (book);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	for (l = book-&gt;priv-&gt;book_factories; l; l = l-&gt;next) {</div><div class='del'>-		CORBA_Object_release ((CORBA_Object)l-&gt;data, &amp;ev);</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("EBook: Exception while releasing BookFactory\n");</div><div class='del'>-</div><div class='del'>-			CORBA_exception_free (&amp;ev);</div><div class='del'>-			CORBA_exception_init (&amp;ev);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (book-&gt;priv-&gt;uri);</div><div class='del'>-</div><div class='del'>-	g_free (book-&gt;priv);</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (e_book_parent_class)-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_book_class_init (EBookClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	e_book_parent_class = gtk_type_class (gtk_object_get_type ());</div><div class='del'>-</div><div class='del'>-	e_book_signals [LINK_STATUS] =</div><div class='del'>-		gtk_signal_new ("link_status",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookClass, link_status),</div><div class='del'>-				gtk_marshal_NONE__BOOL,</div><div class='del'>-				GTK_TYPE_NONE, 1,</div><div class='del'>-				GTK_TYPE_BOOL);</div><div class='del'>-</div><div class='del'>-	e_book_signals [WRITABLE_STATUS] =</div><div class='del'>-		gtk_signal_new ("writable_status",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EBookClass, writable_status),</div><div class='del'>-				gtk_marshal_NONE__BOOL,</div><div class='del'>-				GTK_TYPE_NONE, 1,</div><div class='del'>-				GTK_TYPE_BOOL);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, e_book_signals,</div><div class='del'>-				      LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_book_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_book_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-e_book_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"EBook",</div><div class='del'>-			sizeof (EBook),</div><div class='del'>-			sizeof (EBookClass),</div><div class='del'>-			(GtkClassInitFunc)  e_book_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_book_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (gtk_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-book.h b/addressbook/backend/ebook/e-book.h<br/>deleted file mode 100644<br/>index cf90c8c57d..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-book.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-book.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,151 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * The Evolution addressbook client object.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 1999, 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_BOOK_H__</div><div class='del'>-#define __E_BOOK_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card-cursor.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-view.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-types.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef struct _EBook        EBook;</div><div class='del'>-typedef struct _EBookClass   EBookClass;</div><div class='del'>-typedef struct _EBookPrivate EBookPrivate;</div><div class='del'>-</div><div class='del'>-struct _EBook {</div><div class='del'>-	GtkObject     parent;</div><div class='del'>-	EBookPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EBookClass {</div><div class='del'>-	GtkObjectClass parent;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Signals.</div><div class='del'>-	 */</div><div class='del'>-	void (* open_progress)   (EBook *book, const char *msg, short percent);</div><div class='del'>-	void (* link_status)     (EBook *book, gboolean connected);</div><div class='del'>-	void (* writable_status) (EBook *book, gboolean writable);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Callbacks for asynchronous functions. */</div><div class='del'>-typedef void (*EBookCallback) (EBook *book, EBookStatus status, gpointer closure);</div><div class='del'>-typedef void (*EBookOpenProgressCallback)     (EBook          *book,</div><div class='del'>-					       const char     *status_message,</div><div class='del'>-					       short           percent,</div><div class='del'>-					       gpointer        closure);</div><div class='del'>-typedef void (*EBookIdCallback)       (EBook *book, EBookStatus status, const char *id, gpointer closure);</div><div class='del'>-typedef void (*EBookCardCallback)     (EBook *book, EBookStatus status, ECard *card, gpointer closure);</div><div class='del'>-typedef void (*EBookCursorCallback)   (EBook *book, EBookStatus status, ECardCursor *cursor, gpointer closure);</div><div class='del'>-typedef void (*EBookBookViewCallback) (EBook *book, EBookStatus status, EBookView *book_view, gpointer closure);</div><div class='del'>-typedef void (*EBookFieldsCallback)   (EBook *book, EBookStatus status, EList *fields, gpointer closure);</div><div class='del'>-</div><div class='del'>-/* Creating a new addressbook. */</div><div class='del'>-EBook    *e_book_new                      (void);</div><div class='del'>-</div><div class='del'>-gboolean  e_book_load_uri                 (EBook                 *book,</div><div class='del'>-					   const char            *uri,</div><div class='del'>-					   EBookCallback          open_response,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-void      e_book_unload_uri               (EBook                 *book);</div><div class='del'>-</div><div class='del'>-const char *e_book_get_uri                (EBook                 *book);</div><div class='del'>-</div><div class='del'>-char     *e_book_get_static_capabilities  (EBook                 *book);</div><div class='del'>-</div><div class='del'>-guint     e_book_get_supported_fields     (EBook                 *book,</div><div class='del'>-					   EBookFieldsCallback    cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* User authentication. */</div><div class='del'>-void      e_book_authenticate_user        (EBook                 *book,</div><div class='del'>-					   const char            *user,</div><div class='del'>-					   const char            *passwd,</div><div class='del'>-					   EBookCallback         cb,</div><div class='del'>-					   gpointer              closure);</div><div class='del'>-</div><div class='del'>-/* Fetching cards. */</div><div class='del'>-guint     e_book_get_card                 (EBook                 *book,</div><div class='del'>-					   const char            *id,</div><div class='del'>-					   EBookCardCallback      cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-/* Deleting cards. */</div><div class='del'>-gboolean  e_book_remove_card              (EBook                 *book,</div><div class='del'>-					   ECard                 *card,</div><div class='del'>-					   EBookCallback          cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-gboolean  e_book_remove_card_by_id        (EBook                 *book,</div><div class='del'>-					   const char            *id,</div><div class='del'>-					   EBookCallback          cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-/* Adding cards. */</div><div class='del'>-gboolean  e_book_add_card                 (EBook                 *book,</div><div class='del'>-					   ECard                 *card,</div><div class='del'>-					   EBookIdCallback        cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-gboolean  e_book_add_vcard                (EBook                 *book,</div><div class='del'>-					   const char            *vcard,</div><div class='del'>-					   EBookIdCallback        cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-/* Modifying cards. */</div><div class='del'>-gboolean  e_book_commit_card              (EBook                 *book,</div><div class='del'>-					   ECard                 *card,</div><div class='del'>-					   EBookCallback          cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-gboolean  e_book_commit_vcard             (EBook                 *book,</div><div class='del'>-					   const char            *vcard,</div><div class='del'>-					   EBookCallback          cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-/* Checking to see if we're connected to the card repository. */</div><div class='del'>-gboolean  e_book_check_connection         (EBook                 *book);</div><div class='del'>-guint     e_book_get_cursor               (EBook                 *book,</div><div class='del'>-					   char                  *query,</div><div class='del'>-					   EBookCursorCallback    cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-guint     e_book_get_book_view            (EBook                 *book,</div><div class='del'>-					   const gchar           *query,</div><div class='del'>-					   EBookBookViewCallback  cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-guint     e_book_get_changes              (EBook                 *book,</div><div class='del'>-					   char                  *changeid,</div><div class='del'>-					   EBookBookViewCallback  cb,</div><div class='del'>-					   gpointer               closure);</div><div class='del'>-</div><div class='del'>-/* Cancel a pending operation. */</div><div class='del'>-void      e_book_cancel                   (EBook                 *book,</div><div class='del'>-					   guint                  tag);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Getting the name of the repository. */</div><div class='del'>-char     *e_book_get_name                 (EBook                 *book);</div><div class='del'>-</div><div class='del'>-GtkType   e_book_get_type                 (void);</div><div class='del'>-</div><div class='del'>-#define E_BOOK_TYPE        (e_book_get_type ())</div><div class='del'>-#define E_BOOK(o)          (GTK_CHECK_CAST ((o), E_BOOK_TYPE, EBook))</div><div class='del'>-#define E_BOOK_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_BOOK_TYPE, EBookClass))</div><div class='del'>-#define E_IS_BOOK(o)       (GTK_CHECK_TYPE ((o), E_BOOK_TYPE))</div><div class='del'>-#define E_IS_BOOK_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_BOOK_TYPE))</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_BOOK_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-compare.c b/addressbook/backend/ebook/e-card-compare.c<br/>deleted file mode 100644<br/>index 7f0534e2c4..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-compare.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-compare.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,702 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-card-compare.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#include &lt;gal/unicode/gunicode.h&gt;</div><div class='del'>-#include "e-book-util.h"</div><div class='del'>-#include "e-card-compare.h"</div><div class='del'>-</div><div class='del'>-/* This is an "optimistic" combiner: the best of the two outcomes is</div><div class='del'>-   selected. */</div><div class='del'>-static ECardMatchType</div><div class='del'>-combine_comparisons (ECardMatchType prev,</div><div class='del'>-		     ECardMatchType new_info)</div><div class='del'>-{</div><div class='del'>-	if (new_info == E_CARD_MATCH_NOT_APPLICABLE)</div><div class='del'>-		return prev;</div><div class='del'>-	return (ECardMatchType) MAX ((gint) prev, (gint) new_info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*** Name comparisons ***/</div><div class='del'>-</div><div class='del'>-/* This *so* doesn't belong here... at least not implemented in a</div><div class='del'>-   sucky way like this.  But it can be fixed later. */</div><div class='del'>-</div><div class='del'>-/* This is very Anglocentric. */</div><div class='del'>-static gchar *name_synonyms[][2] = {</div><div class='del'>-	{ "jon", "john" },   /* Ah, the hacker's perogative */</div><div class='del'>-	{ "joseph", "joe" },</div><div class='del'>-	{ "robert", "bob" },</div><div class='del'>-	{ "gene", "jean" },</div><div class='del'>-	{ "jesse", "jessie" },</div><div class='del'>-	{ "ian", "iain" },</div><div class='del'>-	{ "richard", "dick" },</div><div class='del'>-	{ "william", "bill" },</div><div class='del'>-	{ "anthony", "tony" },</div><div class='del'>-	{ "michael", "mike" },</div><div class='del'>-	{ "eric", "erik" },</div><div class='del'>-	{ "elizabeth", "liz" },</div><div class='del'>-	{ "jeff", "geoff" },</div><div class='del'>-	{ "jeff", "geoffrey" },</div><div class='del'>-	{ "tom", "thomas" },</div><div class='del'>-	{ "dave", "david" },</div><div class='del'>-	{ "jim", "james" },</div><div class='del'>-	{ "abigal", "abby" },</div><div class='del'>-	{ "amanda", "amy" },</div><div class='del'>-	{ "amanda", "manda" },</div><div class='del'>-	{ "jennifer", "jenny" },</div><div class='del'>-	{ "rebecca", "becca" },</div><div class='del'>-	{ "rebecca", "becky" },</div><div class='del'>-	{ "anderson", "andersen" },</div><div class='del'>-	{ "johnson", "johnsen" },</div><div class='del'>-	/* We could go on and on... */</div><div class='del'>-	{ NULL, NULL }</div><div class='del'>-};</div><div class='del'>-	</div><div class='del'>-static gboolean</div><div class='del'>-name_fragment_match (const gchar *a, const gchar *b, gboolean strict)</div><div class='del'>-{</div><div class='del'>-	gint len;</div><div class='del'>-</div><div class='del'>-	if (!(a &amp;&amp; b &amp;&amp; *a &amp;&amp; *b))</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	/* If we are in 'strict' mode, b must match the beginning of a.</div><div class='del'>-	   So "Robert", "Rob" would match, but "Robert", "Robbie" wouldn't.</div><div class='del'>-</div><div class='del'>-	   If strict is FALSE, it is sufficient for the strings to share</div><div class='del'>-	   some leading characters.  In this case, "Robert" and "Robbie"</div><div class='del'>-	   would match, as would "Dave" and "Dan". */</div><div class='del'>-	</div><div class='del'>-	if (strict) {</div><div class='del'>-		len = g_utf8_strlen (b, -1);</div><div class='del'>-	} else {</div><div class='del'>-		len = MIN (g_utf8_strlen (a, -1), g_utf8_strlen (b, -1));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return !g_utf8_strncasecmp (a, b, len);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-name_fragment_match_with_synonyms (const gchar *a, const gchar *b, gboolean strict)</div><div class='del'>-{</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	if (!(a &amp;&amp; b &amp;&amp; *a &amp;&amp; *b))</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	if (name_fragment_match (a, b, strict))</div><div class='del'>-		return TRUE;</div><div class='del'>-</div><div class='del'>-	/* Check for nicknames.  Yes, the linear search blows. */</div><div class='del'>-	for (i=0; name_synonyms[i][0]; ++i) {</div><div class='del'>-</div><div class='del'>-		if (!g_utf8_strcasecmp (name_synonyms[i][0], a)</div><div class='del'>-		    &amp;&amp; !g_utf8_strcasecmp (name_synonyms[i][1], b))</div><div class='del'>-			return TRUE;</div><div class='del'>-		</div><div class='del'>-		if (!g_utf8_strcasecmp (name_synonyms[i][0], b)</div><div class='del'>-		    &amp;&amp; !g_utf8_strcasecmp (name_synonyms[i][1], a))</div><div class='del'>-			return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare_name_to_string (ECard *card, const gchar *str)</div><div class='del'>-{</div><div class='del'>-	return e_card_compare_name_to_string_full (card, str, FALSE, NULL, NULL, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare_name_to_string_full (ECard *card, const gchar *str, gboolean allow_partial_matches,</div><div class='del'>-				    gint *matched_parts_out, ECardMatchPart *first_matched_part_out, gint *matched_character_count_out)</div><div class='del'>-{</div><div class='del'>-	gchar **namev, **givenv = NULL, **addv = NULL, **familyv = NULL;</div><div class='del'>-</div><div class='del'>-	gint matched_parts = E_CARD_MATCH_PART_NONE;</div><div class='del'>-	ECardMatchPart first_matched_part = E_CARD_MATCH_PART_NONE;</div><div class='del'>-	ECardMatchPart this_part_match = E_CARD_MATCH_PART_NOT_APPLICABLE;</div><div class='del'>-	ECardMatchType match_type;</div><div class='del'>-</div><div class='del'>-	gint match_count = 0, matched_character_count = 0, fragment_count;</div><div class='del'>-	gint i, j;</div><div class='del'>-	gchar *str_cpy, *s;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (card-&gt;name != NULL, E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (str != NULL, E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>-	str_cpy = s = g_strdup (str);</div><div class='del'>-	while (*s) {</div><div class='del'>-		if (*s == ',' || *s == '"')</div><div class='del'>-			*s = ' ';</div><div class='del'>-		++s;</div><div class='del'>-	}</div><div class='del'>-	namev   = g_strsplit (str_cpy, " ", 0);</div><div class='del'>-	g_free (str_cpy);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;name-&gt;given)</div><div class='del'>-		givenv = g_strsplit (card-&gt;name-&gt;given, " ", 0);</div><div class='del'>-	if (card-&gt;name-&gt;additional)</div><div class='del'>-		addv = g_strsplit (card-&gt;name-&gt;additional, " ", 0);</div><div class='del'>-	if (card-&gt;name-&gt;family)</div><div class='del'>-		familyv = g_strsplit (card-&gt;name-&gt;family, " ", 0);</div><div class='del'>-</div><div class='del'>-	fragment_count = 0;</div><div class='del'>-	for (i = 0; givenv &amp;&amp; givenv[i]; ++i)</div><div class='del'>-		++fragment_count;</div><div class='del'>-	for (i = 0; addv &amp;&amp; addv[i]; ++i)</div><div class='del'>-		++fragment_count;</div><div class='del'>-	for (i = 0; familyv &amp;&amp; familyv[i]; ++i)</div><div class='del'>-		++fragment_count;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; namev[i] &amp;&amp; this_part_match != E_CARD_MATCH_PART_NONE; ++i) {</div><div class='del'>-</div><div class='del'>-		if (*namev[i]) {</div><div class='del'>-</div><div class='del'>-			this_part_match = E_CARD_MATCH_PART_NONE;</div><div class='del'>-</div><div class='del'>-			/* When we are allowing partials, we are strict about the matches we allow.</div><div class='del'>-			   Does this make sense?  Not really, but it does the right thing for the purposes</div><div class='del'>-			   of completion. */</div><div class='del'>-</div><div class='del'>-			if (givenv &amp;&amp; this_part_match == E_CARD_MATCH_PART_NONE) {</div><div class='del'>-				for (j = 0; givenv[j]; ++j) {</div><div class='del'>-					if (name_fragment_match_with_synonyms (givenv[j], namev[i], allow_partial_matches)) {</div><div class='del'>-</div><div class='del'>-						this_part_match = E_CARD_MATCH_PART_GIVEN_NAME;</div><div class='del'>-</div><div class='del'>-						/* We remove a piece of a name once it has been matched against, so</div><div class='del'>-						   that "john john" won't match "john doe". */</div><div class='del'>-						g_free (givenv[j]);</div><div class='del'>-						givenv[j] = g_strdup ("");</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (addv &amp;&amp; this_part_match == E_CARD_MATCH_PART_NONE) {</div><div class='del'>-				for (j = 0; addv[j]; ++j) {</div><div class='del'>-					if (name_fragment_match_with_synonyms (addv[j], namev[i], allow_partial_matches)) {</div><div class='del'>-						</div><div class='del'>-						this_part_match = E_CARD_MATCH_PART_ADDITIONAL_NAME;</div><div class='del'>-</div><div class='del'>-						g_free (addv[j]);</div><div class='del'>-						addv[j] = g_strdup ("");</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (familyv &amp;&amp; this_part_match == E_CARD_MATCH_PART_NONE) {</div><div class='del'>-				for (j = 0; familyv[j]; ++j) {</div><div class='del'>-					if (allow_partial_matches ? name_fragment_match_with_synonyms (familyv[j], namev[i], allow_partial_matches)</div><div class='del'>-					    : !g_utf8_strcasecmp (familyv[j], namev[i])) {</div><div class='del'>-</div><div class='del'>-						this_part_match = E_CARD_MATCH_PART_FAMILY_NAME;</div><div class='del'>-</div><div class='del'>-						g_free (familyv[j]);</div><div class='del'>-						familyv[j] = g_strdup ("");</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (this_part_match != E_CARD_MATCH_PART_NONE) {</div><div class='del'>-				++match_count;</div><div class='del'>-				matched_character_count += g_utf8_strlen (namev[i], -1);</div><div class='del'>-				matched_parts |= this_part_match;</div><div class='del'>-				if (first_matched_part == E_CARD_MATCH_PART_NONE)</div><div class='del'>-					first_matched_part = this_part_match;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	match_type = E_CARD_MATCH_NONE;</div><div class='del'>-</div><div class='del'>-	if (this_part_match != E_CARD_MATCH_PART_NONE) {</div><div class='del'>-</div><div class='del'>-		if (match_count &gt; 0)</div><div class='del'>-			match_type = E_CARD_MATCH_VAGUE;</div><div class='del'>-		</div><div class='del'>-		if (fragment_count == match_count) {</div><div class='del'>-</div><div class='del'>-			match_type = E_CARD_MATCH_EXACT;</div><div class='del'>-</div><div class='del'>-		} else if (fragment_count == match_count + 1) {</div><div class='del'>-</div><div class='del'>-			match_type = E_CARD_MATCH_PARTIAL;</div><div class='del'>-</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (matched_parts_out)</div><div class='del'>-		*matched_parts_out = matched_parts;</div><div class='del'>-	if (first_matched_part_out)</div><div class='del'>-		*first_matched_part_out = first_matched_part;</div><div class='del'>-	if (matched_character_count_out)</div><div class='del'>-		*matched_character_count_out = matched_character_count;</div><div class='del'>-</div><div class='del'>-	g_strfreev (namev);</div><div class='del'>-	g_strfreev (givenv);</div><div class='del'>-	g_strfreev (addv);</div><div class='del'>-	g_strfreev (familyv);</div><div class='del'>-</div><div class='del'>-	return match_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare_name (ECard *card1, ECard *card2)</div><div class='del'>-{</div><div class='del'>-	ECardName *a, *b;</div><div class='del'>-	gint matches=0, possible=0;</div><div class='del'>-	gboolean given_match = FALSE, additional_match = FALSE, family_match = FALSE;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card2), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>-	a = card1-&gt;name;</div><div class='del'>-	b = card2-&gt;name;</div><div class='del'>-</div><div class='del'>-	if (a == NULL || b == NULL)</div><div class='del'>-		return E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-</div><div class='del'>-	if (a-&gt;given &amp;&amp; b-&gt;given) {</div><div class='del'>-		++possible;</div><div class='del'>-		if (name_fragment_match_with_synonyms (a-&gt;given, b-&gt;given, FALSE /* both inputs are complete */)) {</div><div class='del'>-			++matches;</div><div class='del'>-			given_match = TRUE;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (a-&gt;additional &amp;&amp; b-&gt;additional) {</div><div class='del'>-		++possible;</div><div class='del'>-		if (name_fragment_match_with_synonyms (a-&gt;additional, b-&gt;additional, FALSE /* both inputs are complete */)) {</div><div class='del'>-			++matches;</div><div class='del'>-			additional_match = TRUE;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (a-&gt;family &amp;&amp; b-&gt;family) {</div><div class='del'>-		++possible;</div><div class='del'>-		/* We don't allow "loose matching" (i.e. John vs. Jon) on family names */</div><div class='del'>-		if (! g_utf8_strcasecmp (a-&gt;family, b-&gt;family)) {</div><div class='del'>-			++matches;</div><div class='del'>-			family_match = TRUE;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Now look at the # of matches and try to intelligently map</div><div class='del'>-	   an E_CARD_MATCH_* type to it.  Special consideration is given</div><div class='del'>-	   to family-name matches. */</div><div class='del'>-</div><div class='del'>-	if (possible == 0)</div><div class='del'>-		return E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-</div><div class='del'>-	if (possible == 1)</div><div class='del'>-		return family_match ? E_CARD_MATCH_VAGUE : E_CARD_MATCH_NONE;</div><div class='del'>-</div><div class='del'>-	if (possible == matches)</div><div class='del'>-		return family_match ? E_CARD_MATCH_EXACT : E_CARD_MATCH_PARTIAL;</div><div class='del'>-</div><div class='del'>-	if (possible == matches+1)</div><div class='del'>-		return family_match ? E_CARD_MATCH_VAGUE : E_CARD_MATCH_NONE;</div><div class='del'>-</div><div class='del'>-	return E_CARD_MATCH_NONE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*** Nickname Comparisons ***/</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare_nickname (ECard *card1, ECard *card2)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (card1 &amp;&amp; E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (card2 &amp;&amp; E_IS_CARD (card2), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>-	return E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*** E-mail Comparisons ***/</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-match_email_username (const gchar *addr1, const gchar *addr2)</div><div class='del'>-{</div><div class='del'>-	gint c1, c2;</div><div class='del'>-	if (addr1 == NULL || addr2 == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	while (*addr1 &amp;&amp; *addr2 &amp;&amp; *addr1 != '@' &amp;&amp; *addr2 != '@') {</div><div class='del'>-		c1 = isupper (*addr1) ? tolower (*addr1) : *addr1;</div><div class='del'>-		c2 = isupper (*addr2) ? tolower (*addr2) : *addr2;</div><div class='del'>-		if (c1 != c2)</div><div class='del'>-			return FALSE;</div><div class='del'>-		++addr1;</div><div class='del'>-		++addr2;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return *addr1 == *addr2;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-match_email_hostname (const gchar *addr1, const gchar *addr2)</div><div class='del'>-{</div><div class='del'>-	gint c1, c2;</div><div class='del'>-	gboolean seen_at1, seen_at2;</div><div class='del'>-	if (addr1 == NULL || addr2 == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	/* Walk to the end of each string. */</div><div class='del'>-	seen_at1 = FALSE;</div><div class='del'>-	if (*addr1) {</div><div class='del'>-		while (*addr1) {</div><div class='del'>-			if (*addr1 == '@')</div><div class='del'>-				seen_at1 = TRUE;</div><div class='del'>-			++addr1;</div><div class='del'>-		}</div><div class='del'>-		--addr1;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	seen_at2 = FALSE;</div><div class='del'>-	if (*addr2) {</div><div class='del'>-		while (*addr2) {</div><div class='del'>-			if (*addr2 == '@')</div><div class='del'>-				seen_at2 = TRUE;</div><div class='del'>-			++addr2;</div><div class='del'>-		}</div><div class='del'>-		--addr2;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!seen_at1 &amp;&amp; !seen_at2)</div><div class='del'>-		return TRUE;</div><div class='del'>-	if (!seen_at1 || !seen_at2)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	while (*addr1 != '@' &amp;&amp; *addr2 != '@') {</div><div class='del'>-		c1 = isupper (*addr1) ? tolower (*addr1) : *addr1;</div><div class='del'>-		c2 = isupper (*addr2) ? tolower (*addr2) : *addr2;</div><div class='del'>-		if (c1 != c2)</div><div class='del'>-			return FALSE;</div><div class='del'>-		--addr1;</div><div class='del'>-		--addr2;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* This will match bob@foo.ximian.com and bob@ximian.com */</div><div class='del'>-	return *addr1 == '.' || *addr2 == '.';</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardMatchType</div><div class='del'>-compare_email_addresses (const gchar *addr1, const gchar *addr2)</div><div class='del'>-{</div><div class='del'>-	if (addr1 == NULL || addr2 == NULL)</div><div class='del'>-		return E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-</div><div class='del'>-	if (match_email_username (addr1, addr2)) </div><div class='del'>-		return match_email_hostname (addr1, addr2) ? E_CARD_MATCH_EXACT : E_CARD_MATCH_PARTIAL;</div><div class='del'>-</div><div class='del'>-	return E_CARD_MATCH_NONE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare_email (ECard *card1, ECard *card2)</div><div class='del'>-{</div><div class='del'>-	EIterator *i1, *i2;</div><div class='del'>-	ECardMatchType match = E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (card1 &amp;&amp; E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (card2 &amp;&amp; E_IS_CARD (card2), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>-	if (card1-&gt;email == NULL || card2-&gt;email == NULL)</div><div class='del'>-		return E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-</div><div class='del'>-	i1 = e_list_get_iterator (card1-&gt;email);</div><div class='del'>-	i2 = e_list_get_iterator (card2-&gt;email);</div><div class='del'>-</div><div class='del'>-	/* Do pairwise-comparisons on all of the e-mail addresses.  If</div><div class='del'>-	   we find an exact match, there is no reason to keep</div><div class='del'>-	   checking. */</div><div class='del'>-	e_iterator_reset (i1);</div><div class='del'>-	while (e_iterator_is_valid (i1) &amp;&amp; match != E_CARD_MATCH_EXACT) {</div><div class='del'>-		const gchar *addr1 = (const gchar *) e_iterator_get (i1);</div><div class='del'>-</div><div class='del'>-		e_iterator_reset (i2);</div><div class='del'>-		while (e_iterator_is_valid (i2) &amp;&amp; match != E_CARD_MATCH_EXACT) {</div><div class='del'>-			const gchar *addr2 = (const gchar *) e_iterator_get (i2);</div><div class='del'>-</div><div class='del'>-			match = combine_comparisons (match, compare_email_addresses (addr1, addr2));</div><div class='del'>-			</div><div class='del'>-			e_iterator_next (i2);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		e_iterator_next (i1);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (i1));</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (i2));</div><div class='del'>-</div><div class='del'>-	return match;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare_address (ECard *card1, ECard *card2)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (card1 &amp;&amp; E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (card2 &amp;&amp; E_IS_CARD (card2), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>-	/* Unimplemented */</div><div class='del'>-</div><div class='del'>-	return E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare_telephone (ECard *card1, ECard *card2)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (card1 &amp;&amp; E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (card2 &amp;&amp; E_IS_CARD (card2), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>-	/* Unimplemented */</div><div class='del'>-</div><div class='del'>-	return E_CARD_MATCH_NOT_APPLICABLE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardMatchType</div><div class='del'>-e_card_compare (ECard *card1, ECard *card2)</div><div class='del'>-{</div><div class='del'>-	ECardMatchType result;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (card1 &amp;&amp; E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-	g_return_val_if_fail (card2 &amp;&amp; E_IS_CARD (card2), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>-	result = E_CARD_MATCH_NONE;</div><div class='del'>-	result = combine_comparisons (result, e_card_compare_name      (card1, card2));</div><div class='del'>-	result = combine_comparisons (result, e_card_compare_nickname  (card1, card2));</div><div class='del'>-	result = combine_comparisons (result, e_card_compare_email     (card1, card2));</div><div class='del'>-	result = combine_comparisons (result, e_card_compare_address   (card1, card2));</div><div class='del'>-	result = combine_comparisons (result, e_card_compare_telephone (card1, card2));</div><div class='del'>-</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct _MatchSearchInfo MatchSearchInfo;</div><div class='del'>-struct _MatchSearchInfo {</div><div class='del'>-	ECard *card;</div><div class='del'>-	GList *avoid;</div><div class='del'>-	ECardMatchQueryCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-match_search_info_free (MatchSearchInfo *info)</div><div class='del'>-{</div><div class='del'>-	if (info) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (info-&gt;card));</div><div class='del'>-</div><div class='del'>-		/* This should already have been deallocated, but just in case... */</div><div class='del'>-		if (info-&gt;avoid) {</div><div class='del'>-			g_list_foreach (info-&gt;avoid, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-			g_list_free (info-&gt;avoid);</div><div class='del'>-			info-&gt;avoid = NULL;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		g_free (info);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-simple_query_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MatchSearchInfo *info = (MatchSearchInfo *) closure;</div><div class='del'>-	ECardMatchType best_match = E_CARD_MATCH_NONE;</div><div class='del'>-	ECard *best_card = NULL;</div><div class='del'>-	GList *remaining_cards = NULL;</div><div class='del'>-	const GList *i;</div><div class='del'>-</div><div class='del'>-	if (status != E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS) {</div><div class='del'>-		info-&gt;cb (info-&gt;card, NULL, E_CARD_MATCH_NONE, info-&gt;closure);</div><div class='del'>-		match_search_info_free (info);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* remove the cards we're to avoid from the list, if they're present */</div><div class='del'>-	for (i = cards; i != NULL; i = g_list_next (i)) {</div><div class='del'>-		ECard *this_card = E_CARD (i-&gt;data);</div><div class='del'>-		GList *iterator;</div><div class='del'>-		gboolean avoid = FALSE;</div><div class='del'>-		for (iterator = info-&gt;avoid; iterator; iterator = iterator-&gt;next) {</div><div class='del'>-			if (!strcmp (e_card_get_id (iterator-&gt;data), e_card_get_id (this_card))) {</div><div class='del'>-				avoid = TRUE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		if (!avoid)</div><div class='del'>-			remaining_cards = g_list_prepend (remaining_cards, this_card);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	remaining_cards = g_list_reverse (remaining_cards);</div><div class='del'>-</div><div class='del'>-	for (i = remaining_cards; i != NULL; i = g_list_next (i)) {</div><div class='del'>-		ECard *this_card = E_CARD (i-&gt;data);</div><div class='del'>-		ECardMatchType this_match = e_card_compare (info-&gt;card, this_card);</div><div class='del'>-		if ((gint)this_match &gt; (gint)best_match) {</div><div class='del'>-			best_match = this_match;</div><div class='del'>-			best_card  = this_card;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_list_free (remaining_cards);</div><div class='del'>-</div><div class='del'>-	info-&gt;cb (info-&gt;card, best_card, best_match, info-&gt;closure);</div><div class='del'>-	match_search_info_free (info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define MAX_QUERY_PARTS 10</div><div class='del'>-static void</div><div class='del'>-use_common_book_cb (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MatchSearchInfo *info = (MatchSearchInfo *) closure;</div><div class='del'>-	ECard *card = info-&gt;card;</div><div class='del'>-	gchar *query_parts[MAX_QUERY_PARTS];</div><div class='del'>-	gint p=0;</div><div class='del'>-	gchar *query, *qj;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	if (book == NULL) {</div><div class='del'>-		info-&gt;cb (info-&gt;card, NULL, E_CARD_MATCH_NONE, info-&gt;closure);</div><div class='del'>-		match_search_info_free (info);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;nickname)</div><div class='del'>-		query_parts[p++] = g_strdup_printf ("(beginswith \"nickname\" \"%s\")", card-&gt;nickname);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	if (card-&gt;name-&gt;given &amp;&amp; strlen (card-&gt;name-&gt;given) &gt; 1)</div><div class='del'>-		query_parts[p++] = g_strdup_printf ("(contains \"full_name\" \"%s\")", card-&gt;name-&gt;given);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;name-&gt;additional &amp;&amp; strlen (card-&gt;name-&gt;additional) &gt; 1)</div><div class='del'>-		query_parts[p++] = g_strdup_printf ("(contains \"full_name\" \"%s\")", card-&gt;name-&gt;additional);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;name-&gt;family &amp;&amp; strlen (card-&gt;name-&gt;family) &gt; 1)</div><div class='del'>-		query_parts[p++] = g_strdup_printf ("(contains \"full_name\" \"%s\")", card-&gt;name-&gt;family);</div><div class='del'>-</div><div class='del'>-		</div><div class='del'>-	if (card-&gt;email) {</div><div class='del'>-		EIterator *iter = e_list_get_iterator (card-&gt;email);</div><div class='del'>-		while (e_iterator_is_valid (iter) &amp;&amp; p &lt; MAX_QUERY_PARTS) {</div><div class='del'>-			gchar *addr = g_strdup (e_iterator_get (iter));</div><div class='del'>-			if (addr) {</div><div class='del'>-				gchar *s = addr;</div><div class='del'>-				while (*s) {</div><div class='del'>-					if (*s == '@') {</div><div class='del'>-						*s = '\0';</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-					++s;</div><div class='del'>-				}</div><div class='del'>-				query_parts[p++] = g_strdup_printf ("(beginswith \"email\" \"%s\")", addr);</div><div class='del'>-				g_free (addr);</div><div class='del'>-			}</div><div class='del'>-			e_iterator_next (iter);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-	</div><div class='del'>-	/* Build up our full query from the parts. */</div><div class='del'>-	query_parts[p] = NULL;</div><div class='del'>-	qj = g_strjoinv (" ", query_parts);</div><div class='del'>-	for(i = 0; query_parts[i] != NULL; i++)</div><div class='del'>-		g_free(query_parts[i]);</div><div class='del'>-	if (p &gt; 0) {</div><div class='del'>-		query = g_strdup_printf ("(or %s)", qj);</div><div class='del'>-		g_free (qj);</div><div class='del'>-	} else {</div><div class='del'>-		query = qj;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_simple_query (book, query, simple_query_cb, info);</div><div class='del'>-</div><div class='del'>-	g_free (query);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_locate_match (ECard *card, ECardMatchQueryCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MatchSearchInfo *info;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-	g_return_if_fail (cb != NULL);</div><div class='del'>-</div><div class='del'>-	info = g_new (MatchSearchInfo, 1);</div><div class='del'>-	info-&gt;card = card;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (card));</div><div class='del'>-	info-&gt;cb = cb;</div><div class='del'>-	info-&gt;closure = closure;</div><div class='del'>-	info-&gt;avoid = NULL;</div><div class='del'>-</div><div class='del'>-	e_book_use_local_address_book (use_common_book_cb, info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_locate_match_full:</div><div class='del'>- * @book: The book to look in.  If this is NULL, use the main local</div><div class='del'>- * addressbook.</div><div class='del'>- * @card: The card to compare to.</div><div class='del'>- * @avoid: A list of cards to not match.  These will not show up in the search.</div><div class='del'>- * @cb: The function to call.</div><div class='del'>- * @closure: The closure to add to the call.</div><div class='del'>- * </div><div class='del'>- * Look for the best match and return it using the ECardMatchQueryCallback.</div><div class='del'>- **/</div><div class='del'>-void</div><div class='del'>-e_card_locate_match_full (EBook *book, ECard *card, GList *avoid, ECardMatchQueryCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MatchSearchInfo *info;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-	g_return_if_fail (cb != NULL);</div><div class='del'>-</div><div class='del'>-	info = g_new (MatchSearchInfo, 1);</div><div class='del'>-	info-&gt;card = card;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (card));</div><div class='del'>-	info-&gt;cb = cb;</div><div class='del'>-	info-&gt;closure = closure;</div><div class='del'>-	info-&gt;avoid = g_list_copy (avoid);</div><div class='del'>-	g_list_foreach (info-&gt;avoid, (GFunc) gtk_object_ref, NULL);</div><div class='del'>-</div><div class='del'>-	if (book)</div><div class='del'>-		use_common_book_cb (book, info);</div><div class='del'>-	else</div><div class='del'>-		e_book_use_local_address_book (use_common_book_cb, info);</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-compare.h b/addressbook/backend/ebook/e-card-compare.h<br/>deleted file mode 100644<br/>index 355dc814a9..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-compare.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-compare.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,73 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-card-compare.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_CARD_COMPARE_H__</div><div class='del'>-#define __E_CARD_COMPARE_H__</div><div class='del'>-</div><div class='del'>-#include "e-book.h"</div><div class='del'>-#include "e-card.h"</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	E_CARD_MATCH_NOT_APPLICABLE = 0,</div><div class='del'>-	E_CARD_MATCH_NONE           = 1,</div><div class='del'>-	E_CARD_MATCH_VAGUE          = 2,</div><div class='del'>-	E_CARD_MATCH_PARTIAL        = 3,</div><div class='del'>-	E_CARD_MATCH_EXACT          = 4</div><div class='del'>-} ECardMatchType;</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	E_CARD_MATCH_PART_NOT_APPLICABLE   = -1,</div><div class='del'>-	E_CARD_MATCH_PART_NONE             = 0,</div><div class='del'>-	E_CARD_MATCH_PART_GIVEN_NAME       = 1&lt;&lt;0,</div><div class='del'>-	E_CARD_MATCH_PART_ADDITIONAL_NAME  = 1&lt;&lt;2,</div><div class='del'>-	E_CARD_MATCH_PART_FAMILY_NAME      = 1&lt;&lt;3</div><div class='del'>-} ECardMatchPart;</div><div class='del'>-</div><div class='del'>-typedef void (*ECardMatchQueryCallback) (ECard *card, ECard *match, ECardMatchType type, gpointer closure);</div><div class='del'>-</div><div class='del'>-ECardMatchType e_card_compare_name_to_string      (ECard *card, const gchar *str);</div><div class='del'>-</div><div class='del'>-ECardMatchType e_card_compare_name_to_string_full (ECard *card, const gchar *str,</div><div class='del'>-						   gboolean allow_partial_matches,</div><div class='del'>-						   gint *matched_parts, ECardMatchPart *first_matched_part,</div><div class='del'>-						   gint *matched_character_count);</div><div class='del'>-</div><div class='del'>-ECardMatchType e_card_compare_name      (ECard *card1, ECard *card2);</div><div class='del'>-ECardMatchType e_card_compare_nickname  (ECard *card1, ECard *card2);</div><div class='del'>-ECardMatchType e_card_compare_email     (ECard *card1, ECard *card2);</div><div class='del'>-ECardMatchType e_card_compare_address   (ECard *card1, ECard *card2);</div><div class='del'>-ECardMatchType e_card_compare_telephone (ECard *card1, ECard *card2);</div><div class='del'>-</div><div class='del'>-ECardMatchType e_card_compare           (ECard *card1, ECard *card2);</div><div class='del'>-</div><div class='del'>-void           e_card_locate_match      (ECard *card, ECardMatchQueryCallback cb, gpointer closure);</div><div class='del'>-void           e_card_locate_match_full (EBook *book, ECard *card, GList *avoid, ECardMatchQueryCallback cb, gpointer closure);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_CARD_COMPARE_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-cursor.c b/addressbook/backend/ebook/e-card-cursor.c<br/>deleted file mode 100644<br/>index 171f83d736..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-cursor.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-cursor.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,235 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * e-card-cursor.c: Implements card cursors.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Christopher James Lahey &lt;clahey@ximian.com.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "e-card-cursor.h"</div><div class='del'>-</div><div class='del'>-struct _ECardCursorPrivate {</div><div class='del'>-	GNOME_Evolution_Addressbook_CardCursor corba_cursor;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * A pointer to our parent object class</div><div class='del'>- */</div><div class='del'>-static GtkObjectClass *parent_class;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Implemented GtkObject::destroy</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_card_cursor_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ECardCursor *cursor = E_CARD_CURSOR (object);</div><div class='del'>-	CORBA_Environment      ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_CardCursor_unref( cursor-&gt;priv-&gt;corba_cursor, &amp;ev );</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("e_card_cursor_destroy: Exception unreffing "</div><div class='del'>-			  "corba cursor.\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_Object_release (cursor-&gt;priv-&gt;corba_cursor, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("e_card_cursor_destroy: Exception releasing "</div><div class='del'>-			  "corba cursor.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if ( cursor-&gt;priv )</div><div class='del'>-		g_free ( cursor-&gt;priv );</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (parent_class)-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_cursor_get_length:</div><div class='del'>- * @cursor: the #ECardCursor whose length is being queried</div><div class='del'>- *</div><div class='del'>- * Returns: the number of items the cursor references, or -1 there's</div><div class='del'>- * an error.</div><div class='del'>- */</div><div class='del'>-long</div><div class='del'>-e_card_cursor_get_length (ECardCursor *cursor)</div><div class='del'>-{</div><div class='del'>-	if ( cursor-&gt;priv-&gt;corba_cursor != CORBA_OBJECT_NIL ) {</div><div class='del'>-		CORBA_Environment      ev;</div><div class='del'>-		long ret_val;</div><div class='del'>-</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-		ret_val = GNOME_Evolution_Addressbook_CardCursor_count (cursor-&gt;priv-&gt;corba_cursor, &amp;ev);</div><div class='del'>-		</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning("e_card_cursor_get_length: Exception during "</div><div class='del'>-				  "get_length corba call.\n");</div><div class='del'>-			ret_val = -1;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return ret_val;</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='del'>-		return -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_cursor_get_nth:</div><div class='del'>- * @cursor: an #ECardCursor object</div><div class='del'>- * @n: the index of the item requested</div><div class='del'>- *</div><div class='del'>- * Gets an #ECard based on an index.</div><div class='del'>- *</div><div class='del'>- * Returns: a new #ECard on success, or %NULL on failure.</div><div class='del'>- */</div><div class='del'>-ECard *</div><div class='del'>-e_card_cursor_get_nth (ECardCursor *cursor,</div><div class='del'>-		       const long   n)</div><div class='del'>-{</div><div class='del'>-	if ( cursor-&gt;priv-&gt;corba_cursor != CORBA_OBJECT_NIL ) {</div><div class='del'>-		CORBA_Environment      en;</div><div class='del'>-		CORBA_char *vcard;</div><div class='del'>-		ECard *card;</div><div class='del'>-</div><div class='del'>-		CORBA_exception_init (&amp;en);</div><div class='del'>-</div><div class='del'>-		vcard = GNOME_Evolution_Addressbook_CardCursor_getNth(cursor-&gt;priv-&gt;corba_cursor, n, &amp;en);</div><div class='del'>-		</div><div class='del'>-		if (en._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning("e_card_cursor_get_nth: Exception during "</div><div class='del'>-				  "get_nth corba call.\n");</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		CORBA_exception_free (&amp;en);</div><div class='del'>-</div><div class='del'>-		card = e_card_new (vcard);</div><div class='del'>-</div><div class='del'>-		CORBA_free(vcard);</div><div class='del'>-</div><div class='del'>-		return card;</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='del'>-		return e_card_new("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_cursor_class_init (ECardCursorClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class (gtk_object_get_type ());</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_card_cursor_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_cursor_init (ECardCursor *cursor)</div><div class='del'>-{</div><div class='del'>-	cursor-&gt;priv = g_new(ECardCursorPrivate, 1);</div><div class='del'>-	cursor-&gt;priv-&gt;corba_cursor = CORBA_OBJECT_NIL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_card_cursor_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (!type){</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"ECardCursor",</div><div class='del'>-			sizeof (ECardCursor),</div><div class='del'>-			sizeof (ECardCursorClass),</div><div class='del'>-			(GtkClassInitFunc) e_card_cursor_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_card_cursor_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (gtk_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_cursor_construct:</div><div class='del'>- * @cursor: an #ECardCursor object</div><div class='del'>- * @corba_cursor: an #GNOME_Evolution_Addressbook_CardCursor</div><div class='del'>- *</div><div class='del'>- * Wraps an #GNOME_Evolution_Addressbook_CardCursor object inside the #ECardCursor</div><div class='del'>- * @cursor object.</div><div class='del'>- *</div><div class='del'>- * Returns: a new #ECardCursor on success, or %NULL on failure.</div><div class='del'>- */</div><div class='del'>-ECardCursor *</div><div class='del'>-e_card_cursor_construct (ECardCursor          *cursor,</div><div class='del'>-			 GNOME_Evolution_Addressbook_CardCursor  corba_cursor)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment      ev;</div><div class='del'>-	g_return_val_if_fail (cursor != NULL, NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD_CURSOR (cursor), NULL);</div><div class='del'>-	g_return_val_if_fail (corba_cursor != CORBA_OBJECT_NIL, NULL);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Initialize cursor</div><div class='del'>-	 */</div><div class='del'>-	cursor-&gt;priv-&gt;corba_cursor = CORBA_Object_duplicate(corba_cursor, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("e_card_cursor_construct: Exception duplicating "</div><div class='del'>-			  "corba cursor.\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	GNOME_Evolution_Addressbook_CardCursor_ref(cursor-&gt;priv-&gt;corba_cursor, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("e_card_cursor_construct: Exception reffing "</div><div class='del'>-			  "corba cursor.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-	</div><div class='del'>-	/*</div><div class='del'>-	 * Success: return the GtkType we were given</div><div class='del'>-	 */</div><div class='del'>-	return cursor;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_cursor_new:</div><div class='del'>- * @cursor: the #GNOME_Evolution_Addressbook_CardCursor to be wrapped</div><div class='del'>- *</div><div class='del'>- * Creates a new #ECardCursor, which wraps an #GNOME_Evolution_Addressbook_CardCursor</div><div class='del'>- * object.</div><div class='del'>- *</div><div class='del'>- * Returns: a new #ECardCursor on success, or %NULL on failure.</div><div class='del'>- */</div><div class='del'>-ECardCursor *</div><div class='del'>-e_card_cursor_new (GNOME_Evolution_Addressbook_CardCursor corba_cursor)</div><div class='del'>-{</div><div class='del'>-	ECardCursor *cursor;</div><div class='del'>-</div><div class='del'>-	cursor = gtk_type_new (e_card_cursor_get_type ());</div><div class='del'>-	</div><div class='del'>-	return e_card_cursor_construct (cursor,</div><div class='del'>-					corba_cursor);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-cursor.h b/addressbook/backend/ebook/e-card-cursor.h<br/>deleted file mode 100644<br/>index e042268635..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-cursor.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-cursor.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,52 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_CARD_CURSOR_H__</div><div class='del'>-#define __E_CARD_CURSOR_H__</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/addressbook.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef struct _ECardCursor        ECardCursor;</div><div class='del'>-typedef struct _ECardCursorPrivate ECardCursorPrivate;</div><div class='del'>-typedef struct _ECardCursorClass   ECardCursorClass;</div><div class='del'>-</div><div class='del'>-struct _ECardCursor {</div><div class='del'>-	GtkObject           parent;</div><div class='del'>-	ECardCursorPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ECardCursorClass {</div><div class='del'>-	GtkObjectClass parent;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Creating a new addressbook. */</div><div class='del'>-ECardCursor *e_card_cursor_new       (GNOME_Evolution_Addressbook_CardCursor  corba_cursor);</div><div class='del'>-ECardCursor *e_card_cursor_construct (ECardCursor          *cursor,</div><div class='del'>-				      GNOME_Evolution_Addressbook_CardCursor  corba_cursor);</div><div class='del'>-</div><div class='del'>-GtkType      e_card_cursor_get_type    (void);</div><div class='del'>-</div><div class='del'>-/* Fetching cards. */</div><div class='del'>-long         e_card_cursor_get_length  (ECardCursor          *cursor);</div><div class='del'>-ECard       *e_card_cursor_get_nth     (ECardCursor          *cursor,</div><div class='del'>-					const long            nth);</div><div class='del'>-#define E_CARD_CURSOR_TYPE        (e_card_cursor_get_type ())</div><div class='del'>-#define E_CARD_CURSOR(o)          (GTK_CHECK_CAST ((o), E_CARD_CURSOR_TYPE, ECardCursor))</div><div class='del'>-#define E_CARD_CURSOR_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_CARD_CURSOR_TYPE, ECardCursorClass))</div><div class='del'>-#define E_IS_CARD_CURSOR(o)       (GTK_CHECK_TYPE ((o), E_CARD_CURSOR_TYPE))</div><div class='del'>-#define E_IS_CARD_CURSOR_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_CARD_CURSOR_TYPE))</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_CARD_CURSOR_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-pairs.h b/addressbook/backend/ebook/e-card-pairs.h<br/>deleted file mode 100644<br/>index 0f379d3477..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-pairs.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-pairs.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,118 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* GnomeCard - a graphical contact manager.</div><div class='del'>- *</div><div class='del'>- * pairs.h: This file is part of GnomeCard.</div><div class='del'>- * </div><div class='del'>- * Copyright (C) 1999 The Free Software Foundation</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or modify</div><div class='del'>- * it under the terms of the GNU General Public License as published by</div><div class='del'>- * the Free Software Foundation; either version 2 of the License, or</div><div class='del'>- * (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_CARD_PAIRS_H__</div><div class='del'>-#define __E_CARD_PAIRS_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libversit/vcc.h&gt;</div><div class='del'>-#include &lt;ebook/e-card.h&gt;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-struct pair</div><div class='del'>-{</div><div class='del'>-	char *str;</div><div class='del'>-	ECardPropertyType i ;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct pair prop_lookup[] = {</div><div class='del'>-		{        VCFullNameProp, PROP_FNAME },</div><div class='del'>-		{            VCNameProp, PROP_NAME },</div><div class='del'>-		{           VCPhotoProp, PROP_PHOTO },</div><div class='del'>-		{       VCBirthDateProp, PROP_BDAY },</div><div class='del'>-		{             VCAdrProp, PROP_DELADDR },</div><div class='del'>-		{   VCDeliveryLabelProp, PROP_DELLABEL },</div><div class='del'>-		{       VCTelephoneProp, PROP_PHONE },</div><div class='del'>-		{    VCEmailAddressProp, PROP_EMAIL },</div><div class='del'>-		{          VCMailerProp, PROP_MAILER },</div><div class='del'>-		{        VCTimeZoneProp, PROP_TIMEZN },</div><div class='del'>-		{             VCGeoProp, PROP_GEOPOS },</div><div class='del'>-		{           VCTitleProp, PROP_TITLE },</div><div class='del'>-		{    VCBusinessRoleProp, PROP_ROLE },</div><div class='del'>-		{            VCLogoProp, PROP_LOGO },</div><div class='del'>-		{           VCAgentProp, PROP_AGENT },</div><div class='del'>-		{             VCOrgProp, PROP_ORG },</div><div class='del'>-		{      VCCategoriesProp, PROP_CATEGORIES },</div><div class='del'>-		{         VCCommentProp, PROP_COMMENT },</div><div class='del'>-		{     VCLastRevisedProp, PROP_REV },</div><div class='del'>-		{   VCPronunciationProp, PROP_SOUND },</div><div class='del'>-		{             VCURLProp, PROP_URL },</div><div class='del'>-		{    VCUniqueStringProp, PROP_UID },</div><div class='del'>-		{         VCVersionProp, PROP_VERSION },</div><div class='del'>-		{       VCPublicKeyProp, PROP_KEY },</div><div class='del'>-		{           VCValueProp, PROP_VALUE },</div><div class='del'>-		{        VCEncodingProp, PROP_ENCODING },</div><div class='del'>-		{ VCQuotedPrintableProp, PROP_QUOTED_PRINTABLE },</div><div class='del'>-		{            VC8bitProp, PROP_8BIT },</div><div class='del'>-		{          VCBase64Prop, PROP_BASE64 },</div><div class='del'>-		{        VCLanguageProp, PROP_LANG },</div><div class='del'>-		{         VCCharSetProp, PROP_CHARSET },</div><div class='del'>-		{ NULL, PROP_NONE} };</div><div class='del'>-</div><div class='del'>-struct pair photo_pairs[] = {</div><div class='del'>-		{ VCGIFProp, PHOTO_GIF },</div><div class='del'>-		{ VCCGMProp, PHOTO_CGM },</div><div class='del'>-		{ VCWMFProp, PHOTO_WMF },</div><div class='del'>-		{ VCBMPProp, PHOTO_BMP },</div><div class='del'>-		{ VCMETProp, PHOTO_MET },</div><div class='del'>-		{ VCPMBProp, PHOTO_PMB },</div><div class='del'>-		{ VCDIBProp, PHOTO_DIB },</div><div class='del'>-		{ VCPICTProp, PHOTO_PICT },</div><div class='del'>-		{ VCTIFFProp, PHOTO_TIFF },</div><div class='del'>-		{ VCPDFProp, PHOTO_PDF },</div><div class='del'>-		{ VCPSProp, PHOTO_PS },</div><div class='del'>-		{ VCJPEGProp, PHOTO_JPEG },</div><div class='del'>-		{ VCMPEGProp, PHOTO_MPEG },</div><div class='del'>-		{ VCMPEG2Prop, PHOTO_MPEG2 },</div><div class='del'>-		{ VCAVIProp, PHOTO_AVI },</div><div class='del'>-		{ VCQuickTimeProp, PHOTO_QTIME },</div><div class='del'>-		{ NULL, 0 } };</div><div class='del'>-</div><div class='del'>-struct pair email_pairs[] = {</div><div class='del'>-		{ VCAOLProp, EMAIL_AOL },</div><div class='del'>-		{ VCAppleLinkProp, EMAIL_APPLE_LINK },</div><div class='del'>-		{ VCATTMailProp, EMAIL_ATT },</div><div class='del'>-		{ VCCISProp, EMAIL_CIS },</div><div class='del'>-		{ VCEWorldProp, EMAIL_EWORLD },</div><div class='del'>-		{ VCInternetProp, EMAIL_INET },</div><div class='del'>-		{ VCIBMMailProp, EMAIL_IBM },</div><div class='del'>-		{ VCMCIMailProp, EMAIL_MCI },</div><div class='del'>-		{ VCPowerShareProp, EMAIL_POWERSHARE },</div><div class='del'>-		{ VCProdigyProp, EMAIL_PRODIGY },</div><div class='del'>-		{ VCTLXProp, EMAIL_TLX },</div><div class='del'>-		{ VCX400Prop, EMAIL_X400 },</div><div class='del'>-		{ NULL, 0 } };</div><div class='del'>-</div><div class='del'>-struct pair sound_pairs[] = {</div><div class='del'>-		{ VCAIFFProp, SOUND_AIFF },</div><div class='del'>-		{ VCPCMProp, SOUND_PCM },</div><div class='del'>-		{ VCWAVEProp, SOUND_WAVE },</div><div class='del'>-		{ NULL, 0 } };</div><div class='del'>-</div><div class='del'>-struct pair key_pairs[] = {</div><div class='del'>-		{ VCX509Prop, KEY_X509 },</div><div class='del'>-		{ VCPGPProp, KEY_PGP },</div><div class='del'>-		{ NULL, 0 } };</div><div class='del'>-	  </div><div class='del'>-</div><div class='del'>-#endif</div><div class='del'>-#endif /* ! __E_CARD_PAIRS_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-simple.c b/addressbook/backend/ebook/e-card-simple.c<br/>deleted file mode 100644<br/>index 9e6100b5f3..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-simple.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-simple.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1227 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors: </div><div class='del'>- *   Chris Lahey     &lt;clahey@ximian.com&gt;</div><div class='del'>- *   Arturo Espinosa (arturo@nuclecu.unam.mx)</div><div class='del'>- *   Nat Friedman    (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- * Copyright (C) 1999 The Free Software Foundation</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;e-util/e-unicode-i18n.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;libversit/vcc.h&gt;</div><div class='del'>-#include "e-card-simple.h"</div><div class='del'>-</div><div class='del'>-/* Object argument IDs */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_CARD,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef enum _ECardSimpleInternalType ECardSimpleInternalType;</div><div class='del'>-typedef struct _ECardSimpleFieldData ECardSimpleFieldData;</div><div class='del'>-</div><div class='del'>-enum _ECardSimpleInternalType {</div><div class='del'>-	E_CARD_SIMPLE_INTERNAL_TYPE_STRING,</div><div class='del'>-	E_CARD_SIMPLE_INTERNAL_TYPE_DATE,</div><div class='del'>-	E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS,</div><div class='del'>-	E_CARD_SIMPLE_INTERNAL_TYPE_PHONE,</div><div class='del'>-	E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL,</div><div class='del'>-	E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL,</div><div class='del'>-	E_CARD_SIMPLE_INTERNAL_TYPE_BOOL,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ECardSimpleFieldData {</div><div class='del'>-	ECardSimpleField         field;</div><div class='del'>-	char                    *ecard_field;</div><div class='del'>-	char                    *name;</div><div class='del'>-	char                    *short_name;</div><div class='del'>-	int                      list_type_index;</div><div class='del'>-	ECardSimpleInternalType  type;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* This order must match the order in the .h. */</div><div class='del'>-</div><div class='del'>-/* the ecard_field data below should only be used for TYPE_STRING,</div><div class='del'>-   TYPE_DATE, and TYPE_SPECIAL fields.  that is, it's only valid for</div><div class='del'>-   e-cards for those types.  it is used as a unique name for fields</div><div class='del'>-   for the get_supported functionality.  */</div><div class='del'>-static ECardSimpleFieldData field_data[] =</div><div class='del'>-{</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_FILE_AS,            "file_as",         N_("File As"),       "",             0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_FULL_NAME,          "full_name",       N_("Name"),          N_("Name"),     0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_EMAIL,              "email",           N_("Email"),         N_("Email"),    E_CARD_SIMPLE_EMAIL_ID_EMAIL,        E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_PRIMARY,      "primary_phone",   N_("Primary"),       N_("Prim"),     E_CARD_SIMPLE_PHONE_ID_PRIMARY,      E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_ASSISTANT,    "assistant_phone", N_("Assistant"),     N_("Assistant"),E_CARD_SIMPLE_PHONE_ID_ASSISTANT,    E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_BUSINESS,     "business_phone",  N_("Business"),      N_("Bus"),      E_CARD_SIMPLE_PHONE_ID_BUSINESS,     E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_CALLBACK,     "callback_phone",  N_("Callback"),      N_("Callback"), E_CARD_SIMPLE_PHONE_ID_CALLBACK,     E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_COMPANY,      "company_phone",   N_("Company"),       N_("Comp"),     E_CARD_SIMPLE_PHONE_ID_COMPANY,      E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_HOME,         "home_phone",      N_("Home"),          N_("Home"),     E_CARD_SIMPLE_PHONE_ID_HOME,         E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ORG,                "org",             N_("Organization"),  N_("Org"),      0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ADDRESS_BUSINESS,   "business_address",N_("Business"),      N_("Bus"),      E_CARD_SIMPLE_ADDRESS_ID_BUSINESS,   E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ADDRESS_HOME,       "home_address",    N_("Home"),          N_("Home"),     E_CARD_SIMPLE_ADDRESS_ID_HOME,       E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_MOBILE,       "mobile_phone",    N_("Mobile"),        N_("Mobile"),   E_CARD_SIMPLE_PHONE_ID_MOBILE,       E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_CAR,          "car_phone",       N_("Car"),           N_("Car"),      E_CARD_SIMPLE_PHONE_ID_CAR,          E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_FAX, "business_fax",    N_("Business Fax"),  N_("Bus Fax"),  E_CARD_SIMPLE_PHONE_ID_BUSINESS_FAX, E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_HOME_FAX,     "home_fax",        N_("Home Fax"),      N_("Home Fax"), E_CARD_SIMPLE_PHONE_ID_HOME_FAX,     E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_2,   "business_phone_2",N_("Business 2"),    N_("Bus 2"),    E_CARD_SIMPLE_PHONE_ID_BUSINESS_2,   E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_HOME_2,       "home_phone_2",    N_("Home 2"),        N_("Home 2"),   E_CARD_SIMPLE_PHONE_ID_HOME_2,       E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_ISDN,         "isdn",            N_("ISDN"),          N_("ISDN"),     E_CARD_SIMPLE_PHONE_ID_ISDN,         E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_OTHER,        "other_phone",     N_("Other"),         N_("Other"),    E_CARD_SIMPLE_PHONE_ID_OTHER,        E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_OTHER_FAX,    "other_fax",       N_("Other Fax"),     N_("Other Fax"), E_CARD_SIMPLE_PHONE_ID_OTHER_FAX,   E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_PAGER,        "pager",           N_("Pager"),         N_("Pager"),    E_CARD_SIMPLE_PHONE_ID_PAGER,        E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_RADIO,        "radio",           N_("Radio"),         N_("Radio"),    E_CARD_SIMPLE_PHONE_ID_RADIO,        E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_TELEX,        "telex",           N_("Telex"),         N_("Telex"),    E_CARD_SIMPLE_PHONE_ID_TELEX,        E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_PHONE_TTYTTD,       "tty",             N_("TTY"),           N_("TTY"),      E_CARD_SIMPLE_PHONE_ID_TTYTTD,       E_CARD_SIMPLE_INTERNAL_TYPE_PHONE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ADDRESS_OTHER,      "other_address",   N_("Other"),         N_("Other"),    E_CARD_SIMPLE_ADDRESS_ID_OTHER,      E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_EMAIL_2,            "email_2",         N_("Email 2"),       N_("Email 2"),  E_CARD_SIMPLE_EMAIL_ID_EMAIL_2,      E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_EMAIL_3,            "email_3",         N_("Email 3"),       N_("Email 3"),  E_CARD_SIMPLE_EMAIL_ID_EMAIL_3,      E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_URL,                "url",             N_("Web Site"),      N_("Url"),      0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ORG_UNIT,           "org_unit",        N_("Department"),    N_("Dep"),      0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_OFFICE,             "office",          N_("Office"),        N_("Off"),      0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_TITLE,              "title",           N_("Title"),         N_("Title"),    0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ROLE,               "role",            N_("Profession"),    N_("Prof"),     0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_MANAGER,            "manager",         N_("Manager"),       N_("Man"),      0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ASSISTANT,          "assistant",       N_("Assistant"),     N_("Ass"),      0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_NICKNAME,           "nickname",        N_("Nickname"),      N_("Nick"),     0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_SPOUSE,             "spouse",          N_("Spouse"),        N_("Spouse"),   0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_NOTE,               "note",            N_("Note"),          N_("Note"),     0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>- 	{ E_CARD_SIMPLE_FIELD_CALURI,             "caluri",          N_("Calendar URI"),  N_("CALUri"),   0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_FBURL,              "fburl",           N_("Free-busy URL"), N_("FBUrl"),    0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_ANNIVERSARY,        "anniversary",     N_("Anniversary"),   N_("Anniv"),    0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_DATE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_BIRTH_DATE,         "birth_date",      N_("Birth Date"),    "",             0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_DATE },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_MAILER,             "mailer",          "",                  "",             0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_NAME_OR_ORG,        "nameororg",       "",                  "",             0,                                   E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_CATEGORIES,         "categories",      N_("Categories"),    N_("Categories"), 0,                                 E_CARD_SIMPLE_INTERNAL_TYPE_STRING },</div><div class='del'>-	{ E_CARD_SIMPLE_FIELD_FAMILY_NAME,        "family_name",     N_("Family Name"),   N_("Family Name"), 0,                                E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL },</div><div class='del'>- 	{ E_CARD_SIMPLE_FIELD_GIVEN_NAME,         "given_name",      "Given Name",    "Given Name",  0,                                E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL },</div><div class='del'>- 	{ E_CARD_SIMPLE_FIELD_ADDITIONAL_NAME,    "additional_name",  "Additional Name", "Additional Name",  0,                        E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL },</div><div class='del'>- 	{ E_CARD_SIMPLE_FIELD_NAME_SUFFIX,        "name_suffix",     "Name Suffix",   "Name Suffix",  0,                               E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL },</div><div class='del'>- 	{ E_CARD_SIMPLE_FIELD_WANTS_HTML,         "wants_html",      "Wants HTML",    "Wants HTML",   0,                               E_CARD_SIMPLE_INTERNAL_TYPE_BOOL },</div><div class='del'>- 	{ E_CARD_SIMPLE_FIELD_IS_LIST,            "list",            "Is List",       "Is List",      0,                               E_CARD_SIMPLE_INTERNAL_TYPE_BOOL },</div><div class='del'>-};</div><div class='del'>-static int field_data_count = sizeof (field_data) / sizeof (field_data[0]);</div><div class='del'>-</div><div class='del'>-static void e_card_simple_init (ECardSimple *simple);</div><div class='del'>-static void e_card_simple_class_init (ECardSimpleClass *klass);</div><div class='del'>-</div><div class='del'>-static void e_card_simple_destroy (GtkObject *object);</div><div class='del'>-static void e_card_simple_set_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_card_simple_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-</div><div class='del'>-static void fill_in_info(ECardSimple *simple);</div><div class='del'>-</div><div class='del'>-ECardPhoneFlags phone_correspondences[] = {</div><div class='del'>-	E_CARD_PHONE_ASSISTANT, /* E_CARD_SIMPLE_PHONE_ID_ASSISTANT,    */</div><div class='del'>-	E_CARD_PHONE_WORK | E_CARD_PHONE_VOICE, /* E_CARD_SIMPLE_PHONE_ID_BUSINESS,	   */</div><div class='del'>-	E_CARD_PHONE_WORK | E_CARD_PHONE_VOICE, /* E_CARD_SIMPLE_PHONE_ID_BUSINESS_2,   */</div><div class='del'>-	E_CARD_PHONE_WORK | E_CARD_PHONE_FAX, /* E_CARD_SIMPLE_PHONE_ID_BUSINESS_FAX, */</div><div class='del'>-	E_CARD_PHONE_CALLBACK, /* E_CARD_SIMPLE_PHONE_ID_CALLBACK,	   */</div><div class='del'>-	E_CARD_PHONE_CAR, /* E_CARD_SIMPLE_PHONE_ID_CAR,	   */</div><div class='del'>-	E_CARD_PHONE_WORK, /* E_CARD_SIMPLE_PHONE_ID_COMPANY,	   */</div><div class='del'>-	E_CARD_PHONE_HOME, /* E_CARD_SIMPLE_PHONE_ID_HOME,	   */</div><div class='del'>-	E_CARD_PHONE_HOME, /* E_CARD_SIMPLE_PHONE_ID_HOME_2,	   */</div><div class='del'>-	E_CARD_PHONE_HOME | E_CARD_PHONE_FAX, /* E_CARD_SIMPLE_PHONE_ID_HOME_FAX,	   */</div><div class='del'>-	E_CARD_PHONE_ISDN, /* E_CARD_SIMPLE_PHONE_ID_ISDN,	   */</div><div class='del'>-	E_CARD_PHONE_CELL, /* E_CARD_SIMPLE_PHONE_ID_MOBILE,	   */</div><div class='del'>-	E_CARD_PHONE_VOICE, /* E_CARD_SIMPLE_PHONE_ID_OTHER,	   */</div><div class='del'>-	E_CARD_PHONE_FAX, /* E_CARD_SIMPLE_PHONE_ID_OTHER_FAX,	   */</div><div class='del'>-	E_CARD_PHONE_PAGER, /* E_CARD_SIMPLE_PHONE_ID_PAGER,	   */</div><div class='del'>-	E_CARD_PHONE_PREF, /* E_CARD_SIMPLE_PHONE_ID_PRIMARY,	   */</div><div class='del'>-	E_CARD_PHONE_RADIO, /* E_CARD_SIMPLE_PHONE_ID_RADIO,	   */</div><div class='del'>-	E_CARD_PHONE_TELEX, /* E_CARD_SIMPLE_PHONE_ID_TELEX,	   */</div><div class='del'>-	E_CARD_PHONE_TTYTDD, /* E_CARD_SIMPLE_PHONE_ID_TTYTTD,	   */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-char *phone_names[] = {</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_ASSISTANT,    */</div><div class='del'>-	"Business",</div><div class='del'>-	"Business 2",</div><div class='del'>-	"Business Fax",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_CALLBACK,	   */</div><div class='del'>-	"Car",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_COMPANY,	   */</div><div class='del'>-	"Home",</div><div class='del'>-	"Home 2",</div><div class='del'>-	"Home Fax",</div><div class='del'>-	"ISDN",</div><div class='del'>-	"Mobile",</div><div class='del'>-	"Other",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_OTHER_FAX,	   */</div><div class='del'>-	"Pager",</div><div class='del'>-	"Primary",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_RADIO,	   */</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_TELEX,	   */</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_TTYTTD,	   */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-char *phone_short_names[] = {</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_ASSISTANT,    */</div><div class='del'>-	"Bus",</div><div class='del'>-	"Bus 2",</div><div class='del'>-	"Bus Fax",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_CALLBACK,	   */</div><div class='del'>-	"Car",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_COMPANY,	   */</div><div class='del'>-	"Home",</div><div class='del'>-	"Home 2",</div><div class='del'>-	"Home Fax",</div><div class='del'>-	"ISDN",</div><div class='del'>-	"Mob",</div><div class='del'>-	"Other",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_OTHER_FAX,	   */</div><div class='del'>-	"Pag",</div><div class='del'>-	"Prim",</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_RADIO,	   */</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_TELEX,	   */</div><div class='del'>-	NULL, /* E_CARD_SIMPLE_PHONE_ID_TTYTTD,	   */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-ECardAddressFlags addr_correspondences[] = {</div><div class='del'>-	E_CARD_ADDR_WORK, /* E_CARD_SIMPLE_ADDRESS_ID_BUSINESS, */</div><div class='del'>-	E_CARD_ADDR_HOME, /* E_CARD_SIMPLE_ADDRESS_ID_HOME,	 */</div><div class='del'>-	E_CARD_ADDR_POSTAL, /* E_CARD_SIMPLE_ADDRESS_ID_OTHER,    */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-char *address_names[] = {</div><div class='del'>-	"Business",</div><div class='del'>-	"Home",</div><div class='del'>-	"Other",</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_simple_get_type:</div><div class='del'>- * @void: </div><div class='del'>- * </div><div class='del'>- * Registers the &amp;ECardSimple class if necessary, and returns the type ID</div><div class='del'>- * associated to it.</div><div class='del'>- * </div><div class='del'>- * Return value: The type ID of the &amp;ECardSimple class.</div><div class='del'>- **/</div><div class='del'>-GtkType</div><div class='del'>-e_card_simple_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType simple_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!simple_type) {</div><div class='del'>-		GtkTypeInfo simple_info = {</div><div class='del'>-			"ECardSimple",</div><div class='del'>-			sizeof (ECardSimple),</div><div class='del'>-			sizeof (ECardSimpleClass),</div><div class='del'>-			(GtkClassInitFunc) e_card_simple_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_card_simple_init,</div><div class='del'>-			NULL, /* reserved_1 */</div><div class='del'>-			NULL, /* reserved_2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		simple_type = gtk_type_unique (gtk_object_get_type (), &amp;simple_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return simple_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_simple_new:</div><div class='del'>- * @VCard: a string in vCard format</div><div class='del'>- *</div><div class='del'>- * Returns: a new #ECardSimple that wraps the @VCard.</div><div class='del'>- */</div><div class='del'>-ECardSimple *</div><div class='del'>-e_card_simple_new (ECard *card)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple = E_CARD_SIMPLE(gtk_type_new(e_card_simple_get_type()));</div><div class='del'>-	gtk_object_set(GTK_OBJECT(simple),</div><div class='del'>-		       "card", card,</div><div class='del'>-		       NULL);</div><div class='del'>-	return simple;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardSimple *</div><div class='del'>-e_card_simple_duplicate(ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	ECard *card = simple-&gt;card ? e_card_duplicate (simple-&gt;card) : e_card_new ("");</div><div class='del'>-	ECardSimple *new_simple = e_card_simple_new(card);</div><div class='del'>-	return new_simple;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_simple_get_id:</div><div class='del'>- * @simple: an #ECardSimple</div><div class='del'>- *</div><div class='del'>- * Returns: a string representing the id of the simple, which is unique</div><div class='del'>- * within its book.</div><div class='del'>- */</div><div class='del'>-const char *</div><div class='del'>-e_card_simple_get_id (ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	if (simple-&gt;card)</div><div class='del'>-		return e_card_get_id(simple-&gt;card);</div><div class='del'>-	else</div><div class='del'>-		return "";</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_simple_get_id:</div><div class='del'>- * @simple: an #ECardSimple</div><div class='del'>- * @id: a id in string format</div><div class='del'>- *</div><div class='del'>- * Sets the identifier of a simple, which should be unique within its</div><div class='del'>- * book.</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-e_card_simple_set_id (ECardSimple *simple, const char *id)</div><div class='del'>-{</div><div class='del'>-	if ( simple-&gt;card )</div><div class='del'>-		e_card_set_id(simple-&gt;card, id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_simple_get_vcard:</div><div class='del'>- * @simple: an #ECardSimple</div><div class='del'>- *</div><div class='del'>- * Returns: a string in vcard format, which is wrapped by the @simple.</div><div class='del'>- */</div><div class='del'>-char *</div><div class='del'>-e_card_simple_get_vcard (ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	if (simple-&gt;card)</div><div class='del'>-		return e_card_get_vcard(simple-&gt;card);</div><div class='del'>-	else</div><div class='del'>-		return g_strdup("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_simple_get_vcard_assume_utf8:</div><div class='del'>- * @simple: an #ECardSimple</div><div class='del'>- *</div><div class='del'>- * Returns: a string in vcard format, which is wrapped by the @simple.</div><div class='del'>- */</div><div class='del'>-char *</div><div class='del'>-e_card_simple_get_vcard_assume_utf8 (ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	if (simple-&gt;card)</div><div class='del'>-		return e_card_get_vcard_assume_utf8(simple-&gt;card);</div><div class='del'>-	else</div><div class='del'>-		return g_strdup("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_simple_class_init (ECardSimpleClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-	object_class = GTK_OBJECT_CLASS(klass);</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("ECardSimple::card",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_CARD);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_card_simple_destroy;</div><div class='del'>-	object_class-&gt;get_arg = e_card_simple_get_arg;</div><div class='del'>-	object_class-&gt;set_arg = e_card_simple_set_arg;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * ECardSimple lifecycle management and vcard loading/saving.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_simple_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	simple = E_CARD_SIMPLE (object);</div><div class='del'>-</div><div class='del'>-	if (simple-&gt;card)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(simple-&gt;card));</div><div class='del'>-	g_list_foreach(simple-&gt;temp_fields, (GFunc) g_free, NULL);</div><div class='del'>-	g_list_free(simple-&gt;temp_fields);</div><div class='del'>-	simple-&gt;temp_fields = NULL;</div><div class='del'>-</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i++)</div><div class='del'>-		e_card_phone_unref (simple-&gt;phone[i]);</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i++)</div><div class='del'>-		g_free(simple-&gt;email[i]);</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i++)</div><div class='del'>-		e_card_address_label_unref(simple-&gt;address[i]);</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i++)</div><div class='del'>-		e_card_delivery_address_unref(simple-&gt;delivery[i]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Set_arg handler for the simple */</div><div class='del'>-static void</div><div class='del'>-e_card_simple_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	</div><div class='del'>-	simple = E_CARD_SIMPLE (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		if (simple-&gt;card)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(simple-&gt;card));</div><div class='del'>-		g_list_foreach(simple-&gt;temp_fields, (GFunc) g_free, NULL);</div><div class='del'>-		g_list_free(simple-&gt;temp_fields);</div><div class='del'>-		simple-&gt;temp_fields = NULL;</div><div class='del'>-		if (GTK_VALUE_OBJECT(*arg))</div><div class='del'>-			simple-&gt;card = E_CARD(GTK_VALUE_OBJECT(*arg));</div><div class='del'>-		else</div><div class='del'>-			simple-&gt;card = NULL;</div><div class='del'>-		if(simple-&gt;card)</div><div class='del'>-			gtk_object_ref(GTK_OBJECT(simple-&gt;card));</div><div class='del'>-		fill_in_info(simple);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Get_arg handler for the simple */</div><div class='del'>-static void</div><div class='del'>-e_card_simple_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-</div><div class='del'>-	simple = E_CARD_SIMPLE (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		e_card_simple_sync_card(simple);</div><div class='del'>-		GTK_VALUE_OBJECT (*arg) = (GtkObject *) simple-&gt;card;</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_simple_init:</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_card_simple_init (ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	simple-&gt;card = NULL;</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i++)</div><div class='del'>-		simple-&gt;phone[i] = NULL;</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i++)</div><div class='del'>-		simple-&gt;email[i] = NULL;</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i++)</div><div class='del'>-		simple-&gt;address[i] = NULL;</div><div class='del'>-	simple-&gt;temp_fields = NULL;</div><div class='del'>-</div><div class='del'>-	simple-&gt;changed = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_info(ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	ECard *card = simple-&gt;card;</div><div class='del'>-	if (card) {</div><div class='del'>-		EList *address_list;</div><div class='del'>-		EList *phone_list;</div><div class='del'>-		EList *email_list;</div><div class='del'>-		EList *delivery_list;</div><div class='del'>-		const ECardPhone *phone;</div><div class='del'>-		const char *email;</div><div class='del'>-		const ECardAddrLabel *address;</div><div class='del'>-		const ECardDeliveryAddress *delivery;</div><div class='del'>-		int i;</div><div class='del'>-</div><div class='del'>-		EIterator *iterator;</div><div class='del'>-</div><div class='del'>-		gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-			       "address_label", &amp;address_list,</div><div class='del'>-			       "address",       &amp;delivery_list,</div><div class='del'>-			       "phone",         &amp;phone_list,</div><div class='del'>-			       "email",         &amp;email_list,</div><div class='del'>-			       NULL);</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i++) {</div><div class='del'>-			e_card_phone_unref(simple-&gt;phone[i]);</div><div class='del'>-			simple-&gt;phone[i] = NULL;</div><div class='del'>-		}</div><div class='del'>-		for (iterator = e_list_get_iterator(phone_list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			gboolean found = FALSE;</div><div class='del'>-			phone = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>-				if ((phone-&gt;flags == phone_correspondences[i]) &amp;&amp; (simple-&gt;phone[i] == NULL)) {</div><div class='del'>-					simple-&gt;phone[i] = e_card_phone_ref(phone);</div><div class='del'>-					found = TRUE;</div><div class='del'>-					break;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			if (found)</div><div class='del'>-				continue;</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>-				if (((phone-&gt;flags &amp; phone_correspondences[i]) == phone_correspondences[i]) &amp;&amp; (simple-&gt;phone[i] == NULL)) {</div><div class='del'>-					simple-&gt;phone[i] = e_card_phone_ref(phone);</div><div class='del'>-					break;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i++) {</div><div class='del'>-			g_free(simple-&gt;email[i]);</div><div class='del'>-			simple-&gt;email[i] = NULL;</div><div class='del'>-		}</div><div class='del'>-		for (iterator = e_list_get_iterator(email_list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			email = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i ++) {</div><div class='del'>-				if ((simple-&gt;email[i] == NULL)) {</div><div class='del'>-					simple-&gt;email[i] = g_strdup(email);</div><div class='del'>-					break;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i++) {</div><div class='del'>-			e_card_address_label_unref(simple-&gt;address[i]);</div><div class='del'>-			simple-&gt;address[i] = NULL;</div><div class='del'>-		}</div><div class='del'>-		for (iterator = e_list_get_iterator(address_list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			address = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>-				if (((address-&gt;flags &amp; addr_correspondences[i]) == addr_correspondences[i]) &amp;&amp; (simple-&gt;address[i] == NULL)) {</div><div class='del'>-					simple-&gt;address[i] = e_card_address_label_ref(address);</div><div class='del'>-					break;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i++) {</div><div class='del'>-			e_card_delivery_address_unref(simple-&gt;delivery[i]);</div><div class='del'>-			simple-&gt;delivery[i] = NULL;</div><div class='del'>-		}</div><div class='del'>-		for (iterator = e_list_get_iterator(delivery_list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			delivery = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>-				if (((delivery-&gt;flags &amp; addr_correspondences[i]) == addr_correspondences[i]) &amp;&amp; (simple-&gt;delivery[i] == NULL)) {</div><div class='del'>-					simple-&gt;delivery[i] = e_card_delivery_address_ref(delivery);</div><div class='del'>-					break;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-		e_card_free_empty_lists (card);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_simple_sync_card(ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	ECard *card = simple-&gt;card;</div><div class='del'>-	if (card &amp;&amp; simple-&gt;changed) {</div><div class='del'>-		EList *address_list;</div><div class='del'>-		EList *phone_list;</div><div class='del'>-		EList *email_list;</div><div class='del'>-		EList *delivery_list;</div><div class='del'>-		const ECardPhone *phone;</div><div class='del'>-		const ECardAddrLabel *address;</div><div class='del'>-		const ECardDeliveryAddress *delivery;</div><div class='del'>-		const char *email;</div><div class='del'>-		int i;</div><div class='del'>-</div><div class='del'>-		EIterator *iterator;</div><div class='del'>-</div><div class='del'>-		gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-			       "address_label", &amp;address_list,</div><div class='del'>-			       "address",       &amp;delivery_list,</div><div class='del'>-			       "phone",         &amp;phone_list,</div><div class='del'>-			       "email",         &amp;email_list,</div><div class='del'>-			       NULL);</div><div class='del'>-</div><div class='del'>-		for (iterator = e_list_get_iterator(phone_list); e_iterator_is_valid(iterator); e_iterator_next(iterator) ) {</div><div class='del'>-			int i;</div><div class='del'>-			gboolean found = FALSE;</div><div class='del'>-			phone = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>-				if (phone-&gt;flags == phone_correspondences[i]) {</div><div class='del'>-					if (simple-&gt;phone[i]) {</div><div class='del'>-						simple-&gt;phone[i]-&gt;flags = phone_correspondences[i];</div><div class='del'>-						if (simple-&gt;phone[i]-&gt;number &amp;&amp; *simple-&gt;phone[i]-&gt;number) {</div><div class='del'>-							e_iterator_set(iterator, simple-&gt;phone[i]);</div><div class='del'>-						} else {</div><div class='del'>-							e_iterator_delete(iterator);</div><div class='del'>-						}</div><div class='del'>-						e_card_phone_unref(simple-&gt;phone[i]);</div><div class='del'>-						simple-&gt;phone[i] = NULL;</div><div class='del'>-						found = TRUE;</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			if (found)</div><div class='del'>-				continue;</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>-				if ((phone-&gt;flags &amp; phone_correspondences[i]) == phone_correspondences[i]) {</div><div class='del'>-					if (simple-&gt;phone[i]) {</div><div class='del'>-						simple-&gt;phone[i]-&gt;flags = phone_correspondences[i];</div><div class='del'>-						if (simple-&gt;phone[i]-&gt;number &amp;&amp; *simple-&gt;phone[i]-&gt;number) {</div><div class='del'>-							e_iterator_set(iterator, simple-&gt;phone[i]);</div><div class='del'>-						} else {</div><div class='del'>-							e_iterator_delete(iterator);</div><div class='del'>-						}</div><div class='del'>-						e_card_phone_unref(simple-&gt;phone[i]);</div><div class='del'>-						simple-&gt;phone[i] = NULL;</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}	</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>-			if (simple-&gt;phone[i]) {</div><div class='del'>-				simple-&gt;phone[i]-&gt;flags = phone_correspondences[i];</div><div class='del'>-				e_list_append(phone_list, simple-&gt;phone[i]);</div><div class='del'>-				e_card_phone_unref(simple-&gt;phone[i]);</div><div class='del'>-				simple-&gt;phone[i] = NULL;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		for (iterator = e_list_get_iterator(email_list); e_iterator_is_valid(iterator); e_iterator_next(iterator) ) {</div><div class='del'>-			int i;</div><div class='del'>-			email = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i ++) {</div><div class='del'>-				if (simple-&gt;email[i]) {</div><div class='del'>-					if (*simple-&gt;email[i]) {</div><div class='del'>-						e_iterator_set(iterator, simple-&gt;email[i]);</div><div class='del'>-					} else {</div><div class='del'>-						e_iterator_delete(iterator);</div><div class='del'>-					}</div><div class='del'>-					g_free(simple-&gt;email[i]);</div><div class='del'>-					simple-&gt;email[i] = NULL;</div><div class='del'>-					break;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}	</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i ++) {</div><div class='del'>-			if (simple-&gt;email[i]) {</div><div class='del'>-				e_list_append(email_list, simple-&gt;email[i]);</div><div class='del'>-				g_free(simple-&gt;email[i]);</div><div class='del'>-				simple-&gt;email[i] = NULL;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		for (iterator = e_list_get_iterator(address_list); e_iterator_is_valid(iterator); e_iterator_next(iterator) ) {</div><div class='del'>-			int i;</div><div class='del'>-			address = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>-				if ((address-&gt;flags &amp; addr_correspondences[i]) == addr_correspondences[i]) {</div><div class='del'>-					if (simple-&gt;address[i]) {</div><div class='del'>-						simple-&gt;address[i]-&gt;flags = addr_correspondences[i];</div><div class='del'>-						if (simple-&gt;address[i]-&gt;data &amp;&amp; *simple-&gt;address[i]-&gt;data) {</div><div class='del'>-							e_iterator_set(iterator, simple-&gt;address[i]);</div><div class='del'>-						} else {</div><div class='del'>-							e_iterator_delete(iterator);</div><div class='del'>-						}</div><div class='del'>-						e_card_address_label_unref(simple-&gt;address[i]);</div><div class='del'>-						simple-&gt;address[i] = NULL;</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}	</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>-			if (simple-&gt;address[i]) {</div><div class='del'>-				simple-&gt;address[i]-&gt;flags = addr_correspondences[i];</div><div class='del'>-				e_list_append(address_list, simple-&gt;address[i]);</div><div class='del'>-				e_card_address_label_unref(simple-&gt;address[i]);</div><div class='del'>-				simple-&gt;address[i] = NULL;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		for (iterator = e_list_get_iterator(delivery_list); e_iterator_is_valid(iterator); e_iterator_next(iterator) ) {</div><div class='del'>-			int i;</div><div class='del'>-			delivery = e_iterator_get(iterator);</div><div class='del'>-			for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>-				if ((delivery-&gt;flags &amp; addr_correspondences[i]) == addr_correspondences[i]) {</div><div class='del'>-					if (simple-&gt;delivery[i]) {</div><div class='del'>-						simple-&gt;delivery[i]-&gt;flags = addr_correspondences[i];</div><div class='del'>-						if (!e_card_delivery_address_is_empty(simple-&gt;delivery[i])) {</div><div class='del'>-							e_iterator_set(iterator, simple-&gt;delivery[i]);</div><div class='del'>-						} else {</div><div class='del'>-							e_iterator_delete(iterator);</div><div class='del'>-						}</div><div class='del'>-						e_card_delivery_address_unref(simple-&gt;delivery[i]);</div><div class='del'>-						simple-&gt;delivery[i] = NULL;</div><div class='del'>-						break;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}	</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-		for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>-			if (simple-&gt;delivery[i]) {</div><div class='del'>-				simple-&gt;delivery[i]-&gt;flags = addr_correspondences[i];</div><div class='del'>-				e_list_append(delivery_list, simple-&gt;delivery[i]);</div><div class='del'>-				e_card_delivery_address_unref(simple-&gt;delivery[i]);</div><div class='del'>-				simple-&gt;delivery[i] = NULL;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		fill_in_info(simple);</div><div class='del'>-		e_card_free_empty_lists (card);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	simple-&gt;changed = FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const ECardPhone     *e_card_simple_get_phone   (ECardSimple          *simple,</div><div class='del'>-						 ECardSimplePhoneId    id)</div><div class='del'>-{</div><div class='del'>-	return simple-&gt;phone[id];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const char           *e_card_simple_get_email   (ECardSimple          *simple,</div><div class='del'>-						 ECardSimpleEmailId    id)</div><div class='del'>-{</div><div class='del'>-	return simple-&gt;email[id];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const ECardAddrLabel *e_card_simple_get_address (ECardSimple          *simple,</div><div class='del'>-						 ECardSimpleAddressId  id)</div><div class='del'>-{</div><div class='del'>-	return simple-&gt;address[id];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const ECardDeliveryAddress *e_card_simple_get_delivery_address (ECardSimple          *simple,</div><div class='del'>-								ECardSimpleAddressId  id)</div><div class='del'>-{</div><div class='del'>-	return simple-&gt;delivery[id];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void            e_card_simple_set_phone   (ECardSimple          *simple,</div><div class='del'>-					   ECardSimplePhoneId    id,</div><div class='del'>-					   const ECardPhone           *phone)</div><div class='del'>-{</div><div class='del'>-	e_card_phone_unref(simple-&gt;phone[id]);</div><div class='del'>-	simple-&gt;phone[id] = e_card_phone_ref(phone);</div><div class='del'>-	simple-&gt;changed = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void            e_card_simple_set_email   (ECardSimple          *simple,</div><div class='del'>-					   ECardSimpleEmailId    id,</div><div class='del'>-					   const char                 *email)</div><div class='del'>-{</div><div class='del'>-	g_free(simple-&gt;email[id]);</div><div class='del'>-	simple-&gt;email[id] = g_strdup(email);</div><div class='del'>-	simple-&gt;changed = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_simple_set_address (ECardSimple *simple, ECardSimpleAddressId id, const ECardAddrLabel *address)</div><div class='del'>-{</div><div class='del'>-	e_card_address_label_unref(simple-&gt;address[id]);</div><div class='del'>-	simple-&gt;address[id] = e_card_address_label_ref(address);</div><div class='del'>-	e_card_delivery_address_unref(simple-&gt;delivery[id]);</div><div class='del'>-	simple-&gt;delivery[id] = e_card_delivery_address_from_label(simple-&gt;address[id]);</div><div class='del'>-	simple-&gt;changed = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void            e_card_simple_set_delivery_address (ECardSimple          *simple,</div><div class='del'>-						    ECardSimpleAddressId  id,</div><div class='del'>-						    const ECardDeliveryAddress *delivery)</div><div class='del'>-{</div><div class='del'>-	e_card_delivery_address_unref(simple-&gt;delivery[id]);</div><div class='del'>-	simple-&gt;delivery[id] = e_card_delivery_address_ref(delivery);</div><div class='del'>-	simple-&gt;changed = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const char *e_card_simple_get_const    (ECardSimple          *simple,</div><div class='del'>-					ECardSimpleField      field)</div><div class='del'>-{</div><div class='del'>-	char *ret_val = e_card_simple_get(simple, field);</div><div class='del'>-	if (ret_val)</div><div class='del'>-		simple-&gt;temp_fields = g_list_prepend(simple-&gt;temp_fields, ret_val);</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char     *e_card_simple_get            (ECardSimple          *simple,</div><div class='del'>-					ECardSimpleField      field)</div><div class='del'>-{</div><div class='del'>-	ECardSimpleInternalType type = field_data[field].type;</div><div class='del'>-	const ECardAddrLabel *addr;</div><div class='del'>-	const ECardPhone *phone;</div><div class='del'>-	const char *string;</div><div class='del'>-	ECardDate *date;</div><div class='del'>-	ECardName *name;</div><div class='del'>-	switch(type) {</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_STRING:</div><div class='del'>-		if (simple-&gt;card) {</div><div class='del'>-			gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-				       field_data[field].ecard_field, &amp;string,</div><div class='del'>-				       NULL);</div><div class='del'>-			return g_strdup(string);</div><div class='del'>-		} else</div><div class='del'>-			return NULL;</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_DATE:</div><div class='del'>-		if (simple-&gt;card) {</div><div class='del'>-			gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-				       field_data[field].ecard_field, &amp;date,</div><div class='del'>-				       NULL);</div><div class='del'>-			return NULL; /* FIXME!!!! */</div><div class='del'>-		} else</div><div class='del'>-			return NULL;</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS:</div><div class='del'>-		addr = e_card_simple_get_address(simple,</div><div class='del'>-						 field_data[field].list_type_index);</div><div class='del'>-		if (addr)</div><div class='del'>-			return g_strdup(addr-&gt;data);</div><div class='del'>-		else</div><div class='del'>-			return NULL;</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_PHONE:</div><div class='del'>-		phone = e_card_simple_get_phone(simple,</div><div class='del'>-						field_data[field].list_type_index);</div><div class='del'>-		if (phone)</div><div class='del'>-			return g_strdup(phone-&gt;number);</div><div class='del'>-		else</div><div class='del'>-			return NULL;</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL:</div><div class='del'>-		string = e_card_simple_get_email(simple,</div><div class='del'>-						 field_data[field].list_type_index);</div><div class='del'>-		return g_strdup(string);</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_BOOL:</div><div class='del'>-		if (simple-&gt;card) {</div><div class='del'>-			gboolean boole;</div><div class='del'>-			gtk_object_get (GTK_OBJECT (simple-&gt;card),</div><div class='del'>-					field_data[field].ecard_field, &amp;boole,</div><div class='del'>-					NULL);</div><div class='del'>-			if (boole)</div><div class='del'>-				return "true";</div><div class='del'>-			else</div><div class='del'>-				return NULL;</div><div class='del'>-		} else {</div><div class='del'>-			return NULL;</div><div class='del'>-		}</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL:</div><div class='del'>-		switch (field) {</div><div class='del'>-		case E_CARD_SIMPLE_FIELD_NAME_OR_ORG:</div><div class='del'>-			if (simple-&gt;card) {</div><div class='del'>-				gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-					       "file_as", &amp;string,</div><div class='del'>-					       NULL);</div><div class='del'>-				if (string &amp;&amp; *string)</div><div class='del'>-					return g_strdup(string);</div><div class='del'>-				gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-					       "full_name", &amp;string,</div><div class='del'>-					       NULL);</div><div class='del'>-				if (string &amp;&amp; *string)</div><div class='del'>-					return g_strdup(string);</div><div class='del'>-				gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-					       "org", &amp;string,</div><div class='del'>-					       NULL);</div><div class='del'>-				if (string &amp;&amp; *string)</div><div class='del'>-					return g_strdup(string);</div><div class='del'>-				string = e_card_simple_get_email(simple,</div><div class='del'>-								 E_CARD_SIMPLE_EMAIL_ID_EMAIL); </div><div class='del'>-				return g_strdup(string);</div><div class='del'>-			} else</div><div class='del'>-				return NULL;</div><div class='del'>-		case E_CARD_SIMPLE_FIELD_FAMILY_NAME:</div><div class='del'>-			if (simple-&gt;card) {</div><div class='del'>-				gtk_object_get (GTK_OBJECT(simple-&gt;card),</div><div class='del'>-						"name", &amp;name,</div><div class='del'>-						NULL);</div><div class='del'>-				return g_strdup (name-&gt;family);</div><div class='del'>-			} else</div><div class='del'>-				return NULL;</div><div class='del'>-		case E_CARD_SIMPLE_FIELD_GIVEN_NAME:</div><div class='del'>-			if (simple-&gt;card) {</div><div class='del'>-				gtk_object_get (GTK_OBJECT(simple-&gt;card),</div><div class='del'>-						"name", &amp;name,</div><div class='del'>-						NULL);</div><div class='del'>-				return g_strdup (name-&gt;given);</div><div class='del'>-			} else</div><div class='del'>-				return NULL;</div><div class='del'>-		case E_CARD_SIMPLE_FIELD_ADDITIONAL_NAME:</div><div class='del'>-			if (simple-&gt;card) {</div><div class='del'>-				gtk_object_get (GTK_OBJECT(simple-&gt;card),</div><div class='del'>-						"name", &amp;name,</div><div class='del'>-						NULL);</div><div class='del'>-				return g_strdup (name-&gt;additional);</div><div class='del'>-			} else</div><div class='del'>-				return NULL;</div><div class='del'>-		case E_CARD_SIMPLE_FIELD_NAME_SUFFIX:</div><div class='del'>-			if (simple-&gt;card) {</div><div class='del'>-				gtk_object_get (GTK_OBJECT(simple-&gt;card),</div><div class='del'>-						"name", &amp;name,</div><div class='del'>-						NULL);</div><div class='del'>-				return g_strdup (name-&gt;suffix);</div><div class='del'>-			} else</div><div class='del'>-				return NULL;</div><div class='del'>-		default:</div><div class='del'>-			return NULL;</div><div class='del'>-		}</div><div class='del'>-	default:</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-name_to_style(const ECardName *name, char *company, int style)</div><div class='del'>-{</div><div class='del'>-	char *string;</div><div class='del'>-	char *strings[4], **stringptr;</div><div class='del'>-	char *substring;</div><div class='del'>-	switch (style) {</div><div class='del'>-	case 0:</div><div class='del'>-		stringptr = strings;</div><div class='del'>-		if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-			*(stringptr++) = name-&gt;family;</div><div class='del'>-		if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-			*(stringptr++) = name-&gt;given;</div><div class='del'>-		*stringptr = NULL;</div><div class='del'>-		string = g_strjoinv(", ", strings);</div><div class='del'>-		break;</div><div class='del'>-	case 1:</div><div class='del'>-		stringptr = strings;</div><div class='del'>-		if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-			*(stringptr++) = name-&gt;given;</div><div class='del'>-		if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-			*(stringptr++) = name-&gt;family;</div><div class='del'>-		*stringptr = NULL;</div><div class='del'>-		string = g_strjoinv(" ", strings);</div><div class='del'>-		break;</div><div class='del'>-	case 2:</div><div class='del'>-		string = g_strdup(company);</div><div class='del'>-		break;</div><div class='del'>-	case 3: /* Fall Through */</div><div class='del'>-	case 4:</div><div class='del'>-		stringptr = strings;</div><div class='del'>-		if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-			*(stringptr++) = name-&gt;family;</div><div class='del'>-		if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-			*(stringptr++) = name-&gt;given;</div><div class='del'>-		*stringptr = NULL;</div><div class='del'>-		substring = g_strjoinv(", ", strings);</div><div class='del'>-		if (!(company &amp;&amp; *company))</div><div class='del'>-			company = "";</div><div class='del'>-		if (style == 3)</div><div class='del'>-			string = g_strdup_printf("%s (%s)", substring, company);</div><div class='del'>-		else</div><div class='del'>-			string = g_strdup_printf("%s (%s)", company, substring);</div><div class='del'>-		g_free(substring);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		string = g_strdup("");</div><div class='del'>-	}</div><div class='del'>-	return string;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-file_as_get_style (ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	char *filestring = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_FILE_AS);</div><div class='del'>-	char *trystring;</div><div class='del'>-	char *full_name = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_FULL_NAME);</div><div class='del'>-	char *company = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_ORG);</div><div class='del'>-	ECardName *name = NULL;</div><div class='del'>-	int i;</div><div class='del'>-	int style;</div><div class='del'>-	style = 0;</div><div class='del'>-	if (!full_name)</div><div class='del'>-		full_name = g_strdup("");</div><div class='del'>-	if (!company)</div><div class='del'>-		company = g_strdup("");</div><div class='del'>-	if (filestring) {</div><div class='del'>-</div><div class='del'>-		name = e_card_name_from_string(full_name);</div><div class='del'>-		</div><div class='del'>-		if (!name) {</div><div class='del'>-			goto end;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		style = -1;</div><div class='del'>-		</div><div class='del'>-		for (i = 0; i &lt; 5; i++) {</div><div class='del'>-			trystring = name_to_style(name, company, i);</div><div class='del'>-			if (!strcmp(trystring, filestring)) {</div><div class='del'>-				g_free(trystring);</div><div class='del'>-				style = i;</div><div class='del'>-				goto end;</div><div class='del'>-			}</div><div class='del'>-			g_free(trystring);</div><div class='del'>-		}</div><div class='del'>-	}		</div><div class='del'>- end:</div><div class='del'>-		</div><div class='del'>-	g_free(filestring);</div><div class='del'>-	g_free(full_name);</div><div class='del'>-	g_free(company);</div><div class='del'>-	e_card_name_unref(name);</div><div class='del'>-	</div><div class='del'>-	return style;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-file_as_set_style(ECardSimple *simple, int style)</div><div class='del'>-{</div><div class='del'>-	if (style != -1) {</div><div class='del'>-		char *string;</div><div class='del'>-		char *full_name = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_FULL_NAME);</div><div class='del'>-		char *company = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_ORG);</div><div class='del'>-		ECardName *name;</div><div class='del'>-		</div><div class='del'>-		if (!full_name)</div><div class='del'>-			full_name = g_strdup("");</div><div class='del'>-		if (!company)</div><div class='del'>-			company = g_strdup("");</div><div class='del'>-		name = e_card_name_from_string(full_name);</div><div class='del'>-		if (name) {</div><div class='del'>-			string = name_to_style(name, company, style);</div><div class='del'>-			e_card_simple_set(simple, E_CARD_SIMPLE_FIELD_FILE_AS, string);</div><div class='del'>-			g_free(string);</div><div class='del'>-		}</div><div class='del'>-		g_free(full_name);</div><div class='del'>-		g_free(company);</div><div class='del'>-		e_card_name_unref(name);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void            e_card_simple_set            (ECardSimple          *simple,</div><div class='del'>-					      ECardSimpleField      field,</div><div class='del'>-					      const char           *data)</div><div class='del'>-{</div><div class='del'>-	ECardSimpleInternalType type = field_data[field].type;</div><div class='del'>-	ECardAddrLabel *address;</div><div class='del'>-	ECardPhone *phone;</div><div class='del'>-	int style;</div><div class='del'>-	simple-&gt;changed = TRUE;</div><div class='del'>-	switch (field) {</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_FULL_NAME:</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_ORG:</div><div class='del'>-		style = file_as_get_style(simple);</div><div class='del'>-		gtk_object_set(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-			       field_data[field].ecard_field, data,</div><div class='del'>-			       NULL);</div><div class='del'>-		file_as_set_style(simple, style);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		switch(type) {</div><div class='del'>-		case E_CARD_SIMPLE_INTERNAL_TYPE_STRING:</div><div class='del'>-			gtk_object_set(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-				       field_data[field].ecard_field, data,</div><div class='del'>-				       NULL);</div><div class='del'>-			break;</div><div class='del'>-		case E_CARD_SIMPLE_INTERNAL_TYPE_DATE:</div><div class='del'>-			break; /* FIXME!!!! */</div><div class='del'>-		case E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS:</div><div class='del'>-			address = e_card_address_label_new();</div><div class='del'>-			address-&gt;data = g_strdup (data);</div><div class='del'>-			e_card_simple_set_address(simple,</div><div class='del'>-						  field_data[field].list_type_index,</div><div class='del'>-						  address);</div><div class='del'>-			e_card_address_label_unref(address);</div><div class='del'>-			break;</div><div class='del'>-		case E_CARD_SIMPLE_INTERNAL_TYPE_PHONE:</div><div class='del'>-			phone = e_card_phone_new();</div><div class='del'>-			phone-&gt;number = g_strdup (data);</div><div class='del'>-			e_card_simple_set_phone(simple,</div><div class='del'>-						field_data[field].list_type_index,</div><div class='del'>-						phone);</div><div class='del'>-			e_card_phone_unref(phone);</div><div class='del'>-			break;</div><div class='del'>-		case E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL:</div><div class='del'>-			e_card_simple_set_email(simple,</div><div class='del'>-						field_data[field].list_type_index,</div><div class='del'>-						data);</div><div class='del'>-			break;</div><div class='del'>-		case E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL:</div><div class='del'>-			break;</div><div class='del'>-		case E_CARD_SIMPLE_INTERNAL_TYPE_BOOL:</div><div class='del'>-			if (simple-&gt;card) {</div><div class='del'>-				gboolean boole = TRUE;</div><div class='del'>-				if (data == NULL)</div><div class='del'>-					boole = FALSE;</div><div class='del'>-				else if (!strcasecmp (data, "false"))</div><div class='del'>-					boole = FALSE;</div><div class='del'>-				gtk_object_set (GTK_OBJECT (simple-&gt;card),</div><div class='del'>-						field_data[field].ecard_field, boole,</div><div class='del'>-						NULL);</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-					     </div><div class='del'>-ECardSimpleType e_card_simple_type       (ECardSimple          *simple,</div><div class='del'>-					  ECardSimpleField      field)</div><div class='del'>-{</div><div class='del'>-	ECardSimpleInternalType type = field_data[field].type;</div><div class='del'>-	switch(type) {</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_STRING:</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS:</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_PHONE:</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL:</div><div class='del'>-	default:</div><div class='del'>-		return E_CARD_SIMPLE_TYPE_STRING;</div><div class='del'>-</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_BOOL:</div><div class='del'>-		return E_CARD_SIMPLE_TYPE_BOOL;</div><div class='del'>-</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_DATE:</div><div class='del'>-		return E_CARD_SIMPLE_TYPE_DATE;</div><div class='del'>-</div><div class='del'>-	case E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL:</div><div class='del'>-		return E_CARD_SIMPLE_TYPE_STRING;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const char     *e_card_simple_get_ecard_field (ECardSimple         *simple,</div><div class='del'>-					       ECardSimpleField     field)</div><div class='del'>-{</div><div class='del'>-	return field_data[field].ecard_field;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const char     *e_card_simple_get_name       (ECardSimple          *simple,</div><div class='del'>-					      ECardSimpleField      field)</div><div class='del'>-{</div><div class='del'>-	return U_(field_data[field].name);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const char     *e_card_simple_get_short_name (ECardSimple          *simple,</div><div class='del'>-					      ECardSimpleField      field)</div><div class='del'>-{</div><div class='del'>-	return U_(field_data[field].short_name);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void                  e_card_simple_arbitrary_foreach (ECardSimple                  *simple,</div><div class='del'>-						       ECardSimpleArbitraryCallback *callback,</div><div class='del'>-						       gpointer                      closure)</div><div class='del'>-{</div><div class='del'>-	if (simple-&gt;card) {</div><div class='del'>-		EList *list;</div><div class='del'>-		EIterator *iterator;</div><div class='del'>-		gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-			       "arbitrary", &amp;list,</div><div class='del'>-			       NULL);</div><div class='del'>-		for (iterator = e_list_get_iterator(list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			const ECardArbitrary *arbitrary = e_iterator_get(iterator);</div><div class='del'>-			if (callback)</div><div class='del'>-				(*callback) (arbitrary, closure);</div><div class='del'>-		}</div><div class='del'>-		e_card_free_empty_lists (simple-&gt;card);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const ECardArbitrary *e_card_simple_get_arbitrary     (ECardSimple          *simple,</div><div class='del'>-						       const char           *key)</div><div class='del'>-{</div><div class='del'>-	if (simple-&gt;card) {</div><div class='del'>-		EList *list;</div><div class='del'>-		EIterator *iterator;</div><div class='del'>-		gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-			       "arbitrary", &amp;list,</div><div class='del'>-			       NULL);</div><div class='del'>-		for (iterator = e_list_get_iterator(list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			const ECardArbitrary *arbitrary = e_iterator_get(iterator);</div><div class='del'>-			if (!strcasecmp(arbitrary-&gt;key, key))</div><div class='del'>-				return arbitrary;</div><div class='del'>-		}</div><div class='del'>-		e_card_free_empty_lists (simple-&gt;card);</div><div class='del'>-	}</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Any of these except key can be NULL */	      </div><div class='del'>-void                  e_card_simple_set_arbitrary     (ECardSimple          *simple,</div><div class='del'>-						       const char           *key,</div><div class='del'>-						       const char           *type,</div><div class='del'>-						       const char           *value)</div><div class='del'>-{</div><div class='del'>-	if (simple-&gt;card) {</div><div class='del'>-		ECardArbitrary *new_arb;</div><div class='del'>-		EList *list;</div><div class='del'>-		EIterator *iterator;</div><div class='del'>-</div><div class='del'>-		simple-&gt;changed = TRUE;</div><div class='del'>-		gtk_object_get(GTK_OBJECT(simple-&gt;card),</div><div class='del'>-			       "arbitrary", &amp;list,</div><div class='del'>-			       NULL);</div><div class='del'>-		for (iterator = e_list_get_iterator(list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			const ECardArbitrary *arbitrary = e_iterator_get(iterator);</div><div class='del'>-			if (!strcasecmp(arbitrary-&gt;key, key)) {</div><div class='del'>-				new_arb = e_card_arbitrary_new();</div><div class='del'>-				new_arb-&gt;key = g_strdup(key);</div><div class='del'>-				new_arb-&gt;type = g_strdup(type);</div><div class='del'>-				new_arb-&gt;value = g_strdup(value);</div><div class='del'>-				e_iterator_set(iterator, new_arb);</div><div class='del'>-				e_card_arbitrary_unref(new_arb);</div><div class='del'>-				return;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		new_arb = e_card_arbitrary_new();</div><div class='del'>-		new_arb-&gt;key = g_strdup(key);</div><div class='del'>-		new_arb-&gt;type = g_strdup(type);</div><div class='del'>-		new_arb-&gt;value = g_strdup(value);</div><div class='del'>-		e_list_append(list, new_arb);</div><div class='del'>-		e_card_arbitrary_unref(new_arb);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* These map between the individual list types and ECardSimpleField */</div><div class='del'>-ECardSimpleField</div><div class='del'>-e_card_simple_map_phone_to_field (ECardSimplePhoneId phone_id)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (phone_id &lt; E_CARD_SIMPLE_PHONE_ID_LAST, 0);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; field_data_count; i ++)</div><div class='del'>-		if (field_data[i].list_type_index == phone_id</div><div class='del'>-		    &amp;&amp; field_data[i].type == E_CARD_SIMPLE_INTERNAL_TYPE_PHONE)</div><div class='del'>-			return i;</div><div class='del'>-</div><div class='del'>-	g_warning ("couldn't find phone id %d, returning 0 (which is almost assuredly incorrect)\n", phone_id);</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardSimpleField</div><div class='del'>-e_card_simple_map_email_to_field (ECardSimpleEmailId email_id)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (email_id &lt; E_CARD_SIMPLE_EMAIL_ID_LAST, 0);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; field_data_count; i ++)</div><div class='del'>-		if (field_data[i].list_type_index == email_id</div><div class='del'>-		    &amp;&amp; field_data[i].type == E_CARD_SIMPLE_INTERNAL_TYPE_EMAIL)</div><div class='del'>-			return i;</div><div class='del'>-</div><div class='del'>-	g_warning ("couldn't find email id %d, returning 0 (which is almost assuredly incorrect)\n", email_id);</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardSimpleField</div><div class='del'>-e_card_simple_map_address_to_field (ECardSimpleAddressId address_id)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (address_id &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST, 0);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; field_data_count; i ++)</div><div class='del'>-		if (field_data[i].list_type_index == address_id</div><div class='del'>-		    &amp;&amp; field_data[i].type == E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS)</div><div class='del'>-			return i;</div><div class='del'>-</div><div class='del'>-	g_warning ("couldn't find address id %d, returning 0 (which is almost assuredly incorrect)\n", address_id);</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-simple.h b/addressbook/backend/ebook/e-card-simple.h<br/>deleted file mode 100644<br/>index 4acc95cab8..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-simple.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-simple.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,229 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors:</div><div class='del'>- *   Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *   Arturo Espinosa</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- * Copyright (C) 1999 The Free Software Foundation</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_CARD_SIMPLE_H__</div><div class='del'>-#define __E_CARD_SIMPLE_H__</div><div class='del'>-</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;gtk/gtk.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card-types.h&gt;</div><div class='del'>-#include &lt;e-util/e-list.h&gt;</div><div class='del'>-</div><div class='del'>-#define E_TYPE_CARD_SIMPLE            (e_card_simple_get_type ())</div><div class='del'>-#define E_CARD_SIMPLE(obj)            (GTK_CHECK_CAST ((obj), E_TYPE_CARD_SIMPLE, ECardSimple))</div><div class='del'>-#define E_CARD_SIMPLE_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_CARD_SIMPLE, ECardSimpleClass))</div><div class='del'>-#define E_IS_CARD_SIMPLE(obj)         (GTK_CHECK_TYPE ((obj), E_TYPE_CARD_SIMPLE))</div><div class='del'>-#define E_IS_CARD_SIMPLE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_CARD_SIMPLE))</div><div class='del'>-</div><div class='del'>-typedef enum _ECardSimplePhoneId ECardSimplePhoneId;</div><div class='del'>-typedef enum _ECardSimpleEmailId ECardSimpleEmailId;</div><div class='del'>-typedef enum _ECardSimpleAddressId ECardSimpleAddressId;</div><div class='del'>-typedef enum _ECardSimpleType ECardSimpleType;</div><div class='del'>-typedef enum _ECardSimpleField ECardSimpleField;</div><div class='del'>-</div><div class='del'>-enum _ECardSimplePhoneId {</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_ASSISTANT,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_BUSINESS,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_BUSINESS_2,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_BUSINESS_FAX,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_CALLBACK,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_CAR,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_COMPANY,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_HOME,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_HOME_2,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_HOME_FAX,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_ISDN,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_MOBILE,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_OTHER,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_OTHER_FAX,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_PAGER,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_PRIMARY,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_RADIO,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_TELEX,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_TTYTTD,</div><div class='del'>-	E_CARD_SIMPLE_PHONE_ID_LAST</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* We need HOME and WORK email addresses here. */</div><div class='del'>-enum _ECardSimpleEmailId {</div><div class='del'>-	E_CARD_SIMPLE_EMAIL_ID_EMAIL,</div><div class='del'>-	E_CARD_SIMPLE_EMAIL_ID_EMAIL_2,</div><div class='del'>-	E_CARD_SIMPLE_EMAIL_ID_EMAIL_3,</div><div class='del'>-	E_CARD_SIMPLE_EMAIL_ID_LAST</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Should this include (BILLING/SHIPPING)? */</div><div class='del'>-enum _ECardSimpleAddressId {</div><div class='del'>-	E_CARD_SIMPLE_ADDRESS_ID_BUSINESS,</div><div class='del'>-	E_CARD_SIMPLE_ADDRESS_ID_HOME,</div><div class='del'>-	E_CARD_SIMPLE_ADDRESS_ID_OTHER,</div><div class='del'>-	E_CARD_SIMPLE_ADDRESS_ID_LAST</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum _ECardSimpleType {</div><div class='del'>-	E_CARD_SIMPLE_TYPE_STRING,</div><div class='del'>-	E_CARD_SIMPLE_TYPE_DATE,</div><div class='del'>-	E_CARD_SIMPLE_TYPE_BOOL,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum _ECardSimpleField {</div><div class='del'>-	E_CARD_SIMPLE_FIELD_FILE_AS,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_FULL_NAME,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_EMAIL,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_PRIMARY,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_ASSISTANT,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_BUSINESS,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_CALLBACK,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_COMPANY,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_HOME,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ORG,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ADDRESS_BUSINESS,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ADDRESS_HOME,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_MOBILE,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_CAR,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_FAX,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_HOME_FAX,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_2,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_HOME_2,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_ISDN,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_OTHER,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_OTHER_FAX,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_PAGER,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_RADIO,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_TELEX,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_PHONE_TTYTTD,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ADDRESS_OTHER,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_EMAIL_2,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_EMAIL_3,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_URL,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ORG_UNIT,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_OFFICE,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_TITLE,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ROLE,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_MANAGER,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ASSISTANT,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_NICKNAME,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_SPOUSE,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_NOTE,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_CALURI,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_FBURL,</div><div class='del'>-	/* If you add after FBURL, make sure to move LAST_SIMPLE_STRING */</div><div class='del'>-	E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING = E_CARD_SIMPLE_FIELD_FBURL,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ANNIVERSARY,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_BIRTH_DATE,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_MAILER,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_NAME_OR_ORG,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_CATEGORIES,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_FAMILY_NAME,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_GIVEN_NAME,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_ADDITIONAL_NAME,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_NAME_SUFFIX,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_WANTS_HTML,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_IS_LIST,</div><div class='del'>-        E_CARD_SIMPLE_FIELD_LAST</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef struct _ECardSimple ECardSimple;</div><div class='del'>-typedef struct _ECardSimpleClass ECardSimpleClass;</div><div class='del'>-</div><div class='del'>-struct _ECardSimple {</div><div class='del'>-	GtkObject object;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	GList *temp_fields;</div><div class='del'>-</div><div class='del'>-	ECardPhone *phone[E_CARD_SIMPLE_PHONE_ID_LAST];</div><div class='del'>-	char *email[E_CARD_SIMPLE_EMAIL_ID_LAST];</div><div class='del'>-	ECardAddrLabel *address[E_CARD_SIMPLE_ADDRESS_ID_LAST];</div><div class='del'>-	ECardDeliveryAddress *delivery[E_CARD_SIMPLE_ADDRESS_ID_LAST];</div><div class='del'>-</div><div class='del'>-	gboolean changed;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ECardSimpleClass {</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef void (*ECardSimpleArbitraryCallback) (const ECardArbitrary *arbitrary, gpointer closure);</div><div class='del'>-ECardSimple                *e_card_simple_new                    (ECard                        *card);</div><div class='del'>-const char                 *e_card_simple_get_id                 (ECardSimple                  *simple);</div><div class='del'>-void                        e_card_simple_set_id                 (ECardSimple                  *simple,</div><div class='del'>-								  const gchar                  *character);</div><div class='del'>-char                       *e_card_simple_get_vcard              (ECardSimple                  *simple);</div><div class='del'>-char                       *e_card_simple_get_vcard_assume_utf8  (ECardSimple                  *simple);</div><div class='del'>-ECardSimple                *e_card_simple_duplicate              (ECardSimple                  *simple);</div><div class='del'>-char                       *e_card_simple_get                    (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleField              field);</div><div class='del'>-const char                 *e_card_simple_get_const              (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleField              field);</div><div class='del'>-void                        e_card_simple_set                    (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleField              field,</div><div class='del'>-								  const char                   *data);</div><div class='del'>-ECardSimpleType             e_card_simple_type                   (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleField              field);</div><div class='del'>-</div><div class='del'>-const char                 *e_card_simple_get_ecard_field        (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleField              field);</div><div class='del'>-const char                 *e_card_simple_get_name               (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleField              field);</div><div class='del'>-const char                 *e_card_simple_get_short_name         (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleField              field);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Use these only if building lists of specific types.  It should be</div><div class='del'>- * easier to use the above if you consider a phone field to be the</div><div class='del'>- * same as any other field.</div><div class='del'>- */</div><div class='del'>-const ECardPhone           *e_card_simple_get_phone              (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimplePhoneId            id);</div><div class='del'>-const char                 *e_card_simple_get_email              (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleEmailId            id);</div><div class='del'>-const ECardAddrLabel       *e_card_simple_get_address            (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleAddressId          id);</div><div class='del'>-const ECardDeliveryAddress *e_card_simple_get_delivery_address   (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleAddressId          id);</div><div class='del'>-void                        e_card_simple_set_phone              (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimplePhoneId            id,</div><div class='del'>-								  const ECardPhone             *phone);</div><div class='del'>-void                        e_card_simple_set_email              (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleEmailId            id,</div><div class='del'>-								  const char                   *email);</div><div class='del'>-void                        e_card_simple_set_address            (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleAddressId          id,</div><div class='del'>-								  const ECardAddrLabel         *address);</div><div class='del'>-void                        e_card_simple_set_delivery_address   (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleAddressId          id,</div><div class='del'>-								  const ECardDeliveryAddress   *delivery);</div><div class='del'>-void                        e_card_simple_arbitrary_foreach      (ECardSimple                  *simple,</div><div class='del'>-								  ECardSimpleArbitraryCallback *callback,</div><div class='del'>-								  gpointer                      closure);</div><div class='del'>-const ECardArbitrary       *e_card_simple_get_arbitrary          (ECardSimple                  *simple,</div><div class='del'>-								  const char                   *key);</div><div class='del'>-/* Any of these except key can be NULL */	      </div><div class='del'>-void                        e_card_simple_set_arbitrary          (ECardSimple                  *simple,</div><div class='del'>-								  const char                   *key,</div><div class='del'>-								  const char                   *type,</div><div class='del'>-								  const char                   *value);</div><div class='del'>-void                        e_card_simple_sync_card              (ECardSimple                  *simple);</div><div class='del'>-</div><div class='del'>-/* These map between the individual list types and ECardSimpleField */</div><div class='del'>-ECardSimpleField            e_card_simple_map_phone_to_field     (ECardSimplePhoneId            phone_id);</div><div class='del'>-ECardSimpleField            e_card_simple_map_email_to_field     (ECardSimpleEmailId            email_id);</div><div class='del'>-ECardSimpleField            e_card_simple_map_address_to_field   (ECardSimpleAddressId          address_id);</div><div class='del'>-</div><div class='del'>-/* Standard Gtk function */			      </div><div class='del'>-GtkType                     e_card_simple_get_type               (void);</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_CARD_SIMPLE_H__ */</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card-types.h b/addressbook/backend/ebook/e-card-types.h<br/>deleted file mode 100644<br/>index 588a1f5e68..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card-types.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card-types.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,99 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors:</div><div class='del'>- *   Arturo Espinosa</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- * Copyright (C) 1999 The Free Software Foundation</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_CARD_TYPES_H__</div><div class='del'>-#define __E_CARD_TYPES_H__</div><div class='del'>-</div><div class='del'>-/* IDENTIFICATION PROPERTIES */</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	gint  ref_count;</div><div class='del'>-	char *prefix;        /* Mr. */</div><div class='del'>-	char *given;         /* John */</div><div class='del'>-	char *additional;    /* Quinlan */</div><div class='del'>-	char *family;        /* Public */</div><div class='del'>-	char *suffix;        /* Esq. */</div><div class='del'>-} ECardName;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	int year;</div><div class='del'>-	int month;</div><div class='del'>-	int day;</div><div class='del'>-} ECardDate;</div><div class='del'>-</div><div class='del'>-/* TELECOMMUNICATIONS ADDRESSING PROPERTIES */</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	E_CARD_PHONE_PREF      = 1 &lt;&lt; 0,</div><div class='del'>-	E_CARD_PHONE_WORK      = 1 &lt;&lt; 1,</div><div class='del'>-	E_CARD_PHONE_HOME      = 1 &lt;&lt; 2,</div><div class='del'>-	E_CARD_PHONE_VOICE     = 1 &lt;&lt; 3,</div><div class='del'>-	E_CARD_PHONE_FAX       = 1 &lt;&lt; 4,</div><div class='del'>-	E_CARD_PHONE_MSG       = 1 &lt;&lt; 5,</div><div class='del'>-	E_CARD_PHONE_CELL      = 1 &lt;&lt; 6,</div><div class='del'>-	E_CARD_PHONE_PAGER     = 1 &lt;&lt; 7,</div><div class='del'>-	E_CARD_PHONE_BBS       = 1 &lt;&lt; 8,</div><div class='del'>-	E_CARD_PHONE_MODEM     = 1 &lt;&lt; 9,</div><div class='del'>-	E_CARD_PHONE_CAR       = 1 &lt;&lt; 10,</div><div class='del'>-	E_CARD_PHONE_ISDN      = 1 &lt;&lt; 11,</div><div class='del'>-	E_CARD_PHONE_VIDEO     = 1 &lt;&lt; 12,</div><div class='del'>-	E_CARD_PHONE_ASSISTANT = 1 &lt;&lt; 13,</div><div class='del'>-	E_CARD_PHONE_CALLBACK  = 1 &lt;&lt; 14,</div><div class='del'>-	E_CARD_PHONE_RADIO     = 1 &lt;&lt; 15,</div><div class='del'>-	E_CARD_PHONE_TELEX     = 1 &lt;&lt; 16,</div><div class='del'>-	E_CARD_PHONE_TTYTDD    = 1 &lt;&lt; 17,</div><div class='del'>-} ECardPhoneFlags;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	gint ref_count;</div><div class='del'>-	ECardPhoneFlags  flags;</div><div class='del'>-	char            *number;</div><div class='del'>-} ECardPhone;</div><div class='del'>-</div><div class='del'>-/* DELIVERY ADDRESSING PROPERTIES */</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	E_CARD_ADDR_HOME   = 1 &lt;&lt; 0, </div><div class='del'>-	E_CARD_ADDR_WORK   = 1 &lt;&lt; 1,</div><div class='del'>-	E_CARD_ADDR_POSTAL = 1 &lt;&lt; 2, </div><div class='del'>-	E_CARD_ADDR_PARCEL = 1 &lt;&lt; 3, </div><div class='del'>-	E_CARD_ADDR_DOM    = 1 &lt;&lt; 4,</div><div class='del'>-	E_CARD_ADDR_INTL   = 1 &lt;&lt; 5 </div><div class='del'>-} ECardAddressFlags;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	gint ref_count;</div><div class='del'>-	ECardAddressFlags  flags;</div><div class='del'>-</div><div class='del'>-	char     	  *po;</div><div class='del'>-	char     	  *ext;</div><div class='del'>-	char     	  *street;</div><div class='del'>-	char     	  *city;</div><div class='del'>-	char     	  *region;</div><div class='del'>-	char     	  *code;</div><div class='del'>-	char     	  *country;</div><div class='del'>-} ECardDeliveryAddress;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	gint ref_count;</div><div class='del'>-	ECardAddressFlags  flags;</div><div class='del'>-	char              *data;</div><div class='del'>-} ECardAddrLabel;</div><div class='del'>-</div><div class='del'>-/* ARBITRARY PROPERTIES */</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	gint ref_count;</div><div class='del'>-	char *key;</div><div class='del'>-	char *type;</div><div class='del'>-	char *value;</div><div class='del'>-} ECardArbitrary;</div><div class='del'>-</div><div class='del'>-#endif /* __E_CARD_TYPES_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c<br/>deleted file mode 100644<br/>index cbea56a6bc..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4359 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors: </div><div class='del'>- *   Arturo Espinosa (arturo@nuclecu.unam.mx)</div><div class='del'>- *   Nat Friedman    (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- * Copyright (C) 1999 The Free Software Foundation</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-card.h"</div><div class='del'>-</div><div class='del'>-#include &lt;gal/util/e-i18n.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;math.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-object-client.h&gt;</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;libversit/vcc.h&gt;</div><div class='del'>-#include "e-util/ename/e-name-western.h"</div><div class='del'>-#include "e-util/ename/e-address-western.h"</div><div class='del'>-#include "e-book.h"</div><div class='del'>-#include "e-destination.h"</div><div class='del'>-</div><div class='del'>-#define is_a_prop_of(obj,prop) (isAPropertyOf ((obj),(prop)))</div><div class='del'>-#define str_val(obj) (the_str = (vObjectValueType (obj))? fakeCString (vObjectUStringZValue (obj)) : calloc (1, 1))</div><div class='del'>-#define has(obj,prop) (vo = isAPropertyOf ((obj), (prop)))</div><div class='del'>-</div><div class='del'>-#define XEV_WANTS_HTML "X-MOZILLA-HTML"</div><div class='del'>-#define XEV_ARBITRARY "X-EVOLUTION-ARBITRARY"</div><div class='del'>-#define XEV_LIST "X-EVOLUTION-LIST"</div><div class='del'>-#define XEV_LIST_SHOW_ADDRESSES "X-EVOLUTION-LIST-SHOW_ADDRESSES"</div><div class='del'>-#define XEV_RELATED_CONTACTS "X-EVOLUTION-RELATED_CONTACTS"</div><div class='del'>-</div><div class='del'>-/* Object argument IDs */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_FILE_AS,</div><div class='del'>-	ARG_FULL_NAME,</div><div class='del'>-	ARG_NAME,</div><div class='del'>-	ARG_ADDRESS,</div><div class='del'>-	ARG_ADDRESS_LABEL,</div><div class='del'>-	ARG_PHONE,</div><div class='del'>-	ARG_EMAIL,</div><div class='del'>-	ARG_BIRTH_DATE,</div><div class='del'>-	ARG_URL,</div><div class='del'>-	ARG_ORG,</div><div class='del'>-	ARG_ORG_UNIT,</div><div class='del'>-	ARG_OFFICE,</div><div class='del'>-	ARG_TITLE,</div><div class='del'>-	ARG_ROLE,</div><div class='del'>-	ARG_MANAGER,</div><div class='del'>-	ARG_ASSISTANT,</div><div class='del'>-	ARG_NICKNAME,</div><div class='del'>-	ARG_SPOUSE,</div><div class='del'>-	ARG_ANNIVERSARY,</div><div class='del'>-	ARG_MAILER,</div><div class='del'>-	ARG_CALURI,</div><div class='del'>-	ARG_FBURL,</div><div class='del'>-	ARG_NOTE,</div><div class='del'>-	ARG_RELATED_CONTACTS,</div><div class='del'>-	ARG_CATEGORIES,</div><div class='del'>-	ARG_CATEGORY_LIST,</div><div class='del'>-	ARG_WANTS_HTML,</div><div class='del'>-	ARG_WANTS_HTML_SET,</div><div class='del'>-	ARG_EVOLUTION_LIST,</div><div class='del'>-	ARG_EVOLUTION_LIST_SHOW_ADDRESSES,</div><div class='del'>-	ARG_ARBITRARY,</div><div class='del'>-	ARG_ID,</div><div class='del'>-	ARG_LAST_USE,</div><div class='del'>-	ARG_USE_SCORE,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-static VObject *card_convert_to_vobject (ECard *crd);</div><div class='del'>-#endif</div><div class='del'>-static void parse(ECard *card, VObject *vobj, char *default_charset);</div><div class='del'>-static void e_card_init (ECard *card);</div><div class='del'>-static void e_card_class_init (ECardClass *klass);</div><div class='del'>-</div><div class='del'>-static void e_card_destroy (GtkObject *object);</div><div class='del'>-static void e_card_set_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_card_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-</div><div class='del'>-static void assign_string(VObject *vobj, char *default_charset, char **string);</div><div class='del'>-</div><div class='del'>-char *e_v_object_get_child_value(VObject *vobj, char *name, char *default_charset);</div><div class='del'>-static ECardDate e_card_date_from_string (char *str);</div><div class='del'>-</div><div class='del'>-static void parse_bday(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_full_name(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_file_as(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_name(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_email(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_phone(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_address(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_address_label(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_url(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_org(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_office(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_title(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_role(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_manager(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_assistant(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_nickname(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_spouse(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_anniversary(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_mailer(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_caluri(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_fburl(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_note(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_related_contacts(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_categories(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_wants_html(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_list(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_list_show_addresses(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_arbitrary(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_id(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_last_use(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-static void parse_use_score(ECard *card, VObject *object, char *default_charset);</div><div class='del'>-</div><div class='del'>-static ECardPhoneFlags get_phone_flags (VObject *vobj);</div><div class='del'>-static void set_phone_flags (VObject *vobj, ECardPhoneFlags flags);</div><div class='del'>-static ECardAddressFlags get_address_flags (VObject *vobj);</div><div class='del'>-static void set_address_flags (VObject *vobj, ECardAddressFlags flags);</div><div class='del'>-</div><div class='del'>-typedef void (* ParsePropertyFunc) (ECard *card, VObject *object, char *default_charset);</div><div class='del'>-</div><div class='del'>-struct {</div><div class='del'>-	char *key;</div><div class='del'>-	ParsePropertyFunc function;</div><div class='del'>-} attribute_jump_array[] = </div><div class='del'>-{</div><div class='del'>-	{ VCFullNameProp,            parse_full_name },</div><div class='del'>-	{ "X-EVOLUTION-FILE-AS",     parse_file_as },</div><div class='del'>-	{ VCNameProp,                parse_name },</div><div class='del'>-	{ VCBirthDateProp,           parse_bday },</div><div class='del'>-	{ VCEmailAddressProp,        parse_email },</div><div class='del'>-	{ VCTelephoneProp,           parse_phone },</div><div class='del'>-	{ VCAdrProp,                 parse_address },</div><div class='del'>-	{ VCDeliveryLabelProp,       parse_address_label },</div><div class='del'>-	{ VCURLProp,                 parse_url },</div><div class='del'>-	{ VCOrgProp,                 parse_org },</div><div class='del'>-	{ "X-EVOLUTION-OFFICE",      parse_office },</div><div class='del'>-	{ VCTitleProp,               parse_title },</div><div class='del'>-	{ VCBusinessRoleProp,        parse_role },</div><div class='del'>-	{ "X-EVOLUTION-MANAGER",     parse_manager },</div><div class='del'>-	{ "X-EVOLUTION-ASSISTANT",   parse_assistant },</div><div class='del'>-	{ "NICKNAME",                parse_nickname },</div><div class='del'>-	{ "X-EVOLUTION-SPOUSE",      parse_spouse },</div><div class='del'>-	{ "X-EVOLUTION-ANNIVERSARY", parse_anniversary },   </div><div class='del'>-	{ VCMailerProp,              parse_mailer },</div><div class='del'>-	{ "CALURI",                  parse_caluri },</div><div class='del'>-	{ "FBURL",                   parse_fburl },</div><div class='del'>-	{ VCNoteProp,                parse_note },</div><div class='del'>-	{ XEV_RELATED_CONTACTS,      parse_related_contacts },</div><div class='del'>-	{ "CATEGORIES",              parse_categories },</div><div class='del'>-	{ XEV_WANTS_HTML,            parse_wants_html },</div><div class='del'>-	{ XEV_ARBITRARY,             parse_arbitrary },</div><div class='del'>-	{ VCUniqueStringProp,        parse_id },</div><div class='del'>-	{ "X-EVOLUTION-LAST-USE",    parse_last_use },</div><div class='del'>-	{ "X-EVOLUTION-USE-SCORE",   parse_use_score },</div><div class='del'>-	{ XEV_LIST,                  parse_list },</div><div class='del'>-	{ XEV_LIST_SHOW_ADDRESSES,   parse_list_show_addresses },</div><div class='del'>-	{ VCUniqueStringProp,        parse_id }</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_get_type:</div><div class='del'>- * @void: </div><div class='del'>- * </div><div class='del'>- * Registers the &amp;ECard class if necessary, and returns the type ID</div><div class='del'>- * associated to it.</div><div class='del'>- * </div><div class='del'>- * Return value: The type ID of the &amp;ECard class.</div><div class='del'>- **/</div><div class='del'>-GtkType</div><div class='del'>-e_card_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType card_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!card_type) {</div><div class='del'>-		GtkTypeInfo card_info = {</div><div class='del'>-			"ECard",</div><div class='del'>-			sizeof (ECard),</div><div class='del'>-			sizeof (ECardClass),</div><div class='del'>-			(GtkClassInitFunc) e_card_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_card_init,</div><div class='del'>-			NULL, /* reserved_1 */</div><div class='del'>-			NULL, /* reserved_2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		card_type = gtk_type_unique (gtk_object_get_type (), &amp;card_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return card_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECard *</div><div class='del'>-e_card_new_with_default_charset (char *vcard, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD(gtk_type_new(e_card_get_type()));</div><div class='del'>-	VObject *vobj = Parse_MIME(vcard, strlen(vcard));</div><div class='del'>-	while(vobj) {</div><div class='del'>-		VObject *next;</div><div class='del'>-		parse(card, vobj, default_charset);</div><div class='del'>-		next = nextVObjectInList(vobj);</div><div class='del'>-		cleanVObject(vobj);</div><div class='del'>-		vobj = next;</div><div class='del'>-	}</div><div class='del'>-	if (card-&gt;name == NULL)</div><div class='del'>-		card-&gt;name = e_card_name_new();</div><div class='del'>-	if (card-&gt;file_as == NULL)</div><div class='del'>-		card-&gt;file_as = g_strdup("");</div><div class='del'>-	if (card-&gt;fname == NULL)</div><div class='del'>-		card-&gt;fname = g_strdup("");</div><div class='del'>-	return card;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_new:</div><div class='del'>- * @vcard: a string in vCard format</div><div class='del'>- *</div><div class='del'>- * Returns: a new #ECard that wraps the @vcard.</div><div class='del'>- */</div><div class='del'>-ECard *</div><div class='del'>-e_card_new (char *vcard)</div><div class='del'>-{</div><div class='del'>-	return e_card_new_with_default_charset (vcard, "UTF-8");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECard *</div><div class='del'>-e_card_duplicate(ECard *card)</div><div class='del'>-{</div><div class='del'>-	char *vcard = e_card_get_vcard_assume_utf8(card);</div><div class='del'>-	ECard *new_card = e_card_new(vcard);</div><div class='del'>-	g_free (vcard);</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;book) {</div><div class='del'>-		new_card-&gt;book = card-&gt;book;</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (new_card-&gt;book));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return new_card;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_get_today (GDate *dt)</div><div class='del'>-{</div><div class='del'>-	time_t now;</div><div class='del'>-	struct tm *now_tm;</div><div class='del'>-	if (dt == NULL)</div><div class='del'>-		return;</div><div class='del'>-	</div><div class='del'>-	time (&amp;now);</div><div class='del'>-	now_tm = localtime (&amp;now);</div><div class='del'>-</div><div class='del'>-	g_date_set_dmy (dt, now_tm-&gt;tm_mday, now_tm-&gt;tm_mon + 1, now_tm-&gt;tm_year + 1900);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-float</div><div class='del'>-e_card_get_use_score(ECard *card)</div><div class='del'>-{</div><div class='del'>-	GDate today, last_use;</div><div class='del'>-	gint days_since_last_use;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (card != NULL &amp;&amp; E_IS_CARD (card), 0);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;last_use == NULL)</div><div class='del'>-		return 0.0;</div><div class='del'>-</div><div class='del'>-	e_card_get_today (&amp;today);</div><div class='del'>-	g_date_set_dmy (&amp;last_use, card-&gt;last_use-&gt;day, card-&gt;last_use-&gt;month, card-&gt;last_use-&gt;year);</div><div class='del'>-</div><div class='del'>-	days_since_last_use = g_date_julian (&amp;today) - g_date_julian (&amp;last_use);</div><div class='del'>-	</div><div class='del'>-	/* Apply a seven-day "grace period" to the use score decay. */</div><div class='del'>-	days_since_last_use -= 7;</div><div class='del'>-	if (days_since_last_use &lt; 0)</div><div class='del'>-		days_since_last_use = 0;</div><div class='del'>-</div><div class='del'>-	return MAX (card-&gt;raw_use_score, 0) * exp (- days_since_last_use / 30.0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_touch(ECard *card)</div><div class='del'>-{</div><div class='del'>-	GDate today;</div><div class='del'>-	double use_score;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (card != NULL &amp;&amp; E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>-	e_card_get_today (&amp;today);</div><div class='del'>-	use_score = e_card_get_use_score (card);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;last_use == NULL)</div><div class='del'>-		card-&gt;last_use = g_new (ECardDate, 1);</div><div class='del'>-</div><div class='del'>-	card-&gt;last_use-&gt;day   = g_date_day (&amp;today);</div><div class='del'>-	card-&gt;last_use-&gt;month = g_date_month (&amp;today);</div><div class='del'>-	card-&gt;last_use-&gt;year  = g_date_year (&amp;today);</div><div class='del'>-</div><div class='del'>-	card-&gt;raw_use_score   = use_score + 1.0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_get_id:</div><div class='del'>- * @card: an #ECard</div><div class='del'>- *</div><div class='del'>- * Returns: a string representing the id of the card, which is unique</div><div class='del'>- * within its book.</div><div class='del'>- */</div><div class='del'>-const char *</div><div class='del'>-e_card_get_id (ECard *card)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (card &amp;&amp; E_IS_CARD (card), NULL);</div><div class='del'>-</div><div class='del'>-	return card-&gt;id ? card-&gt;id : "";</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_get_id:</div><div class='del'>- * @card: an #ECard</div><div class='del'>- * @id: a id in string format</div><div class='del'>- *</div><div class='del'>- * Sets the identifier of a card, which should be unique within its</div><div class='del'>- * book.</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-e_card_set_id (ECard *card, const char *id)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;id )</div><div class='del'>-		g_free(card-&gt;id);</div><div class='del'>-	card-&gt;id = g_strdup(id ? id : "");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EBook *</div><div class='del'>-e_card_get_book (ECard *card)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (card &amp;&amp; E_IS_CARD (card), NULL);</div><div class='del'>-</div><div class='del'>-	return card-&gt;book;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_set_book (ECard *card, EBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;book)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;book));</div><div class='del'>-	card-&gt;book = book;</div><div class='del'>-	if (card-&gt;book)</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (card-&gt;book));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-e_card_date_to_string (ECardDate *dt)</div><div class='del'>-{</div><div class='del'>-	if (dt) </div><div class='del'>-		return g_strdup_printf ("%04d-%02d-%02d",</div><div class='del'>-					CLAMP(dt-&gt;year, 1000, 9999),</div><div class='del'>-					CLAMP(dt-&gt;month, 1, 12),</div><div class='del'>-					CLAMP(dt-&gt;day, 1, 31));</div><div class='del'>-	else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-addPropValueUTF8(VObject *o, const char *p, const char *v)</div><div class='del'>-{</div><div class='del'>-	VObject *prop = addPropValue (o, p, v);</div><div class='del'>-	for (; *v; v++) {</div><div class='del'>-		if ((*v) &amp; 0x80) {</div><div class='del'>-			addPropValue (prop, "CHARSET", "UTF-8");</div><div class='del'>-			for (; *v; v++) {</div><div class='del'>-				if (*v == '\n') {</div><div class='del'>-					addProp(prop, VCQuotedPrintableProp);</div><div class='del'>-					return prop;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			return prop;</div><div class='del'>-		}</div><div class='del'>-		if (*v == '\n') {</div><div class='del'>-			addProp(prop, VCQuotedPrintableProp);</div><div class='del'>-			for (; *v; v++) {</div><div class='del'>-				if ((*v) &amp; 0x80) {</div><div class='del'>-					addPropValue (prop, "CHARSET", "UTF-8");</div><div class='del'>-					return prop;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			return prop;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	return prop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-addPropValueQP(VObject *o, const char *p, const char *v)</div><div class='del'>-{</div><div class='del'>-	VObject *prop = addPropValue (o, p, v);</div><div class='del'>-	for (; *v; v++) {</div><div class='del'>-		if (*v == '\n') {</div><div class='del'>-			addProp(prop, VCQuotedPrintableProp);</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	return prop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addPropValueSets (VObject *o, const char *p, const char *v, gboolean assumeUTF8, gboolean *is_ascii, gboolean *has_return)</div><div class='del'>-{</div><div class='del'>-	addPropValue (o, p, v);</div><div class='del'>-	if (*has_return &amp;&amp; (assumeUTF8 || !*is_ascii))</div><div class='del'>-		return;</div><div class='del'>-	if (*has_return) {</div><div class='del'>-		for (; *v; v++) {</div><div class='del'>-			if (*v &amp; 0x80) {</div><div class='del'>-				*is_ascii = FALSE;</div><div class='del'>-				return;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	if (assumeUTF8 || !*is_ascii) {</div><div class='del'>-		for (; *v; v++) {</div><div class='del'>-			if (*v == '\n') {</div><div class='del'>-				*has_return = TRUE;</div><div class='del'>-				return;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	for (; *v; v++) {</div><div class='del'>-		if (*v &amp; 0x80) {</div><div class='del'>-			*is_ascii = FALSE;</div><div class='del'>-			for (; *v; v++) {</div><div class='del'>-				if (*v == '\n') {</div><div class='del'>-					*has_return = TRUE;</div><div class='del'>-					return;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-		if (*v == '\n') {</div><div class='del'>-			*has_return = TRUE;</div><div class='del'>-			for (; *v; v++) {</div><div class='del'>-				if (*v &amp; 0x80) {</div><div class='del'>-					*is_ascii = FALSE;</div><div class='del'>-					return;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	return;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define ADD_PROP_VALUE(o, p, v)              (assumeUTF8 ? (addPropValueQP ((o), (p), (v))) : addPropValueUTF8 ((o), (p), (v)))</div><div class='del'>-#define ADD_PROP_VALUE_SET_IS_ASCII(o, p, v) (addPropValueSets ((o), (p), (v), assumeUTF8, &amp;is_ascii, &amp;has_return))</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-e_card_get_vobject (const ECard *card, gboolean assumeUTF8)</div><div class='del'>-{</div><div class='del'>-	VObject *vobj;</div><div class='del'>-	</div><div class='del'>-	vobj = newVObject (VCCardProp);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;file_as &amp;&amp; *card-&gt;file_as)</div><div class='del'>-		ADD_PROP_VALUE(vobj, "X-EVOLUTION-FILE-AS", card-&gt;file_as);</div><div class='del'>-	else if (card-&gt;file_as)</div><div class='del'>-		addProp(vobj, "X-EVOLUTION-FILE_AS");</div><div class='del'>-</div><div class='del'>-	if (card-&gt;fname &amp;&amp; *card-&gt;fname)</div><div class='del'>-		ADD_PROP_VALUE(vobj, VCFullNameProp, card-&gt;fname);</div><div class='del'>-	else if (card-&gt;fname)</div><div class='del'>-		addProp(vobj, VCFullNameProp);</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;name &amp;&amp; (card-&gt;name-&gt;prefix || card-&gt;name-&gt;given || card-&gt;name-&gt;additional || card-&gt;name-&gt;family || card-&gt;name-&gt;suffix) ) {</div><div class='del'>-		VObject *nameprop;</div><div class='del'>-		gboolean is_ascii = TRUE;</div><div class='del'>-		gboolean has_return = FALSE;</div><div class='del'>-		nameprop = addProp(vobj, VCNameProp);</div><div class='del'>-		if ( card-&gt;name-&gt;prefix )</div><div class='del'>-			ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCNamePrefixesProp, card-&gt;name-&gt;prefix);</div><div class='del'>-		if ( card-&gt;name-&gt;given ) </div><div class='del'>-			ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCGivenNameProp, card-&gt;name-&gt;given);</div><div class='del'>-		if ( card-&gt;name-&gt;additional )</div><div class='del'>-			ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCAdditionalNamesProp, card-&gt;name-&gt;additional);</div><div class='del'>-		if ( card-&gt;name-&gt;family )</div><div class='del'>-			ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCFamilyNameProp, card-&gt;name-&gt;family);</div><div class='del'>-		if ( card-&gt;name-&gt;suffix )</div><div class='del'>-			ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCNameSuffixesProp, card-&gt;name-&gt;suffix);</div><div class='del'>-		if (has_return)</div><div class='del'>-			addProp(nameprop, VCQuotedPrintableProp);</div><div class='del'>-		if (!(is_ascii || assumeUTF8))</div><div class='del'>-			addPropValue (nameprop, "CHARSET", "UTF-8");</div><div class='del'>-	}</div><div class='del'>-	else if (card-&gt;name)</div><div class='del'>-		addProp(vobj, VCNameProp);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;address ) {</div><div class='del'>-		EIterator *iterator = e_list_get_iterator(card-&gt;address);</div><div class='del'>-		for ( ; e_iterator_is_valid(iterator) ;e_iterator_next(iterator) ) {</div><div class='del'>-			VObject *addressprop;</div><div class='del'>-			ECardDeliveryAddress *address = (ECardDeliveryAddress *) e_iterator_get(iterator);</div><div class='del'>-			gboolean is_ascii = TRUE;</div><div class='del'>-			gboolean has_return = FALSE;</div><div class='del'>-</div><div class='del'>-			addressprop = addProp(vobj, VCAdrProp);</div><div class='del'>-			</div><div class='del'>-			set_address_flags (addressprop, address-&gt;flags);</div><div class='del'>-			if (address-&gt;po)</div><div class='del'>-				ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCPostalBoxProp, address-&gt;po);</div><div class='del'>-			if (address-&gt;ext)</div><div class='del'>-				ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCExtAddressProp, address-&gt;ext);</div><div class='del'>-			if (address-&gt;street)</div><div class='del'>-				ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCStreetAddressProp, address-&gt;street);</div><div class='del'>-			if (address-&gt;city)</div><div class='del'>-				ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCCityProp, address-&gt;city);</div><div class='del'>-			if (address-&gt;region)</div><div class='del'>-				ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCRegionProp, address-&gt;region);</div><div class='del'>-			if (address-&gt;code)</div><div class='del'>-				ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCPostalCodeProp, address-&gt;code);</div><div class='del'>-			if (address-&gt;country)</div><div class='del'>-				ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCCountryNameProp, address-&gt;country);</div><div class='del'>-</div><div class='del'>-			if (has_return)</div><div class='del'>-				addProp(addressprop, VCQuotedPrintableProp);</div><div class='del'>-			if (!(is_ascii || assumeUTF8))</div><div class='del'>-				addPropValue (addressprop, "CHARSET", "UTF-8");</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;address_label ) {</div><div class='del'>-		EIterator *iterator = e_list_get_iterator(card-&gt;address_label);</div><div class='del'>-		for ( ; e_iterator_is_valid(iterator) ;e_iterator_next(iterator) ) {</div><div class='del'>-			VObject *labelprop;</div><div class='del'>-			ECardAddrLabel *address_label = (ECardAddrLabel *) e_iterator_get(iterator);</div><div class='del'>-			if (address_label-&gt;data)</div><div class='del'>-				labelprop = ADD_PROP_VALUE(vobj, VCDeliveryLabelProp, address_label-&gt;data);</div><div class='del'>-			else</div><div class='del'>-				labelprop = addProp(vobj, VCDeliveryLabelProp);</div><div class='del'>-			</div><div class='del'>-			set_address_flags (labelprop, address_label-&gt;flags);</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;phone ) { </div><div class='del'>-		EIterator *iterator = e_list_get_iterator(card-&gt;phone);</div><div class='del'>-		for ( ; e_iterator_is_valid(iterator) ;e_iterator_next(iterator) ) {</div><div class='del'>-			VObject *phoneprop;</div><div class='del'>-			ECardPhone *phone = (ECardPhone *) e_iterator_get(iterator);</div><div class='del'>-			phoneprop = ADD_PROP_VALUE(vobj, VCTelephoneProp, phone-&gt;number);</div><div class='del'>-			</div><div class='del'>-			set_phone_flags (phoneprop, phone-&gt;flags);</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;email ) { </div><div class='del'>-		EIterator *iterator = e_list_get_iterator(card-&gt;email);</div><div class='del'>-		for ( ; e_iterator_is_valid(iterator) ;e_iterator_next(iterator) ) {</div><div class='del'>-			VObject *emailprop;</div><div class='del'>-			emailprop = ADD_PROP_VALUE(vobj, VCEmailAddressProp, (char *) e_iterator_get(iterator));</div><div class='del'>-			addProp (emailprop, VCInternetProp);</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;bday ) {</div><div class='del'>-		char *value;</div><div class='del'>-		value = e_card_date_to_string (card-&gt;bday);</div><div class='del'>-		ADD_PROP_VALUE(vobj, VCBirthDateProp, value);</div><div class='del'>-		g_free(value);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;url)</div><div class='del'>-		ADD_PROP_VALUE(vobj, VCURLProp, card-&gt;url);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;org || card-&gt;org_unit) {</div><div class='del'>-		VObject *orgprop;</div><div class='del'>-		gboolean is_ascii = TRUE;</div><div class='del'>-		gboolean has_return = FALSE;</div><div class='del'>-		orgprop = addProp(vobj, VCOrgProp);</div><div class='del'>-		</div><div class='del'>-		if (card-&gt;org)</div><div class='del'>-			ADD_PROP_VALUE_SET_IS_ASCII(orgprop, VCOrgNameProp, card-&gt;org);</div><div class='del'>-		if (card-&gt;org_unit)</div><div class='del'>-			ADD_PROP_VALUE_SET_IS_ASCII(orgprop, VCOrgUnitProp, card-&gt;org_unit);</div><div class='del'>-</div><div class='del'>-		if (has_return)</div><div class='del'>-			addProp(orgprop, VCQuotedPrintableProp);</div><div class='del'>-		if (!(is_ascii || assumeUTF8))</div><div class='del'>-			addPropValue (orgprop, "CHARSET", "UTF-8");</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;office)</div><div class='del'>-		ADD_PROP_VALUE(vobj, "X-EVOLUTION-OFFICE", card-&gt;office);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;title)</div><div class='del'>-		ADD_PROP_VALUE(vobj, VCTitleProp, card-&gt;title);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;role)</div><div class='del'>-		ADD_PROP_VALUE(vobj, VCBusinessRoleProp, card-&gt;role);</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;manager)</div><div class='del'>-		ADD_PROP_VALUE(vobj, "X-EVOLUTION-MANAGER", card-&gt;manager);</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;assistant)</div><div class='del'>-		ADD_PROP_VALUE(vobj, "X-EVOLUTION-ASSISTANT", card-&gt;assistant);</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;nickname)</div><div class='del'>-		ADD_PROP_VALUE(vobj, "NICKNAME", card-&gt;nickname);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;spouse)</div><div class='del'>-		ADD_PROP_VALUE(vobj, "X-EVOLUTION-SPOUSE", card-&gt;spouse);</div><div class='del'>-</div><div class='del'>-	if ( card-&gt;anniversary ) {</div><div class='del'>-		char *value;</div><div class='del'>-		value = e_card_date_to_string (card-&gt;anniversary);</div><div class='del'>-		ADD_PROP_VALUE(vobj, "X-EVOLUTION-ANNIVERSARY", value);</div><div class='del'>-		g_free(value);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;mailer) {</div><div class='del'>-		ADD_PROP_VALUE(vobj, VCMailerProp, card-&gt;mailer);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;caluri)</div><div class='del'>-		addPropValueQP(vobj, "CALURI", card-&gt;caluri);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;fburl)</div><div class='del'>-		ADD_PROP_VALUE(vobj, "FBURL", card-&gt;fburl);</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;note) {</div><div class='del'>-		VObject *noteprop;</div><div class='del'>-</div><div class='del'>-		noteprop = ADD_PROP_VALUE(vobj, VCNoteProp, card-&gt;note);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;last_use) {</div><div class='del'>-		char *value;</div><div class='del'>-		value = e_card_date_to_string (card-&gt;last_use);</div><div class='del'>-		ADD_PROP_VALUE (vobj, "X-EVOLUTION-LAST-USE", value);</div><div class='del'>-		g_free (value);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;raw_use_score &gt; 0) {</div><div class='del'>-		char *value;</div><div class='del'>-		value = g_strdup_printf ("%f", card-&gt;raw_use_score);</div><div class='del'>-		ADD_PROP_VALUE (vobj, "X-EVOLUTION-USE-SCORE", value);</div><div class='del'>-		g_free (value);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;related_contacts &amp;&amp; *card-&gt;related_contacts) {</div><div class='del'>-		ADD_PROP_VALUE(vobj, XEV_RELATED_CONTACTS, card-&gt;related_contacts);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;categories) {</div><div class='del'>-		EIterator *iterator;</div><div class='del'>-		int length = 0;</div><div class='del'>-		char *string;</div><div class='del'>-		char *stringptr;</div><div class='del'>-		for (iterator = e_list_get_iterator(card-&gt;categories); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			length += strlen(e_iterator_get(iterator)) + 1;</div><div class='del'>-		}</div><div class='del'>-		string = g_new(char, length + 1);</div><div class='del'>-		stringptr = string;</div><div class='del'>-		*stringptr = 0;</div><div class='del'>-		for (e_iterator_reset(iterator); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			strcpy(stringptr, e_iterator_get(iterator));</div><div class='del'>-			stringptr += strlen(stringptr);</div><div class='del'>-			*stringptr = ',';</div><div class='del'>-			stringptr++;</div><div class='del'>-			*stringptr = 0;</div><div class='del'>-		}</div><div class='del'>-		if (stringptr &gt; string) {</div><div class='del'>-			stringptr --;</div><div class='del'>-			*stringptr = 0;</div><div class='del'>-		}</div><div class='del'>-		ADD_PROP_VALUE (vobj, "CATEGORIES", string);</div><div class='del'>-		g_free(string);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;wants_html_set) {</div><div class='del'>-		ADD_PROP_VALUE (vobj, XEV_WANTS_HTML, card-&gt;wants_html ? "TRUE" : "FALSE");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;list) {</div><div class='del'>-		ADD_PROP_VALUE (vobj, XEV_LIST, "TRUE");</div><div class='del'>-		ADD_PROP_VALUE (vobj, XEV_LIST_SHOW_ADDRESSES, card-&gt;list_show_addresses ? "TRUE" : "FALSE");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;arbitrary) {</div><div class='del'>-		EIterator *iterator;</div><div class='del'>-		for (iterator = e_list_get_iterator(card-&gt;arbitrary); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			const ECardArbitrary *arbitrary = e_iterator_get(iterator);</div><div class='del'>-			VObject *arb_object;</div><div class='del'>-			if (arbitrary-&gt;value) {</div><div class='del'>-				arb_object = ADD_PROP_VALUE (vobj, XEV_ARBITRARY, arbitrary-&gt;value);</div><div class='del'>-			} else {</div><div class='del'>-				arb_object = addProp (vobj, XEV_ARBITRARY);</div><div class='del'>-			}</div><div class='del'>-			if (arbitrary-&gt;type) {</div><div class='del'>-				ADD_PROP_VALUE (arb_object, "TYPE", arbitrary-&gt;type);</div><div class='del'>-			}</div><div class='del'>-			if (arbitrary-&gt;key) {</div><div class='del'>-				addProp (arb_object, arbitrary-&gt;key);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	addPropValueQP (vobj, VCUniqueStringProp, (card-&gt;id ? card-&gt;id : ""));</div><div class='del'>-</div><div class='del'>-#if 0	</div><div class='del'>-	if (crd-&gt;photo.prop.used) {</div><div class='del'>-		vprop = addPropSizedValue (vobj, VCPhotoProp, </div><div class='del'>-					  crd-&gt;photo.data, crd-&gt;photo.size);</div><div class='del'>-		add_PhotoType (vprop, crd-&gt;photo.type);</div><div class='del'>-		add_CardProperty (vprop, &amp;crd-&gt;photo.prop);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (crd-&gt;xtension.l) {</div><div class='del'>-		GList *node;</div><div class='del'>-		</div><div class='del'>-		for (node = crd-&gt;xtension.l; node; node = node-&gt;next) {</div><div class='del'>-			CardXProperty *xp = (CardXProperty *) node-&gt;data;</div><div class='del'>-			ADD_PROP_VALUE (vobj, xp-&gt;name, xp-&gt;data);</div><div class='del'>-			add_CardProperty (vobj, &amp;xp-&gt;prop);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;timezn.prop.used) {</div><div class='del'>-		char *str;</div><div class='del'>-		</div><div class='del'>-		str = card_timezn_str (crd-&gt;timezn);</div><div class='del'>-		vprop = ADD_PROP_VALUE (vobj, VCTimeZoneProp, str);</div><div class='del'>-		free (str);</div><div class='del'>-		add_CardProperty (vprop, &amp;crd-&gt;timezn.prop);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;geopos.prop.used) {</div><div class='del'>-		char *str;</div><div class='del'>-		</div><div class='del'>-		str = card_geopos_str (crd-&gt;geopos);</div><div class='del'>-		vprop = ADD_PROP_VALUE (vobj, VCGeoLocationProp, str);</div><div class='del'>-		free (str);</div><div class='del'>-		add_CardProperty (vprop, &amp;crd-&gt;geopos.prop);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;logo.prop.used) {</div><div class='del'>-		vprop = addPropSizedValue (vobj, VCLogoProp, </div><div class='del'>-					  crd-&gt;logo.data, crd-&gt;logo.size);</div><div class='del'>-		add_PhotoType (vprop, crd-&gt;logo.type);</div><div class='del'>-		add_CardProperty (vprop, &amp;crd-&gt;logo.prop);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;agent)</div><div class='del'>-	  addVObjectProp (vobj, card_convert_to_vobject (crd-&gt;agent));</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;sound.prop.used) {</div><div class='del'>-		if (crd-&gt;sound.type != SOUND_PHONETIC)</div><div class='del'>-		  vprop = addPropSizedValue (vobj, VCPronunciationProp,</div><div class='del'>-					    crd-&gt;sound.data, crd-&gt;sound.size);</div><div class='del'>-		else</div><div class='del'>-		  vprop = ADD_PROP_VALUE (vobj, VCPronunciationProp, </div><div class='del'>-				       crd-&gt;sound.data);</div><div class='del'>-		</div><div class='del'>-		add_SoundType (vprop, crd-&gt;sound.type);</div><div class='del'>-		add_CardProperty (vprop, &amp;crd-&gt;sound.prop);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;key.prop.used) {</div><div class='del'>-		vprop = ADD_PROP_VALUE (vobj, VCPublicKeyProp, crd-&gt;key.data);</div><div class='del'>-		add_KeyType (vprop, crd-&gt;key.type);</div><div class='del'>-		add_CardProperty (vprop, &amp;crd-&gt;key.prop);</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	return vobj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_get_vcard:</div><div class='del'>- * @card: an #ECard</div><div class='del'>- *</div><div class='del'>- * Returns: a string in vCard format, which is wrapped by the @card.</div><div class='del'>- */</div><div class='del'>-char *</div><div class='del'>-e_card_get_vcard (ECard *card)</div><div class='del'>-{</div><div class='del'>-	VObject *vobj;</div><div class='del'>-	char *temp, *ret_val;</div><div class='del'>-</div><div class='del'>-	vobj = e_card_get_vobject (card, FALSE);</div><div class='del'>-	temp = writeMemVObject(NULL, NULL, vobj);</div><div class='del'>-	ret_val = g_strdup(temp);</div><div class='del'>-	free(temp);</div><div class='del'>-	cleanVObject(vobj);</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-e_card_get_vcard_assume_utf8 (ECard *card)</div><div class='del'>-{</div><div class='del'>-	VObject *vobj;</div><div class='del'>-	char *temp, *ret_val;</div><div class='del'>-</div><div class='del'>-	vobj = e_card_get_vobject (card, TRUE);</div><div class='del'>-	temp = writeMemVObject(NULL, NULL, vobj);</div><div class='del'>-	ret_val = g_strdup(temp);</div><div class='del'>-	free(temp);</div><div class='del'>-	cleanVObject(vobj);</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_list_get_vcard:</div><div class='del'>- * @list: a list of #ECards</div><div class='del'>- *</div><div class='del'>- * Returns: a string in vCard format.</div><div class='del'>- */</div><div class='del'>-char *</div><div class='del'>-e_card_list_get_vcard (const GList *list)</div><div class='del'>-{</div><div class='del'>-	VObject *vobj;</div><div class='del'>-</div><div class='del'>-	char *temp, *ret_val;</div><div class='del'>-</div><div class='del'>-	vobj = NULL;</div><div class='del'>-</div><div class='del'>-	for (; list; list = list-&gt;next) {</div><div class='del'>-		VObject *tempvobj;</div><div class='del'>-		ECard *card = list-&gt;data;</div><div class='del'>-</div><div class='del'>-		tempvobj = e_card_get_vobject (card, FALSE);</div><div class='del'>-		addList (&amp;vobj, tempvobj);</div><div class='del'>-	}</div><div class='del'>-	temp = writeMemVObjects(NULL, NULL, vobj);</div><div class='del'>-	ret_val = g_strdup(temp);</div><div class='del'>-	free(temp);</div><div class='del'>-	cleanVObjects(vobj);</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_file_as(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;file_as )</div><div class='del'>-		g_free(card-&gt;file_as);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;file_as));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_name(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	e_card_name_unref(card-&gt;name);</div><div class='del'>-</div><div class='del'>-	card-&gt;name = e_card_name_new();</div><div class='del'>-</div><div class='del'>-	card-&gt;name-&gt;family     = e_v_object_get_child_value (vobj, VCFamilyNameProp,      default_charset);</div><div class='del'>-	card-&gt;name-&gt;given      = e_v_object_get_child_value (vobj, VCGivenNameProp,       default_charset);</div><div class='del'>-	card-&gt;name-&gt;additional = e_v_object_get_child_value (vobj, VCAdditionalNamesProp, default_charset);</div><div class='del'>-	card-&gt;name-&gt;prefix     = e_v_object_get_child_value (vobj, VCNamePrefixesProp,    default_charset);</div><div class='del'>-	card-&gt;name-&gt;suffix     = e_v_object_get_child_value (vobj, VCNameSuffixesProp,    default_charset);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_full_name(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;fname )</div><div class='del'>-		g_free(card-&gt;fname);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;fname));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_email(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	char *next_email;</div><div class='del'>-	EList *list;</div><div class='del'>-</div><div class='del'>-	assign_string(vobj, default_charset, &amp;next_email);</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       "email", &amp;list,</div><div class='del'>-		       NULL);</div><div class='del'>-	e_list_append(list, next_email);</div><div class='del'>-	g_free (next_email);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_bday(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		if ( card-&gt;bday )</div><div class='del'>-			g_free(card-&gt;bday);</div><div class='del'>-		card-&gt;bday = g_new(ECardDate, 1);</div><div class='del'>-		*(card-&gt;bday) = e_card_date_from_string(str);</div><div class='del'>-		free(str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_phone(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	ECardPhone *next_phone = e_card_phone_new ();</div><div class='del'>-	EList *list;</div><div class='del'>-</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(next_phone-&gt;number));</div><div class='del'>-	next_phone-&gt;flags = get_phone_flags(vobj);</div><div class='del'>-</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       "phone", &amp;list,</div><div class='del'>-		       NULL);</div><div class='del'>-	e_list_append(list, next_phone);</div><div class='del'>-	e_card_phone_unref (next_phone);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_address(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	ECardDeliveryAddress *next_addr = e_card_delivery_address_new ();</div><div class='del'>-	EList *list;</div><div class='del'>-</div><div class='del'>-	next_addr-&gt;flags   = get_address_flags (vobj);</div><div class='del'>-	next_addr-&gt;po      = e_v_object_get_child_value (vobj, VCPostalBoxProp,     default_charset);</div><div class='del'>-	next_addr-&gt;ext     = e_v_object_get_child_value (vobj, VCExtAddressProp,    default_charset);</div><div class='del'>-	next_addr-&gt;street  = e_v_object_get_child_value (vobj, VCStreetAddressProp, default_charset);</div><div class='del'>-	next_addr-&gt;city    = e_v_object_get_child_value (vobj, VCCityProp,          default_charset);</div><div class='del'>-	next_addr-&gt;region  = e_v_object_get_child_value (vobj, VCRegionProp,        default_charset);</div><div class='del'>-	next_addr-&gt;code    = e_v_object_get_child_value (vobj, VCPostalCodeProp,    default_charset);</div><div class='del'>-	next_addr-&gt;country = e_v_object_get_child_value (vobj, VCCountryNameProp,   default_charset);</div><div class='del'>-</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       "address", &amp;list,</div><div class='del'>-		       NULL);</div><div class='del'>-	e_list_append(list, next_addr);</div><div class='del'>-	e_card_delivery_address_unref (next_addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_address_label(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	ECardAddrLabel *next_addr = e_card_address_label_new ();</div><div class='del'>-	EList *list;</div><div class='del'>-</div><div class='del'>-	next_addr-&gt;flags   = get_address_flags (vobj);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;next_addr-&gt;data);</div><div class='del'>-</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       "address_label", &amp;list,</div><div class='del'>-		       NULL);</div><div class='del'>-	e_list_append(list, next_addr);</div><div class='del'>-	e_card_address_label_unref (next_addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_url(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if (card-&gt;url)</div><div class='del'>-		g_free(card-&gt;url);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;url));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_org(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	char *temp;</div><div class='del'>-	</div><div class='del'>-	temp = e_v_object_get_child_value(vobj, VCOrgNameProp, default_charset);</div><div class='del'>-	g_free(card-&gt;org);</div><div class='del'>-	card-&gt;org = temp;</div><div class='del'>-</div><div class='del'>-	temp = e_v_object_get_child_value(vobj, VCOrgUnitProp, default_charset);</div><div class='del'>-	g_free(card-&gt;org_unit);</div><div class='del'>-	card-&gt;org_unit = temp;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_office(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;office )</div><div class='del'>-		g_free(card-&gt;office);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;office));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_title(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;title )</div><div class='del'>-		g_free(card-&gt;title);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;title));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_role(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if (card-&gt;role)</div><div class='del'>-		g_free(card-&gt;role);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;role));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_manager(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;manager )</div><div class='del'>-		g_free(card-&gt;manager);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;manager));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_assistant(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;assistant )</div><div class='del'>-		g_free(card-&gt;assistant);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;assistant));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_nickname(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if (card-&gt;nickname)</div><div class='del'>-		g_free(card-&gt;nickname);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;nickname));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_spouse(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;spouse )</div><div class='del'>-		g_free(card-&gt;spouse);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;spouse));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_anniversary(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		if (card-&gt;anniversary)</div><div class='del'>-			g_free(card-&gt;anniversary);</div><div class='del'>-		card-&gt;anniversary = g_new(ECardDate, 1);</div><div class='del'>-		*(card-&gt;anniversary) = e_card_date_from_string(str);</div><div class='del'>-		free(str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_mailer(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( card-&gt;mailer )</div><div class='del'>-		g_free(card-&gt;mailer);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;mailer));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_caluri(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>- 	g_free(card-&gt;caluri);</div><div class='del'>- 	assign_string(vobj, default_charset, &amp;(card-&gt;caluri));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_fburl(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	g_free(card-&gt;fburl);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;fburl));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_note(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	g_free(card-&gt;note);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;note));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_related_contacts(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	g_free(card-&gt;related_contacts);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;related_contacts));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_list_unique(ECard *card, EList *list, char *string)</div><div class='del'>-{</div><div class='del'>-	char *temp = e_strdup_strip(string);</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-</div><div class='del'>-	if (!*temp) {</div><div class='del'>-		g_free(temp);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	for ( iterator = e_list_get_iterator(list); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-		if (!strcmp(e_iterator_get(iterator), temp)) {</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	if (!e_iterator_is_valid(iterator)) {</div><div class='del'>-		e_list_append(list, temp);</div><div class='del'>-	}</div><div class='del'>-	g_free(temp);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-do_parse_categories(ECard *card, char *str)</div><div class='del'>-{</div><div class='del'>-	int length = strlen(str);</div><div class='del'>-	char *copy = g_new(char, length + 1);</div><div class='del'>-	int i, j;</div><div class='del'>-	EList *list;</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       "category_list", &amp;list,</div><div class='del'>-		       NULL);</div><div class='del'>-	for (i = 0, j = 0; str[i]; i++, j++) {</div><div class='del'>-		switch (str[i]) {</div><div class='del'>-		case '\\':</div><div class='del'>-			i++;</div><div class='del'>-			if (str[i]) {</div><div class='del'>-				copy[j] = str[i];</div><div class='del'>-			} else</div><div class='del'>-				i--;</div><div class='del'>-			break;</div><div class='del'>-		case ',':</div><div class='del'>-			copy[j] = 0;</div><div class='del'>-			add_list_unique(card, list, copy);</div><div class='del'>-			j = -1;</div><div class='del'>-			break;</div><div class='del'>-		default:</div><div class='del'>-			copy[j] = str[i];</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	copy[j] = 0;</div><div class='del'>-	add_list_unique(card, list, copy);</div><div class='del'>-	g_free(copy);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_categories(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		do_parse_categories(card, str);</div><div class='del'>-		free(str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_wants_html(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		if (!strcasecmp(str, "true")) {</div><div class='del'>-			card-&gt;wants_html = TRUE;</div><div class='del'>-			card-&gt;wants_html_set = TRUE;</div><div class='del'>-		}</div><div class='del'>-		if (!strcasecmp(str, "false")) {</div><div class='del'>-			card-&gt;wants_html = FALSE;</div><div class='del'>-			card-&gt;wants_html_set = TRUE;</div><div class='del'>-		}</div><div class='del'>-		free(str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_list(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		if (!strcasecmp(str, "true")) {</div><div class='del'>-			card-&gt;list = TRUE;</div><div class='del'>-		}</div><div class='del'>-		if (!strcasecmp(str, "false")) {</div><div class='del'>-			card-&gt;list = FALSE;</div><div class='del'>-		}</div><div class='del'>-		free(str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_list_show_addresses(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		if (!strcasecmp(str, "true")) {</div><div class='del'>-			card-&gt;list_show_addresses = TRUE;</div><div class='del'>-		}</div><div class='del'>-		if (!strcasecmp(str, "false")) {</div><div class='del'>-			card-&gt;list_show_addresses = FALSE;</div><div class='del'>-		}</div><div class='del'>-		free(str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef union ValueItem {</div><div class='del'>-    const char *strs;</div><div class='del'>-    const wchar_t *ustrs;</div><div class='del'>-    unsigned int i;</div><div class='del'>-    unsigned long l;</div><div class='del'>-    void *any;</div><div class='del'>-    VObject *vobj;</div><div class='del'>-} ValueItem;</div><div class='del'>-</div><div class='del'>-struct VObject {</div><div class='del'>-    VObject *next;</div><div class='del'>-    const char *id;</div><div class='del'>-    VObject *prop;</div><div class='del'>-    unsigned short valType;</div><div class='del'>-    ValueItem val;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_arbitrary(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	ECardArbitrary *arbitrary = e_card_arbitrary_new();</div><div class='del'>-	VObjectIterator iterator;</div><div class='del'>-	EList *list;</div><div class='del'>-	for ( initPropIterator (&amp;iterator, vobj); moreIteration(&amp;iterator); ) {</div><div class='del'>-		VObject *temp = nextVObject(&amp;iterator);</div><div class='del'>-		const char *name = vObjectName(temp);</div><div class='del'>-		if (name &amp;&amp; !strcmp(name, "TYPE")) {</div><div class='del'>-			g_free(arbitrary-&gt;type);</div><div class='del'>-			assign_string(temp, default_charset, &amp;(arbitrary-&gt;type));</div><div class='del'>-		} else {</div><div class='del'>-			g_free(arbitrary-&gt;key);</div><div class='del'>-			arbitrary-&gt;key = g_strdup(name);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(arbitrary-&gt;value));</div><div class='del'>-	</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       "arbitrary", &amp;list,</div><div class='del'>-		       NULL);</div><div class='del'>-	e_list_append(list, arbitrary);</div><div class='del'>-	e_card_arbitrary_unref(arbitrary);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_id(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	g_free(card-&gt;id);</div><div class='del'>-	assign_string(vobj, default_charset, &amp;(card-&gt;id));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_last_use(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		if ( card-&gt;last_use )</div><div class='del'>-			g_free(card-&gt;last_use);</div><div class='del'>-		card-&gt;last_use = g_new(ECardDate, 1);</div><div class='del'>-		*(card-&gt;last_use) = e_card_date_from_string(str);</div><div class='del'>-		free(str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Deal with charset */</div><div class='del'>-static void</div><div class='del'>-parse_use_score(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	card-&gt;raw_use_score = 0;</div><div class='del'>-	</div><div class='del'>-	if ( vObjectValueType (vobj) ) {</div><div class='del'>-		char *str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		card-&gt;raw_use_score = MAX(0, atof (str));</div><div class='del'>-		free (str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_attribute(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	ParsePropertyFunc function = g_hash_table_lookup(E_CARD_CLASS(GTK_OBJECT(card)-&gt;klass)-&gt;attribute_jump_table, vObjectName(vobj));</div><div class='del'>-	if ( function )</div><div class='del'>-		function(card, vobj, default_charset);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse(ECard *card, VObject *vobj, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	VObjectIterator iterator;</div><div class='del'>-	initPropIterator(&amp;iterator, vobj);</div><div class='del'>-	while(moreIteration (&amp;iterator)) {</div><div class='del'>-		parse_attribute(card, nextVObject(&amp;iterator), default_charset);</div><div class='del'>-	}</div><div class='del'>-	if (!card-&gt;fname) {</div><div class='del'>-		card-&gt;fname = g_strdup("");</div><div class='del'>-	}</div><div class='del'>-	if (!card-&gt;name) {</div><div class='del'>-		card-&gt;name = e_card_name_from_string(card-&gt;fname);</div><div class='del'>-	}</div><div class='del'>-	if (!card-&gt;file_as) {</div><div class='del'>-		ECardName *name = card-&gt;name;</div><div class='del'>-		char *strings[3], **stringptr;</div><div class='del'>-		char *string;</div><div class='del'>-		stringptr = strings;</div><div class='del'>-		if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-			*(stringptr++) = name-&gt;family;</div><div class='del'>-		if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-			*(stringptr++) = name-&gt;given;</div><div class='del'>-		*stringptr = NULL;</div><div class='del'>-		string = g_strjoinv(", ", strings);</div><div class='del'>-		card-&gt;file_as = string;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_class_init (ECardClass *klass)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-	object_class = GTK_OBJECT_CLASS(klass);</div><div class='del'>-</div><div class='del'>-	klass-&gt;attribute_jump_table = g_hash_table_new(g_str_hash, g_str_equal);</div><div class='del'>-</div><div class='del'>-	for ( i = 0; i &lt; sizeof(attribute_jump_array) / sizeof(attribute_jump_array[0]); i++ ) {</div><div class='del'>-		g_hash_table_insert(klass-&gt;attribute_jump_table, attribute_jump_array[i].key, attribute_jump_array[i].function);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("ECard::file_as",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_FILE_AS);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::full_name",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_FULL_NAME);  </div><div class='del'>-	gtk_object_add_arg_type ("ECard::name",</div><div class='del'>-				 GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_NAME);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::address",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READABLE, ARG_ADDRESS);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::address_label",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READABLE, ARG_ADDRESS_LABEL);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::phone",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READABLE, ARG_PHONE);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::email",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READABLE, ARG_EMAIL);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::birth_date",</div><div class='del'>-				 GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_BIRTH_DATE);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::url",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_URL);  </div><div class='del'>-	gtk_object_add_arg_type ("ECard::org",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ORG);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::org_unit",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ORG_UNIT);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::office",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_OFFICE);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::title",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_TITLE);  </div><div class='del'>-	gtk_object_add_arg_type ("ECard::role",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ROLE);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::manager",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_MANAGER);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::assistant",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ASSISTANT);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::nickname",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_NICKNAME);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::spouse",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_SPOUSE);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::anniversary",</div><div class='del'>-				 GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_ANNIVERSARY);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::mailer",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_MAILER);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::caluri",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_CALURI);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::fburl",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_FBURL);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::note",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_NOTE);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::related_contacts",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_RELATED_CONTACTS);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::categories",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_CATEGORIES);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::category_list",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_CATEGORY_LIST);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::wants_html",</div><div class='del'>-				 GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_WANTS_HTML);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::wants_html_set",</div><div class='del'>-				 GTK_TYPE_BOOL, GTK_ARG_READABLE, ARG_WANTS_HTML);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::list",</div><div class='del'>-				 GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_EVOLUTION_LIST);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::list_show_addresses",</div><div class='del'>-				 GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_EVOLUTION_LIST_SHOW_ADDRESSES);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::arbitrary",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_ARBITRARY);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::id",</div><div class='del'>-				 GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ID);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::last_use",</div><div class='del'>-				 GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_LAST_USE);</div><div class='del'>-	gtk_object_add_arg_type ("ECard::use_score",</div><div class='del'>-				 GTK_TYPE_FLOAT, GTK_ARG_READWRITE, ARG_USE_SCORE);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_card_destroy;</div><div class='del'>-	object_class-&gt;get_arg = e_card_get_arg;</div><div class='del'>-	object_class-&gt;set_arg = e_card_set_arg;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardPhone *</div><div class='del'>-e_card_phone_new (void)</div><div class='del'>-{</div><div class='del'>-	ECardPhone *newphone = g_new(ECardPhone, 1);</div><div class='del'>-</div><div class='del'>-	newphone-&gt;ref_count = 1;</div><div class='del'>-	newphone-&gt;number = NULL;</div><div class='del'>-	newphone-&gt;flags = 0;</div><div class='del'>-	</div><div class='del'>-	return newphone;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_phone_unref (ECardPhone *phone)</div><div class='del'>-{</div><div class='del'>-	if (phone) {</div><div class='del'>-		phone-&gt;ref_count --;</div><div class='del'>-		if (phone-&gt;ref_count == 0) {</div><div class='del'>-			g_free(phone-&gt;number);</div><div class='del'>-			g_free(phone);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardPhone *</div><div class='del'>-e_card_phone_ref (const ECardPhone *phone)</div><div class='del'>-{</div><div class='del'>-	ECardPhone *phone_mutable = (ECardPhone *) phone;</div><div class='del'>-	if (phone_mutable)</div><div class='del'>-		phone_mutable-&gt;ref_count ++;</div><div class='del'>-	return phone_mutable;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardPhone *</div><div class='del'>-e_card_phone_copy (const ECardPhone *phone)</div><div class='del'>-{</div><div class='del'>-	if ( phone ) {</div><div class='del'>-		ECardPhone *phone_copy = e_card_phone_new();</div><div class='del'>-		phone_copy-&gt;number = g_strdup(phone-&gt;number);</div><div class='del'>-		phone_copy-&gt;flags  = phone-&gt;flags;</div><div class='del'>-		return phone_copy;</div><div class='del'>-	} else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardDeliveryAddress *</div><div class='del'>-e_card_delivery_address_new (void)</div><div class='del'>-{</div><div class='del'>-	ECardDeliveryAddress *newaddr = g_new(ECardDeliveryAddress, 1);</div><div class='del'>-</div><div class='del'>-	newaddr-&gt;ref_count = 1;</div><div class='del'>-	newaddr-&gt;po      = NULL;</div><div class='del'>-	newaddr-&gt;ext     = NULL;</div><div class='del'>-	newaddr-&gt;street  = NULL;</div><div class='del'>-	newaddr-&gt;city    = NULL;</div><div class='del'>-	newaddr-&gt;region  = NULL;</div><div class='del'>-	newaddr-&gt;code    = NULL;</div><div class='del'>-	newaddr-&gt;country = NULL;</div><div class='del'>-	newaddr-&gt;flags   = 0;</div><div class='del'>-</div><div class='del'>-	return newaddr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_delivery_address_unref (ECardDeliveryAddress *addr)</div><div class='del'>-{</div><div class='del'>-	if ( addr ) {</div><div class='del'>-		addr-&gt;ref_count --;</div><div class='del'>-		if (addr-&gt;ref_count == 0) {</div><div class='del'>-			g_free(addr-&gt;po);</div><div class='del'>-			g_free(addr-&gt;ext);</div><div class='del'>-			g_free(addr-&gt;street);</div><div class='del'>-			g_free(addr-&gt;city);</div><div class='del'>-			g_free(addr-&gt;region);</div><div class='del'>-			g_free(addr-&gt;code);</div><div class='del'>-			g_free(addr-&gt;country);</div><div class='del'>-			g_free(addr);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardDeliveryAddress *</div><div class='del'>-e_card_delivery_address_ref (const ECardDeliveryAddress *addr)</div><div class='del'>-{</div><div class='del'>-	ECardDeliveryAddress *addr_mutable = (ECardDeliveryAddress *) addr;</div><div class='del'>-	if (addr_mutable)</div><div class='del'>-		addr_mutable-&gt;ref_count ++;</div><div class='del'>-	return addr_mutable;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardDeliveryAddress *</div><div class='del'>-e_card_delivery_address_copy (const ECardDeliveryAddress *addr)</div><div class='del'>-{</div><div class='del'>-	if ( addr ) {</div><div class='del'>-		ECardDeliveryAddress *addr_copy = e_card_delivery_address_new ();</div><div class='del'>-		addr_copy-&gt;po      = g_strdup(addr-&gt;po     );</div><div class='del'>-		addr_copy-&gt;ext     = g_strdup(addr-&gt;ext    );</div><div class='del'>-		addr_copy-&gt;street  = g_strdup(addr-&gt;street );</div><div class='del'>-		addr_copy-&gt;city    = g_strdup(addr-&gt;city   );</div><div class='del'>-		addr_copy-&gt;region  = g_strdup(addr-&gt;region );</div><div class='del'>-		addr_copy-&gt;code    = g_strdup(addr-&gt;code   );</div><div class='del'>-		addr_copy-&gt;country = g_strdup(addr-&gt;country);</div><div class='del'>-		addr_copy-&gt;flags   = addr-&gt;flags;</div><div class='del'>-		return addr_copy;</div><div class='del'>-	} else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_card_delivery_address_is_empty (const ECardDeliveryAddress *addr)</div><div class='del'>-{</div><div class='del'>-	return (((addr-&gt;po      == NULL) || (*addr-&gt;po      == 0)) &amp;&amp;</div><div class='del'>-		((addr-&gt;ext     == NULL) || (*addr-&gt;ext     == 0)) &amp;&amp;</div><div class='del'>-		((addr-&gt;street  == NULL) || (*addr-&gt;street  == 0)) &amp;&amp;</div><div class='del'>-		((addr-&gt;city    == NULL) || (*addr-&gt;city    == 0)) &amp;&amp;</div><div class='del'>-		((addr-&gt;region  == NULL) || (*addr-&gt;region  == 0)) &amp;&amp;</div><div class='del'>-		((addr-&gt;code    == NULL) || (*addr-&gt;code    == 0)) &amp;&amp;</div><div class='del'>-		((addr-&gt;country == NULL) || (*addr-&gt;country == 0)));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardDeliveryAddress *</div><div class='del'>-e_card_delivery_address_from_label(const ECardAddrLabel *label)</div><div class='del'>-{</div><div class='del'>-	ECardDeliveryAddress *addr = e_card_delivery_address_new ();</div><div class='del'>-	EAddressWestern *western = e_address_western_parse (label-&gt;data);</div><div class='del'>-	</div><div class='del'>-	addr-&gt;po      = g_strdup (western-&gt;po_box     );</div><div class='del'>-	addr-&gt;ext     = g_strdup (western-&gt;extended   );</div><div class='del'>-	addr-&gt;street  = g_strdup (western-&gt;street     );</div><div class='del'>-	addr-&gt;city    = g_strdup (western-&gt;locality   );</div><div class='del'>-	addr-&gt;region  = g_strdup (western-&gt;region     );</div><div class='del'>-	addr-&gt;code    = g_strdup (western-&gt;postal_code);</div><div class='del'>-	addr-&gt;country = g_strdup (western-&gt;country    );</div><div class='del'>-	addr-&gt;flags   = label-&gt;flags;</div><div class='del'>-	</div><div class='del'>-	e_address_western_free(western);</div><div class='del'>-	</div><div class='del'>-	return addr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-e_card_delivery_address_to_string(const ECardDeliveryAddress *addr)</div><div class='del'>-{</div><div class='del'>-	char *strings[5], **stringptr = strings;</div><div class='del'>-	char *line1, *line22, *line2;</div><div class='del'>-	char *final;</div><div class='del'>-	if (addr-&gt;po &amp;&amp; *addr-&gt;po)</div><div class='del'>-		*(stringptr++) = addr-&gt;po;</div><div class='del'>-	if (addr-&gt;street &amp;&amp; *addr-&gt;street)</div><div class='del'>-		*(stringptr++) = addr-&gt;street;</div><div class='del'>-	*stringptr = NULL;</div><div class='del'>-	line1 = g_strjoinv(" ", strings);</div><div class='del'>-	stringptr = strings;</div><div class='del'>-	if (addr-&gt;region &amp;&amp; *addr-&gt;region)</div><div class='del'>-		*(stringptr++) = addr-&gt;region;</div><div class='del'>-	if (addr-&gt;code &amp;&amp; *addr-&gt;code)</div><div class='del'>-		*(stringptr++) = addr-&gt;code;</div><div class='del'>-	*stringptr = NULL;</div><div class='del'>-	line22 = g_strjoinv(" ", strings);</div><div class='del'>-	stringptr = strings;</div><div class='del'>-	if (addr-&gt;city &amp;&amp; *addr-&gt;city)</div><div class='del'>-		*(stringptr++) = addr-&gt;city;</div><div class='del'>-	if (line22 &amp;&amp; *line22)</div><div class='del'>-		*(stringptr++) = line22;</div><div class='del'>-	*stringptr = NULL;</div><div class='del'>-	line2 = g_strjoinv(", ", strings);</div><div class='del'>-	stringptr = strings;</div><div class='del'>-	if (line1 &amp;&amp; *line1)</div><div class='del'>-		*(stringptr++) = line1;</div><div class='del'>-	if (addr-&gt;ext &amp;&amp; *addr-&gt;ext)</div><div class='del'>-		*(stringptr++) = addr-&gt;ext;</div><div class='del'>-	if (line2 &amp;&amp; *line2)</div><div class='del'>-		*(stringptr++) = line2;</div><div class='del'>-	if (addr-&gt;country &amp;&amp; *addr-&gt;country)</div><div class='del'>-		*(stringptr++) = addr-&gt;country;</div><div class='del'>-	*stringptr = NULL;</div><div class='del'>-	final = g_strjoinv("\n", strings);</div><div class='del'>-	g_free(line1);</div><div class='del'>-	g_free(line22);</div><div class='del'>-	g_free(line2);</div><div class='del'>-	return final;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardAddrLabel *</div><div class='del'>-e_card_delivery_address_to_label    (const ECardDeliveryAddress *addr)</div><div class='del'>-{</div><div class='del'>-	ECardAddrLabel *label;</div><div class='del'>-	label = e_card_address_label_new();</div><div class='del'>-	label-&gt;flags = addr-&gt;flags;</div><div class='del'>-	label-&gt;data = e_card_delivery_address_to_string(addr);</div><div class='del'>-</div><div class='del'>-	return label;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardAddrLabel *</div><div class='del'>-e_card_address_label_new (void)</div><div class='del'>-{</div><div class='del'>-	ECardAddrLabel *newaddr = g_new(ECardAddrLabel, 1);</div><div class='del'>-</div><div class='del'>-	newaddr-&gt;ref_count = 1;</div><div class='del'>-	newaddr-&gt;data = NULL;</div><div class='del'>-	newaddr-&gt;flags = 0;</div><div class='del'>-	</div><div class='del'>-	return newaddr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_address_label_unref (ECardAddrLabel *addr)</div><div class='del'>-{</div><div class='del'>-	if (addr) {</div><div class='del'>-		addr-&gt;ref_count --;</div><div class='del'>-		if (addr-&gt;ref_count == 0) {</div><div class='del'>-			g_free(addr-&gt;data);</div><div class='del'>-			g_free(addr);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardAddrLabel *</div><div class='del'>-e_card_address_label_ref (const ECardAddrLabel *addr)</div><div class='del'>-{</div><div class='del'>-	ECardAddrLabel *addr_mutable = (ECardAddrLabel *) addr;</div><div class='del'>-	if (addr_mutable)</div><div class='del'>-		addr_mutable-&gt;ref_count ++;</div><div class='del'>-	return addr_mutable;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardAddrLabel *</div><div class='del'>-e_card_address_label_copy (const ECardAddrLabel *addr)</div><div class='del'>-{</div><div class='del'>-	if ( addr ) {</div><div class='del'>-		ECardAddrLabel *addr_copy = e_card_address_label_new ();</div><div class='del'>-		addr_copy-&gt;data  = g_strdup(addr-&gt;data);</div><div class='del'>-		addr_copy-&gt;flags = addr-&gt;flags;</div><div class='del'>-		return addr_copy;</div><div class='del'>-	} else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardName *e_card_name_new(void)</div><div class='del'>-{</div><div class='del'>-	ECardName *newname  = g_new(ECardName, 1);</div><div class='del'>-</div><div class='del'>-	newname-&gt;ref_count  = 1;</div><div class='del'>-	newname-&gt;prefix     = NULL;</div><div class='del'>-	newname-&gt;given      = NULL;</div><div class='del'>-	newname-&gt;additional = NULL;</div><div class='del'>-	newname-&gt;family     = NULL;</div><div class='del'>-	newname-&gt;suffix     = NULL;</div><div class='del'>-</div><div class='del'>-	return newname;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_name_unref(ECardName *name)</div><div class='del'>-{</div><div class='del'>-	if (name) {</div><div class='del'>-		name-&gt;ref_count --;</div><div class='del'>-		if (name-&gt;ref_count == 0) {</div><div class='del'>-			g_free (name-&gt;prefix);</div><div class='del'>-			g_free (name-&gt;given);</div><div class='del'>-			g_free (name-&gt;additional);</div><div class='del'>-			g_free (name-&gt;family);</div><div class='del'>-			g_free (name-&gt;suffix);</div><div class='del'>-			g_free (name);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardName *</div><div class='del'>-e_card_name_ref(const ECardName *name)</div><div class='del'>-{</div><div class='del'>-	ECardName *name_mutable = (ECardName *) name;</div><div class='del'>-	if (name_mutable)</div><div class='del'>-		name_mutable-&gt;ref_count ++;</div><div class='del'>-	return name_mutable;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardName *</div><div class='del'>-e_card_name_copy(const ECardName *name)</div><div class='del'>-{</div><div class='del'>-	if (name) {</div><div class='del'>-		ECardName *newname = e_card_name_new ();</div><div class='del'>-               </div><div class='del'>-		newname-&gt;prefix = g_strdup(name-&gt;prefix);</div><div class='del'>-		newname-&gt;given = g_strdup(name-&gt;given);</div><div class='del'>-		newname-&gt;additional = g_strdup(name-&gt;additional);</div><div class='del'>-		newname-&gt;family = g_strdup(name-&gt;family);</div><div class='del'>-		newname-&gt;suffix = g_strdup(name-&gt;suffix);</div><div class='del'>-</div><div class='del'>-		return newname;</div><div class='del'>-	} else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-e_card_name_to_string(const ECardName *name)</div><div class='del'>-{</div><div class='del'>-	char *strings[6], **stringptr = strings;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (name != NULL, NULL);</div><div class='del'>-</div><div class='del'>-	if (name-&gt;prefix &amp;&amp; *name-&gt;prefix)</div><div class='del'>-		*(stringptr++) = name-&gt;prefix;</div><div class='del'>-	if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-		*(stringptr++) = name-&gt;given;</div><div class='del'>-	if (name-&gt;additional &amp;&amp; *name-&gt;additional)</div><div class='del'>-		*(stringptr++) = name-&gt;additional;</div><div class='del'>-	if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-		*(stringptr++) = name-&gt;family;</div><div class='del'>-	if (name-&gt;suffix &amp;&amp; *name-&gt;suffix)</div><div class='del'>-		*(stringptr++) = name-&gt;suffix;</div><div class='del'>-	*stringptr = NULL;</div><div class='del'>-	return g_strjoinv(" ", strings);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardName *</div><div class='del'>-e_card_name_from_string(const char *full_name)</div><div class='del'>-{</div><div class='del'>-	ECardName *name = e_card_name_new ();</div><div class='del'>-	ENameWestern *western = e_name_western_parse (full_name);</div><div class='del'>-	</div><div class='del'>-	name-&gt;prefix     = g_strdup (western-&gt;prefix);</div><div class='del'>-	name-&gt;given      = g_strdup (western-&gt;first );</div><div class='del'>-	name-&gt;additional = g_strdup (western-&gt;middle);</div><div class='del'>-	name-&gt;family     = g_strdup (western-&gt;last  );</div><div class='del'>-	name-&gt;suffix     = g_strdup (western-&gt;suffix);</div><div class='del'>-	</div><div class='del'>-	e_name_western_free(western);</div><div class='del'>-	</div><div class='del'>-	return name;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardArbitrary *</div><div class='del'>-e_card_arbitrary_new(void)</div><div class='del'>-{</div><div class='del'>-	ECardArbitrary *arbitrary = g_new(ECardArbitrary, 1);</div><div class='del'>-	arbitrary-&gt;ref_count = 1;</div><div class='del'>-	arbitrary-&gt;key = NULL;</div><div class='del'>-	arbitrary-&gt;type = NULL;</div><div class='del'>-	arbitrary-&gt;value = NULL;</div><div class='del'>-	return arbitrary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_arbitrary_unref(ECardArbitrary *arbitrary)</div><div class='del'>-{</div><div class='del'>-	if (arbitrary) {</div><div class='del'>-		arbitrary-&gt;ref_count --;</div><div class='del'>-		if (arbitrary-&gt;ref_count == 0) {</div><div class='del'>-			g_free(arbitrary-&gt;key);</div><div class='del'>-			g_free(arbitrary-&gt;type);</div><div class='del'>-			g_free(arbitrary-&gt;value);</div><div class='del'>-			g_free(arbitrary);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardArbitrary *</div><div class='del'>-e_card_arbitrary_copy(const ECardArbitrary *arbitrary)</div><div class='del'>-{</div><div class='del'>-	if (arbitrary) {</div><div class='del'>-		ECardArbitrary *arb_copy = e_card_arbitrary_new ();</div><div class='del'>-		arb_copy-&gt;key = g_strdup(arbitrary-&gt;key);</div><div class='del'>-		arb_copy-&gt;type = g_strdup(arbitrary-&gt;type);</div><div class='del'>-		arb_copy-&gt;value = g_strdup(arbitrary-&gt;value);</div><div class='del'>-		return arb_copy;</div><div class='del'>-	} else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECardArbitrary *</div><div class='del'>-e_card_arbitrary_ref(const ECardArbitrary *arbitrary)</div><div class='del'>-{</div><div class='del'>-	ECardArbitrary *arbitrary_mutable = (ECardArbitrary *) arbitrary;</div><div class='del'>-	if (arbitrary_mutable)</div><div class='del'>-		arbitrary_mutable-&gt;ref_count ++;</div><div class='del'>-	return arbitrary_mutable;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* EMail matching */</div><div class='del'>-static gboolean</div><div class='del'>-e_card_email_match_single_string (const gchar *a, const gchar *b)</div><div class='del'>-{</div><div class='del'>-	const gchar *xa = NULL, *xb = NULL;</div><div class='del'>-	gboolean match = TRUE;</div><div class='del'>-</div><div class='del'>-	for (xa=a; *xa &amp;&amp; *xa != '@'; ++xa);</div><div class='del'>-	for (xb=b; *xb &amp;&amp; *xb != '@'; ++xb);</div><div class='del'>-</div><div class='del'>-	if (xa-a != xb-b || *xa != *xb || g_strncasecmp (a, b, xa-a))</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	if (*xa == '\0')</div><div class='del'>-		return TRUE;</div><div class='del'>-	</div><div class='del'>-	/* Find the end of the string, then walk through backwards comparing.</div><div class='del'>-	   This is so that we'll match joe@foobar.com and joe@mail.foobar.com.</div><div class='del'>-	*/</div><div class='del'>-	while (*xa)</div><div class='del'>-		++xa;</div><div class='del'>-	while (*xb)</div><div class='del'>-		++xb;</div><div class='del'>-</div><div class='del'>-	while (match &amp;&amp; *xa != '@' &amp;&amp; *xb != '@') {</div><div class='del'>-		match = (*xa == *xb);</div><div class='del'>-		--xa;</div><div class='del'>-		--xb;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	match = match &amp;&amp; ((*xa == *xb) || (*xa == '.') || (*xb == '.'));</div><div class='del'>-</div><div class='del'>-	return match;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_card_email_match_string (const ECard *card, const gchar *str)</div><div class='del'>-{</div><div class='del'>-	EIterator *iter;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (card &amp;&amp; E_IS_CARD (card), FALSE);</div><div class='del'>-	g_return_val_if_fail (str != NULL, FALSE);</div><div class='del'>-</div><div class='del'>-	iter = e_list_get_iterator (card-&gt;email);</div><div class='del'>-	for (e_iterator_reset (iter); e_iterator_is_valid (iter); e_iterator_next (iter)) {</div><div class='del'>-		if (e_card_email_match_single_string (e_iterator_get (iter), str))</div><div class='del'>-			return TRUE;</div><div class='del'>-	}</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (iter));</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gint</div><div class='del'>-e_card_email_find_number (const ECard *card, const gchar *email)</div><div class='del'>-{</div><div class='del'>-	EIterator *iter;</div><div class='del'>-	gint count = 0;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card), -1);</div><div class='del'>-	g_return_val_if_fail (email != NULL, -1);</div><div class='del'>-</div><div class='del'>-	iter = e_list_get_iterator (card-&gt;email);</div><div class='del'>-	for (e_iterator_reset (iter); e_iterator_is_valid (iter); e_iterator_next (iter)) {</div><div class='del'>-		if (!strcmp (e_iterator_get (iter), email))</div><div class='del'>-			goto finished;</div><div class='del'>-		++count;</div><div class='del'>-	}</div><div class='del'>-	count = -1;</div><div class='del'>-</div><div class='del'>- finished:</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (iter));</div><div class='del'>-</div><div class='del'>-	return count;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * ECard lifecycle management and vCard loading/saving.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD(object);</div><div class='del'>-	g_free(card-&gt;id);</div><div class='del'>-	if (card-&gt;book)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;book));</div><div class='del'>-	g_free(card-&gt;file_as);</div><div class='del'>-	g_free(card-&gt;fname);</div><div class='del'>-	e_card_name_unref(card-&gt;name);</div><div class='del'>-	g_free(card-&gt;bday);</div><div class='del'>-</div><div class='del'>-	g_free(card-&gt;url);</div><div class='del'>-	g_free(card-&gt;org);</div><div class='del'>-	g_free(card-&gt;org_unit);</div><div class='del'>-	g_free(card-&gt;office);</div><div class='del'>-	g_free(card-&gt;title);</div><div class='del'>-	g_free(card-&gt;role);</div><div class='del'>-	g_free(card-&gt;manager);</div><div class='del'>-	g_free(card-&gt;assistant);</div><div class='del'>-	g_free(card-&gt;nickname);</div><div class='del'>-	g_free(card-&gt;spouse);</div><div class='del'>-	g_free(card-&gt;anniversary);</div><div class='del'>-	g_free(card-&gt;caluri);</div><div class='del'>-	g_free(card-&gt;fburl);</div><div class='del'>-	g_free(card-&gt;note);</div><div class='del'>-	g_free(card-&gt;related_contacts);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;categories)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card-&gt;categories));</div><div class='del'>-	if (card-&gt;email)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card-&gt;email));</div><div class='del'>-	if (card-&gt;phone)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card-&gt;phone));</div><div class='del'>-	if (card-&gt;address)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card-&gt;address));</div><div class='del'>-	if (card-&gt;address_label)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card-&gt;address_label));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Set_arg handler for the card */</div><div class='del'>-static void</div><div class='del'>-e_card_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ECard *card;</div><div class='del'>-	</div><div class='del'>-	card = E_CARD (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_FILE_AS:</div><div class='del'>-		g_free(card-&gt;file_as);</div><div class='del'>-		card-&gt;file_as = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		if (card-&gt;file_as == NULL)</div><div class='del'>-			card-&gt;file_as = g_strdup("");</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_FULL_NAME:</div><div class='del'>-		g_free(card-&gt;fname);</div><div class='del'>-		card-&gt;fname = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		if (card-&gt;fname == NULL)</div><div class='del'>-			card-&gt;fname = g_strdup("");</div><div class='del'>-</div><div class='del'>-		e_card_name_unref (card-&gt;name);</div><div class='del'>-		card-&gt;name = e_card_name_from_string (card-&gt;fname);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_NAME:</div><div class='del'>-		e_card_name_unref (card-&gt;name);</div><div class='del'>-		card-&gt;name = e_card_name_ref(GTK_VALUE_POINTER(*arg));</div><div class='del'>-		if (card-&gt;name == NULL)</div><div class='del'>-			card-&gt;name = e_card_name_new();</div><div class='del'>-		if (card-&gt;fname == NULL) {</div><div class='del'>-			card-&gt;fname = e_card_name_to_string(card-&gt;name);</div><div class='del'>-		}</div><div class='del'>-		if (card-&gt;file_as == NULL) {</div><div class='del'>-			ECardName *name = card-&gt;name;</div><div class='del'>-			char *strings[3], **stringptr;</div><div class='del'>-			char *string;</div><div class='del'>-			stringptr = strings;</div><div class='del'>-			if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-				*(stringptr++) = name-&gt;family;</div><div class='del'>-			if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-				*(stringptr++) = name-&gt;given;</div><div class='del'>-			*stringptr = NULL;</div><div class='del'>-			string = g_strjoinv(", ", strings);</div><div class='del'>-			card-&gt;file_as = string;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CATEGORIES:</div><div class='del'>-		if (card-&gt;categories)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(card-&gt;categories));</div><div class='del'>-		card-&gt;categories = NULL;</div><div class='del'>-		if (GTK_VALUE_STRING(*arg))</div><div class='del'>-			do_parse_categories(card, GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CATEGORY_LIST:</div><div class='del'>-		if (card-&gt;categories)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(card-&gt;categories));</div><div class='del'>-		card-&gt;categories = E_LIST(GTK_VALUE_OBJECT(*arg));</div><div class='del'>-		if (card-&gt;categories)</div><div class='del'>-			gtk_object_ref(GTK_OBJECT(card-&gt;categories));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_BIRTH_DATE:</div><div class='del'>-		g_free(card-&gt;bday);</div><div class='del'>-		if (GTK_VALUE_POINTER (*arg)) {</div><div class='del'>-			card-&gt;bday = g_new (ECardDate, 1);</div><div class='del'>-			memcpy (card-&gt;bday, GTK_VALUE_POINTER (*arg), sizeof (ECardDate));</div><div class='del'>-		} else {</div><div class='del'>-			card-&gt;bday = NULL;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	case ARG_URL:</div><div class='del'>-		g_free(card-&gt;url);</div><div class='del'>-		card-&gt;url = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ORG:</div><div class='del'>-		g_free(card-&gt;org);</div><div class='del'>-		card-&gt;org = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ORG_UNIT:</div><div class='del'>-		g_free(card-&gt;org_unit);</div><div class='del'>-		card-&gt;org_unit = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_OFFICE:</div><div class='del'>-		g_free(card-&gt;office);</div><div class='del'>-		card-&gt;office = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_TITLE:</div><div class='del'>-		g_free(card-&gt;title);</div><div class='del'>-		card-&gt;title = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ROLE:</div><div class='del'>-		g_free(card-&gt;role);</div><div class='del'>-		card-&gt;role = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_MANAGER:</div><div class='del'>-		g_free(card-&gt;manager);</div><div class='del'>-		card-&gt;manager = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ASSISTANT:</div><div class='del'>-		g_free(card-&gt;assistant);</div><div class='del'>-		card-&gt;assistant = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_NICKNAME:</div><div class='del'>-		g_free(card-&gt;nickname);</div><div class='del'>-		card-&gt;nickname = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_SPOUSE:</div><div class='del'>-		g_free(card-&gt;spouse);</div><div class='del'>-		card-&gt;spouse = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ANNIVERSARY:</div><div class='del'>-		g_free(card-&gt;anniversary);</div><div class='del'>-		if (GTK_VALUE_POINTER (*arg)) {</div><div class='del'>-			card-&gt;anniversary = g_new (ECardDate, 1);</div><div class='del'>-			memcpy (card-&gt;anniversary, GTK_VALUE_POINTER (*arg), sizeof (ECardDate));</div><div class='del'>-		} else {</div><div class='del'>-			card-&gt;anniversary = NULL;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	case ARG_MAILER:</div><div class='del'>-		g_free(card-&gt;mailer);</div><div class='del'>-		card-&gt;mailer = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CALURI:</div><div class='del'>-		g_free(card-&gt;caluri);</div><div class='del'>-		card-&gt;caluri = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_FBURL:</div><div class='del'>-		g_free(card-&gt;fburl);</div><div class='del'>-		card-&gt;fburl = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_NOTE:</div><div class='del'>-		g_free (card-&gt;note);</div><div class='del'>-		card-&gt;note = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_RELATED_CONTACTS:</div><div class='del'>-		g_free (card-&gt;related_contacts);</div><div class='del'>-		card-&gt;related_contacts = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_WANTS_HTML:</div><div class='del'>-		card-&gt;wants_html = GTK_VALUE_BOOL(*arg);</div><div class='del'>-		card-&gt;wants_html_set = TRUE;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ARBITRARY:</div><div class='del'>-		if (card-&gt;arbitrary)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(card-&gt;arbitrary));</div><div class='del'>-		card-&gt;arbitrary = E_LIST(GTK_VALUE_OBJECT(*arg));</div><div class='del'>-		if (card-&gt;arbitrary)</div><div class='del'>-			gtk_object_ref(GTK_OBJECT(card-&gt;arbitrary));</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ID:</div><div class='del'>-		g_free(card-&gt;id);</div><div class='del'>-		card-&gt;id = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>-		if (card-&gt;id == NULL)</div><div class='del'>-			card-&gt;id = g_strdup ("");</div><div class='del'>-		break;</div><div class='del'>-	case ARG_LAST_USE:</div><div class='del'>-		g_free(card-&gt;last_use);</div><div class='del'>-		if (GTK_VALUE_POINTER (*arg)) {</div><div class='del'>-			card-&gt;last_use = g_new (ECardDate, 1);</div><div class='del'>-			memcpy (card-&gt;last_use, GTK_VALUE_POINTER (*arg), sizeof (ECardDate));</div><div class='del'>-		} else {</div><div class='del'>-			card-&gt;last_use = NULL;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	case ARG_USE_SCORE:</div><div class='del'>-		card-&gt;raw_use_score = GTK_VALUE_FLOAT(*arg);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_EVOLUTION_LIST:</div><div class='del'>-		card-&gt;list = GTK_VALUE_BOOL(*arg);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_EVOLUTION_LIST_SHOW_ADDRESSES:</div><div class='del'>-		card-&gt;list_show_addresses = GTK_VALUE_BOOL(*arg);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Get_arg handler for the card */</div><div class='del'>-static void</div><div class='del'>-e_card_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	card = E_CARD (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_FILE_AS:</div><div class='del'>-		GTK_VALUE_STRING (*arg) = card-&gt;file_as;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_FULL_NAME:</div><div class='del'>-		GTK_VALUE_STRING (*arg) = card-&gt;fname;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_NAME:</div><div class='del'>-		GTK_VALUE_POINTER(*arg) = card-&gt;name;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ADDRESS:</div><div class='del'>-		if (!card-&gt;address)</div><div class='del'>-			card-&gt;address = e_list_new((EListCopyFunc) e_card_delivery_address_ref,</div><div class='del'>-						   (EListFreeFunc) e_card_delivery_address_unref,</div><div class='del'>-						   NULL);</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(card-&gt;address);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ADDRESS_LABEL:</div><div class='del'>-		if (!card-&gt;address_label)</div><div class='del'>-			card-&gt;address_label = e_list_new((EListCopyFunc) e_card_address_label_ref,</div><div class='del'>-							 (EListFreeFunc) e_card_address_label_unref,</div><div class='del'>-							 NULL);</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(card-&gt;address_label);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_PHONE:</div><div class='del'>-		if (!card-&gt;phone)</div><div class='del'>-			card-&gt;phone = e_list_new((EListCopyFunc) e_card_phone_ref,</div><div class='del'>-						 (EListFreeFunc) e_card_phone_unref,</div><div class='del'>-						 NULL);</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(card-&gt;phone);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_EMAIL:</div><div class='del'>-		if (!card-&gt;email)</div><div class='del'>-			card-&gt;email = e_list_new((EListCopyFunc) g_strdup, </div><div class='del'>-						 (EListFreeFunc) g_free,</div><div class='del'>-						 NULL);</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(card-&gt;email);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CATEGORIES:</div><div class='del'>-		{</div><div class='del'>-			int i;</div><div class='del'>-			char ** strs;</div><div class='del'>-			int length;</div><div class='del'>-			EIterator *iterator;</div><div class='del'>-			if (!card-&gt;categories)</div><div class='del'>-				card-&gt;categories = e_list_new((EListCopyFunc) g_strdup, </div><div class='del'>-							      (EListFreeFunc) g_free,</div><div class='del'>-							      NULL);</div><div class='del'>-			length = e_list_length(card-&gt;categories);</div><div class='del'>-			strs = g_new(char *, length + 1);</div><div class='del'>-			for (iterator = e_list_get_iterator(card-&gt;categories), i = 0; e_iterator_is_valid(iterator); e_iterator_next(iterator), i++) {</div><div class='del'>-				strs[i] = (char *)e_iterator_get(iterator);</div><div class='del'>-			}</div><div class='del'>-			strs[i] = 0;</div><div class='del'>-			GTK_VALUE_STRING(*arg) = g_strjoinv(", ", strs);</div><div class='del'>-			g_free(strs);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CATEGORY_LIST:</div><div class='del'>-		if (!card-&gt;categories)</div><div class='del'>-			card-&gt;categories = e_list_new((EListCopyFunc) g_strdup, </div><div class='del'>-						      (EListFreeFunc) g_free,</div><div class='del'>-						      NULL);</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(card-&gt;categories);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_BIRTH_DATE:</div><div class='del'>-		GTK_VALUE_POINTER(*arg) = card-&gt;bday;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_URL:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;url;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ORG:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;org;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ORG_UNIT:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;org_unit;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_OFFICE:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;office;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_TITLE:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;title;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ROLE:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;role;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_MANAGER:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;manager;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ASSISTANT:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;assistant;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_NICKNAME:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;nickname;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_SPOUSE:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;spouse;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ANNIVERSARY:</div><div class='del'>-		GTK_VALUE_POINTER(*arg) = card-&gt;anniversary;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_MAILER:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;mailer;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CALURI:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;caluri;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_FBURL:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;fburl;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_NOTE:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;note;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_RELATED_CONTACTS:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;related_contacts;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_WANTS_HTML:</div><div class='del'>-		GTK_VALUE_BOOL(*arg) = card-&gt;wants_html;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_WANTS_HTML_SET:</div><div class='del'>-		GTK_VALUE_BOOL(*arg) = card-&gt;wants_html_set;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ARBITRARY:</div><div class='del'>-		if (!card-&gt;arbitrary)</div><div class='del'>-			card-&gt;arbitrary = e_list_new((EListCopyFunc) e_card_arbitrary_ref,</div><div class='del'>-						     (EListFreeFunc) e_card_arbitrary_unref,</div><div class='del'>-						     NULL);</div><div class='del'>-</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(card-&gt;arbitrary);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_ID:</div><div class='del'>-		GTK_VALUE_STRING(*arg) = card-&gt;id;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_LAST_USE:</div><div class='del'>-		GTK_VALUE_POINTER(*arg) = card-&gt;last_use;</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_USE_SCORE:</div><div class='del'>-		GTK_VALUE_FLOAT(*arg) = e_card_get_use_score (card);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_EVOLUTION_LIST:</div><div class='del'>-		GTK_VALUE_BOOL(*arg) = card-&gt;list;</div><div class='del'>-		break;</div><div class='del'>-	case ARG_EVOLUTION_LIST_SHOW_ADDRESSES:</div><div class='del'>-		GTK_VALUE_BOOL(*arg) = card-&gt;list_show_addresses;</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_init:</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_card_init (ECard *card)</div><div class='del'>-{</div><div class='del'>-	card-&gt;id = g_strdup("");</div><div class='del'>-	</div><div class='del'>-	card-&gt;file_as = NULL;</div><div class='del'>-	card-&gt;fname = NULL;</div><div class='del'>-	card-&gt;name = NULL;</div><div class='del'>-	card-&gt;bday = NULL;</div><div class='del'>-	card-&gt;email = NULL;</div><div class='del'>-	card-&gt;phone = NULL;</div><div class='del'>-	card-&gt;address = NULL;</div><div class='del'>-	card-&gt;address_label = NULL;</div><div class='del'>-	card-&gt;url = NULL;</div><div class='del'>-	card-&gt;org = NULL;</div><div class='del'>-	card-&gt;org_unit = NULL;</div><div class='del'>-	card-&gt;office = NULL;</div><div class='del'>-	card-&gt;title = NULL;</div><div class='del'>-	card-&gt;role = NULL;</div><div class='del'>-	card-&gt;manager = NULL;</div><div class='del'>-	card-&gt;assistant = NULL;</div><div class='del'>-	card-&gt;nickname = NULL;</div><div class='del'>-	card-&gt;spouse = NULL;</div><div class='del'>-	card-&gt;anniversary = NULL;</div><div class='del'>-	card-&gt;mailer = NULL;</div><div class='del'>-	card-&gt;caluri = NULL;</div><div class='del'>-	card-&gt;fburl = NULL;</div><div class='del'>-	card-&gt;note = NULL;</div><div class='del'>-	card-&gt;related_contacts = NULL;</div><div class='del'>-	card-&gt;categories = NULL;</div><div class='del'>-	card-&gt;wants_html = FALSE;</div><div class='del'>-	card-&gt;wants_html_set = FALSE;</div><div class='del'>-	card-&gt;list = FALSE;</div><div class='del'>-	card-&gt;list_show_addresses = FALSE;</div><div class='del'>-	card-&gt;arbitrary = NULL;</div><div class='del'>-	card-&gt;last_use = NULL;</div><div class='del'>-	card-&gt;raw_use_score = 0;</div><div class='del'>-#if 0</div><div class='del'>-</div><div class='del'>-	c = g_new0 (ECard, 1);</div><div class='del'>-	</div><div class='del'>-	c-&gt;fname      = </div><div class='del'>-	c-&gt;mailer     = </div><div class='del'>-	c-&gt;role       = </div><div class='del'>-	c-&gt;comment    = </div><div class='del'>-	c-&gt;categories = </div><div class='del'>-	c-&gt;uid        = e_card_prop_str_empty ();</div><div class='del'>-	</div><div class='del'>-	c-&gt;photo.type = PHOTO_JPEG;</div><div class='del'>-	c-&gt;logo.type  = PHOTO_JPEG;</div><div class='del'>-	c-&gt;rev.utc    = -1;</div><div class='del'>-	c-&gt;sound.type = SOUND_PHONETIC;</div><div class='del'>-	c-&gt;key.type   = KEY_PGP;</div><div class='del'>-</div><div class='del'>-	c-&gt;categories.prop.encod = ENC_QUOTED_PRINTABLE;</div><div class='del'>-	c-&gt;comment.prop.encod    = ENC_QUOTED_PRINTABLE;</div><div class='del'>-	</div><div class='del'>-	c-&gt;name.prop   = c-&gt;photo.prop = c-&gt;bday.prop     = c-&gt;timezn.prop   = </div><div class='del'>-	c-&gt;geopos.prop = c-&gt;logo.prop  = c-&gt;org.prop      = c-&gt;rev.prop      =</div><div class='del'>-	c-&gt;sound.prop  = c-&gt;key.prop   = c-&gt;deladdr.prop  = c-&gt;dellabel.prop =</div><div class='del'>-	c-&gt;phone.prop  = c-&gt;email.prop = c-&gt;xtension.prop = c-&gt;prop = e_card_prop_empty ();</div><div class='del'>-	</div><div class='del'>-	c-&gt;prop.type            = PROP_CARD;</div><div class='del'>-	c-&gt;fname.prop.type      = PROP_FNAME;</div><div class='del'>-	c-&gt;name.prop.type       = PROP_NAME;</div><div class='del'>-	c-&gt;photo.prop.type      = PROP_PHOTO;</div><div class='del'>-	c-&gt;bday.prop.type       = PROP_BDAY;</div><div class='del'>-	</div><div class='del'>-	c-&gt;deladdr.prop.type    = PROP_DELADDR_LIST;</div><div class='del'>-	c-&gt;dellabel.prop.type   = PROP_DELLABEL_LIST;</div><div class='del'>-	c-&gt;phone.prop.type      = PROP_PHONE_LIST;</div><div class='del'>-	c-&gt;email.prop.type      = PROP_EMAIL_LIST;</div><div class='del'>-	c-&gt;xtension.prop.type   = PROP_XTENSION_LIST;</div><div class='del'>-	c-&gt;mailer.prop.type     = PROP_MAILER;</div><div class='del'>-	c-&gt;timezn.prop.type     = PROP_TIMEZN;</div><div class='del'>-	c-&gt;geopos.prop.type     = PROP_GEOPOS;</div><div class='del'>-	c-&gt;role.prop.type       = PROP_ROLE;</div><div class='del'>-	c-&gt;logo.prop.type       = PROP_LOGO;</div><div class='del'>-	c-&gt;org.prop.type        = PROP_ORG;</div><div class='del'>-	c-&gt;categories.prop.type = PROP_CATEGORIES;</div><div class='del'>-	c-&gt;comment.prop.type    = PROP_COMMENT;</div><div class='del'>-	c-&gt;rev.prop.type        = PROP_REV;</div><div class='del'>-	c-&gt;sound.prop.type      = PROP_SOUND;</div><div class='del'>-	c-&gt;uid.prop.type 	= PROP_UID;</div><div class='del'>-	c-&gt;key.prop.type 	= PROP_KEY;</div><div class='del'>-	</div><div class='del'>-	return c;</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GList *</div><div class='del'>-e_card_load_cards_from_file_with_default_charset(const char *filename, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	VObject *vobj = Parse_MIME_FromFileName((char *) filename);</div><div class='del'>-	GList *list = NULL;</div><div class='del'>-	while(vobj) {</div><div class='del'>-		VObject *next;</div><div class='del'>-		ECard *card = E_CARD(gtk_type_new(e_card_get_type()));</div><div class='del'>-		parse(card, vobj, default_charset);</div><div class='del'>-		next = nextVObjectInList(vobj);</div><div class='del'>-		cleanVObject(vobj);</div><div class='del'>-		vobj = next;</div><div class='del'>-		list = g_list_prepend(list, card);</div><div class='del'>-	}</div><div class='del'>-	list = g_list_reverse(list);</div><div class='del'>-	return list;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GList *</div><div class='del'>-e_card_load_cards_from_file(const char *filename)</div><div class='del'>-{</div><div class='del'>-	return e_card_load_cards_from_file_with_default_charset (filename, "UTF-8");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GList *</div><div class='del'>-e_card_load_cards_from_string_with_default_charset(const char *str, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	VObject *vobj = Parse_MIME(str, strlen (str));</div><div class='del'>-	GList *list = NULL;</div><div class='del'>-	while(vobj) {</div><div class='del'>-		VObject *next;</div><div class='del'>-		ECard *card = E_CARD(gtk_type_new(e_card_get_type()));</div><div class='del'>-		parse(card, vobj, default_charset);</div><div class='del'>-		next = nextVObjectInList(vobj);</div><div class='del'>-		cleanVObject(vobj);</div><div class='del'>-		vobj = next;</div><div class='del'>-		list = g_list_prepend(list, card);</div><div class='del'>-	}</div><div class='del'>-	list = g_list_reverse(list);</div><div class='del'>-	return list;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GList *</div><div class='del'>-e_card_load_cards_from_string(const char *str)</div><div class='del'>-{</div><div class='del'>-	return e_card_load_cards_from_string_with_default_charset (str, "UTF-8");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_free_empty_lists (ECard *card)</div><div class='del'>-{</div><div class='del'>-	if (card-&gt;address &amp;&amp; e_list_length (card-&gt;address) == 0) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;address));</div><div class='del'>-		card-&gt;address = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;address_label &amp;&amp; e_list_length (card-&gt;address_label) == 0) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;address_label));</div><div class='del'>-		card-&gt;address_label = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;phone &amp;&amp; e_list_length (card-&gt;phone) == 0) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;phone));</div><div class='del'>-		card-&gt;phone = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;email &amp;&amp; e_list_length (card-&gt;email) == 0) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;email));</div><div class='del'>-		card-&gt;email = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;categories &amp;&amp; e_list_length (card-&gt;categories) == 0) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;categories));</div><div class='del'>-		card-&gt;categories = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card-&gt;arbitrary &amp;&amp; e_list_length (card-&gt;arbitrary) == 0) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (card-&gt;arbitrary));</div><div class='del'>-		card-&gt;arbitrary = NULL;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-assign_string(VObject *vobj, char *default_charset, char **string)</div><div class='del'>-{</div><div class='del'>-	int type = vObjectValueType(vobj);</div><div class='del'>-	char *str;</div><div class='del'>-	char *charset = default_charset;</div><div class='del'>-	gboolean free_charset = FALSE;</div><div class='del'>-	VObject *charset_obj;</div><div class='del'>-</div><div class='del'>-	if ((charset_obj = isAPropertyOf (vobj, "CHARSET"))) {</div><div class='del'>-		switch (vObjectValueType (charset_obj)) {</div><div class='del'>-		case VCVT_STRINGZ:</div><div class='del'>-			charset = (char *) vObjectStringZValue(charset_obj);</div><div class='del'>-			break;</div><div class='del'>-		case VCVT_USTRINGZ:</div><div class='del'>-			charset = fakeCString (vObjectUStringZValue (charset_obj));</div><div class='del'>-			free_charset = TRUE;</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	switch(type) {</div><div class='del'>-	case VCVT_STRINGZ:</div><div class='del'>-		if (strcmp (charset, "UTF-8"))</div><div class='del'>-			*string = e_utf8_from_charset_string (charset, vObjectStringZValue(vobj));</div><div class='del'>-		else</div><div class='del'>-			*string = g_strdup(vObjectStringZValue(vobj));</div><div class='del'>-		break;</div><div class='del'>-	case VCVT_USTRINGZ:</div><div class='del'>-		str = fakeCString (vObjectUStringZValue (vobj));</div><div class='del'>-		if (strcmp (charset, "UTF-8"))</div><div class='del'>-			*string = e_utf8_from_charset_string (charset, str);</div><div class='del'>-		else</div><div class='del'>-			*string = g_strdup(str);</div><div class='del'>-		free(str);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		*string = g_strdup("");</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (free_charset) {</div><div class='del'>-		free (charset);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-static void</div><div class='del'>-e_card_str_free (CardStrProperty *sp)</div><div class='del'>-{</div><div class='del'>-	g_free (sp-&gt;str);</div><div class='del'>-</div><div class='del'>-	e_card_prop_free (sp-&gt;prop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_card_photo_free (CardPhoto *photo)</div><div class='del'>-{</div><div class='del'>-	g_free (photo-&gt;data);</div><div class='del'>-</div><div class='del'>-	e_card_prop_free (photo-&gt;prop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_card_free:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-e_card_free (ECard *card)</div><div class='del'>-{</div><div class='del'>-	GList *l;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (card != NULL);</div><div class='del'>-</div><div class='del'>-	e_card_name_free (&amp; card-&gt;name);</div><div class='del'>-	e_card_str_free  (&amp; card-&gt;fname);</div><div class='del'>-</div><div class='del'>-	e_card_photo_free (card-&gt;photo);</div><div class='del'>-</div><div class='del'>-	e_card_logo_free (card-&gt;logo);</div><div class='del'>-	e_card_org_free (card-&gt;org);</div><div class='del'>-	e_card_key_free (card-&gt;key);</div><div class='del'>-	e_card_sound_free (card-&gt;sound);</div><div class='del'>-</div><div class='del'>-	e_card_prop_str_free (&amp; card-&gt;mailer);</div><div class='del'>-	e_card_prop_str_free (&amp; card-&gt;role);</div><div class='del'>-	e_card_prop_str_free (&amp; card-&gt;categories);</div><div class='del'>-	e_card_prop_str_free (&amp; card-&gt;comment);</div><div class='del'>-	e_card_prop_str_free (&amp; card-&gt;uid);</div><div class='del'>-</div><div class='del'>-	/* address is a little more complicated */</div><div class='del'>-	card_prop_free (card-&gt;deladdr.prop);</div><div class='del'>-	while ((l = card-&gt;deladdr.l)) {</div><div class='del'>-</div><div class='del'>-		e_card_deladdr_free ((CardDelAddr *) l-&gt;data);</div><div class='del'>-</div><div class='del'>-		card-&gt;deladdr.l = g_list_remove_link (card-&gt;deladdr.l, l);</div><div class='del'>-		g_list_free (l);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	g_free (card);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct</div><div class='del'>-{</div><div class='del'>-	char c;</div><div class='del'>-	int id;</div><div class='del'>-	</div><div class='del'>-	GList *sons;</div><div class='del'>-} tree;</div><div class='del'>-</div><div class='del'>-extern CardProperty </div><div class='del'>-e_card_prop_empty (void)</div><div class='del'>-{</div><div class='del'>-	CardProperty prop;</div><div class='del'>-	</div><div class='del'>-	prop.used = FALSE;</div><div class='del'>-	</div><div class='del'>-	prop.type = PROP_NONE;</div><div class='del'>-	prop.encod = ENC_7BIT;</div><div class='del'>-	prop.value = VAL_INLINE;</div><div class='del'>-	prop.charset = NULL;</div><div class='del'>-	prop.lang = NULL;</div><div class='del'>-	prop.grp = NULL;</div><div class='del'>-	prop.xtension = NULL;</div><div class='del'>-	</div><div class='del'>-	prop.user_data = NULL;</div><div class='del'>-	</div><div class='del'>-	return prop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardStrProperty </div><div class='del'>-e_card_prop_str_empty (void)</div><div class='del'>-{</div><div class='del'>-	CardStrProperty strprop;</div><div class='del'>-	</div><div class='del'>-	strprop.prop = card_prop_empty ();</div><div class='del'>-	strprop.str = NULL;</div><div class='del'>-	</div><div class='del'>-	return strprop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Intended to check asserts. */</div><div class='del'>-extern int card_check_prop (ECardProperty prop)</div><div class='del'>-{</div><div class='del'>-	if (((prop.used == FALSE) || (prop.used == TRUE)) &amp;&amp;</div><div class='del'>-	    ((prop.type &gt;= PROP_NONE) &amp;&amp; (prop.type &lt;= PROP_LAST)) &amp;&amp;</div><div class='del'>-	    ((prop.encod &gt;= ENC_NONE) &amp;&amp; (prop.encod &lt;= ENC_LAST)) &amp;&amp;</div><div class='del'>-	    ((prop.value &gt;= VAL_NONE) &amp;&amp; (prop.value &lt;= VAL_LAST)))</div><div class='del'>-	  return TRUE;</div><div class='del'>-	    </div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-extern void</div><div class='del'>-card_prop_free (CardProperty prop)</div><div class='del'>-{</div><div class='del'>-	GList *l;</div><div class='del'>-	</div><div class='del'>-	g_free (prop.charset);</div><div class='del'>-	g_free (prop.lang);</div><div class='del'>-	</div><div class='del'>-	for (l = prop.xtension; l; l = l-&gt;next) {</div><div class='del'>-		CardXAttribute *xa = (CardXAttribute *) l-&gt;data;</div><div class='del'>-		g_free (xa-&gt;name);</div><div class='del'>-		g_free (xa-&gt;data);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	g_list_free (l);</div><div class='del'>-	</div><div class='del'>-	prop.used = FALSE;</div><div class='del'>-}</div><div class='del'>-	</div><div class='del'>-e_card_deladdr_free (ECardDelAddr *c)</div><div class='del'>-{</div><div class='del'>-	card_prop_free (c-&gt;prop);</div><div class='del'>-</div><div class='del'>-	g_free (p-&gt;pobox);</div><div class='del'>-	g_free (p-&gt;ext);</div><div class='del'>-	g_free (p-&gt;street);</div><div class='del'>-	g_free (p-&gt;city);</div><div class='del'>-	g_free (p-&gt;region);</div><div class='del'>-	g_free (p-&gt;code);</div><div class='del'>-	g_free (p-&gt;country);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void </div><div class='del'>-card_free (Card *crd)</div><div class='del'>-{</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static tree *</div><div class='del'>-new_tree (char c, int id)</div><div class='del'>-{</div><div class='del'>-	tree *t;</div><div class='del'>-	</div><div class='del'>-	t = malloc (sizeof (tree));</div><div class='del'>-	t-&gt;c = c;</div><div class='del'>-	t-&gt;id = id;</div><div class='del'>-	t-&gt;sons = NULL;</div><div class='del'>-	</div><div class='del'>-	return t;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void </div><div class='del'>-add_branch (tree *t, char *str, int id)</div><div class='del'>-{</div><div class='del'>-	tree *tmp;</div><div class='del'>-	char *end;</div><div class='del'>-	</div><div class='del'>-	end = str + strlen (str) + 1;</div><div class='del'>-</div><div class='del'>-	while (str != end) {</div><div class='del'>-		tmp = new_tree (*str, id);</div><div class='del'>-		t-&gt;sons = g_list_append (t-&gt;sons, (gpointer) tmp);</div><div class='del'>-		t = tmp;</div><div class='del'>-		</div><div class='del'>-		str ++;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static tree *</div><div class='del'>-add_to_tree (tree *t, struct pair p)</div><div class='del'>-{</div><div class='del'>-	GList *node;</div><div class='del'>-	char *c, *end;</div><div class='del'>-	tree *tmp;</div><div class='del'>-	</div><div class='del'>-	  c = p.str;</div><div class='del'>-	end = c + strlen (c) + 1;</div><div class='del'>-	tmp = t;</div><div class='del'>-	</div><div class='del'>-	while (c != end) {</div><div class='del'>-		for (node = tmp-&gt;sons; node; node = node-&gt;next)</div><div class='del'>-		  if (((tree *) node-&gt;data)-&gt;c == *c) {</div><div class='del'>-			  break;</div><div class='del'>-		  }</div><div class='del'>-		</div><div class='del'>-		if (node) {</div><div class='del'>-			tmp = (tree *) node-&gt;data;</div><div class='del'>-			tmp-&gt;id = 0;</div><div class='del'>-			c++;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			add_branch (tmp, c, p.id);</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return t;</div><div class='del'>-}</div><div class='del'>-		</div><div class='del'>-static tree *</div><div class='del'>-create_search_tree (void)</div><div class='del'>-{</div><div class='del'>-	tree *t;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	t = new_tree (0, 0);</div><div class='del'>-	for (i = 0; prop_lookup[i].str; i++)</div><div class='del'>-	  t = add_to_tree (t, prop_lookup[i]);</div><div class='del'>-	</div><div class='del'>-	return t;</div><div class='del'>-}</div><div class='del'>-		</div><div class='del'>-static int </div><div class='del'>-card_lookup_name (const char *c)</div><div class='del'>-{</div><div class='del'>-	static tree *search_tree = NULL;</div><div class='del'>-	GList *node;</div><div class='del'>-	tree *tmp;</div><div class='del'>-	const char *end;</div><div class='del'>-	</div><div class='del'>-	if (!search_tree)</div><div class='del'>-	  search_tree = create_search_tree ();</div><div class='del'>-	</div><div class='del'>-	tmp = search_tree;</div><div class='del'>-	end = c + strlen (c) + 1;</div><div class='del'>-	</div><div class='del'>-	while (tmp-&gt;id == 0 &amp;&amp; c != end) {</div><div class='del'>-		for (node = tmp-&gt;sons; node; node = node-&gt;next)</div><div class='del'>-		  if (((tree *) node-&gt;data)-&gt;c == *c) {</div><div class='del'>-			  break;</div><div class='del'>-		  }</div><div class='del'>-	</div><div class='del'>-		if (node) {</div><div class='del'>-			tmp = (tree *) node-&gt;data;</div><div class='del'>-			c++;</div><div class='del'>-		}</div><div class='del'>-		else</div><div class='del'>-		  return 0;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return tmp-&gt;id;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static enum PhotoType </div><div class='del'>-get_photo_type (VObject *o)</div><div class='del'>-{</div><div class='del'>-	VObject *vo;</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; photo_pairs[i].str; i++)</div><div class='del'>-	  if (has (o, photo_pairs[i].str))</div><div class='del'>-	    return photo_pairs[i].id;</div><div class='del'>-</div><div class='del'>-	g_warning ("? &lt; No PhotoType for Photo property. Falling back to JPEG.");</div><div class='del'>-	return PHOTO_JPEG;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardProperty </div><div class='del'>-get_CardProperty (VObject *o)</div><div class='del'>-{</div><div class='del'>-	VObjectIterator i;</div><div class='del'>-	CardProperty prop;</div><div class='del'>-</div><div class='del'>-	prop = card_prop_empty ();</div><div class='del'>-	prop.used = TRUE;</div><div class='del'>-	</div><div class='del'>-	initPropIterator (&amp;i, o);</div><div class='del'>-	while (moreIteration (&amp;i)) {</div><div class='del'>-		VObject *vo = nextVObject (&amp;i);</div><div class='del'>-		const char *n = vObjectName (vo);</div><div class='del'>-		int propid;</div><div class='del'>-	</div><div class='del'>-		propid = card_lookup_name (n);</div><div class='del'>-		</div><div class='del'>-		switch (propid) {</div><div class='del'>-			</div><div class='del'>-		 case PROP_VALUE:</div><div class='del'>-		</div><div class='del'>-			if (has (vo, VCContentIDProp))</div><div class='del'>-			  prop.value = VAL_CID;</div><div class='del'>-			break;</div><div class='del'>-			</div><div class='del'>-		 case PROP_ENCODING:</div><div class='del'>-			if (has (vo, VCQuotedPrintableProp))</div><div class='del'>-			  prop.encod = ENC_QUOTED_PRINTABLE;</div><div class='del'>-			else if (has (vo, VC8bitProp))</div><div class='del'>-			  prop.encod = ENC_8BIT;</div><div class='del'>-			else if (has (vo, VCBase64Prop))</div><div class='del'>-			  prop.encod = ENC_BASE64;</div><div class='del'>-			break;</div><div class='del'>-			</div><div class='del'>-		 case PROP_QUOTED_PRINTABLE:</div><div class='del'>-			prop.encod = ENC_QUOTED_PRINTABLE;</div><div class='del'>-			break;</div><div class='del'>-			</div><div class='del'>-		 case PROP_8BIT:</div><div class='del'>-			prop.encod = ENC_8BIT;</div><div class='del'>-			break;</div><div class='del'>-			</div><div class='del'>-		 case PROP_BASE64:</div><div class='del'>-			prop.encod = ENC_BASE64;</div><div class='del'>-			break;</div><div class='del'>-	</div><div class='del'>-		 case PROP_LANG:</div><div class='del'>-			if (vObjectValueType (vo)) {</div><div class='del'>-				prop.lang = </div><div class='del'>-				  g_strdup (vObjectStringZValue (vo));</div><div class='del'>-			} else</div><div class='del'>-			  g_warning ("? &lt; No value for LANG attribute.");</div><div class='del'>-			break;</div><div class='del'>-			</div><div class='del'>-		 case PROP_CHARSET:</div><div class='del'>-			if (vObjectValueType (vo)) {</div><div class='del'>-				prop.charset = </div><div class='del'>-				  g_strdup (vObjectStringZValue (vo));</div><div class='del'>-				g_warning (prop.charset); </div><div class='del'>-			} else</div><div class='del'>-			  g_warning ("? &lt; No value for CHARSET attribute.");</div><div class='del'>-			break;</div><div class='del'>-		 default:</div><div class='del'>-				{</div><div class='del'>-					CardXAttribute *c;</div><div class='del'>-</div><div class='del'>-					c = malloc (sizeof (CardXAttribute));</div><div class='del'>-					c-&gt;name = g_strdup (n);</div><div class='del'>-					</div><div class='del'>-					if (vObjectValueType (vo))</div><div class='del'>-					  c-&gt;data = </div><div class='del'>-					  g_strdup (vObjectStringZValue (vo));</div><div class='del'>-					else</div><div class='del'>-					  c-&gt;data = NULL;</div><div class='del'>-					</div><div class='del'>-					prop.xtension = </div><div class='del'>-					  g_list_append (prop.xtension, c);</div><div class='del'>-				}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return prop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_card_prop_has (VObject    *o,</div><div class='del'>-		 const char *id)</div><div class='del'>-{</div><div class='del'>-	g_assert (o  != NULL);</div><div class='del'>-	g_assert (id != NULL);</div><div class='del'>-</div><div class='del'>-	if (isAPropertyOf (o, id) == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const char *</div><div class='del'>-e_card_prop_get_str (VObject    *o,</div><div class='del'>-		     const char *id)</div><div class='del'>-{</div><div class='del'>-	VObject *strobj;</div><div class='del'>-</div><div class='del'>-	g_assert (o  != NULL);</div><div class='del'>-	g_assert (id != NULL);</div><div class='del'>-</div><div class='del'>-	strobj = isAPropertyOf (o, id);</div><div class='del'>-</div><div class='del'>-	if (strobj == NULL)</div><div class='del'>-		return g_strdup ("");</div><div class='del'>-</div><div class='del'>-	if (vObjectValueType (strobj) != NULL) {</div><div class='del'>-		char *str;</div><div class='del'>-		char *g_str;</div><div class='del'>-</div><div class='del'>-		str = fakeCString (vObjectStringZValue (strobj));</div><div class='del'>-		g_str = g_strdup (str);</div><div class='del'>-		free (str);</div><div class='del'>-</div><div class='del'>-		return g_str;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return g_strdup ("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardName *</div><div class='del'>-e_card_get_name (VObject *o)</div><div class='del'>-{</div><div class='del'>-	CardName *name;</div><div class='del'>-	VObject *vo;</div><div class='del'>-	char *the_str;</div><div class='del'>-</div><div class='del'>-	name = e_card_name_new ();</div><div class='del'>-</div><div class='del'>-	name-&gt;family     = e_card_prop_get_substr (o, VCFamilyNameProp);</div><div class='del'>-	name-&gt;given      = e_card_prop_get_substr (o, VCGivenNameProp);</div><div class='del'>-	name-&gt;additional = e_card_prop_get_substr (o, VCAdditionalNamesProp);</div><div class='del'>-	name-&gt;prefix     = e_card_prop_get_substr (o, VCNamePrefixesProp);</div><div class='del'>-	name-&gt;suffix     = e_card_prop_get_substr (o, VCNameSuffixesProp);</div><div class='del'>-</div><div class='del'>-	return name;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardDelLabel *</div><div class='del'>-get_CardDelLabel (VObject *o)</div><div class='del'>-{</div><div class='del'>-	CardDelLabel *dellabel;</div><div class='del'>-	char *the_str;</div><div class='del'>-	</div><div class='del'>-	dellabel = malloc (sizeof (CardDelLabel));</div><div class='del'>-	</div><div class='del'>-	dellabel-&gt;type = get_addr_type (o);</div><div class='del'>-	dellabel-&gt;data = g_strdup (str_val (o));</div><div class='del'>-	</div><div class='del'>-	free (the_str);</div><div class='del'>-	return dellabel;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardPhone *</div><div class='del'>-get_CardPhone (VObject *o)</div><div class='del'>-{</div><div class='del'>-	CardPhone *ret;</div><div class='del'>-	char *the_str;</div><div class='del'>-	</div><div class='del'>-	ret = malloc (sizeof (CardPhone));</div><div class='del'>-	ret-&gt;type = get_phone_type (o);</div><div class='del'>-	ret-&gt;data = g_strdup (str_val (o));</div><div class='del'>-	</div><div class='del'>-	free (the_str);</div><div class='del'>-</div><div class='del'>-	return ret;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardEMail *</div><div class='del'>-get_CardEMail (VObject *o)</div><div class='del'>-{</div><div class='del'>-	CardEMail *ret;</div><div class='del'>-	char *the_str; </div><div class='del'>-	</div><div class='del'>-	ret = malloc (sizeof (CardEMail)); </div><div class='del'>-	ret-&gt;type = get_email_type (o);</div><div class='del'>-	ret-&gt;data = g_strdup (str_val (o));</div><div class='del'>-	</div><div class='del'>-	free (the_str);</div><div class='del'>-	</div><div class='del'>-	return ret;</div><div class='del'>-}</div><div class='del'>-	</div><div class='del'>-static CardTimeZone </div><div class='del'>-strtoCardTimeZone (char *str)</div><div class='del'>-{</div><div class='del'>-	char s[3];</div><div class='del'>-	CardTimeZone tz;</div><div class='del'>-	</div><div class='del'>-	if (*str == '-') {</div><div class='del'>-		tz.sign = -1;</div><div class='del'>-		str++;</div><div class='del'>-	} else</div><div class='del'>-	  tz.sign = 1;</div><div class='del'>-	</div><div class='del'>-	tz.hours = 0;</div><div class='del'>-	tz.mins = 0;</div><div class='del'>-	</div><div class='del'>-	s[2] = 0;</div><div class='del'>-	if (strlen (str) &gt; 2) {</div><div class='del'>-		s[0] = str[0];</div><div class='del'>-		s[1] = str[1];</div><div class='del'>-		tz.hours = atoi (s);</div><div class='del'>-	} else {</div><div class='del'>-		g_warning ("? &lt; TimeZone value is too short.");</div><div class='del'>-		return tz;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	str += 2;</div><div class='del'>-	if (*str == ':')</div><div class='del'>-	  str++;</div><div class='del'>-	</div><div class='del'>-	if (strlen (str) &gt;= 2) {</div><div class='del'>-		s[0] = str[0];</div><div class='del'>-		s[1] = str[1];</div><div class='del'>-		tz.mins = atoi (s);</div><div class='del'>-	} else {</div><div class='del'>-		g_warning ("? &lt; TimeZone value is too short.");</div><div class='del'>-		return tz;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (strlen (str) &gt; 3)</div><div class='del'>-		g_warning ("? &lt; TimeZone value is too long.");</div><div class='del'>-</div><div class='del'>-	return tz;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardGeoPos </div><div class='del'>-strtoCardGeoPos (char *str)</div><div class='del'>-{</div><div class='del'>-	CardGeoPos gp;</div><div class='del'>-	char *s;</div><div class='del'>-	</div><div class='del'>-	gp.lon = 0;</div><div class='del'>-	gp.lat = 0;</div><div class='del'>-	  </div><div class='del'>-	s = strchr (str, ',');</div><div class='del'>-	</div><div class='del'>-	if (! s) {</div><div class='del'>-		g_warning ("? &lt; Bad format for GeoPos property.");</div><div class='del'>-		return gp;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	*s = 0;</div><div class='del'>-	s++;</div><div class='del'>-	</div><div class='del'>-	gp.lon = atof (str);</div><div class='del'>-	gp.lat = atof (s);</div><div class='del'>-	</div><div class='del'>-	return gp;</div><div class='del'>-}</div><div class='del'>-	</div><div class='del'>-static CardOrg *</div><div class='del'>-e_card_vobject_to_org (VObject *o)</div><div class='del'>-{</div><div class='del'>-	VObject *vo;</div><div class='del'>-	char *the_str;</div><div class='del'>-	CardOrg *org;</div><div class='del'>-</div><div class='del'>-	org = g_new0 (CardOrg, 1);</div><div class='del'>-</div><div class='del'>-	if (has (o, VCOrgNameProp)) {</div><div class='del'>-		org.name = g_strdup (str_val (vo));</div><div class='del'>-		free (the_str);</div><div class='del'>-	}</div><div class='del'>-	if (has (o, VCOrgUnitProp)) {</div><div class='del'>-		org.unit1 = g_strdup (str_val (vo));</div><div class='del'>-		free (the_str);</div><div class='del'>-	}</div><div class='del'>-	if (has (o, VCOrgUnit2Prop)) {</div><div class='del'>-		org.unit2 = g_strdup (str_val (vo));</div><div class='del'>-		free (the_str);</div><div class='del'>-	}</div><div class='del'>-	if (has (o, VCOrgUnit3Prop)) {</div><div class='del'>-		org.unit3 = g_strdup (str_val (vo));</div><div class='del'>-		free (the_str);</div><div class='del'>-	}</div><div class='del'>-	if (has (o, VCOrgUnit4Prop)) {</div><div class='del'>-		org.unit4 = g_strdup (str_val (vo));</div><div class='del'>-		free (the_str);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return org;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardXProperty *</div><div class='del'>-get_XProp (VObject *o)</div><div class='del'>-{</div><div class='del'>-	char *the_str;</div><div class='del'>-	CardXProperty *ret;</div><div class='del'>-	</div><div class='del'>-	ret = malloc (sizeof (CardXProperty)); </div><div class='del'>-	ret-&gt;name = g_strdup (vObjectName (o));</div><div class='del'>-	ret-&gt;data = g_strdup (str_val (o));</div><div class='del'>-	free (the_str);</div><div class='del'>-	</div><div class='del'>-	return ret;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardRev </div><div class='del'>-strtoCardRev (char *str)</div><div class='del'>-{</div><div class='del'>-	char s[3], *t, *ss;</div><div class='del'>-	int len, i;</div><div class='del'>-	CardRev rev;</div><div class='del'>-	</div><div class='del'>-	rev.utc = 0;</div><div class='del'>-	len = strlen (str);</div><div class='del'>-	</div><div class='del'>-	if (str[len] == 'Z') {              /* Is it UTC? */</div><div class='del'>-		rev.utc = 1;</div><div class='del'>-		str[len] = 0;</div><div class='del'>-	}</div><div class='del'>-	  </div><div class='del'>-	s[2] = 0;</div><div class='del'>-	t = strchr (str, 'T');</div><div class='del'>-	if (t) {                            /* Take the Time */</div><div class='del'>-		*t = 0;</div><div class='del'>-		t++;</div><div class='del'>-		if (strlen (t) &gt; 2) {</div><div class='del'>-			s[0] = t[0];</div><div class='del'>-			s[1] = t[1];</div><div class='del'>-			rev.tm.tm_hour = atoi (s);</div><div class='del'>-		} else {</div><div class='del'>-			g_warning ("? &lt; Rev value is too short.");</div><div class='del'>-			return rev;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		t += 2;</div><div class='del'>-		if (*t == ':')             /* Ignore ':' separator */</div><div class='del'>-		  t++;</div><div class='del'>-		</div><div class='del'>-		if (strlen (t) &gt; 2) {</div><div class='del'>-			s[0] = t[0];</div><div class='del'>-			s[1] = t[1];</div><div class='del'>-			rev.tm.tm_min = atoi (s);</div><div class='del'>-		} else {</div><div class='del'>-			g_warning ("? &lt; Rev value is too short.");</div><div class='del'>-			return rev;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		t += 2;</div><div class='del'>-		if (*t == ':')</div><div class='del'>-		  t++;</div><div class='del'>-		</div><div class='del'>-		if (strlen (t) &gt; 2) {</div><div class='del'>-			s[0] = t[0];</div><div class='del'>-			s[1] = t[1];</div><div class='del'>-			rev.tm.tm_sec = atoi (s);</div><div class='del'>-		} else {</div><div class='del'>-			g_warning ("? &lt; Rev value is too short.");</div><div class='del'>-			return rev;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (strlen (str) &gt; 3)</div><div class='del'>-		  g_warning ("? &lt; Rev value is too long.");</div><div class='del'>-		</div><div class='del'>-	} else {</div><div class='del'>-		g_warning ("? &lt; No time value for Rev property.");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Now the date (the part before the T) */</div><div class='del'>-	</div><div class='del'>-	if (strchr (str, '-')) {                        /* extended iso 8601 */</div><div class='del'>-		for (ss = strtok (str, "-"), i = 0; ss;</div><div class='del'>-		     ss = strtok (NULL, "-"), i++)</div><div class='del'>-		  switch (i) {</div><div class='del'>-		   case 0:</div><div class='del'>-			  rev.tm.tm_year = atoi (ss);</div><div class='del'>-			  break;</div><div class='del'>-		   case 1:</div><div class='del'>-			  rev.tm.tm_mon = atoi (ss);</div><div class='del'>-			  break;</div><div class='del'>-		   case 2:</div><div class='del'>-			  rev.tm.tm_mday = atoi (ss);</div><div class='del'>-			  break;</div><div class='del'>-		   default:</div><div class='del'>-			  g_warning ("? &lt; Too many values for Rev property.");</div><div class='del'>-		  }</div><div class='del'>-		</div><div class='del'>-		if (i &lt; 2)</div><div class='del'>-		  g_warning ("? &lt; Too few values for Rev property.");</div><div class='del'>-	} else {</div><div class='del'>-		if (strlen (str) &gt;= 8) {             /* short representation */</div><div class='del'>-			rev.tm.tm_mday = atoi (str + 6);</div><div class='del'>-			str[6] = 0;</div><div class='del'>-			rev.tm.tm_mon = atoi (str + 4);</div><div class='del'>-			str[4] = 0;</div><div class='del'>-			rev.tm.tm_year = atoi (str);</div><div class='del'>-		} else</div><div class='del'>-		  g_warning ("? &lt; Bad format for Rev property.");</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return rev;</div><div class='del'>-}</div><div class='del'>-		</div><div class='del'>-static enum KeyType </div><div class='del'>-get_key_type (VObject *o)</div><div class='del'>-{</div><div class='del'>-	VObject *vo;</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; key_pairs[i].str; i++)</div><div class='del'>-	  if (has (o, key_pairs[i].str))</div><div class='del'>-	    return key_pairs[i].id;</div><div class='del'>-</div><div class='del'>-	g_warning ("? &lt; No KeyType for Key property. Falling back to PGP.");</div><div class='del'>-	return KEY_PGP;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CardPhoto </div><div class='del'>-get_CardPhoto (VObject *o)</div><div class='del'>-{</div><div class='del'>-	VObject *vo;</div><div class='del'>-	char *the_str;</div><div class='del'>-	CardPhoto photo;</div><div class='del'>-</div><div class='del'>-	photo.type = get_photo_type (o);</div><div class='del'>-	</div><div class='del'>-	if (has (o, VCDataSizeProp)) {</div><div class='del'>-		photo.size = vObjectIntegerValue (vo);</div><div class='del'>-		photo.data = malloc (photo.size);</div><div class='del'>-		memcpy (photo.data, vObjectAnyValue (o), photo.size);</div><div class='del'>-	} else {</div><div class='del'>-		photo.size = strlen (str_val (o)) + 1;</div><div class='del'>-		photo.data = g_strdup (the_str);</div><div class='del'>-		free (the_str);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return photo;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static enum SoundType </div><div class='del'>-get_sound_type (VObject *o)</div><div class='del'>-{</div><div class='del'>-	VObject *vo;</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; sound_pairs[i].str; i++)</div><div class='del'>-	  if (has (o, sound_pairs[i].str))</div><div class='del'>-	    return sound_pairs[i].id;</div><div class='del'>-</div><div class='del'>-	return SOUND_PHONETIC;</div><div class='del'>-}</div><div class='del'>-	</div><div class='del'>-static CardSound </div><div class='del'>-get_CardSound (VObject *o)</div><div class='del'>-{</div><div class='del'>-	VObject *vo;</div><div class='del'>-	char *the_str;</div><div class='del'>-	CardSound sound;</div><div class='del'>-</div><div class='del'>-	sound.type = get_sound_type (o);</div><div class='del'>-	</div><div class='del'>-	if (has (o, VCDataSizeProp)) {</div><div class='del'>-		sound.size = vObjectIntegerValue (vo);</div><div class='del'>-		sound.data = malloc (sound.size);</div><div class='del'>-		memcpy (sound.data, vObjectAnyValue (o), sound.size);</div><div class='del'>-	} else {</div><div class='del'>-		sound.size = strlen (str_val (o));</div><div class='del'>-		sound.data = g_strdup (the_str);</div><div class='del'>-		free (the_str);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return sound;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Loads our card contents from a VObject */</div><div class='del'>-static ECard *</div><div class='del'>-e_card_construct_from_vobject (ECard   *card,</div><div class='del'>-			       VObject *vcrd)</div><div class='del'>-{</div><div class='del'>-	VObjectIterator i;</div><div class='del'>-	Card *crd;</div><div class='del'>-	char *the_str;</div><div class='del'>-</div><div class='del'>-	initPropIterator (&amp;i, vcrd);</div><div class='del'>-	crd = card_new ();</div><div class='del'>-</div><div class='del'>-	while (moreIteration (&amp;i)) {</div><div class='del'>-		VObject *o = nextVObject (&amp;i);</div><div class='del'>-		const char *n = vObjectName (o);</div><div class='del'>-		int propid;</div><div class='del'>-		CardProperty *prop = NULL;</div><div class='del'>-</div><div class='del'>-		propid = card_lookup_name (n);</div><div class='del'>-		</div><div class='del'>-		switch (propid) {</div><div class='del'>-		case PROP_FNAME:</div><div class='del'>-			prop = &amp;crd-&gt;fname.prop;</div><div class='del'>-			crd-&gt;fname.str = g_strdup (str_val (o));</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_NAME:</div><div class='del'>-			prop = &amp;crd-&gt;name.prop;</div><div class='del'>-			crd-&gt;name = e_card_get_name (o);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_PHOTO:</div><div class='del'>-			prop = &amp;crd-&gt;photo.prop;</div><div class='del'>-			crd-&gt;photo = get_CardPhoto (o);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_BDAY:</div><div class='del'>-			prop = &amp;crd-&gt;bday.prop;</div><div class='del'>-			crd-&gt;bday = strtoCardBDay (str_val (o));</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_DELADDR:</div><div class='del'>-				{</div><div class='del'>-					CardDelAddr *c;</div><div class='del'>-					c = get_CardDelAddr (o);</div><div class='del'>-					prop = &amp;c-&gt;prop;</div><div class='del'>-					crd-&gt;deladdr.l = g_list_append (crd-&gt;deladdr.l, c);</div><div class='del'>-				}</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_DELLABEL:</div><div class='del'>-				{</div><div class='del'>-					CardDelLabel *c;</div><div class='del'>-					c = get_CardDelLabel (o);</div><div class='del'>-					prop = &amp;c-&gt;prop;</div><div class='del'>-					crd-&gt;dellabel.l = g_list_append (crd-&gt;dellabel.l, c);</div><div class='del'>-				}</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_PHONE:</div><div class='del'>-				{</div><div class='del'>-					CardPhone *c;</div><div class='del'>-					</div><div class='del'>-					c = get_CardPhone (o);</div><div class='del'>-					prop = &amp;c-&gt;prop;</div><div class='del'>-					crd-&gt;phone.l = g_list_append (crd-&gt;phone.l, c);</div><div class='del'>-				}</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_EMAIL:</div><div class='del'>-				{</div><div class='del'>-					CardEMail *c;</div><div class='del'>-					</div><div class='del'>-					c = get_CardEMail (o);</div><div class='del'>-					prop = &amp;c-&gt;prop;</div><div class='del'>-					crd-&gt;email.l = g_list_append (crd-&gt;email.l, c);</div><div class='del'>-				}</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_MAILER:</div><div class='del'>-			prop = &amp;crd-&gt;mailer.prop;</div><div class='del'>-			crd-&gt;mailer.str = g_strdup (str_val (o));</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_TIMEZN:</div><div class='del'>-			prop = &amp;crd-&gt;timezn.prop;</div><div class='del'>-			crd-&gt;timezn = strtoCardTimeZone (str_val (o));</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_GEOPOS:</div><div class='del'>-			prop = &amp;crd-&gt;geopos.prop;</div><div class='del'>-			crd-&gt;geopos = strtoCardGeoPos (str_val (o));</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_ROLE:</div><div class='del'>-			prop = &amp;crd-&gt;role.prop;</div><div class='del'>-			crd-&gt;role.str = g_strdup (str_val (o));</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_LOGO:</div><div class='del'>-			prop = &amp;crd-&gt;logo.prop;</div><div class='del'>-			crd-&gt;logo = get_CardPhoto (o);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_AGENT:</div><div class='del'>-			crd-&gt;agent = card_create_from_vobject (o);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_ORG:</div><div class='del'>-			prop = &amp;crd-&gt;org.prop;</div><div class='del'>-			crd-&gt;org = get_CardOrg (o);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_CATEGORIES:</div><div class='del'>-			prop = &amp;crd-&gt;categories.prop;</div><div class='del'>-			crd-&gt;categories.str = g_strdup (str_val (o));</div><div class='del'>-			crd-&gt;categories.prop.encod = ENC_QUOTED_PRINTABLE;</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_COMMENT:</div><div class='del'>-			prop = &amp;crd-&gt;comment.prop;</div><div class='del'>-			crd-&gt;comment.str = g_strdup (str_val (o));</div><div class='del'>-			crd-&gt;comment.prop.encod = ENC_QUOTED_PRINTABLE;</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_REV:</div><div class='del'>-			prop = &amp;crd-&gt;rev.prop;</div><div class='del'>-			crd-&gt;rev = strtoCardRev (str_val (o));</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_SOUND:</div><div class='del'>-			prop = &amp;crd-&gt;sound.prop;</div><div class='del'>-			crd-&gt;sound = get_CardSound (o);</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_VERSION:</div><div class='del'>-				{</div><div class='del'>-					char *str;</div><div class='del'>-					str = str_val (o);</div><div class='del'>-					if (strcmp (str, "2.1"))</div><div class='del'>-					  g_warning ("? &lt; Version doesn't match.");</div><div class='del'>-					free (the_str);</div><div class='del'>-				}</div><div class='del'>-			break;</div><div class='del'>-		 case PROP_KEY:</div><div class='del'>-			prop = &amp;crd-&gt;key.prop;</div><div class='del'>-			crd-&gt;key.type = get_key_type (o);</div><div class='del'>-			crd-&gt;key.data = g_strdup (str_val (o));</div><div class='del'>-			free (the_str);</div><div class='del'>-			break;</div><div class='del'>-		 default:</div><div class='del'>-				{</div><div class='del'>-					CardXProperty *c;</div><div class='del'>-				</div><div class='del'>-					c = get_XProp (o);</div><div class='del'>-					prop = &amp;c-&gt;prop;</div><div class='del'>-					crd-&gt;xtension.l = g_list_append (crd-&gt;xtension.l, c);</div><div class='del'>-				}</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		if (prop) {</div><div class='del'>-			*prop = get_CardProperty (o);</div><div class='del'>-			prop-&gt;type = propid;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return crd;</div><div class='del'>-}</div><div class='del'>-		</div><div class='del'>-/* Loads a card from a file */</div><div class='del'>-GList *</div><div class='del'>-card_load (GList *crdlist, char *fname)</div><div class='del'>-{</div><div class='del'>-	VObject *vobj, *tmp;</div><div class='del'>-	</div><div class='del'>-	vobj = Parse_MIME_FromFileName (fname);</div><div class='del'>-	if (!vobj) {</div><div class='del'>-		g_warning ("Could not load the cardfile");</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	while (vobj) {</div><div class='del'>-		const char *n = vObjectName (vobj);</div><div class='del'>-		</div><div class='del'>-		if (strcmp (n, VCCardProp) == 0) {</div><div class='del'>-			crdlist = g_list_append (crdlist, (gpointer)</div><div class='del'>-					    card_create_from_vobject (vobj));</div><div class='del'>-		}</div><div class='del'>-		tmp = vobj;</div><div class='del'>-		vobj = nextVObjectInList (vobj);</div><div class='del'>-		cleanVObject (tmp);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	cleanVObject (vobj);</div><div class='del'>-	cleanStrTbl ();</div><div class='del'>-	return crdlist;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_strProp (VObject *o, const char *id, char *val)</div><div class='del'>-{</div><div class='del'>-	VObject *vo = NULL;</div><div class='del'>-	</div><div class='del'>-	if (val)</div><div class='del'>-	  vo = addPropValue (o, id, val);</div><div class='del'>-</div><div class='del'>-	return vo;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_CardProperty (VObject *o, CardProperty *prop)</div><div class='del'>-{</div><div class='del'>-	GList *node;</div><div class='del'>-	</div><div class='del'>-	switch (prop-&gt;encod) {</div><div class='del'>-	 case ENC_BASE64:</div><div class='del'>-		addProp (o, VCBase64Prop);</div><div class='del'>-		break;</div><div class='del'>-	 case ENC_QUOTED_PRINTABLE:</div><div class='del'>-		addProp (o, VCQuotedPrintableProp);</div><div class='del'>-		break;</div><div class='del'>-	 case ENC_8BIT:</div><div class='del'>-		addProp (o, VC8bitProp);</div><div class='del'>-		break;</div><div class='del'>-	 case ENC_7BIT:</div><div class='del'>-		/* Do nothing: 7BIT is the default. Avoids file clutter. */</div><div class='del'>-		break;</div><div class='del'>-	 default:</div><div class='del'>-		g_warning ("? &lt; Card had invalid encoding type.");</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	switch (prop-&gt;value) {</div><div class='del'>-	 case VAL_CID:</div><div class='del'>-		addProp (o, VCContentIDProp);</div><div class='del'>-		break;</div><div class='del'>-	 case VAL_INLINE:</div><div class='del'>-		/* Do nothing: INLINE is the default. Avoids file clutter. */</div><div class='del'>-		break;</div><div class='del'>-	 default:</div><div class='del'>-		g_warning ("? &lt; Card had invalid value type.");</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	for (node = prop-&gt;xtension; node; node = node-&gt;next) {</div><div class='del'>-		CardXAttribute *xa = (CardXAttribute *) node-&gt;data;</div><div class='del'>-		if (xa-&gt;data)</div><div class='del'>-		  addPropValue (o, xa-&gt;name, xa-&gt;data);</div><div class='del'>-		else</div><div class='del'>-		  addProp (o, xa-&gt;name);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	add_strProp (o, VCCharSetProp, prop-&gt;charset);</div><div class='del'>-	add_strProp (o, VCLanguageProp, prop-&gt;lang);</div><div class='del'>-	</div><div class='del'>-	return o;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_CardStrProperty (VObject *vobj, const char *id, CardStrProperty *strprop)</div><div class='del'>-{</div><div class='del'>-	VObject *vprop;</div><div class='del'>-	</div><div class='del'>-	if (strprop-&gt;prop.used) {</div><div class='del'>-		vprop = add_strProp (vobj, id, strprop-&gt;str);</div><div class='del'>-		add_CardProperty (vprop, &amp;strprop-&gt;prop);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return vobj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_PhotoType (VObject *o, enum PhotoType photo_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; photo_pairs[i].str; i++)</div><div class='del'>-	  if (photo_type == photo_pairs[i].id) {</div><div class='del'>-		  addProp (o, photo_pairs[i].str);</div><div class='del'>-		  return o;</div><div class='del'>-	  }</div><div class='del'>-</div><div class='del'>-	g_warning ("? &gt; No PhotoType for Photo property. Falling back to JPEG.");</div><div class='del'>-	addProp (o, VCJPEGProp);</div><div class='del'>-	</div><div class='del'>-	return o;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_AddrType (VObject *o, int addr_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; addr_pairs[i].str; i++)</div><div class='del'>-	  if (addr_type &amp; addr_pairs[i].id)</div><div class='del'>-	    addProp (o, addr_pairs[i].str);</div><div class='del'>-	</div><div class='del'>-	return o;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_strAddrType (GString *string, int addr_type)</div><div class='del'>-{</div><div class='del'>-	int i, first = 1;</div><div class='del'>-	char *str;</div><div class='del'>-	</div><div class='del'>-	if (addr_type) {</div><div class='del'>-		g_string_append (string, " (");</div><div class='del'>-		</div><div class='del'>-		for (i = 0; addr_pairs[i].str; i++)</div><div class='del'>-		  if (addr_type &amp; addr_pairs[i].id) {</div><div class='del'>-			  if (!first)</div><div class='del'>-			    g_string_append (string, ", ");</div><div class='del'>-			  first = 0;</div><div class='del'>-			  str = my_cap (addr_pairs[i].str);</div><div class='del'>-			  g_string_append (string, str);</div><div class='del'>-			  g_free (str);</div><div class='del'>-		  }</div><div class='del'>-		</div><div class='del'>-		g_string_append_c (string, ')');</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_PhoneType (VObject *o, int phone_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; phone_pairs[i].str; i++)</div><div class='del'>-	  if (phone_type &amp; phone_pairs[i].id)</div><div class='del'>-	    addProp (o, phone_pairs[i].str);</div><div class='del'>-	</div><div class='del'>-	return o;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_strPhoneType (GString *string, int phone_type)</div><div class='del'>-{</div><div class='del'>-	int i, first = 1;</div><div class='del'>-	char *str;</div><div class='del'>-	</div><div class='del'>-	if (phone_type) {</div><div class='del'>-		g_string_append (string, " (");</div><div class='del'>-		</div><div class='del'>-		for (i = 0; phone_pairs[i].str; i++)</div><div class='del'>-		  if (phone_type &amp; phone_pairs[i].id) {</div><div class='del'>-			  if (!first)</div><div class='del'>-			    g_string_append (string, ", ");</div><div class='del'>-			  first = 0;</div><div class='del'>-			  str = my_cap (phone_pairs[i].str);</div><div class='del'>-			  g_string_append (string, str);</div><div class='del'>-			  g_free (str);</div><div class='del'>-		  }</div><div class='del'>-		</div><div class='del'>-		g_string_append_c (string, ')');</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_EMailType (VObject *o, enum EMailType email_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; email_pairs[i].str; i++)</div><div class='del'>-	  if (email_type == email_pairs[i].id) {</div><div class='del'>-		  addProp (o, email_pairs[i].str);</div><div class='del'>-		  return o;</div><div class='del'>-	  }</div><div class='del'>-</div><div class='del'>-	g_warning ("? &gt; No EMailType for EMail property. Falling back to INET.");</div><div class='del'>-	addProp (o, VCInternetProp);</div><div class='del'>-	</div><div class='del'>-	return o;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_strEMailType (GString *string, int email_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	char *str;</div><div class='del'>-	</div><div class='del'>-	if (email_type) {</div><div class='del'>-		g_string_append (string, " (");</div><div class='del'>-		</div><div class='del'>-		for (i = 0; email_pairs[i].str; i++)</div><div class='del'>-		  if (email_type == email_pairs[i].id) {</div><div class='del'>-			  str = my_cap (email_pairs[i].str);</div><div class='del'>-			  g_string_append (string, str);</div><div class='del'>-			  g_free (str);</div><div class='del'>-			  break;</div><div class='del'>-		  }</div><div class='del'>-		</div><div class='del'>-		g_string_append_c (string, ')');</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_KeyType (VObject *o, enum KeyType key_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; key_pairs[i].str; i++)</div><div class='del'>-	  if (key_type == key_pairs[i].id) {</div><div class='del'>-		  addProp (o, key_pairs[i].str);</div><div class='del'>-		  return o;</div><div class='del'>-	  }</div><div class='del'>-</div><div class='del'>-	g_warning ("? &gt; No KeyType for Key property. Falling back to PGP.");</div><div class='del'>-	addProp (o, VCPGPProp);</div><div class='del'>-	</div><div class='del'>-	return o;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_strKeyType (GString *string, int key_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	char *str;</div><div class='del'>-	</div><div class='del'>-	if (key_type) {</div><div class='del'>-		g_string_append (string, " (");</div><div class='del'>-		</div><div class='del'>-		for (i = 0; key_pairs[i].str; i++)</div><div class='del'>-		  if (key_type == key_pairs[i].id) {</div><div class='del'>-			  str = my_cap (key_pairs[i].str);</div><div class='del'>-			  g_string_append (string, str);</div><div class='del'>-			  g_free (str);</div><div class='del'>-			  break;</div><div class='del'>-		  }</div><div class='del'>-		</div><div class='del'>-		g_string_append_c (string, ')');</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VObject *</div><div class='del'>-add_SoundType (VObject *o, enum SoundType sound_type)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; sound_pairs[i].str; i++)</div><div class='del'>-	  if (sound_type == sound_pairs[i].id) {</div><div class='del'>-		  addProp (o, sound_pairs[i].str);</div><div class='del'>-		  return o;</div><div class='del'>-	  }</div><div class='del'>-</div><div class='del'>-	return o;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *card_timezn_str (CardTimeZone timezn)</div><div class='del'>-{</div><div class='del'>-	char *str;</div><div class='del'>-	</div><div class='del'>-	str = malloc (7);</div><div class='del'>-	snprintf (str, 7, (timezn.sign == -1)? "-%02d:%02d" : "%02d:%02d",</div><div class='del'>-		 timezn.hours, timezn.mins);</div><div class='del'>-	return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *card_geopos_str (CardGeoPos geopos)</div><div class='del'>-{</div><div class='del'>-	char *str;</div><div class='del'>-	</div><div class='del'>-	str = malloc (15);</div><div class='del'>-	snprintf (str, 15, "%03.02f,%03.02f", geopos.lon, geopos.lat);</div><div class='del'>-	return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void add_CardStrProperty_to_string (GString *string, char *prop_name,</div><div class='del'>-					   CardStrProperty *strprop)</div><div class='del'>-{</div><div class='del'>-	if (strprop-&gt;prop.used) {</div><div class='del'>-		if (prop_name)</div><div class='del'>-		  g_string_append (string, prop_name);</div><div class='del'>-		</div><div class='del'>-		g_string_append (string, strprop-&gt;str);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void add_strProp_to_string (GString *string, char *prop_name, char *val)</div><div class='del'>-{</div><div class='del'>-	if (val) {</div><div class='del'>-		if (prop_name)</div><div class='del'>-		  g_string_append (string, prop_name);</div><div class='del'>-		</div><div class='del'>-		g_string_append (string, val);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void addProp_to_string (GString *string, char *prop_name)</div><div class='del'>-{</div><div class='del'>-	if (prop_name)</div><div class='del'>-	  g_string_append (string, prop_name);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-card_to_string (Card *crd)</div><div class='del'>-{</div><div class='del'>-	GString *string;</div><div class='del'>-	char *ret;</div><div class='del'>-	</div><div class='del'>-	string = g_string_new ("");</div><div class='del'>-	</div><div class='del'>-	add_CardStrProperty_to_string (string, _("Card: "), &amp;crd-&gt;fname);</div><div class='del'>-	if (crd-&gt;name.prop.used) {</div><div class='del'>-		addProp_to_string (string, N_("\nName: "));</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Prefix:     "), crd-&gt;name.prefix);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Given:      "), crd-&gt;name.given);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Additional: "), crd-&gt;name.additional);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Family:     "), crd-&gt;name.family);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Suffix:     "), crd-&gt;name.suffix);</div><div class='del'>-		g_string_append_c (string, '\n');</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-/*	if (crd-&gt;photo.prop.used) {</div><div class='del'>-		addPropSizedValue (string, _ ("\nPhoto: "), </div><div class='del'>-					  crd-&gt;photo.data, crd-&gt;photo.size);</div><div class='del'>-		add_PhotoType (string, crd-&gt;photo.type);</div><div class='del'>-	}*/</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;bday.prop.used) {</div><div class='del'>-		char *date_str;</div><div class='del'>-		</div><div class='del'>-		date_str = card_bday_str (crd-&gt;bday);</div><div class='del'>-		add_strProp_to_string (string, N_("\nBirth Date: "), date_str);</div><div class='del'>-		free (date_str);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;deladdr.l) {</div><div class='del'>-		GList *node;</div><div class='del'>-		</div><div class='del'>-		for (node = crd-&gt;deladdr.l; node; node = node-&gt;next) {</div><div class='del'>-			CardDelAddr *deladdr = (CardDelAddr *) node-&gt;data;</div><div class='del'>-			</div><div class='del'>-			if (deladdr-&gt;prop.used) {</div><div class='del'>-				addProp_to_string (string, N_("\nAddress:"));</div><div class='del'>-				add_strAddrType (string, deladdr-&gt;type);</div><div class='del'>-				add_strProp_to_string (string, N_("\n  Postal Box:  "), deladdr-&gt;po);</div><div class='del'>-				add_strProp_to_string (string, N_("\n  Ext:         "), deladdr-&gt;ext);</div><div class='del'>-				add_strProp_to_string (string, N_("\n  Street:      "), deladdr-&gt;street);</div><div class='del'>-				add_strProp_to_string (string, N_("\n  City:        "), deladdr-&gt;city);</div><div class='del'>-				add_strProp_to_string (string, N_("\n  Region:      "), deladdr-&gt;region);</div><div class='del'>-				add_strProp_to_string (string, N_("\n  Postal Code: "), deladdr-&gt;code);</div><div class='del'>-				add_strProp_to_string (string, N_("\n  Country:     "), deladdr-&gt;country);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		g_string_append_c (string, '\n');</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;dellabel.l) {</div><div class='del'>-		GList *node;</div><div class='del'>-		</div><div class='del'>-		for (node = crd-&gt;dellabel.l; node; node = node-&gt;next) {</div><div class='del'>-			CardDelLabel *dellabel = (CardDelLabel *) node-&gt;data;</div><div class='del'>-			</div><div class='del'>-			add_strProp_to_string (string, N_("\nDelivery Label: "),</div><div class='del'>-					    dellabel-&gt;data);</div><div class='del'>-			add_strAddrType (string, dellabel-&gt;type);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;phone.l) {</div><div class='del'>-		GList *node;</div><div class='del'>-		char *sep;</div><div class='del'>-		</div><div class='del'>-		if (crd-&gt;phone.l-&gt;next) {</div><div class='del'>-			sep = "  ";</div><div class='del'>-			g_string_append (string, N_("\nTelephones:\n"));</div><div class='del'>-		} else {</div><div class='del'>-			sep = " ";</div><div class='del'>-			g_string_append (string, N_("\nTelephone:"));</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		for (node = crd-&gt;phone.l; node; node = node-&gt;next) {</div><div class='del'>-			CardPhone *phone = (CardPhone *) node-&gt;data;</div><div class='del'>-</div><div class='del'>-			if (phone-&gt;prop.used) {</div><div class='del'>-				g_string_append (string, sep);</div><div class='del'>-				g_string_append (string, phone-&gt;data);</div><div class='del'>-				add_strPhoneType (string, phone-&gt;type);</div><div class='del'>-				g_string_append_c (string, '\n');</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		if (crd-&gt;phone.l-&gt;next)</div><div class='del'>-		  g_string_append_c (string, '\n');</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (crd-&gt;email.l) {</div><div class='del'>-		GList *node;</div><div class='del'>-		char *sep;</div><div class='del'>-		</div><div class='del'>-		if (crd-&gt;email.l-&gt;next) {</div><div class='del'>-			sep = "  ";</div><div class='del'>-			g_string_append (string, N_("\nE-mail:\n"));</div><div class='del'>-		} else {</div><div class='del'>-			sep = " ";</div><div class='del'>-			g_string_append (string, N_("\nE-mail:"));</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		</div><div class='del'>-		for (node = crd-&gt;email.l; node; node = node-&gt;next) {</div><div class='del'>-			CardEMail *email = (CardEMail *) node-&gt;data;</div><div class='del'>-			</div><div class='del'>-			if (email-&gt;prop.used) {</div><div class='del'>-				g_string_append (string, sep);</div><div class='del'>-				g_string_append (string, email-&gt;data);</div><div class='del'>-				add_strEMailType (string, email-&gt;type);</div><div class='del'>-				g_string_append_c (string, '\n');</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		if (crd-&gt;email.l-&gt;next)</div><div class='del'>-		  g_string_append_c (string, '\n');</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	add_CardStrProperty_to_string (string, N_("\nMailer: "), &amp;crd-&gt;mailer);</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;timezn.prop.used) {</div><div class='del'>-		char *str;</div><div class='del'>-		</div><div class='del'>-		str = card_timezn_str (crd-&gt;timezn);</div><div class='del'>-		add_strProp_to_string (string, N_("\nTime Zone: "), str);</div><div class='del'>-		free (str);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;geopos.prop.used) {</div><div class='del'>-		char *str;</div><div class='del'>-		</div><div class='del'>-		str = card_geopos_str (crd-&gt;geopos);</div><div class='del'>-		add_strProp_to_string (string, N_("\nGeo Location: "), str);</div><div class='del'>-		free (str);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-        add_CardStrProperty_to_string (string, N_("\nBusiness Role: "), &amp;crd-&gt;role);</div><div class='del'>-	</div><div class='del'>-/*	if (crd-&gt;logo.prop.used) {</div><div class='del'>-		addPropSizedValue (string, _ ("\nLogo: "), </div><div class='del'>-					  crd-&gt;logo.data, crd-&gt;logo.size);</div><div class='del'>-		add_PhotoType (string, crd-&gt;logo.type);</div><div class='del'>-	}*/</div><div class='del'>-	</div><div class='del'>-/*	if (crd-&gt;agent)</div><div class='del'>-	  addstringectProp (string, card_convert_to_stringect (crd-&gt;agent));*/</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;org.prop.used) {</div><div class='del'>-		addProp_to_string (string, N_("\nOrg: "));</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Name:  "), crd-&gt;org.name);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Unit:  "), crd-&gt;org.unit1);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Unit2: "), crd-&gt;org.unit2);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Unit3: "), crd-&gt;org.unit3);</div><div class='del'>-		add_strProp_to_string (string, N_("\n  Unit4: "), crd-&gt;org.unit4);</div><div class='del'>-		g_string_append_c (string, '\n');</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-        add_CardStrProperty_to_string (string, N_("\nCategories: "), &amp;crd-&gt;categories);</div><div class='del'>-        add_CardStrProperty_to_string (string, N_("\nComment: "), &amp;crd-&gt;comment);</div><div class='del'>-	</div><div class='del'>-/*	if (crd-&gt;sound.prop.used) {</div><div class='del'>-		if (crd-&gt;sound.type != SOUND_PHONETIC)</div><div class='del'>-		  addPropSizedValue (string, _ ("\nPronunciation: "),</div><div class='del'>-					    crd-&gt;sound.data, crd-&gt;sound.size);</div><div class='del'>-		else</div><div class='del'>-		  add_strProp_to_string (string, _ ("\nPronunciation: "), </div><div class='del'>-				       crd-&gt;sound.data);</div><div class='del'>-		</div><div class='del'>-		add_SoundType (string, crd-&gt;sound.type);</div><div class='del'>-	}*/</div><div class='del'>-	</div><div class='del'>-        add_CardStrProperty_to_string (string, N_("\nUnique String: "), &amp;crd-&gt;uid);</div><div class='del'>-	</div><div class='del'>-	if (crd-&gt;key.prop.used) {</div><div class='del'>-		add_strProp_to_string (string, N_("\nPublic Key: "), crd-&gt;key.data);</div><div class='del'>-		add_strKeyType (string, crd-&gt;key.type);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	ret = g_strdup (string-&gt;str);</div><div class='del'>-	g_string_free (string, TRUE);</div><div class='del'>-	</div><div class='del'>-	return ret;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static ECardDate</div><div class='del'>-e_card_date_from_string (char *str)</div><div class='del'>-{</div><div class='del'>-	ECardDate date;</div><div class='del'>-	int length;</div><div class='del'>-</div><div class='del'>-	date.year = 0;</div><div class='del'>-	date.month = 0;</div><div class='del'>-	date.day = 0;</div><div class='del'>-</div><div class='del'>-	length = strlen(str);</div><div class='del'>-	</div><div class='del'>-	if (length == 10 ) {</div><div class='del'>-		date.year = str[0] * 1000 + str[1] * 100 + str[2] * 10 + str[3] - '0' * 1111;</div><div class='del'>-		date.month = str[5] * 10 + str[6] - '0' * 11;</div><div class='del'>-		date.day = str[8] * 10 + str[9] - '0' * 11;</div><div class='del'>-	} else if ( length == 8 ) {</div><div class='del'>-		date.year = str[0] * 1000 + str[1] * 100 + str[2] * 10 + str[3] - '0' * 1111;</div><div class='del'>-		date.month = str[4] * 10 + str[5] - '0' * 11;</div><div class='del'>-		date.day = str[6] * 10 + str[7] - '0' * 11;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return date;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-e_v_object_get_child_value(VObject *vobj, char *name, char *default_charset)</div><div class='del'>-{</div><div class='del'>-	char *ret_val;</div><div class='del'>-	VObjectIterator iterator;</div><div class='del'>-	gboolean free_charset = FALSE;</div><div class='del'>-	VObject *charset_obj;</div><div class='del'>-</div><div class='del'>-	if ((charset_obj = isAPropertyOf (vobj, "CHARSET"))) {</div><div class='del'>-		switch (vObjectValueType (charset_obj)) {</div><div class='del'>-		case VCVT_STRINGZ:</div><div class='del'>-			default_charset = (char *) vObjectStringZValue(charset_obj);</div><div class='del'>-			break;</div><div class='del'>-		case VCVT_USTRINGZ:</div><div class='del'>-			default_charset = fakeCString (vObjectUStringZValue (charset_obj));</div><div class='del'>-			free_charset = TRUE;</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	initPropIterator(&amp;iterator, vobj);</div><div class='del'>-	while(moreIteration (&amp;iterator)) {</div><div class='del'>-		VObject *attribute = nextVObject(&amp;iterator);</div><div class='del'>-		const char *id = vObjectName(attribute);</div><div class='del'>-		if ( ! strcmp(id, name) ) {</div><div class='del'>-			assign_string(attribute, default_charset, &amp;ret_val);</div><div class='del'>-			return ret_val;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	if (free_charset)</div><div class='del'>-		free (default_charset);</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardPhoneFlags</div><div class='del'>-get_phone_flags (VObject *vobj)</div><div class='del'>-{</div><div class='del'>-	ECardPhoneFlags ret = 0;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	struct { </div><div class='del'>-		char *id;</div><div class='del'>-		ECardPhoneFlags flag;</div><div class='del'>-	} phone_pairs[] = {</div><div class='del'>-		{ VCPreferredProp, E_CARD_PHONE_PREF },</div><div class='del'>-		{ VCWorkProp,      E_CARD_PHONE_WORK },</div><div class='del'>-		{ VCHomeProp,      E_CARD_PHONE_HOME },</div><div class='del'>-		{ VCVoiceProp,     E_CARD_PHONE_VOICE },</div><div class='del'>-		{ VCFaxProp,       E_CARD_PHONE_FAX },</div><div class='del'>-		{ VCMessageProp,   E_CARD_PHONE_MSG },</div><div class='del'>-		{ VCCellularProp,  E_CARD_PHONE_CELL },</div><div class='del'>-		{ VCPagerProp,     E_CARD_PHONE_PAGER },</div><div class='del'>-		{ VCBBSProp,       E_CARD_PHONE_BBS },</div><div class='del'>-		{ VCModemProp,     E_CARD_PHONE_MODEM },</div><div class='del'>-		{ VCCarProp,       E_CARD_PHONE_CAR },</div><div class='del'>-		{ VCISDNProp,      E_CARD_PHONE_ISDN },</div><div class='del'>-		{ VCVideoProp,     E_CARD_PHONE_VIDEO },</div><div class='del'>-		{ "X-EVOLUTION-ASSISTANT", E_CARD_PHONE_ASSISTANT },</div><div class='del'>-		{ "X-EVOLUTION-CALLBACK",  E_CARD_PHONE_CALLBACK  },</div><div class='del'>-		{ "X-EVOLUTION-RADIO",     E_CARD_PHONE_RADIO     },</div><div class='del'>-		{ "X-EVOLUTION-TELEX",     E_CARD_PHONE_TELEX     },</div><div class='del'>-		{ "X-EVOLUTION-TTYTDD",    E_CARD_PHONE_TTYTDD    },</div><div class='del'>-	};</div><div class='del'>-	</div><div class='del'>-	for (i = 0; i &lt; sizeof(phone_pairs) / sizeof(phone_pairs[0]); i++) {</div><div class='del'>-		if (isAPropertyOf (vobj, phone_pairs[i].id)) {</div><div class='del'>-			ret |= phone_pairs[i].flag;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return ret;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_phone_flags (VObject *vobj, ECardPhoneFlags flags)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	struct { </div><div class='del'>-		char *id;</div><div class='del'>-		ECardPhoneFlags flag;</div><div class='del'>-	} phone_pairs[] = {</div><div class='del'>-		{ VCPreferredProp,         E_CARD_PHONE_PREF },</div><div class='del'>-		{ VCWorkProp,              E_CARD_PHONE_WORK },</div><div class='del'>-		{ VCHomeProp,              E_CARD_PHONE_HOME },</div><div class='del'>-		{ VCVoiceProp,             E_CARD_PHONE_VOICE },</div><div class='del'>-		{ VCFaxProp,               E_CARD_PHONE_FAX },</div><div class='del'>-		{ VCMessageProp,           E_CARD_PHONE_MSG },</div><div class='del'>-		{ VCCellularProp,          E_CARD_PHONE_CELL },</div><div class='del'>-		{ VCPagerProp,             E_CARD_PHONE_PAGER },</div><div class='del'>-		{ VCBBSProp,               E_CARD_PHONE_BBS },</div><div class='del'>-		{ VCModemProp,             E_CARD_PHONE_MODEM },</div><div class='del'>-		{ VCCarProp,               E_CARD_PHONE_CAR },</div><div class='del'>-		{ VCISDNProp,              E_CARD_PHONE_ISDN },</div><div class='del'>-		{ VCVideoProp,             E_CARD_PHONE_VIDEO },</div><div class='del'>-		{ "X-EVOLUTION-ASSISTANT", E_CARD_PHONE_ASSISTANT },</div><div class='del'>-		{ "X-EVOLUTION-CALLBACK",  E_CARD_PHONE_CALLBACK  },</div><div class='del'>-		{ "X-EVOLUTION-RADIO",     E_CARD_PHONE_RADIO     },</div><div class='del'>-		{ "X-EVOLUTION-TELEX",     E_CARD_PHONE_TELEX     },</div><div class='del'>-		{ "X-EVOLUTION-TTYTDD",    E_CARD_PHONE_TTYTDD    },</div><div class='del'>-	};</div><div class='del'>-	</div><div class='del'>-	for (i = 0; i &lt; sizeof(phone_pairs) / sizeof(phone_pairs[0]); i++) {</div><div class='del'>-		if (flags &amp; phone_pairs[i].flag) {</div><div class='del'>-				addProp (vobj, phone_pairs[i].id);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardAddressFlags</div><div class='del'>-get_address_flags (VObject *vobj)</div><div class='del'>-{</div><div class='del'>-	ECardAddressFlags ret = 0;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	struct { </div><div class='del'>-		char *id;</div><div class='del'>-		ECardAddressFlags flag;</div><div class='del'>-	} addr_pairs[] = {</div><div class='del'>-		{ VCDomesticProp, E_CARD_ADDR_DOM },</div><div class='del'>-		{ VCInternationalProp, E_CARD_ADDR_INTL },</div><div class='del'>-		{ VCPostalProp, E_CARD_ADDR_POSTAL },</div><div class='del'>-		{ VCParcelProp, E_CARD_ADDR_PARCEL },</div><div class='del'>-		{ VCHomeProp, E_CARD_ADDR_HOME },</div><div class='del'>-		{ VCWorkProp, E_CARD_ADDR_WORK },</div><div class='del'>-	};</div><div class='del'>-	</div><div class='del'>-	for (i = 0; i &lt; sizeof(addr_pairs) / sizeof(addr_pairs[0]); i++) {</div><div class='del'>-		if (isAPropertyOf (vobj, addr_pairs[i].id)) {</div><div class='del'>-			ret |= addr_pairs[i].flag;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return ret;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_address_flags (VObject *vobj, ECardAddressFlags flags)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	struct { </div><div class='del'>-		char *id;</div><div class='del'>-		ECardAddressFlags flag;</div><div class='del'>-	} addr_pairs[] = {</div><div class='del'>-		{ VCDomesticProp, E_CARD_ADDR_DOM },</div><div class='del'>-		{ VCInternationalProp, E_CARD_ADDR_INTL },</div><div class='del'>-		{ VCPostalProp, E_CARD_ADDR_POSTAL },</div><div class='del'>-		{ VCParcelProp, E_CARD_ADDR_PARCEL },</div><div class='del'>-		{ VCHomeProp, E_CARD_ADDR_HOME },</div><div class='del'>-		{ VCWorkProp, E_CARD_ADDR_WORK },</div><div class='del'>-	};</div><div class='del'>-	</div><div class='del'>-	for (i = 0; i &lt; sizeof(addr_pairs) / sizeof(addr_pairs[0]); i++) {</div><div class='del'>-		if (flags &amp; addr_pairs[i].flag) {</div><div class='del'>-			addProp (vobj, addr_pairs[i].id);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#include &lt;Evolution-Composer.h&gt;</div><div class='del'>-</div><div class='del'>-#define COMPOSER_OAFID "OAFIID:GNOME_Evolution_Mail_Composer"</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_list_send (GList *cards, ECardDisposition disposition)</div><div class='del'>-{</div><div class='del'>-	BonoboObjectClient *bonobo_server;</div><div class='del'>-	GNOME_Evolution_Composer composer_server;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	if (cards == NULL)</div><div class='del'>-		return;</div><div class='del'>-	</div><div class='del'>-	/* First, I obtain an object reference that represents the Composer. */</div><div class='del'>-	bonobo_server = bonobo_object_activate (COMPOSER_OAFID, 0);</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (bonobo_server != NULL);</div><div class='del'>-</div><div class='del'>-	composer_server = bonobo_object_corba_objref (BONOBO_OBJECT (bonobo_server));</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (disposition == E_CARD_DISPOSITION_AS_TO) {</div><div class='del'>-		GNOME_Evolution_Composer_RecipientList *to_list, *cc_list, *bcc_list;</div><div class='del'>-		CORBA_char *subject;</div><div class='del'>-		int to_i, bcc_i;</div><div class='del'>-		GList *iter;</div><div class='del'>-		gint to_length = 0, bcc_length = 0;</div><div class='del'>-</div><div class='del'>-		/* Figure out how many addresses of each kind we have. */</div><div class='del'>-		for (iter = cards; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>-			ECard *card = E_CARD (iter-&gt;data);</div><div class='del'>-			if (e_card_evolution_list (card)) {</div><div class='del'>-				gint len = card-&gt;email ? e_list_length (card-&gt;email) : 0;</div><div class='del'>-				if (e_card_evolution_list_show_addresses (card))</div><div class='del'>-					to_length += len;</div><div class='del'>-				else</div><div class='del'>-					bcc_length += len;</div><div class='del'>-			} else {</div><div class='del'>-				if (card-&gt;email != NULL)</div><div class='del'>-					++to_length;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* Now I have to make a CORBA sequences that represents a recipient list with</div><div class='del'>-		   the right number of entries, for the cards. */</div><div class='del'>-		to_list = GNOME_Evolution_Composer_RecipientList__alloc ();</div><div class='del'>-		to_list-&gt;_maximum = to_length;</div><div class='del'>-		to_list-&gt;_length = to_length;</div><div class='del'>-		if (to_length &gt; 0) {</div><div class='del'>-			to_list-&gt;_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (to_length);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		cc_list = GNOME_Evolution_Composer_RecipientList__alloc ();</div><div class='del'>-		cc_list-&gt;_maximum = cc_list-&gt;_length = 0;</div><div class='del'>-		</div><div class='del'>-		bcc_list = GNOME_Evolution_Composer_RecipientList__alloc ();</div><div class='del'>-		bcc_list-&gt;_maximum = bcc_length;</div><div class='del'>-		bcc_list-&gt;_length = bcc_length;</div><div class='del'>-		if (bcc_length &gt; 0) {</div><div class='del'>-			bcc_list-&gt;_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (bcc_length);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		to_i = 0;</div><div class='del'>-		bcc_i = 0;</div><div class='del'>-		while (cards != NULL) {</div><div class='del'>-			ECard *card = cards-&gt;data;</div><div class='del'>-			EIterator *iterator;</div><div class='del'>-			gchar *name, *addr;</div><div class='del'>-			gboolean is_list, is_hidden, free_name_addr;</div><div class='del'>-			GNOME_Evolution_Composer_Recipient *recipient;</div><div class='del'>-</div><div class='del'>-			if (card-&gt;email != NULL) {</div><div class='del'>-</div><div class='del'>-				is_list = e_card_evolution_list (card);</div><div class='del'>-				is_hidden = is_list &amp;&amp; !e_card_evolution_list_show_addresses (card);</div><div class='del'>-			</div><div class='del'>-				for (iterator = e_list_get_iterator (card-&gt;email); e_iterator_is_valid (iterator); e_iterator_next (iterator)) {</div><div class='del'>-					</div><div class='del'>-					if (is_hidden) {</div><div class='del'>-						recipient = &amp;(bcc_list-&gt;_buffer[bcc_i]);</div><div class='del'>-						++bcc_i;</div><div class='del'>-					} else {</div><div class='del'>-						recipient = &amp;(to_list-&gt;_buffer[to_i]);</div><div class='del'>-						++to_i;</div><div class='del'>-					}</div><div class='del'>-					</div><div class='del'>-					name = "";</div><div class='del'>-					addr = "";</div><div class='del'>-					free_name_addr = FALSE;</div><div class='del'>-					if (e_iterator_is_valid (iterator)) {</div><div class='del'>-						</div><div class='del'>-						if (is_list) {</div><div class='del'>-							/* We need to decode the list entries, which are XMLified EDestinations. */</div><div class='del'>-							EDestination *dest = e_destination_import (e_iterator_get (iterator));</div><div class='del'>-							if (dest != NULL) {</div><div class='del'>-								name = g_strdup (e_destination_get_name (dest));</div><div class='del'>-								addr = g_strdup (e_destination_get_email (dest));</div><div class='del'>-								free_name_addr = TRUE;</div><div class='del'>-								gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-							}</div><div class='del'>-							</div><div class='del'>-						} else { /* is just a plain old card */</div><div class='del'>-							if (card-&gt;name)</div><div class='del'>-								name = e_card_name_to_string (card-&gt;name);</div><div class='del'>-							addr = g_strdup ((char *) e_iterator_get (iterator));</div><div class='del'>-							free_name_addr = TRUE;</div><div class='del'>-						}</div><div class='del'>-					}</div><div class='del'>-					</div><div class='del'>-					recipient-&gt;name    = CORBA_string_dup (name ? name : "");</div><div class='del'>-					recipient-&gt;address = CORBA_string_dup (addr ? addr : "");</div><div class='del'>-					</div><div class='del'>-					if (free_name_addr) {</div><div class='del'>-						g_free ((gchar *) name);</div><div class='del'>-						g_free ((gchar *) addr);</div><div class='del'>-					}</div><div class='del'>-					</div><div class='del'>-					/* If this isn't a list, we quit after the first (i.e. the default) address. */</div><div class='del'>-					if (!is_list)</div><div class='del'>-						break;</div><div class='del'>-					</div><div class='del'>-				}</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (iterator));</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			cards = g_list_next (cards);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-		subject = CORBA_string_dup ("");</div><div class='del'>-</div><div class='del'>-		GNOME_Evolution_Composer_setHeaders (composer_server, to_list, cc_list, bcc_list, subject, &amp;ev);</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_printerr ("gui/e-meeting-edit.c: I couldn't set the composer headers via CORBA! Aagh.\n");</div><div class='del'>-			CORBA_exception_free (&amp;ev);</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		CORBA_free (to_list);</div><div class='del'>-		CORBA_free (cc_list);</div><div class='del'>-		CORBA_free (bcc_list);</div><div class='del'>-		CORBA_free (subject);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (disposition == E_CARD_DISPOSITION_AS_ATTACHMENT) {</div><div class='del'>-		CORBA_char *content_type, *filename, *description;</div><div class='del'>-		GNOME_Evolution_Composer_AttachmentData *attach_data;</div><div class='del'>-		CORBA_boolean show_inline;</div><div class='del'>-		char *tempstr;</div><div class='del'>-		</div><div class='del'>-		content_type = CORBA_string_dup ("text/x-vcard");</div><div class='del'>-		filename = CORBA_string_dup ("");</div><div class='del'>-</div><div class='del'>-		if (cards-&gt;next) {</div><div class='del'>-			description = CORBA_string_dup (_("Multiple VCards"));</div><div class='del'>-		} else {</div><div class='del'>-			char *file_as;</div><div class='del'>-</div><div class='del'>-			gtk_object_get(GTK_OBJECT(cards-&gt;data),</div><div class='del'>-				       "file_as", &amp;file_as,</div><div class='del'>-				       NULL);</div><div class='del'>-</div><div class='del'>-			tempstr = g_strdup_printf (_("VCard for %s"), file_as);</div><div class='del'>-			description = CORBA_string_dup (tempstr);</div><div class='del'>-			g_free (tempstr);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		show_inline = FALSE;</div><div class='del'>-</div><div class='del'>-		tempstr = e_card_list_get_vcard (cards);</div><div class='del'>-		attach_data = GNOME_Evolution_Composer_AttachmentData__alloc();</div><div class='del'>-		attach_data-&gt;_maximum = attach_data-&gt;_length = strlen (tempstr);</div><div class='del'>-		attach_data-&gt;_buffer = CORBA_sequence_CORBA_char_allocbuf (attach_data-&gt;_length);</div><div class='del'>-		strcpy (attach_data-&gt;_buffer, tempstr);</div><div class='del'>-		g_free (tempstr);</div><div class='del'>-</div><div class='del'>-		GNOME_Evolution_Composer_attachData (composer_server, </div><div class='del'>-						     content_type, filename, description,</div><div class='del'>-						     show_inline, attach_data,</div><div class='del'>-						     &amp;ev);</div><div class='del'>-	</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_printerr ("gui/e-meeting-edit.c: I couldn't attach data to the composer via CORBA! Aagh.\n");</div><div class='del'>-			CORBA_exception_free (&amp;ev);</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-	</div><div class='del'>-		CORBA_free (content_type);</div><div class='del'>-		CORBA_free (filename);</div><div class='del'>-		CORBA_free (description);</div><div class='del'>-		CORBA_free (attach_data);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Composer_show (composer_server, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_printerr ("gui/e-meeting-edit.c: I couldn't show the composer via CORBA! Aagh.\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_send (ECard *card, ECardDisposition disposition)</div><div class='del'>-{</div><div class='del'>-	GList *list;</div><div class='del'>-	list = g_list_prepend (NULL, card);</div><div class='del'>-	e_card_list_send (list, disposition);</div><div class='del'>-	g_list_free (list);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_card_evolution_list (ECard *card)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (card &amp;&amp; E_IS_CARD (card), FALSE);</div><div class='del'>-	return card-&gt;list;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_card_evolution_list_show_addresses (ECard *card)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (card &amp;&amp; E_IS_CARD (card), FALSE);</div><div class='del'>-	return card-&gt;list_show_addresses;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct _CardLoadData CardLoadData;</div><div class='del'>-struct _CardLoadData {</div><div class='del'>-	gchar *card_id;</div><div class='del'>-	ECardCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_card_cb (EBook *book, EBookStatus status, ECard *card, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	CardLoadData *data = (CardLoadData *) closure;</div><div class='del'>-</div><div class='del'>-	if (data-&gt;cb != NULL) {</div><div class='del'>-		if (status == E_BOOK_STATUS_SUCCESS)</div><div class='del'>-			data-&gt;cb (card, data-&gt;closure);</div><div class='del'>-		else</div><div class='del'>-			data-&gt;cb (NULL, data-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (data-&gt;card_id);</div><div class='del'>-	g_free (data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_load_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	CardLoadData *data = (CardLoadData *) closure;</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS)</div><div class='del'>-		e_book_get_card (book, data-&gt;card_id, get_card_cb, closure);</div><div class='del'>-	else {</div><div class='del'>-		data-&gt;cb (NULL, data-&gt;closure);</div><div class='del'>-		g_free (data-&gt;card_id);</div><div class='del'>-		g_free (data);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_card_load_uri (const gchar *book_uri, const gchar *uid, ECardCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	CardLoadData *data;</div><div class='del'>-	EBook *book;</div><div class='del'>-	</div><div class='del'>-	data          = g_new (CardLoadData, 1);</div><div class='del'>-	data-&gt;card_id = g_strdup (uid);</div><div class='del'>-	data-&gt;cb      = cb;</div><div class='del'>-	data-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	book = e_book_new ();</div><div class='del'>-	e_book_load_uri (book, book_uri, card_load_cb, data);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-card.h b/addressbook/backend/ebook/e-card.h<br/>deleted file mode 100644<br/>index 3fa6ca2700..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-card.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-card.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,214 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors:</div><div class='del'>- *   Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *   Arturo Espinosa</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- * Copyright (C) 1999 The Free Software Foundation</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_CARD_H__</div><div class='del'>-#define __E_CARD_H__</div><div class='del'>-</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card-types.h&gt;</div><div class='del'>-#include &lt;e-util/e-list.h&gt;</div><div class='del'>-</div><div class='del'>-#define E_TYPE_CARD            (e_card_get_type ())</div><div class='del'>-#define E_CARD(obj)            (GTK_CHECK_CAST ((obj), E_TYPE_CARD, ECard))</div><div class='del'>-#define E_CARD_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_CARD, ECardClass))</div><div class='del'>-#define E_IS_CARD(obj)         (GTK_CHECK_TYPE ((obj), E_TYPE_CARD))</div><div class='del'>-#define E_IS_CARD_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_CARD))</div><div class='del'>-</div><div class='del'>-typedef struct _ECard ECard;</div><div class='del'>-typedef struct _ECardClass ECardClass;</div><div class='del'>-</div><div class='del'>-struct _EBook; /* Forward reference */</div><div class='del'>-</div><div class='del'>-struct _ECard {</div><div class='del'>-	GtkObject object;</div><div class='del'>-	char *id;</div><div class='del'>-</div><div class='del'>-	struct _EBook   *book;          /* The EBook this card is from.     */</div><div class='del'>-</div><div class='del'>-	char            *file_as;       /* The File As field.               */</div><div class='del'>-	char            *fname;         /* The full name.                   */</div><div class='del'>-	ECardName       *name;          /* The structured name.             */</div><div class='del'>-	EList           *address;  	/* Delivery addresses (ECardDeliveryAddress *) */</div><div class='del'>-	EList           *address_label; /* Delivery address labels</div><div class='del'>-					 * (ECardAddrLabel *)               */</div><div class='del'>-</div><div class='del'>-	EList           *phone;         /* Phone numbers (ECardPhone *)     */</div><div class='del'>-	EList           *email;         /* Email addresses (char *)         */</div><div class='del'>-	char            *url;	        /* The person's web page.           */</div><div class='del'>-</div><div class='del'>-	ECardDate       *bday;	        /* The person's birthday.           */</div><div class='del'>-</div><div class='del'>-	char            *note;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	char            *org;           /* The person's organization.       */</div><div class='del'>-	char            *org_unit;      /* The person's organization unit.  */</div><div class='del'>-	char            *office;        /* The person's office.             */</div><div class='del'>-	char            *role;          /* The person's role w/in his org   */</div><div class='del'>-	char            *title;	        /* The person's title w/in his org  */</div><div class='del'>-</div><div class='del'>-	char            *manager;</div><div class='del'>-	char            *assistant;</div><div class='del'>-</div><div class='del'>-	char            *nickname;      /* The person's nickname            */</div><div class='del'>-	</div><div class='del'>-	char            *spouse;        /* The person's spouse.             */</div><div class='del'>-	ECardDate       *anniversary;   /* The person's anniversary.        */</div><div class='del'>-</div><div class='del'>-	char            *mailer;        /* Mailer                           */</div><div class='del'>-</div><div class='del'>-	char            *caluri;        /* Calendar URI                     */</div><div class='del'>-	char            *fburl;         /* Free Busy URL                    */</div><div class='del'>-</div><div class='del'>-	gint             timezone;      /* number of minutes from UTC as an int */</div><div class='del'>-</div><div class='del'>-	ECardDate       *last_use;</div><div class='del'>-	float            raw_use_score;</div><div class='del'>-</div><div class='del'>-	char            *related_contacts;  /* EDestinationV (serialized) of related contacts. */</div><div class='del'>-</div><div class='del'>-	EList           *categories;    /* Categories.                      */</div><div class='del'>-</div><div class='del'>-	EList           *arbitrary;     /* Arbitrary fields.                */</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	guint32         wants_html : 1;     /* Wants html mail. */</div><div class='del'>-	guint32         wants_html_set : 1; /* Wants html mail. */</div><div class='del'>-	guint32		list : 1; /* If the card corresponds to a contact list */</div><div class='del'>-	guint32		list_show_addresses : 1; /* Whether to show the addresses</div><div class='del'>-						    in the To: or Bcc: field */</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-	ECardPhoto      *logo;          /* This person's org's logo.        */</div><div class='del'>-</div><div class='del'>-	ECardPhoto      *photo;    	/* A photo of the person.           */</div><div class='del'>-	</div><div class='del'>-	ECard           *agent;         /* A person who sereves as this</div><div class='del'>-					   guy's agent/secretary/etc.       */</div><div class='del'>-</div><div class='del'>-	ECardSound      *sound;</div><div class='del'>-</div><div class='del'>-	ECardKey        *key;	        /* The person's public key.         */</div><div class='del'>-	ECardTimeZone   *timezn;        /* The person's time zone.          */</div><div class='del'>-	ECardGeoPos     *geopos;        /* The person's long/lat.           */</div><div class='del'>-</div><div class='del'>-	ECardRev        *rev;	        /* The time this card was last</div><div class='del'>-					   modified.                        */</div><div class='del'>-</div><div class='del'>-	EList        xtension;</div><div class='del'>-#endif</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ECardClass {</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-	GHashTable    *attribute_jump_table;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Simple functions */</div><div class='del'>-ECard                *e_card_new                                          (char                       *vcard); /* Assumes utf8 */</div><div class='del'>-ECard                *e_card_new_with_default_charset                     (char                       *vcard,</div><div class='del'>-									   char                       *default_charset);</div><div class='del'>-const char           *e_card_get_id                                       (ECard                      *card);</div><div class='del'>-void                  e_card_set_id                                       (ECard                      *card,</div><div class='del'>-									   const char                 *character);</div><div class='del'>-</div><div class='del'>-struct _EBook        *e_card_get_book                                     (ECard                      *card);</div><div class='del'>-void                  e_card_set_book                                     (ECard                      *card,</div><div class='del'>-									   struct _EBook              *book);</div><div class='del'>-char                 *e_card_get_vcard                                    (ECard                      *card);</div><div class='del'>-char                 *e_card_get_vcard_assume_utf8                        (ECard                      *card);</div><div class='del'>-char                 *e_card_list_get_vcard                               (const GList                *list);</div><div class='del'>-ECard                *e_card_duplicate                                    (ECard                      *card);</div><div class='del'>-float                 e_card_get_use_score                                (ECard                      *card);</div><div class='del'>-void                  e_card_touch                                        (ECard                      *card);</div><div class='del'>-</div><div class='del'>-/* Evolution List convenience functions */</div><div class='del'>-/*   used for encoding uids in email addresses */</div><div class='del'>-gboolean              e_card_evolution_list                               (ECard                      *card);</div><div class='del'>-gboolean              e_card_evolution_list_show_addresses                (ECard                      *card);</div><div class='del'>-</div><div class='del'>-/* ECardPhone manipulation */</div><div class='del'>-ECardPhone           *e_card_phone_new                                    (void);</div><div class='del'>-ECardPhone           *e_card_phone_copy                                   (const ECardPhone           *phone);</div><div class='del'>-ECardPhone           *e_card_phone_ref                                    (const ECardPhone           *phone);</div><div class='del'>-void                  e_card_phone_unref                                  (ECardPhone                 *phone);</div><div class='del'>-</div><div class='del'>-/* ECardDeliveryAddress manipulation */</div><div class='del'>-ECardDeliveryAddress *e_card_delivery_address_new                         (void);</div><div class='del'>-ECardDeliveryAddress *e_card_delivery_address_copy                        (const ECardDeliveryAddress *addr);</div><div class='del'>-ECardDeliveryAddress *e_card_delivery_address_ref                         (const ECardDeliveryAddress *addr);</div><div class='del'>-void                  e_card_delivery_address_unref                       (ECardDeliveryAddress       *addr);</div><div class='del'>-gboolean              e_card_delivery_address_is_empty                    (const ECardDeliveryAddress *addr);</div><div class='del'>-char                 *e_card_delivery_address_to_string                   (const ECardDeliveryAddress *addr);</div><div class='del'>-ECardDeliveryAddress *e_card_delivery_address_from_label                  (const ECardAddrLabel       *label);</div><div class='del'>-ECardAddrLabel       *e_card_delivery_address_to_label                    (const ECardDeliveryAddress *addr);</div><div class='del'>-</div><div class='del'>-/* ECardAddrLabel manipulation */</div><div class='del'>-ECardAddrLabel       *e_card_address_label_new                            (void);</div><div class='del'>-ECardAddrLabel       *e_card_address_label_copy                           (const ECardAddrLabel       *addr);</div><div class='del'>-ECardAddrLabel       *e_card_address_label_ref                            (const ECardAddrLabel       *addr);</div><div class='del'>-void                  e_card_address_label_unref                          (ECardAddrLabel             *addr);</div><div class='del'>-</div><div class='del'>-/* ECardName manipulation */</div><div class='del'>-ECardName            *e_card_name_new                                     (void);</div><div class='del'>-ECardName            *e_card_name_copy                                    (const ECardName            *name);</div><div class='del'>-ECardName            *e_card_name_ref                                     (const ECardName            *name);</div><div class='del'>-void                  e_card_name_unref                                   (ECardName                  *name);</div><div class='del'>-char                 *e_card_name_to_string                               (const ECardName            *name);</div><div class='del'>-ECardName            *e_card_name_from_string                             (const char                 *full_name);</div><div class='del'>-</div><div class='del'>-/* ECardArbitrary manipulation */</div><div class='del'>-ECardArbitrary       *e_card_arbitrary_new                                (void);</div><div class='del'>-ECardArbitrary       *e_card_arbitrary_copy                               (const ECardArbitrary       *arbitrary);</div><div class='del'>-ECardArbitrary       *e_card_arbitrary_ref                                (const ECardArbitrary       *arbitrary);</div><div class='del'>-void                  e_card_arbitrary_unref                              (ECardArbitrary             *arbitrary);</div><div class='del'>-</div><div class='del'>-/* ECard email manipulation */</div><div class='del'>-gboolean              e_card_email_match_string                           (const ECard                *card,</div><div class='del'>-									   const gchar                *str);</div><div class='del'>-gint                  e_card_email_find_number                            (const ECard                *card,</div><div class='del'>-									   const gchar                *email);</div><div class='del'>-</div><div class='del'>-/* Specialized functionality */</div><div class='del'>-GList                *e_card_load_cards_from_file                         (const char                 *filename);</div><div class='del'>-GList                *e_card_load_cards_from_file_with_default_charset    (const char                 *filename,</div><div class='del'>-									   char                       *default_charset);</div><div class='del'>-GList                *e_card_load_cards_from_string                       (const char                 *str);</div><div class='del'>-GList                *e_card_load_cards_from_string_with_default_charset  (const char                 *str,</div><div class='del'>-									   char                       *default_charset);</div><div class='del'>-void                  e_card_free_empty_lists                             (ECard                      *card);</div><div class='del'>-</div><div class='del'>-enum _ECardDisposition {</div><div class='del'>-	E_CARD_DISPOSITION_AS_ATTACHMENT,</div><div class='del'>-	E_CARD_DISPOSITION_AS_TO,</div><div class='del'>-};</div><div class='del'>-typedef enum _ECardDisposition ECardDisposition;</div><div class='del'>-void                  e_card_send                           (ECard                      *card,</div><div class='del'>-							     ECardDisposition            disposition);</div><div class='del'>-void                  e_card_list_send                      (GList                      *cards,</div><div class='del'>-							     ECardDisposition            disposition);</div><div class='del'>-</div><div class='del'>-/* Getting ECards via their URIs */</div><div class='del'>-typedef void (*ECardCallback) (ECard *card, gpointer closure);</div><div class='del'>-void                  e_card_load_uri                       (const gchar                *book_uri,</div><div class='del'>-							     const gchar                *uid,</div><div class='del'>-							     ECardCallback               cb,</div><div class='del'>-							     gpointer                    closure);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Standard Gtk function */</div><div class='del'>-GtkType               e_card_get_type                       (void);</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_CARD_H__ */</div><div class='head'>diff --git a/addressbook/backend/ebook/e-destination.c b/addressbook/backend/ebook/e-destination.c<br/>deleted file mode 100644<br/>index ff674e41a6..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-destination.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-destination.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1644 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-destination.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include "e-destination.h"</div><div class='del'>-</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmain.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include "e-book.h"</div><div class='del'>-#include "e-book-util.h"</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include &lt;gnome-xml/parser.h&gt;</div><div class='del'>-#include &lt;gnome-xml/xmlmemory.h&gt;</div><div class='del'>-#include &lt;camel/camel-internet-address.h&gt;</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	CHANGED,</div><div class='del'>-	CARDIFIED,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-guint e_destination_signals[LAST_SIGNAL] = { 0 };</div><div class='del'>-</div><div class='del'>-struct _EDestinationPrivate {</div><div class='del'>-</div><div class='del'>-	gchar *raw;</div><div class='del'>-</div><div class='del'>-	gchar *book_uri;</div><div class='del'>-	gchar *card_uid;</div><div class='del'>-	ECard *card;</div><div class='del'>-	gint card_email_num;</div><div class='del'>-</div><div class='del'>-	ECard *old_card;</div><div class='del'>-	gint old_card_email_num;</div><div class='del'>-	gchar *old_textrep;</div><div class='del'>-</div><div class='del'>-	gchar *name;</div><div class='del'>-	gchar *email;</div><div class='del'>-	gchar *addr;</div><div class='del'>-	gchar *textrep;</div><div class='del'>-</div><div class='del'>-	gboolean html_mail_override;</div><div class='del'>-	gboolean wants_html_mail;</div><div class='del'>-</div><div class='del'>-	GList *list_dests;</div><div class='del'>-	gboolean show_addresses;</div><div class='del'>-</div><div class='del'>-	gboolean has_been_cardified;</div><div class='del'>-	gboolean allow_cardify;</div><div class='del'>-	gboolean cannot_cardify;</div><div class='del'>-	guint pending_cardification;</div><div class='del'>-	EBook *cardify_book;</div><div class='del'>-</div><div class='del'>-	gint freeze_count;</div><div class='del'>-	gboolean pending_change;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void e_destination_clear_card    (EDestination *);</div><div class='del'>-static void e_destination_clear_strings (EDestination *);</div><div class='del'>-</div><div class='del'>-static GtkObjectClass *parent_class;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_destination_destroy (GtkObject *obj)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest = E_DESTINATION (obj);</div><div class='del'>-</div><div class='del'>-	e_destination_clear (dest);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;old_card)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (dest-&gt;priv-&gt;old_card));</div><div class='del'>-	</div><div class='del'>-	if (dest-&gt;priv-&gt;cardify_book)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (dest-&gt;priv-&gt;cardify_book));</div><div class='del'>-</div><div class='del'>-	g_free (dest-&gt;priv-&gt;old_textrep);</div><div class='del'>-</div><div class='del'>-	g_free (dest-&gt;priv);</div><div class='del'>-</div><div class='del'>-	if (parent_class-&gt;destroy)</div><div class='del'>-		parent_class-&gt;destroy (obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_destination_class_init (EDestinationClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);</div><div class='del'>-</div><div class='del'>-	parent_class = GTK_OBJECT_CLASS (gtk_type_class (GTK_TYPE_OBJECT));</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_destination_destroy;</div><div class='del'>-</div><div class='del'>-	e_destination_signals[CHANGED] =</div><div class='del'>-		gtk_signal_new ("changed",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EDestinationClass, changed),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	e_destination_signals[CARDIFIED] =</div><div class='del'>-		gtk_signal_new ("cardified",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (EDestinationClass, cardified),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, e_destination_signals, LAST_SIGNAL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_destination_init (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	dest-&gt;priv = g_new0 (struct _EDestinationPrivate, 1);</div><div class='del'>-</div><div class='del'>-	dest-&gt;priv-&gt;allow_cardify = TRUE;</div><div class='del'>-	dest-&gt;priv-&gt;cannot_cardify = FALSE;</div><div class='del'>-	dest-&gt;priv-&gt;pending_cardification = 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_destination_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType dest_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!dest_type) {</div><div class='del'>-		GtkTypeInfo dest_info = {</div><div class='del'>-			"EDestination",</div><div class='del'>-			sizeof (EDestination),</div><div class='del'>-			sizeof (EDestinationClass),</div><div class='del'>-			(GtkClassInitFunc) e_destination_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_destination_init,</div><div class='del'>-			NULL, NULL, /* reserved */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		dest_type = gtk_type_unique (gtk_object_get_type (), &amp;dest_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return dest_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EDestination *</div><div class='del'>-e_destination_new (void)</div><div class='del'>-{</div><div class='del'>-	return E_DESTINATION (gtk_type_new (E_TYPE_DESTINATION));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_destination_freeze (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (dest-&gt;priv-&gt;freeze_count &gt;= 0);</div><div class='del'>-	++dest-&gt;priv-&gt;freeze_count;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_destination_thaw (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (dest-&gt;priv-&gt;freeze_count &gt; 0);</div><div class='del'>-	--dest-&gt;priv-&gt;freeze_count;</div><div class='del'>-	if (dest-&gt;priv-&gt;freeze_count == 0 &amp;&amp; dest-&gt;priv-&gt;pending_change)</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_changed (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	if (dest-&gt;priv-&gt;freeze_count == 0) {</div><div class='del'>-		gtk_signal_emit (GTK_OBJECT (dest), e_destination_signals[CHANGED]);</div><div class='del'>-		dest-&gt;priv-&gt;pending_change = FALSE;</div><div class='del'>-		dest-&gt;priv-&gt;cannot_cardify = FALSE;</div><div class='del'>-	</div><div class='del'>-	} else {</div><div class='del'>-		dest-&gt;priv-&gt;pending_change = TRUE;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EDestination *</div><div class='del'>-e_destination_copy (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	EDestination *new_dest;</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	new_dest = e_destination_new ();</div><div class='del'>-</div><div class='del'>-	new_dest-&gt;priv-&gt;book_uri           = g_strdup (dest-&gt;priv-&gt;book_uri);</div><div class='del'>-	new_dest-&gt;priv-&gt;card_uid           = g_strdup (dest-&gt;priv-&gt;card_uid);</div><div class='del'>-	new_dest-&gt;priv-&gt;name               = g_strdup (dest-&gt;priv-&gt;name);</div><div class='del'>-	new_dest-&gt;priv-&gt;email              = g_strdup (dest-&gt;priv-&gt;email);</div><div class='del'>-	new_dest-&gt;priv-&gt;addr               = g_strdup (dest-&gt;priv-&gt;addr);</div><div class='del'>-	new_dest-&gt;priv-&gt;card_email_num     = dest-&gt;priv-&gt;card_email_num;</div><div class='del'>-	new_dest-&gt;priv-&gt;old_card_email_num = dest-&gt;priv-&gt;old_card_email_num;</div><div class='del'>-	new_dest-&gt;priv-&gt;old_textrep        = g_strdup (dest-&gt;priv-&gt;old_textrep);</div><div class='del'>-</div><div class='del'>-	new_dest-&gt;priv-&gt;card     = dest-&gt;priv-&gt;card;</div><div class='del'>-	if (new_dest-&gt;priv-&gt;card)</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (new_dest-&gt;priv-&gt;card));</div><div class='del'>-</div><div class='del'>-	new_dest-&gt;priv-&gt;old_card = dest-&gt;priv-&gt;old_card;</div><div class='del'>-	if (new_dest-&gt;priv-&gt;old_card)</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (new_dest-&gt;priv-&gt;old_card));</div><div class='del'>-</div><div class='del'>-	new_dest-&gt;priv-&gt;html_mail_override = dest-&gt;priv-&gt;html_mail_override;</div><div class='del'>-	new_dest-&gt;priv-&gt;wants_html_mail    = dest-&gt;priv-&gt;wants_html_mail;</div><div class='del'>-</div><div class='del'>-	for (iter = dest-&gt;priv-&gt;list_dests; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>-		new_dest-&gt;priv-&gt;list_dests = g_list_append (new_dest-&gt;priv-&gt;list_dests,</div><div class='del'>-							    e_destination_copy (E_DESTINATION (iter-&gt;data)));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return new_dest;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_destination_clear_card (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	if (dest-&gt;priv-&gt;card) {</div><div class='del'>-		</div><div class='del'>-		if (dest-&gt;priv-&gt;old_card)</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (dest-&gt;priv-&gt;old_card));</div><div class='del'>-</div><div class='del'>-		dest-&gt;priv-&gt;old_card = dest-&gt;priv-&gt;card;</div><div class='del'>-		dest-&gt;priv-&gt;old_card_email_num = dest-&gt;priv-&gt;card_email_num;</div><div class='del'>-</div><div class='del'>-		g_free (dest-&gt;priv-&gt;old_textrep);</div><div class='del'>-		dest-&gt;priv-&gt;old_textrep = g_strdup (e_destination_get_textrep (dest));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (dest-&gt;priv-&gt;book_uri);</div><div class='del'>-	dest-&gt;priv-&gt;book_uri = NULL;</div><div class='del'>-	g_free (dest-&gt;priv-&gt;card_uid);</div><div class='del'>-	dest-&gt;priv-&gt;card_uid = NULL;</div><div class='del'>-</div><div class='del'>-	dest-&gt;priv-&gt;card = NULL;</div><div class='del'>-	dest-&gt;priv-&gt;card_email_num = -1;</div><div class='del'>-</div><div class='del'>-	g_list_foreach (dest-&gt;priv-&gt;list_dests, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (dest-&gt;priv-&gt;list_dests);</div><div class='del'>-	dest-&gt;priv-&gt;list_dests = NULL;</div><div class='del'>-</div><div class='del'>-	dest-&gt;priv-&gt;allow_cardify = TRUE;</div><div class='del'>-	dest-&gt;priv-&gt;cannot_cardify = FALSE;</div><div class='del'>-</div><div class='del'>-	e_destination_cancel_cardify (dest);</div><div class='del'>-</div><div class='del'>-	e_destination_changed (dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_destination_clear_strings (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_free (dest-&gt;priv-&gt;raw);</div><div class='del'>-	dest-&gt;priv-&gt;raw = NULL;</div><div class='del'>-		</div><div class='del'>-	g_free (dest-&gt;priv-&gt;name);</div><div class='del'>-	dest-&gt;priv-&gt;name = NULL;</div><div class='del'>-</div><div class='del'>-	g_free (dest-&gt;priv-&gt;email);</div><div class='del'>-	dest-&gt;priv-&gt;email = NULL;</div><div class='del'>-</div><div class='del'>-	g_free (dest-&gt;priv-&gt;addr);</div><div class='del'>-	dest-&gt;priv-&gt;addr = NULL;</div><div class='del'>-</div><div class='del'>-	g_free (dest-&gt;priv-&gt;textrep);</div><div class='del'>-	dest-&gt;priv-&gt;textrep = NULL;</div><div class='del'>-</div><div class='del'>-	e_destination_changed (dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_clear (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	e_destination_freeze (dest);</div><div class='del'>-</div><div class='del'>-	e_destination_clear_card (dest);</div><div class='del'>-	e_destination_clear_strings (dest);</div><div class='del'>-</div><div class='del'>-	e_destination_thaw (dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-nonempty (const gchar *s)</div><div class='del'>-{</div><div class='del'>-	while (s) {</div><div class='del'>-		if (! isspace ((gint) *s))</div><div class='del'>-			return TRUE;</div><div class='del'>-		++s;</div><div class='del'>-	}</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_is_empty (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	struct _EDestinationPrivate *p;</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), TRUE);</div><div class='del'>-	p = dest-&gt;priv;</div><div class='del'>-</div><div class='del'>-	return !(p-&gt;card != NULL</div><div class='del'>-		 || (p-&gt;book_uri &amp;&amp; *p-&gt;book_uri)</div><div class='del'>-		 || (p-&gt;card_uid &amp;&amp; *p-&gt;card_uid)</div><div class='del'>-		 || (p-&gt;raw &amp;&amp; nonempty (p-&gt;raw))</div><div class='del'>-		 || (p-&gt;name &amp;&amp; nonempty (p-&gt;name))</div><div class='del'>-		 || (p-&gt;email &amp;&amp; nonempty (p-&gt;email))</div><div class='del'>-		 || (p-&gt;addr &amp;&amp; nonempty (p-&gt;addr))</div><div class='del'>-		 || (p-&gt;list_dests != NULL));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_is_valid (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	const gchar *email;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	if (e_destination_from_card (dest))</div><div class='del'>-		return TRUE;</div><div class='del'>-</div><div class='del'>-	email = e_destination_get_email (dest);</div><div class='del'>-	return email &amp;&amp; *email &amp;&amp; strchr (email, '@');</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_equal (const EDestination *a, const EDestination *b)</div><div class='del'>-{</div><div class='del'>-	const struct _EDestinationPrivate *pa, *pb;</div><div class='del'>-	const gchar *na, *nb;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (a), FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (b), FALSE);</div><div class='del'>-</div><div class='del'>-	if (a == b)</div><div class='del'>-		return TRUE;</div><div class='del'>-</div><div class='del'>-	pa = a-&gt;priv;</div><div class='del'>-	pb = b-&gt;priv;</div><div class='del'>-</div><div class='del'>-	/* Check equality of cards. */</div><div class='del'>-	if (pa-&gt;card || pb-&gt;card) {</div><div class='del'>-		if (! (pa-&gt;card &amp;&amp; pb-&gt;card))</div><div class='del'>-			return FALSE;</div><div class='del'>-</div><div class='del'>-		if (pa-&gt;card == pb-&gt;card || !strcmp (e_card_get_id (pa-&gt;card), e_card_get_id (pb-&gt;card)))</div><div class='del'>-			return TRUE;</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	/* Just in case name returns NULL */</div><div class='del'>-	na = e_destination_get_name (a);</div><div class='del'>-	nb = e_destination_get_name (b);</div><div class='del'>-	if ((na || nb) &amp;&amp; !(na &amp;&amp; nb &amp;&amp; !strcmp (na, nb)))</div><div class='del'>-		return FALSE;</div><div class='del'>-	</div><div class='del'>-	if (!strcmp (e_destination_get_email (a), e_destination_get_email (b)))</div><div class='del'>-		return TRUE;</div><div class='del'>-	</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_card (EDestination *dest, ECard *card, gint email_num)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;card != card || dest-&gt;priv-&gt;card_email_num != email_num) {</div><div class='del'>-</div><div class='del'>-		/* We have to freeze/thaw around these operations so that the 'changed'</div><div class='del'>-		   signals don't cause the EDestination's internal state to be altered</div><div class='del'>-		   before we can finish setting -&gt;card &amp;&amp; -&gt;card_email_num. */</div><div class='del'>-		e_destination_freeze (dest);</div><div class='del'>-		e_destination_clear (dest);</div><div class='del'>-</div><div class='del'>-		dest-&gt;priv-&gt;card = card;</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (dest-&gt;priv-&gt;card));</div><div class='del'>-</div><div class='del'>-		dest-&gt;priv-&gt;card_email_num = email_num;</div><div class='del'>-</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-		e_destination_thaw (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_book_uri (EDestination *dest, const gchar *uri)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (uri != NULL);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;book_uri == NULL</div><div class='del'>-	    || strcmp (dest-&gt;priv-&gt;book_uri, uri)) {</div><div class='del'>-	</div><div class='del'>-		g_free (dest-&gt;priv-&gt;book_uri);</div><div class='del'>-		dest-&gt;priv-&gt;book_uri = g_strdup (uri);</div><div class='del'>-</div><div class='del'>-		/* If we already have a card, remove it unless it's uri matches the one</div><div class='del'>-		   we just set. */</div><div class='del'>-		if (dest-&gt;priv-&gt;card) {</div><div class='del'>-			EBook *book = e_card_get_book (dest-&gt;priv-&gt;card);</div><div class='del'>-			if ((!book) || strcmp (uri, e_book_get_uri (book))) {</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (dest-&gt;priv-&gt;card));</div><div class='del'>-				dest-&gt;priv-&gt;card = NULL;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_card_uid (EDestination *dest, const gchar *uid, gint email_num)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (uid != NULL);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;card_uid == NULL</div><div class='del'>-	    || strcmp (dest-&gt;priv-&gt;card_uid, uid)</div><div class='del'>-	    || dest-&gt;priv-&gt;card_email_num != email_num) {</div><div class='del'>-</div><div class='del'>-		g_free (dest-&gt;priv-&gt;card_uid);</div><div class='del'>-		dest-&gt;priv-&gt;card_uid = g_strdup (uid);</div><div class='del'>-		dest-&gt;priv-&gt;card_email_num = email_num;</div><div class='del'>-</div><div class='del'>-		/* If we already have a card, remove it unless it's uri matches the one</div><div class='del'>-		   we just set. */</div><div class='del'>-		if (dest-&gt;priv-&gt;card &amp;&amp; strcmp (uid, e_card_get_id (dest-&gt;priv-&gt;card))) {</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (dest-&gt;priv-&gt;card));</div><div class='del'>-			dest-&gt;priv-&gt;card = NULL;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_name (EDestination *dest, const gchar *name)</div><div class='del'>-{</div><div class='del'>-	gboolean changed = FALSE;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	if (name == NULL) {</div><div class='del'>-		if (dest-&gt;priv-&gt;name != NULL) {</div><div class='del'>-			g_free (dest-&gt;priv-&gt;name);</div><div class='del'>-			dest-&gt;priv-&gt;name = NULL;</div><div class='del'>-			changed = TRUE;</div><div class='del'>-		}</div><div class='del'>-	} else if (dest-&gt;priv-&gt;name == NULL || strcmp (dest-&gt;priv-&gt;name, name)) {</div><div class='del'>-		g_free (dest-&gt;priv-&gt;name);</div><div class='del'>-		dest-&gt;priv-&gt;name = g_strdup (name);</div><div class='del'>-		changed = TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (changed) {</div><div class='del'>-		g_free (dest-&gt;priv-&gt;addr);</div><div class='del'>-		dest-&gt;priv-&gt;addr = NULL;</div><div class='del'>-		g_free (dest-&gt;priv-&gt;textrep);</div><div class='del'>-		dest-&gt;priv-&gt;textrep = NULL;</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_email (EDestination *dest, const gchar *email)</div><div class='del'>-{</div><div class='del'>-	gboolean changed = FALSE;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	if (email == NULL) {</div><div class='del'>-		if (dest-&gt;priv-&gt;email != NULL) {</div><div class='del'>-			g_free (dest-&gt;priv-&gt;addr);</div><div class='del'>-			dest-&gt;priv-&gt;addr = NULL;</div><div class='del'>-			changed = TRUE;</div><div class='del'>-		}</div><div class='del'>-	} else	if (dest-&gt;priv-&gt;email == NULL || strcmp (dest-&gt;priv-&gt;email, email)) {</div><div class='del'>-</div><div class='del'>-		g_free (dest-&gt;priv-&gt;email);</div><div class='del'>-		dest-&gt;priv-&gt;email = g_strdup (email);</div><div class='del'>-		changed = TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-	if (changed) {</div><div class='del'>-		g_free (dest-&gt;priv-&gt;addr);</div><div class='del'>-		dest-&gt;priv-&gt;addr = NULL;</div><div class='del'>-		g_free (dest-&gt;priv-&gt;textrep);</div><div class='del'>-		dest-&gt;priv-&gt;textrep = NULL;</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_html_mail_pref (EDestination *dest, gboolean x)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-	</div><div class='del'>-	dest-&gt;priv-&gt;html_mail_override = TRUE;</div><div class='del'>-	if (dest-&gt;priv-&gt;wants_html_mail != x) {</div><div class='del'>-		dest-&gt;priv-&gt;wants_html_mail = x;</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_contains_card (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-	return dest-&gt;priv-&gt;card != NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_from_card (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-	return dest-&gt;priv-&gt;card != NULL || dest-&gt;priv-&gt;book_uri != NULL || dest-&gt;priv-&gt;card_uid != NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _UseCard UseCard;</div><div class='del'>-struct _UseCard {</div><div class='del'>-	EDestination *dest;</div><div class='del'>-	EDestinationCardCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-use_card_cb (ECard *card, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	UseCard *uc = (UseCard *) closure;</div><div class='del'>-</div><div class='del'>-	if (card != NULL &amp;&amp; uc-&gt;dest-&gt;priv-&gt;card == NULL) {</div><div class='del'>-</div><div class='del'>-		uc-&gt;dest-&gt;priv-&gt;card = card;</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (uc-&gt;dest-&gt;priv-&gt;card));</div><div class='del'>-		e_destination_changed (uc-&gt;dest);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (uc-&gt;cb) {</div><div class='del'>-		uc-&gt;cb (uc-&gt;dest, uc-&gt;dest-&gt;priv-&gt;card, uc-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* We held a copy of the destination during the callback. */</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (uc-&gt;dest));</div><div class='del'>-	g_free (uc);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_use_card (EDestination *dest, EDestinationCardCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;card != NULL) {</div><div class='del'>-</div><div class='del'>-		if (cb) {</div><div class='del'>-			cb (dest, dest-&gt;priv-&gt;card, closure);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	} else if (dest-&gt;priv-&gt;book_uri != NULL &amp;&amp; dest-&gt;priv-&gt;card_uid != NULL) {</div><div class='del'>-</div><div class='del'>-		UseCard *uc = g_new (UseCard, 1);</div><div class='del'>-		uc-&gt;dest = dest;</div><div class='del'>-		/* Hold a reference to the destination during the callback. */</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (uc-&gt;dest));</div><div class='del'>-		uc-&gt;cb = cb;</div><div class='del'>-		uc-&gt;closure = closure;</div><div class='del'>-		e_card_load_uri (dest-&gt;priv-&gt;book_uri, dest-&gt;priv-&gt;card_uid, use_card_cb, uc);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECard *</div><div class='del'>-e_destination_get_card (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	return dest-&gt;priv-&gt;card;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_destination_get_card_uid (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-	</div><div class='del'>-	if (dest-&gt;priv-&gt;card_uid)</div><div class='del'>-		return dest-&gt;priv-&gt;card_uid;</div><div class='del'>-	</div><div class='del'>-	if (dest-&gt;priv-&gt;card)</div><div class='del'>-		return e_card_get_id (dest-&gt;priv-&gt;card);</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_destination_get_book_uri (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-	</div><div class='del'>-	if (dest-&gt;priv-&gt;book_uri)</div><div class='del'>-		return dest-&gt;priv-&gt;book_uri;</div><div class='del'>-	</div><div class='del'>-	if (dest-&gt;priv-&gt;card) {</div><div class='del'>-		EBook *book = e_card_get_book (dest-&gt;priv-&gt;card);</div><div class='del'>-		if (book) {</div><div class='del'>-			return e_book_get_uri (book);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gint</div><div class='del'>-e_destination_get_email_num (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), -1);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;card == NULL &amp;&amp; (dest-&gt;priv-&gt;book_uri == NULL || dest-&gt;priv-&gt;card_uid == NULL))</div><div class='del'>-		return -1;</div><div class='del'>-</div><div class='del'>-	return dest-&gt;priv-&gt;card_email_num;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_destination_get_name (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	struct _EDestinationPrivate *priv;</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	priv = (struct _EDestinationPrivate *)dest-&gt;priv; /* cast out const */</div><div class='del'>-	</div><div class='del'>-	if (priv-&gt;name == NULL) {</div><div class='del'>-</div><div class='del'>-		if (priv-&gt;card != NULL) {</div><div class='del'>-		</div><div class='del'>-			priv-&gt;name = e_card_name_to_string (priv-&gt;card-&gt;name);</div><div class='del'>-		</div><div class='del'>-			if (priv-&gt;name == NULL || *priv-&gt;name == '\0') {</div><div class='del'>-				g_free (priv-&gt;name);</div><div class='del'>-				priv-&gt;name = g_strdup (priv-&gt;card-&gt;file_as);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (priv-&gt;name == NULL || *priv-&gt;name == '\0') {</div><div class='del'>-				g_free (priv-&gt;name);</div><div class='del'>-				priv-&gt;name = g_strdup (e_destination_get_email (dest));</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-		} else if (priv-&gt;raw != NULL) {</div><div class='del'>-</div><div class='del'>-			CamelInternetAddress *addr = camel_internet_address_new ();</div><div class='del'>-</div><div class='del'>-			if (camel_address_unformat (CAMEL_ADDRESS (addr), priv-&gt;raw)) {</div><div class='del'>-				const gchar *camel_name = NULL;</div><div class='del'>-				camel_internet_address_get (addr, 0, &amp;camel_name, NULL);</div><div class='del'>-				priv-&gt;name = g_strdup (camel_name);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			camel_object_unref (CAMEL_OBJECT (addr));</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return priv-&gt;name;</div><div class='del'>-	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_destination_get_email (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	struct _EDestinationPrivate *priv;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	priv = (struct _EDestinationPrivate *)dest-&gt;priv; /* cast out const */</div><div class='del'>-	</div><div class='del'>-	if (priv-&gt;email == NULL) {</div><div class='del'>-</div><div class='del'>-		if (priv-&gt;card != NULL) { /* Pull the address out of the card. */</div><div class='del'>-</div><div class='del'>-			if (priv-&gt;card-&gt;email) {</div><div class='del'>-				EIterator *iter = e_list_get_iterator (priv-&gt;card-&gt;email);</div><div class='del'>-				gint n = priv-&gt;card_email_num;</div><div class='del'>-</div><div class='del'>-				if (n &gt;= 0) {</div><div class='del'>-					while (n &gt; 0) {</div><div class='del'>-						e_iterator_next (iter);</div><div class='del'>-						--n;</div><div class='del'>-					}</div><div class='del'>-</div><div class='del'>-					if (e_iterator_is_valid (iter)) {</div><div class='del'>-						gconstpointer ptr = e_iterator_get (iter);</div><div class='del'>-						priv-&gt;email = g_strdup ((gchar *) ptr);</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-			} </div><div class='del'>-</div><div class='del'>-		} else if (priv-&gt;raw != NULL) {</div><div class='del'>-</div><div class='del'>-			CamelInternetAddress *addr = camel_internet_address_new ();</div><div class='del'>-</div><div class='del'>-			if (camel_address_unformat (CAMEL_ADDRESS (addr), priv-&gt;raw)) {</div><div class='del'>-				const gchar *camel_email = NULL;</div><div class='del'>-				camel_internet_address_get (addr, 0, NULL, &amp;camel_email);</div><div class='del'>-				priv-&gt;email = g_strdup (camel_email);</div><div class='del'>-			}</div><div class='del'>-			</div><div class='del'>-			camel_object_unref (CAMEL_OBJECT (addr));</div><div class='del'>-		} </div><div class='del'>-		</div><div class='del'>-		/* Force e-mail to be non-null... */</div><div class='del'>-		if (priv-&gt;email == NULL) {</div><div class='del'>-			priv-&gt;email = g_strdup ("");</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return priv-&gt;email;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_destination_get_address (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	struct _EDestinationPrivate *priv;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-	</div><div class='del'>-	priv = (struct _EDestinationPrivate *)dest-&gt;priv; /* cast out const */</div><div class='del'>-</div><div class='del'>-	if (priv-&gt;addr == NULL) {</div><div class='del'>-		CamelInternetAddress *addr = camel_internet_address_new ();</div><div class='del'>-</div><div class='del'>-		if (e_destination_is_evolution_list (dest)) {</div><div class='del'>-			GList *iter = dest-&gt;priv-&gt;list_dests;</div><div class='del'>-			</div><div class='del'>-			while (iter) {</div><div class='del'>-				EDestination *list_dest = E_DESTINATION (iter-&gt;data);</div><div class='del'>-				if (!e_destination_is_empty (list_dest)) {</div><div class='del'>-					camel_internet_address_add (addr, </div><div class='del'>-								    e_destination_get_name (list_dest),</div><div class='del'>-								    e_destination_get_email (list_dest));</div><div class='del'>-				}</div><div class='del'>-				iter = g_list_next (iter);</div><div class='del'>-			}</div><div class='del'>-			</div><div class='del'>-			priv-&gt;addr = camel_address_encode (CAMEL_ADDRESS (addr));</div><div class='del'>-</div><div class='del'>-		} else if (priv-&gt;raw) {</div><div class='del'>-</div><div class='del'>-			if (camel_address_unformat (CAMEL_ADDRESS (addr), priv-&gt;raw)) {</div><div class='del'>-				priv-&gt;addr = camel_address_encode (CAMEL_ADDRESS (addr));</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-			</div><div class='del'>-			camel_internet_address_add (addr,</div><div class='del'>-						    e_destination_get_name (dest),</div><div class='del'>-						    e_destination_get_email (dest));</div><div class='del'>-</div><div class='del'>-			priv-&gt;addr = camel_address_encode (CAMEL_ADDRESS (addr));</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		camel_object_unref (CAMEL_OBJECT (addr));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return priv-&gt;addr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_raw (EDestination *dest, const gchar *raw)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (raw != NULL);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;raw == NULL || strcmp (dest-&gt;priv-&gt;raw, raw)) {</div><div class='del'>-</div><div class='del'>-		e_destination_freeze (dest);</div><div class='del'>-</div><div class='del'>-		e_destination_clear (dest);</div><div class='del'>-		dest-&gt;priv-&gt;raw = g_strdup (raw);</div><div class='del'>-		e_destination_changed (dest);</div><div class='del'>-</div><div class='del'>-		e_destination_thaw (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_destination_get_textrep (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	const gchar *name, *email;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;raw)</div><div class='del'>-		return dest-&gt;priv-&gt;raw;</div><div class='del'>-</div><div class='del'>-	name  = e_destination_get_name (dest);</div><div class='del'>-	email = e_destination_get_email (dest);</div><div class='del'>-</div><div class='del'>-	if (e_destination_from_card (dest) &amp;&amp; name != NULL)</div><div class='del'>-		return name;</div><div class='del'>-</div><div class='del'>-	/* Make sure that our address gets quoted properly */</div><div class='del'>-	if (name &amp;&amp; email &amp;&amp; dest-&gt;priv-&gt;textrep == NULL) {</div><div class='del'>-		CamelInternetAddress *addr = camel_internet_address_new ();</div><div class='del'>-		camel_internet_address_add (addr, name, email);</div><div class='del'>-		g_free (dest-&gt;priv-&gt;textrep);</div><div class='del'>-		dest-&gt;priv-&gt;textrep = camel_address_format (CAMEL_ADDRESS (addr));</div><div class='del'>-		camel_object_unref (CAMEL_OBJECT (addr));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;textrep != NULL)</div><div class='del'>-		return dest-&gt;priv-&gt;textrep;</div><div class='del'>-</div><div class='del'>-	if (email)</div><div class='del'>-		return email;</div><div class='del'>-</div><div class='del'>-	return "";</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_is_evolution_list (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;list_dests == NULL</div><div class='del'>-	    &amp;&amp; dest-&gt;priv-&gt;card != NULL</div><div class='del'>-	    &amp;&amp; dest-&gt;priv-&gt;card-&gt;email != NULL</div><div class='del'>-	    &amp;&amp; e_card_evolution_list (dest-&gt;priv-&gt;card)) {</div><div class='del'>-</div><div class='del'>-		EIterator *iter = e_list_get_iterator (dest-&gt;priv-&gt;card-&gt;email);</div><div class='del'>-		e_iterator_reset (iter);</div><div class='del'>-		while (e_iterator_is_valid (iter)) {</div><div class='del'>-			const gchar *dest_xml = (const gchar *) e_iterator_get (iter);</div><div class='del'>-			EDestination *list_dest = e_destination_import (dest_xml);</div><div class='del'>-			if (list_dest)</div><div class='del'>-				dest-&gt;priv-&gt;list_dests = g_list_append (dest-&gt;priv-&gt;list_dests, list_dest);</div><div class='del'>-			e_iterator_next (iter);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return dest-&gt;priv-&gt;list_dests != NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_list_show_addresses (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;card != NULL)</div><div class='del'>-		return e_card_evolution_list_show_addresses (dest-&gt;priv-&gt;card);</div><div class='del'>-</div><div class='del'>-	return dest-&gt;priv-&gt;show_addresses;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_get_html_mail_pref (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;html_mail_override || dest-&gt;priv-&gt;card == NULL)</div><div class='del'>-		return dest-&gt;priv-&gt;wants_html_mail;</div><div class='del'>-</div><div class='del'>-	return dest-&gt;priv-&gt;card-&gt;wants_html;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_allow_cardification (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	return dest-&gt;priv-&gt;allow_cardify;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_set_allow_cardification (EDestination *dest, gboolean x)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-	</div><div class='del'>-	dest-&gt;priv-&gt;allow_cardify = x;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_cardify_book (EDestination *dest, EBook *book)</div><div class='del'>-{</div><div class='del'>-	if (dest-&gt;priv-&gt;cardify_book &amp;&amp; dest-&gt;priv-&gt;cardify_book != book) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (dest-&gt;priv-&gt;cardify_book));</div><div class='del'>-	}</div><div class='del'>-		</div><div class='del'>-	dest-&gt;priv-&gt;cardify_book = book;</div><div class='del'>-</div><div class='del'>-	if (book)</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (book));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-name_and_email_simple_query_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest = E_DESTINATION (closure);</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS &amp;&amp; g_list_length ((GList *) cards) == 1) {</div><div class='del'>-		ECard *card = E_CARD (cards-&gt;data);</div><div class='del'>-		const gchar *email = e_destination_get_email (dest);</div><div class='del'>-		gint email_num = 0;</div><div class='del'>-</div><div class='del'>-		if (e_destination_is_valid (dest) &amp;&amp; email &amp;&amp; *email) {</div><div class='del'>-			email_num = e_card_email_find_number (card, e_destination_get_email (dest));</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (email_num &gt;= 0) {</div><div class='del'>-			dest-&gt;priv-&gt;has_been_cardified = TRUE;</div><div class='del'>-			e_destination_set_card (dest, card, email_num);</div><div class='del'>-			gtk_signal_emit (GTK_OBJECT (dest), e_destination_signals[CARDIFIED]);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!dest-&gt;priv-&gt;has_been_cardified) {</div><div class='del'>-		dest-&gt;priv-&gt;cannot_cardify = TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (dest)); /* drop the reference held by the query */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-nickname_simple_query_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest = E_DESTINATION (closure);</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS) {</div><div class='del'>-</div><div class='del'>-		if (g_list_length ((GList *) cards) == 1) {</div><div class='del'>-			dest-&gt;priv-&gt;has_been_cardified = TRUE;</div><div class='del'>-			e_destination_set_card (dest, E_CARD (cards-&gt;data), 0); /* Uses primary e-mail by default. */</div><div class='del'>-			gtk_signal_emit (GTK_OBJECT (dest), e_destination_signals[CARDIFIED]);</div><div class='del'>-			</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (dest)); /* drop the reference held by the query */</div><div class='del'>-			</div><div class='del'>-		} else {</div><div class='del'>-		</div><div class='del'>-			/* We can only end up here if we don't look at all like an e-mail address, so</div><div class='del'>-			   we do a name-only query on the textrep */</div><div class='del'>-</div><div class='del'>-			e_book_name_and_email_query (book,</div><div class='del'>-						     e_destination_get_textrep (dest),</div><div class='del'>-						     NULL,</div><div class='del'>-						     name_and_email_simple_query_cb,</div><div class='del'>-						     dest);</div><div class='del'>-		}</div><div class='del'>-	} else {</div><div class='del'>-		/* Something went wrong with the query: drop our ref to the destination and return. */</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-launch_cardify_query (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	if (! e_destination_is_valid (dest)) {</div><div class='del'>-		</div><div class='del'>-		/* If it doesn't look like an e-mail address, see if it is a nickname. */</div><div class='del'>-		e_book_nickname_query (dest-&gt;priv-&gt;cardify_book,</div><div class='del'>-				       e_destination_get_textrep (dest),</div><div class='del'>-				       nickname_simple_query_cb,</div><div class='del'>-				       dest);</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-</div><div class='del'>-		e_book_name_and_email_query (dest-&gt;priv-&gt;cardify_book,</div><div class='del'>-					     e_destination_get_name (dest),</div><div class='del'>-					     e_destination_get_email (dest),</div><div class='del'>-					     name_and_email_simple_query_cb,</div><div class='del'>-					     dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-use_local_book_cb (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest = E_DESTINATION (closure);</div><div class='del'>-	if (dest-&gt;priv-&gt;cardify_book == NULL) {</div><div class='del'>-		dest-&gt;priv-&gt;cardify_book = book;</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (book));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	launch_cardify_query (dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_destination_reverting_is_a_good_idea (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	const gchar *textrep;</div><div class='del'>-	gint len, old_len;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-	if (dest-&gt;priv-&gt;old_textrep == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	textrep = e_destination_get_textrep (dest);</div><div class='del'>-</div><div class='del'>-	len = g_utf8_strlen (textrep, -1);</div><div class='del'>-	old_len = g_utf8_strlen (dest-&gt;priv-&gt;old_textrep, -1);</div><div class='del'>-</div><div class='del'>-	if (len &lt;= old_len/2)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_cardify (EDestination *dest, EBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (book == NULL || E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	if (e_destination_is_evolution_list (dest))</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (e_destination_contains_card (dest))</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (!dest-&gt;priv-&gt;allow_cardify)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;cannot_cardify)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	e_destination_cancel_cardify (dest);</div><div class='del'>-</div><div class='del'>-	/* In some cases, we can revert to the previous card. */</div><div class='del'>-	if (!e_destination_is_valid (dest)</div><div class='del'>-	    &amp;&amp; e_destination_reverting_is_a_good_idea (dest)</div><div class='del'>-	    &amp;&amp; e_destination_revert (dest)) {</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	set_cardify_book (dest, book);</div><div class='del'>-</div><div class='del'>-	/* Handle the case of an EDestination containing a card URL */</div><div class='del'>-	if (e_destination_contains_card (dest)) {</div><div class='del'>-		e_destination_use_card (dest, NULL, NULL);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	/* If we have a book ready, proceed.  We hold a reference to ourselves</div><div class='del'>-	   until our query is complete. */</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-	if (dest-&gt;priv-&gt;cardify_book != NULL) {</div><div class='del'>-		launch_cardify_query (dest);</div><div class='del'>-	} else {</div><div class='del'>-		e_book_use_local_address_book (use_local_book_cb, dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-do_cardify_delayed (gpointer ptr)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest = E_DESTINATION (ptr);</div><div class='del'>-	e_destination_cardify (dest, dest-&gt;priv-&gt;cardify_book);</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_cardify_delayed (EDestination *dest, EBook *book, gint delay)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-	g_return_if_fail (book == NULL || E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	if (delay &lt; 0)</div><div class='del'>-		delay = 500;</div><div class='del'>-</div><div class='del'>-	e_destination_cancel_cardify (dest);</div><div class='del'>-</div><div class='del'>-	set_cardify_book (dest, book);</div><div class='del'>-</div><div class='del'>-	dest-&gt;priv-&gt;pending_cardification = gtk_timeout_add (delay, do_cardify_delayed, dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_cancel_cardify (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;pending_cardification) {</div><div class='del'>-		gtk_timeout_remove (dest-&gt;priv-&gt;pending_cardification);</div><div class='del'>-		dest-&gt;priv-&gt;pending_cardification = 0;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_uncardify (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	gchar *email;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	if (! e_destination_contains_card (dest))</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	email = g_strdup (e_destination_get_email (dest));</div><div class='del'>-</div><div class='del'>-	if (email == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	e_destination_freeze (dest);</div><div class='del'>-	e_destination_clear (dest);</div><div class='del'>-	e_destination_set_raw (dest, email);</div><div class='del'>-	g_free (email);</div><div class='del'>-	e_destination_thaw (dest);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_revert (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	if (dest-&gt;priv-&gt;old_card) {</div><div class='del'>-		ECard *card;</div><div class='del'>-		gint card_email_num;</div><div class='del'>-</div><div class='del'>-		card = dest-&gt;priv-&gt;old_card;</div><div class='del'>-		card_email_num = dest-&gt;priv-&gt;old_card_email_num;</div><div class='del'>-</div><div class='del'>-		dest-&gt;priv-&gt;old_card = NULL;</div><div class='del'>-		g_free (dest-&gt;priv-&gt;old_textrep);</div><div class='del'>-		dest-&gt;priv-&gt;old_textrep = NULL;</div><div class='del'>-</div><div class='del'>-		e_destination_freeze (dest);</div><div class='del'>-		e_destination_clear (dest);</div><div class='del'>-		e_destination_set_card (dest, card, card_email_num);</div><div class='del'>-		e_destination_thaw (dest);</div><div class='del'>-</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Destination import/export</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-gchar *</div><div class='del'>-e_destination_get_address_textv (EDestination **destv)</div><div class='del'>-{</div><div class='del'>-	gint i, j, len = 0;</div><div class='del'>-	gchar **strv;</div><div class='del'>-	gchar *str;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (destv, NULL);</div><div class='del'>-</div><div class='del'>-	/* Q: Please tell me this is only for assertion</div><div class='del'>-           reasons. If this is considered to be ok behavior then you</div><div class='del'>-           shouldn't use g_return's. Just a reminder ;-) </div><div class='del'>-</div><div class='del'>-	   A: Yes, this is just an assertion.  (Though it does find the</div><div class='del'>-	   length of the vector in the process...)</div><div class='del'>-	*/</div><div class='del'>-	while (destv[len]) {</div><div class='del'>-		g_return_val_if_fail (E_IS_DESTINATION (destv[len]), NULL);</div><div class='del'>-		++len;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	strv = g_new0 (gchar *, len+1);</div><div class='del'>-	for (i = 0, j = 0; destv[i]; i++) {</div><div class='del'>-		if (!e_destination_is_empty (destv[i])) {</div><div class='del'>-			const gchar *addr = e_destination_get_address (destv[i]);</div><div class='del'>-			strv[j++] = addr ? (gchar *) addr : "";</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	str = g_strjoinv (", ", strv);</div><div class='del'>-	</div><div class='del'>-	g_free (strv);</div><div class='del'>-	</div><div class='del'>-	return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-xmlNodePtr</div><div class='del'>-e_destination_xml_encode (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	xmlNodePtr dest_node;</div><div class='del'>-	const gchar *str;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	dest_node = xmlNewNode (NULL, "destination");</div><div class='del'>-</div><div class='del'>-	str = e_destination_get_name (dest);</div><div class='del'>-	if (str)</div><div class='del'>-		xmlNewTextChild (dest_node, NULL, "name", str);</div><div class='del'>-</div><div class='del'>-	if (! e_destination_is_evolution_list (dest)) {</div><div class='del'>-		str = e_destination_get_email (dest);</div><div class='del'>-		if (str)</div><div class='del'>-			xmlNewTextChild (dest_node, NULL, "email", str);</div><div class='del'>-	} else {</div><div class='del'>-		GList *iter = dest-&gt;priv-&gt;list_dests;</div><div class='del'>-		</div><div class='del'>-		while (iter) {</div><div class='del'>-			EDestination *list_dest = E_DESTINATION (iter-&gt;data);</div><div class='del'>-			xmlNodePtr list_node = xmlNewNode (NULL, "list_entry");</div><div class='del'>-			</div><div class='del'>-			str = e_destination_get_name (list_dest);</div><div class='del'>-			if (str)</div><div class='del'>-				xmlNewTextChild (list_node, NULL, "name", str);</div><div class='del'>-			</div><div class='del'>-			str = e_destination_get_email (list_dest);</div><div class='del'>-			if (str)</div><div class='del'>-				xmlNewTextChild (list_node, NULL, "email", str);</div><div class='del'>-</div><div class='del'>-			xmlAddChild (dest_node, list_node);</div><div class='del'>-			</div><div class='del'>-			iter = g_list_next (iter);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		xmlNewProp (dest_node, "is_list", "yes");</div><div class='del'>-		xmlNewProp (dest_node, "show_addresses", </div><div class='del'>-			    e_destination_list_show_addresses (dest) ? "yes" : "no");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	str = e_destination_get_book_uri (dest);</div><div class='del'>-	if (str) {</div><div class='del'>-		xmlNewTextChild (dest_node, NULL, "book_uri", str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	str = e_destination_get_card_uid (dest);</div><div class='del'>-	if (str) {</div><div class='del'>-		gchar buf[16];</div><div class='del'>-		xmlNodePtr uri_node = xmlNewTextChild (dest_node, NULL, "card_uid", str);</div><div class='del'>-		g_snprintf (buf, 16, "%d", e_destination_get_email_num (dest));</div><div class='del'>-		xmlNewProp (uri_node, "email_num", buf);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	xmlNewProp (dest_node, "html_mail", e_destination_get_html_mail_pref (dest) ? "yes" : "no");</div><div class='del'>-</div><div class='del'>-	return dest_node;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_destination_xml_decode (EDestination *dest, xmlNodePtr node)</div><div class='del'>-{</div><div class='del'>-	gchar *name = NULL, *email = NULL, *book_uri = NULL, *card_uid = NULL;</div><div class='del'>-	gint email_num = -1;</div><div class='del'>-	gboolean html_mail = FALSE;</div><div class='del'>-	gboolean is_list = FALSE, show_addr = FALSE;</div><div class='del'>-	gchar *tmp;</div><div class='del'>-	GList *list_dests = NULL;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-	g_return_val_if_fail (node != NULL, FALSE);</div><div class='del'>-	</div><div class='del'>-	if (strcmp (node-&gt;name, "destination"))</div><div class='del'>-		return FALSE;</div><div class='del'>-	</div><div class='del'>-	tmp = xmlGetProp (node, "html_mail");</div><div class='del'>-	if (tmp) {</div><div class='del'>-		html_mail = !strcmp (tmp, "yes");</div><div class='del'>-		xmlFree (tmp);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	tmp = xmlGetProp (node, "is_list");</div><div class='del'>-	if (tmp) {</div><div class='del'>-		is_list = !strcmp (tmp, "yes");</div><div class='del'>-		xmlFree (tmp);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	tmp = xmlGetProp (node, "show_addresses");</div><div class='del'>-	if (tmp) {</div><div class='del'>-		show_addr = !strcmp (tmp, "yes");</div><div class='del'>-		xmlFree (tmp);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	node = node-&gt;xmlChildrenNode;</div><div class='del'>-	while (node) {</div><div class='del'>-		if (!strcmp (node-&gt;name, "name")) {</div><div class='del'>-			tmp = xmlNodeGetContent (node);</div><div class='del'>-			g_free (name);</div><div class='del'>-			name = g_strdup (tmp);</div><div class='del'>-			xmlFree (tmp);</div><div class='del'>-		} else if (!is_list &amp;&amp; !strcmp (node-&gt;name, "email")) {</div><div class='del'>-			tmp = xmlNodeGetContent (node);</div><div class='del'>-			g_free (email);</div><div class='del'>-			email = g_strdup (tmp);</div><div class='del'>-			xmlFree (tmp);</div><div class='del'>-		} else if (is_list &amp;&amp; !strcmp (node-&gt;name, "list_entry")) {</div><div class='del'>-			xmlNodePtr subnode = node-&gt;xmlChildrenNode;</div><div class='del'>-			gchar *list_name = NULL, *list_email = NULL;</div><div class='del'>-			</div><div class='del'>-			while (subnode) {</div><div class='del'>-				if (!strcmp (subnode-&gt;name, "name")) {</div><div class='del'>-					tmp = xmlNodeGetContent (subnode);</div><div class='del'>-					g_free (list_name);</div><div class='del'>-					list_name = g_strdup (tmp);</div><div class='del'>-					xmlFree (tmp);</div><div class='del'>-				} else if (!strcmp (subnode-&gt;name, "email")) {</div><div class='del'>-					tmp = xmlNodeGetContent (subnode);</div><div class='del'>-					g_free (list_email);</div><div class='del'>-					list_email = g_strdup (tmp);</div><div class='del'>-					xmlFree (tmp);</div><div class='del'>-				}</div><div class='del'>-				</div><div class='del'>-				subnode = subnode-&gt;next;</div><div class='del'>-			}</div><div class='del'>-			</div><div class='del'>-			if (list_name || list_email) {</div><div class='del'>-				EDestination *list_dest = e_destination_new ();</div><div class='del'>-				if (list_name)</div><div class='del'>-					e_destination_set_name (list_dest, list_name);</div><div class='del'>-				if (list_email)</div><div class='del'>-					e_destination_set_email (list_dest, list_email);</div><div class='del'>-				</div><div class='del'>-				g_free (list_name);</div><div class='del'>-				g_free (list_email);</div><div class='del'>-</div><div class='del'>-				list_dests = g_list_append (list_dests, list_dest);</div><div class='del'>-			}</div><div class='del'>-		} else if (!strcmp (node-&gt;name, "book_uri")) {</div><div class='del'>-			tmp = xmlNodeGetContent (node);</div><div class='del'>-			g_free (book_uri);</div><div class='del'>-			book_uri = g_strdup (tmp);</div><div class='del'>-			xmlFree (tmp);</div><div class='del'>-		} else if (!strcmp (node-&gt;name, "card_uid")) {</div><div class='del'>-			tmp = xmlNodeGetContent (node);</div><div class='del'>-			g_free (card_uid);</div><div class='del'>-			card_uid = g_strdup (tmp);</div><div class='del'>-			xmlFree (tmp);</div><div class='del'>-			</div><div class='del'>-			tmp = xmlGetProp (node, "email_num");</div><div class='del'>-			email_num = atoi (tmp);</div><div class='del'>-			xmlFree (tmp);</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		node = node-&gt;next;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_destination_freeze (dest);</div><div class='del'>-	</div><div class='del'>-	e_destination_clear (dest);</div><div class='del'>-	</div><div class='del'>-	if (name) {</div><div class='del'>-		e_destination_set_name (dest, name);</div><div class='del'>-		g_free (name);</div><div class='del'>-	}</div><div class='del'>-	if (email) {</div><div class='del'>-		e_destination_set_email (dest, email);</div><div class='del'>-		g_free (email);</div><div class='del'>-	}</div><div class='del'>-	if (book_uri) {</div><div class='del'>-		e_destination_set_book_uri (dest, book_uri);</div><div class='del'>-		g_free (book_uri);</div><div class='del'>-	}</div><div class='del'>-	if (card_uid) {</div><div class='del'>-		e_destination_set_card_uid (dest, card_uid, email_num);</div><div class='del'>-		g_free (card_uid);</div><div class='del'>-	}</div><div class='del'>-	if (list_dests)</div><div class='del'>-		dest-&gt;priv-&gt;list_dests = list_dests;</div><div class='del'>-</div><div class='del'>-	dest-&gt;priv-&gt;html_mail_override = TRUE;</div><div class='del'>-	dest-&gt;priv-&gt;wants_html_mail = html_mail;</div><div class='del'>-</div><div class='del'>-	dest-&gt;priv-&gt;show_addresses = show_addr;</div><div class='del'>-</div><div class='del'>-	e_destination_thaw (dest);</div><div class='del'>-	</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* FIXME: Make utf-8 safe */</div><div class='del'>-static gchar *</div><div class='del'>-null_terminate_and_remove_extra_whitespace (xmlChar *xml_in, gint size)</div><div class='del'>-{</div><div class='del'>-	gchar *xml;</div><div class='del'>-	gchar *r, *w;</div><div class='del'>-	gboolean skip_white = FALSE;</div><div class='del'>-</div><div class='del'>-	if (xml_in == NULL || size &lt;= 0) </div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	xml = g_strndup (xml_in, size);</div><div class='del'>-	r = w = xml;</div><div class='del'>-</div><div class='del'>-	while (*r) {</div><div class='del'>-		if (*r == '\n' || *r == '\r') {</div><div class='del'>-			skip_white = TRUE;</div><div class='del'>-		} else {</div><div class='del'>-			gboolean is_space = isspace (*r);</div><div class='del'>-</div><div class='del'>-			*w = *r;</div><div class='del'>-</div><div class='del'>-			if (! (skip_white &amp;&amp; is_space))</div><div class='del'>-				++w;</div><div class='del'>-			if (! is_space)</div><div class='del'>-				skip_white = FALSE;</div><div class='del'>-		}</div><div class='del'>-		++r;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	*w = '\0';</div><div class='del'>-</div><div class='del'>-	return xml;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gchar *</div><div class='del'>-e_destination_export (const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	xmlNodePtr dest_node;</div><div class='del'>-	xmlDocPtr  dest_doc;</div><div class='del'>-	xmlChar   *buffer = NULL;</div><div class='del'>-	gint       size = -1;</div><div class='del'>-	gchar     *str;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	dest_node = e_destination_xml_encode (dest);</div><div class='del'>-	if (dest_node == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	dest_doc = xmlNewDoc (XML_DEFAULT_VERSION);</div><div class='del'>-	xmlDocSetRootElement (dest_doc, dest_node);</div><div class='del'>-</div><div class='del'>-	xmlDocDumpMemory (dest_doc, &amp;buffer, &amp;size);</div><div class='del'>-	xmlFreeDoc (dest_doc);</div><div class='del'>-</div><div class='del'>-	str = null_terminate_and_remove_extra_whitespace (buffer, size);</div><div class='del'>-	xmlFree (buffer);</div><div class='del'>-</div><div class='del'>-	return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EDestination *</div><div class='del'>-e_destination_import (const gchar *str)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest = NULL;</div><div class='del'>-	xmlDocPtr dest_doc;</div><div class='del'>-</div><div class='del'>-	if (! (str &amp;&amp; *str))</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	dest_doc = xmlParseMemory ((gchar *) str, strlen (str));</div><div class='del'>-	if (dest_doc &amp;&amp; dest_doc-&gt;xmlRootNode) {</div><div class='del'>-		dest = e_destination_new ();</div><div class='del'>-		if (! e_destination_xml_decode (dest, dest_doc-&gt;xmlRootNode)) {</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-			dest = NULL;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	xmlFreeDoc (dest_doc);</div><div class='del'>-</div><div class='del'>-	return dest;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gchar *</div><div class='del'>-e_destination_exportv (EDestination **destv)</div><div class='del'>-{</div><div class='del'>-	xmlDocPtr   destv_doc;</div><div class='del'>-	xmlNodePtr  destv_node;</div><div class='del'>-	xmlChar    *buffer = NULL;</div><div class='del'>-	gint        size = -1;</div><div class='del'>-	gchar      *str;</div><div class='del'>-	gint        i;</div><div class='del'>-</div><div class='del'>-	if (destv == NULL || *destv == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	destv_doc  = xmlNewDoc (XML_DEFAULT_VERSION);</div><div class='del'>-	destv_node = xmlNewNode (NULL, "destinations");</div><div class='del'>-	xmlDocSetRootElement (destv_doc, destv_node);</div><div class='del'>-</div><div class='del'>-	for (i=0; destv[i]; ++i) {</div><div class='del'>-		if (! e_destination_is_empty (destv[i])) {</div><div class='del'>-			xmlNodePtr dest_node = e_destination_xml_encode (destv[i]);</div><div class='del'>-			if (dest_node)</div><div class='del'>-				xmlAddChild (destv_node, dest_node);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	xmlDocDumpMemory (destv_doc, &amp;buffer, &amp;size);</div><div class='del'>-	xmlFreeDoc (destv_doc);</div><div class='del'>-</div><div class='del'>-	str = null_terminate_and_remove_extra_whitespace (buffer, size);</div><div class='del'>-	xmlFree (buffer);</div><div class='del'>-</div><div class='del'>-	return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EDestination **</div><div class='del'>-e_destination_importv (const gchar *str)</div><div class='del'>-{</div><div class='del'>-	GPtrArray *dest_array = NULL;</div><div class='del'>-	xmlDocPtr destv_doc;</div><div class='del'>-	xmlNodePtr node;</div><div class='del'>-	EDestination **destv = NULL;</div><div class='del'>-	</div><div class='del'>-	if (!(str &amp;&amp; *str))</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	destv_doc = xmlParseMemory ((gchar *)str, strlen (str));</div><div class='del'>-	if (destv_doc == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	node = destv_doc-&gt;xmlRootNode;</div><div class='del'>-	</div><div class='del'>-	if (strcmp (node-&gt;name, "destinations"))</div><div class='del'>-		goto finished;</div><div class='del'>-	</div><div class='del'>-	node = node-&gt;xmlChildrenNode;</div><div class='del'>-	</div><div class='del'>-	dest_array = g_ptr_array_new ();</div><div class='del'>-	</div><div class='del'>-	while (node) {</div><div class='del'>-		EDestination *dest;</div><div class='del'>-		</div><div class='del'>-		dest = e_destination_new ();</div><div class='del'>-		if (e_destination_xml_decode (dest, node) &amp;&amp; !e_destination_is_empty (dest)) {</div><div class='del'>-			g_ptr_array_add (dest_array, dest);</div><div class='del'>-		} else {</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		node = node-&gt;next;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	/* we need destv to be NULL terminated */</div><div class='del'>-	g_ptr_array_add (dest_array, NULL);</div><div class='del'>-	</div><div class='del'>-	destv = (EDestination **) dest_array-&gt;pdata;</div><div class='del'>-	g_ptr_array_free (dest_array, FALSE);</div><div class='del'>-	</div><div class='del'>- finished:</div><div class='del'>-	xmlFreeDoc (destv_doc);</div><div class='del'>-	</div><div class='del'>-	return destv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EDestination **</div><div class='del'>-e_destination_list_to_vector (GList *list)</div><div class='del'>-{</div><div class='del'>-	gint N = g_list_length (list);</div><div class='del'>-	EDestination **destv;</div><div class='del'>-	gint i = 0;</div><div class='del'>-</div><div class='del'>-	if (N == 0)</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	destv = g_new (EDestination *, N+1);</div><div class='del'>-	while (list != NULL) {</div><div class='del'>-		destv[i] = E_DESTINATION (list-&gt;data);</div><div class='del'>-		list-&gt;data = NULL;</div><div class='del'>-		++i;</div><div class='del'>-		list = g_list_next (list);</div><div class='del'>-	}</div><div class='del'>-	destv[N] = NULL;</div><div class='del'>-</div><div class='del'>-	return destv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_freev (EDestination **destv)</div><div class='del'>-{</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	if (destv) {</div><div class='del'>-		for (i = 0; destv[i] != NULL; ++i) {</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (destv[i]));</div><div class='del'>-		}</div><div class='del'>-		g_free (destv);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-touch_cb (EBook *book, const gchar *addr, ECard *card, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	if (book != NULL &amp;&amp; card != NULL) {</div><div class='del'>-		e_card_touch (card);</div><div class='del'>-		g_message ("Use score for \"%s\" is now %f", addr, e_card_get_use_score (card));</div><div class='del'>-		e_book_commit_card (book, card, NULL, NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_touch (EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	const gchar *email;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	email = e_destination_get_email (dest);</div><div class='del'>-</div><div class='del'>-	if (email) {</div><div class='del'>-		e_book_query_address_locally (email, touch_cb, NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_destination_touchv (EDestination **destv)</div><div class='del'>-{</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (destv != NULL);</div><div class='del'>-</div><div class='del'>-	for (i = 0; destv[i] != NULL; ++i) {</div><div class='del'>-		e_destination_touch (destv[i]);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/e-destination.h b/addressbook/backend/ebook/e-destination.h<br/>deleted file mode 100644<br/>index 807ab51b8e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/e-destination.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/e-destination.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,134 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-destination.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_DESTINATION_H__</div><div class='del'>-#define __E_DESTINATION_H__</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book.h&gt;</div><div class='del'>-#include &lt;gnome-xml/tree.h&gt;</div><div class='del'>-</div><div class='del'>-#define E_TYPE_DESTINATION        (e_destination_get_type ())</div><div class='del'>-#define E_DESTINATION(o)          (GTK_CHECK_CAST ((o), E_TYPE_DESTINATION, EDestination))</div><div class='del'>-#define E_DESTINATION_CLASS(k)    (GTK_CHECK_CLASS_CAST ((k), E_TYPE_DESTINATION, EDestinationClass))</div><div class='del'>-#define E_IS_DESTINATION(o)       (GTK_CHECK_TYPE ((o), E_TYPE_DESTINATION))</div><div class='del'>-#define E_IS_DESTINATION_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TYPE_DESTINATION))</div><div class='del'>-</div><div class='del'>-typedef struct _EDestination EDestination;</div><div class='del'>-typedef struct _EDestinationClass EDestinationClass;</div><div class='del'>-</div><div class='del'>-typedef void (*EDestinationCardCallback) (EDestination *dest, ECard *card, gpointer closure);</div><div class='del'>-</div><div class='del'>-struct _EDestinationPrivate;</div><div class='del'>-</div><div class='del'>-struct _EDestination {</div><div class='del'>-	GtkObject object;</div><div class='del'>-</div><div class='del'>-	struct _EDestinationPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EDestinationClass {</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	void (*changed) (EDestination *dest);	</div><div class='del'>-	void (*cardified) (EDestination *dest);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType e_destination_get_type (void);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-EDestination  *e_destination_new                (void);</div><div class='del'>-void           e_destination_changed            (EDestination *);</div><div class='del'>-EDestination  *e_destination_copy               (const EDestination *);</div><div class='del'>-void           e_destination_clear              (EDestination *);</div><div class='del'>-</div><div class='del'>-gboolean       e_destination_is_empty           (const EDestination *);</div><div class='del'>-gboolean       e_destination_is_valid           (const EDestination *);</div><div class='del'>-gboolean       e_destination_equal              (const EDestination *a, const EDestination *b);</div><div class='del'>-</div><div class='del'>-void           e_destination_set_card           (EDestination *, ECard *card, gint email_num);</div><div class='del'>-void           e_destination_set_book_uri       (EDestination *, const gchar *uri); </div><div class='del'>-void           e_destination_set_card_uid       (EDestination *, const gchar *uid, gint email_num); </div><div class='del'>-</div><div class='del'>-void           e_destination_set_name           (EDestination *, const gchar *name);</div><div class='del'>-void           e_destination_set_email          (EDestination *, const gchar *email);</div><div class='del'>-</div><div class='del'>-void           e_destination_set_html_mail_pref (EDestination *, gboolean);</div><div class='del'>-</div><div class='del'>-gboolean       e_destination_contains_card      (const EDestination *);</div><div class='del'>-gboolean       e_destination_from_card          (const EDestination *);</div><div class='del'>-</div><div class='del'>-void           e_destination_use_card           (EDestination *, EDestinationCardCallback cb, gpointer closure);</div><div class='del'>-</div><div class='del'>-ECard         *e_destination_get_card           (const EDestination *);</div><div class='del'>-const gchar   *e_destination_get_book_uri       (const EDestination *);</div><div class='del'>-const gchar   *e_destination_get_card_uid       (const EDestination *);</div><div class='del'>-gint           e_destination_get_email_num      (const EDestination *);</div><div class='del'>-</div><div class='del'>-const gchar   *e_destination_get_name           (const EDestination *);  /* "Jane Smith" */</div><div class='del'>-const gchar   *e_destination_get_email          (const EDestination *);  /* "jane@assbarn.com" */</div><div class='del'>-const gchar   *e_destination_get_address        (const EDestination *);  /* "Jane Smith &lt;jane@assbarn.com&gt;" (or a comma-sep set of such for a list) */</div><div class='del'>-</div><div class='del'>-void           e_destination_set_raw            (EDestination *, const gchar *free_form_string);</div><div class='del'>-const gchar   *e_destination_get_textrep        (const EDestination *);  /* "Jane Smith" or "jane@assbarn.com" */</div><div class='del'>-</div><div class='del'>-gboolean       e_destination_is_evolution_list   (const EDestination *);</div><div class='del'>-gboolean       e_destination_list_show_addresses (const EDestination *);</div><div class='del'>-</div><div class='del'>-/* If true, they want HTML mail. */</div><div class='del'>-gboolean       e_destination_get_html_mail_pref (const EDestination *);</div><div class='del'>-</div><div class='del'>-gboolean       e_destination_allow_cardification     (const EDestination *);</div><div class='del'>-void           e_destination_set_allow_cardification (EDestination *, gboolean);</div><div class='del'>-void           e_destination_cardify                 (EDestination *, EBook *);</div><div class='del'>-void           e_destination_cardify_delayed         (EDestination *, EBook *, gint delay); /* delay &lt; 0: "default" */</div><div class='del'>-void           e_destination_cancel_cardify          (EDestination *);</div><div class='del'>-gboolean       e_destination_uncardify               (EDestination *);</div><div class='del'>-</div><div class='del'>-gboolean       e_destination_revert                  (EDestination *);</div><div class='del'>-</div><div class='del'>-gchar         *e_destination_get_address_textv  (EDestination **);</div><div class='del'>-</div><div class='del'>-xmlNodePtr     e_destination_xml_encode         (const EDestination *dest);</div><div class='del'>-gboolean       e_destination_xml_decode         (EDestination *dest, xmlNodePtr node);</div><div class='del'>-</div><div class='del'>-gchar         *e_destination_export             (const EDestination *);</div><div class='del'>-EDestination  *e_destination_import             (const gchar *str);</div><div class='del'>-</div><div class='del'>-gchar         *e_destination_exportv            (EDestination **);</div><div class='del'>-EDestination **e_destination_importv            (const gchar *str);</div><div class='del'>-</div><div class='del'>-EDestination **e_destination_list_to_vector     (GList *);</div><div class='del'>-void           e_destination_freev              (EDestination **);</div><div class='del'>-</div><div class='del'>-void           e_destination_touch              (EDestination *);</div><div class='del'>-void           e_destination_touchv             (EDestination **);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_DESTINATION_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/evolution-ldif-importer.c b/addressbook/backend/ebook/evolution-ldif-importer.c<br/>deleted file mode 100644<br/>index 23c6bf8743..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/evolution-ldif-importer.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/evolution-ldif-importer.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,623 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/* </div><div class='del'>- * LDIF importer.  LDIF is the file format of an exported Netscape</div><div class='del'>- * addressbook.</div><div class='del'>- *</div><div class='del'>- * Framework copied from evolution-gnomecard-importer.c</div><div class='del'>- *</div><div class='del'>- * Michael M. Morrison (mmorrison@kqcorp.com)</div><div class='del'>- *</div><div class='del'>- * Multi-line value support, mailing list support, base64 support, and</div><div class='del'>- * various fixups: Chris Toshok (toshok@ximian.com)</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;bonobo.h&gt;</div><div class='del'>-#include &lt;gnome.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;e-book.h&gt;</div><div class='del'>-#include &lt;e-card-simple.h&gt;</div><div class='del'>-#include &lt;e-destination.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;importer/evolution-importer.h&gt;</div><div class='del'>-#include &lt;importer/GNOME_Evolution_Importer.h&gt;</div><div class='del'>-</div><div class='del'>-#define COMPONENT_FACTORY_IID "OAFIID:GNOME_Evolution_Addressbook_LDIF_ImporterFactory"</div><div class='del'>-</div><div class='del'>-static BonoboGenericFactory *factory = NULL;</div><div class='del'>-</div><div class='del'>-static GHashTable *dn_card_hash;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *filename;</div><div class='del'>-	GList *cardlist;</div><div class='del'>-	GList *iterator;</div><div class='del'>-	EBook *book;</div><div class='del'>-	gboolean ready;</div><div class='del'>-} LDIFImporter;</div><div class='del'>-</div><div class='del'>-#define MAX_STRING_LEN 1024</div><div class='del'>-</div><div class='del'>-static struct {</div><div class='del'>-	char *ldif_attribute;</div><div class='del'>-	ECardSimpleField simple_field;</div><div class='del'>-#define FLAG_ADDRESS 0x01</div><div class='del'>-	int flags;</div><div class='del'>-}</div><div class='del'>-ldif_fields[] = {</div><div class='del'>-	{ "cn", E_CARD_SIMPLE_FIELD_FULL_NAME },</div><div class='del'>-	{ "mail", E_CARD_SIMPLE_FIELD_EMAIL },</div><div class='del'>-#if 0</div><div class='del'>-	{ "givenname", E_CARD_SIMPLE_FIELD_GIVEN_NAME },</div><div class='del'>-#endif</div><div class='del'>-	{ "sn", E_CARD_SIMPLE_FIELD_FAMILY_NAME },</div><div class='del'>-	{ "xmozillanickname", E_CARD_SIMPLE_FIELD_NICKNAME },</div><div class='del'>-	{ "o", E_CARD_SIMPLE_FIELD_ORG },</div><div class='del'>-	{ "locality", 0, FLAG_ADDRESS},</div><div class='del'>-	{ "st", 0, FLAG_ADDRESS },</div><div class='del'>-	{ "streetaddress", 0, FLAG_ADDRESS },</div><div class='del'>-	{ "title", E_CARD_SIMPLE_FIELD_TITLE },</div><div class='del'>-	{ "postalcode", 0, FLAG_ADDRESS },</div><div class='del'>-	{ "countryname", 0, FLAG_ADDRESS },</div><div class='del'>-	{ "telephonenumber", E_CARD_SIMPLE_FIELD_PHONE_BUSINESS},</div><div class='del'>-	{ "homephone", E_CARD_SIMPLE_FIELD_PHONE_HOME },</div><div class='del'>-	{ "facsimiletelephonenumber", E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_FAX },</div><div class='del'>-	{ "ou", E_CARD_SIMPLE_FIELD_ORG_UNIT },</div><div class='del'>-	{ "pagerphone", E_CARD_SIMPLE_FIELD_PHONE_PAGER },</div><div class='del'>-	{ "cellphone", E_CARD_SIMPLE_FIELD_PHONE_MOBILE },</div><div class='del'>-	{ "homeurl", E_CARD_SIMPLE_FIELD_URL },</div><div class='del'>-	{ "description", E_CARD_SIMPLE_FIELD_NOTE },</div><div class='del'>-	{ "xmozillausehtmlmail", E_CARD_SIMPLE_FIELD_WANTS_HTML }</div><div class='del'>-};</div><div class='del'>-static int num_ldif_fields = sizeof(ldif_fields) / sizeof (ldif_fields[0]);</div><div class='del'>-</div><div class='del'>-static unsigned char base64_rank[256] = {</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255, 62,255,255,255, 63,</div><div class='del'>-	 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255,  0,255,255,</div><div class='del'>-	255,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,</div><div class='del'>-	 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255,255,</div><div class='del'>-	255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,</div><div class='del'>-	 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-	255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * base64_decode_step: decode a chunk of base64 encoded data</div><div class='del'>- * @in: input stream</div><div class='del'>- * @len: max length of data to decode</div><div class='del'>- * @out: output stream</div><div class='del'>- * @state: holds the number of bits that are stored in @save</div><div class='del'>- * @save: leftover bits that have not yet been decoded</div><div class='del'>- *</div><div class='del'>- * Decodes a chunk of base64 encoded data</div><div class='del'>- **/</div><div class='del'>-static int</div><div class='del'>-base64_decode_step(unsigned char *in, int len, unsigned char *out, int *state, unsigned int *save)</div><div class='del'>-{</div><div class='del'>-	register unsigned char *inptr, *outptr;</div><div class='del'>-	unsigned char *inend, c;</div><div class='del'>-	register unsigned int v;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	inend = in+len;</div><div class='del'>-	outptr = out;</div><div class='del'>-</div><div class='del'>-	/* convert 4 base64 bytes to 3 normal bytes */</div><div class='del'>-	v=*save;</div><div class='del'>-	i=*state;</div><div class='del'>-	inptr = in;</div><div class='del'>-	while (inptr&lt;inend) {</div><div class='del'>-		c = base64_rank[*inptr++];</div><div class='del'>-		if (c != 0xff) {</div><div class='del'>-			v = (v&lt;&lt;6) | c;</div><div class='del'>-			i++;</div><div class='del'>-			if (i==4) {</div><div class='del'>-				*outptr++ = v&gt;&gt;16;</div><div class='del'>-				*outptr++ = v&gt;&gt;8;</div><div class='del'>-				*outptr++ = v;</div><div class='del'>-				i=0;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	*save = v;</div><div class='del'>-	*state = i;</div><div class='del'>-</div><div class='del'>-	/* quick scan back for '=' on the end somewhere */</div><div class='del'>-	/* fortunately we can drop 1 output char for each trailing = (upto 2) */</div><div class='del'>-	i=2;</div><div class='del'>-	while (inptr&gt;in &amp;&amp; i) {</div><div class='del'>-		inptr--;</div><div class='del'>-		if (base64_rank[*inptr] != 0xff) {</div><div class='del'>-			if (*inptr == '=')</div><div class='del'>-				outptr--;</div><div class='del'>-			i--;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* if i!= 0 then there is a truncation error! */</div><div class='del'>-	return outptr-out;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-base64_decode_simple (char *data, int len)</div><div class='del'>-{</div><div class='del'>-	int state = 0;</div><div class='del'>-	unsigned int save = 0;</div><div class='del'>-</div><div class='del'>-	return base64_decode_step ((unsigned char *)data, len,</div><div class='del'>-				   (unsigned char *)data, &amp;state, &amp;save);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-getValue( char * dest, char **src )</div><div class='del'>-{</div><div class='del'>-	char *d = dest;</div><div class='del'>-	char *s = *src;</div><div class='del'>-</div><div class='del'>- copy_line:</div><div class='del'>-	while( *s != 0 &amp;&amp; *s != '\n' &amp;&amp; *s != '\r' )</div><div class='del'>-		*dest++ = *s++;</div><div class='del'>-</div><div class='del'>-	if (*s == '\r') s++;</div><div class='del'>-	if (*s == '\n')	s++;</div><div class='del'>-</div><div class='del'>-	/* check for continuation here */</div><div class='del'>-	if (*s == ' ') {</div><div class='del'>-		s++;</div><div class='del'>-		goto copy_line;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	*dest = 0;</div><div class='del'>-</div><div class='del'>-	if (*d == ':') {</div><div class='del'>-		int new_len;</div><div class='del'>-		/* it's base64 encoded */</div><div class='del'>-		memmove (d, d + 2, strlen (d) - 2);</div><div class='del'>-		new_len = base64_decode_simple (d, strlen (d));</div><div class='del'>-		*(d + new_len) = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	*src = s;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-parseLine( ECardSimple *simple, ECardDeliveryAddress *address, char **buf )</div><div class='del'>-{</div><div class='del'>-	char *ptr;</div><div class='del'>-	char *colon, *value;</div><div class='del'>-	gboolean field_handled;</div><div class='del'>-	char ldif_value[MAX_STRING_LEN];</div><div class='del'>-</div><div class='del'>-	ptr = *buf;</div><div class='del'>-</div><div class='del'>-	/* if the string is empty, return */</div><div class='del'>-	if (*ptr == '\0') {</div><div class='del'>-		*buf = NULL;</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* skip comment lines */</div><div class='del'>-	if (*ptr == '#') {</div><div class='del'>-		ptr = strchr (ptr, '\n');</div><div class='del'>-		if (!ptr)</div><div class='del'>-			*buf = NULL;</div><div class='del'>-		else</div><div class='del'>-			*buf = ptr + 1;</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* first, check for a 'continuation' line */</div><div class='del'>-	if( ptr[0] == ' ' &amp;&amp; ptr[1] != '\n' ) {</div><div class='del'>-		g_warning ("unexpected continuation line");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	colon = (char *)strchr( ptr, ':' );</div><div class='del'>-	if (colon) {</div><div class='del'>-		int i;</div><div class='del'>-</div><div class='del'>-		*colon = 0;</div><div class='del'>-		value = colon + 1;</div><div class='del'>-		while ( isspace(*value) )</div><div class='del'>-			value++;</div><div class='del'>-</div><div class='del'>-		getValue( ldif_value, &amp;value );</div><div class='del'>-</div><div class='del'>-		field_handled = FALSE;</div><div class='del'>-		for (i = 0; i &lt; num_ldif_fields; i ++) {</div><div class='del'>-			if (!g_strcasecmp (ptr, ldif_fields[i].ldif_attribute)) {</div><div class='del'>-				if (ldif_fields[i].flags &amp; FLAG_ADDRESS) {</div><div class='del'>-					if (!g_strcasecmp (ptr, "locality"))</div><div class='del'>-						address-&gt;city = g_strdup (ldif_value);</div><div class='del'>-					else if (!g_strcasecmp (ptr, "countryname"))</div><div class='del'>-						address-&gt;country = g_strdup (ldif_value);</div><div class='del'>-					else if (!g_strcasecmp (ptr, "postalcode"))</div><div class='del'>-						address-&gt;code = g_strdup (ldif_value);</div><div class='del'>-					else if (!g_strcasecmp (ptr, "st"))</div><div class='del'>-						address-&gt;region = g_strdup (ldif_value);</div><div class='del'>-					else if (!g_strcasecmp (ptr, "streetaddress"))</div><div class='del'>-						address-&gt;street = g_strdup (ldif_value);</div><div class='del'>-				}</div><div class='del'>-				else {</div><div class='del'>-					e_card_simple_set (simple, ldif_fields[i].simple_field, ldif_value);</div><div class='del'>-					printf ("set %s to %s\n", ptr, ldif_value);</div><div class='del'>-				}</div><div class='del'>-				field_handled = TRUE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* handle objectclass/dn/member out here */</div><div class='del'>-		if (!field_handled) {</div><div class='del'>-			if (!g_strcasecmp (ptr, "dn"))</div><div class='del'>-				g_hash_table_insert (dn_card_hash, g_strdup(ldif_value), simple-&gt;card);</div><div class='del'>-			else if (!g_strcasecmp (ptr, "objectclass") &amp;&amp; !g_strcasecmp (ldif_value, "groupofnames")) {</div><div class='del'>-				e_card_simple_set (simple, E_CARD_SIMPLE_FIELD_IS_LIST, "true");</div><div class='del'>-			}</div><div class='del'>-			else if (!g_strcasecmp (ptr, "member")) {</div><div class='del'>-				EList *email;</div><div class='del'>-				gtk_object_get (GTK_OBJECT (simple-&gt;card),</div><div class='del'>-						"email", &amp;email,</div><div class='del'>-						NULL);</div><div class='del'>-				e_list_append (email, ldif_value);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* put the colon back the way it was, just for kicks */</div><div class='del'>-		*colon = ':';</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		g_warning ("unrecognized entry %s", ptr);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	*buf = value;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECard *</div><div class='del'>-getNextLDIFEntry( FILE *f )</div><div class='del'>-{</div><div class='del'>-	ECard *card;</div><div class='del'>-	ECardAddrLabel *label;</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	ECardDeliveryAddress *address;</div><div class='del'>-	GString *str;</div><div class='del'>-	char line[1024];</div><div class='del'>-	char *buf;</div><div class='del'>-</div><div class='del'>-	str = g_string_new ("");</div><div class='del'>-	/* read from the file until we get to a blank line (or eof) */</div><div class='del'>-	while (!feof (f)) {</div><div class='del'>-		if (!fgets (line, sizeof(line), f))</div><div class='del'>-			break;</div><div class='del'>-		if (line[0] == '\n')</div><div class='del'>-			break;</div><div class='del'>-		str = g_string_append (str, line);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (strlen (str-&gt;str) == 0) {</div><div class='del'>-		g_string_free (str, TRUE);</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* now parse that entry */</div><div class='del'>-	card = e_card_new ("");</div><div class='del'>-	simple = e_card_simple_new (card);</div><div class='del'>-	address = e_card_delivery_address_new ();</div><div class='del'>-</div><div class='del'>-	buf = str-&gt;str;</div><div class='del'>-	while (buf) {</div><div class='del'>-		if (!parseLine (simple, address, &amp;buf)) {</div><div class='del'>-			/* parsing error */</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-			e_card_delivery_address_unref (address);</div><div class='del'>-			return NULL;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	/* fill in the address */</div><div class='del'>-	address-&gt;flags = E_CARD_ADDR_HOME;</div><div class='del'>-</div><div class='del'>-	label = e_card_delivery_address_to_label (address);</div><div class='del'>-	e_card_delivery_address_unref (address);</div><div class='del'>-</div><div class='del'>-	e_card_simple_set_address (simple, E_CARD_SIMPLE_ADDRESS_ID_HOME, label);</div><div class='del'>-</div><div class='del'>-	e_card_address_label_unref (label);</div><div class='del'>-</div><div class='del'>-	e_card_simple_sync_card (simple);</div><div class='del'>-</div><div class='del'>-	g_string_free (str, TRUE);</div><div class='del'>-</div><div class='del'>-	return card;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_card_cb (EBook *book, EBookStatus status, const gchar *id, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD(closure);</div><div class='del'>-	char *vcard;</div><div class='del'>-</div><div class='del'>-	e_card_set_id (card, id);</div><div class='del'>-</div><div class='del'>-	vcard = e_card_get_vcard(card);	</div><div class='del'>-</div><div class='del'>-	g_print ("Saved card: %s\n", vcard);</div><div class='del'>-	g_free(vcard);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-resolve_list_card (LDIFImporter *gci, ECard *card)</div><div class='del'>-{</div><div class='del'>-	EList *email;</div><div class='del'>-	EIterator *email_iter;</div><div class='del'>-	char *full_name;</div><div class='del'>-</div><div class='del'>-	if (!e_card_evolution_list (card))</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	gtk_object_get (GTK_OBJECT (card),</div><div class='del'>-			"email", &amp;email,</div><div class='del'>-			"full_name", &amp;full_name,</div><div class='del'>-			NULL);</div><div class='del'>-</div><div class='del'>-	/* set file_as to full_name so we don't later try and figure</div><div class='del'>-           out a first/last name for the list. */</div><div class='del'>-	if (full_name)</div><div class='del'>-		gtk_object_set (GTK_OBJECT (card),</div><div class='del'>-				"file_as", full_name,</div><div class='del'>-				NULL);</div><div class='del'>-</div><div class='del'>-	email_iter = e_list_get_iterator (email);</div><div class='del'>-	while (e_iterator_is_valid (email_iter)) {</div><div class='del'>-		const char *dn = e_iterator_get (email_iter);</div><div class='del'>-		ECard *dn_card = g_hash_table_lookup (dn_card_hash, dn);</div><div class='del'>-</div><div class='del'>-		/* break list chains here, since we don't support them just yet */</div><div class='del'>-		if (dn_card &amp;&amp; !e_card_evolution_list (dn_card)) {</div><div class='del'>-			EDestination *dest = e_destination_new ();</div><div class='del'>-			gchar *dest_xml;</div><div class='del'>-			e_destination_set_card (dest, dn_card, 0);  /* Hard-wired for default e-mail, since netscape only exports 1 email address */</div><div class='del'>-			dest_xml = e_destination_export (dest);</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-			if (dest_xml) {</div><div class='del'>-				e_iterator_set (email_iter, dest_xml);</div><div class='del'>-				g_free (dest_xml);</div><div class='del'>-				e_iterator_next (email_iter);</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-				e_iterator_delete (email_iter);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			e_iterator_delete (email_iter);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	LDIFImporter *gci = (LDIFImporter *) closure;</div><div class='del'>-	GList * list = NULL;</div><div class='del'>-	GList * list_list = NULL;</div><div class='del'>-	FILE * file;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	if(!( file = fopen( gci-&gt;filename, "r" ) )) {</div><div class='del'>-		g_warning("!!!Can't open .ldif file");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	dn_card_hash = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>-</div><div class='del'>-	while ((card = getNextLDIFEntry (file))) {</div><div class='del'>-</div><div class='del'>-		if (e_card_evolution_list (card))</div><div class='del'>-			list_list = g_list_append (list_list, card);</div><div class='del'>-		else</div><div class='del'>-			list = g_list_append (list, card);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	fclose( file );</div><div class='del'>-</div><div class='del'>-	list = g_list_reverse( list );</div><div class='del'>-	list_list = g_list_reverse (list_list);</div><div class='del'>-	list = g_list_concat (list, list_list);</div><div class='del'>-</div><div class='del'>-	gci-&gt;cardlist = list;</div><div class='del'>-	gci-&gt;ready = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ebook_create (LDIFImporter *gci)</div><div class='del'>-{</div><div class='del'>-	gchar *path, *uri;</div><div class='del'>-	</div><div class='del'>-	gci-&gt;book = e_book_new ();</div><div class='del'>-</div><div class='del'>-	if (!gci-&gt;book) {</div><div class='del'>-		printf ("%s: %s(): Couldn't create EBook, bailing.\n",</div><div class='del'>-			__FILE__,</div><div class='del'>-			__FUNCTION__);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	path = g_concat_dir_and_file (g_get_home_dir (),</div><div class='del'>-				      "evolution/local/Contacts/addressbook.db");</div><div class='del'>-	uri = g_strdup_printf ("file://%s", path);</div><div class='del'>-	g_free (path);</div><div class='del'>-</div><div class='del'>-	if (! e_book_load_uri (gci-&gt;book, uri, book_open_cb, gci)) {</div><div class='del'>-		printf ("error calling load_uri!\n");</div><div class='del'>-	}</div><div class='del'>-	g_free(uri);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* EvolutionImporter methods */</div><div class='del'>-static void</div><div class='del'>-process_item_fn (EvolutionImporter *importer,</div><div class='del'>-		 CORBA_Object listener,</div><div class='del'>-		 void *closure,</div><div class='del'>-		 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	LDIFImporter *gci = (LDIFImporter *) closure;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	if (gci-&gt;iterator == NULL)</div><div class='del'>-		gci-&gt;iterator = gci-&gt;cardlist;</div><div class='del'>-</div><div class='del'>-	if (gci-&gt;ready == FALSE) {</div><div class='del'>-		GNOME_Evolution_ImporterListener_notifyResult (listener,</div><div class='del'>-							       GNOME_Evolution_ImporterListener_NOT_READY,</div><div class='del'>-							       gci-&gt;iterator ? TRUE : FALSE, </div><div class='del'>-							       ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (gci-&gt;iterator == NULL) {</div><div class='del'>-		GNOME_Evolution_ImporterListener_notifyResult (listener,</div><div class='del'>-							       GNOME_Evolution_ImporterListener_UNSUPPORTED_OPERATION,</div><div class='del'>-							       FALSE, ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	card = gci-&gt;iterator-&gt;data;</div><div class='del'>-	if (e_card_evolution_list (card))</div><div class='del'>-		resolve_list_card (gci, card);</div><div class='del'>-	e_book_add_card (gci-&gt;book, card, add_card_cb, card);</div><div class='del'>-</div><div class='del'>-	gci-&gt;iterator = gci-&gt;iterator-&gt;next;</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_ImporterListener_notifyResult (listener,</div><div class='del'>-						       GNOME_Evolution_ImporterListener_OK,</div><div class='del'>-						       gci-&gt;iterator ? TRUE : FALSE, </div><div class='del'>-						       ev);</div><div class='del'>-	if (ev-&gt;_major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("Error notifying listeners.");</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *supported_extensions[2] = {</div><div class='del'>-	".ldif", NULL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-support_format_fn (EvolutionImporter *importer,</div><div class='del'>-		   const char *filename,</div><div class='del'>-		   void *closure)</div><div class='del'>-{</div><div class='del'>-	char *ext;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	ext = strrchr (filename, '.');</div><div class='del'>-	if (ext == NULL) {</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	for (i = 0; supported_extensions[i] != NULL; i++) {</div><div class='del'>-		if (strcmp (supported_extensions[i], ext) == 0)</div><div class='del'>-			return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-importer_destroy_cb (GtkObject *object,</div><div class='del'>-		     LDIFImporter *gci)</div><div class='del'>-{</div><div class='del'>-	gtk_main_quit ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-load_file_fn (EvolutionImporter *importer,</div><div class='del'>-	      const char *filename,</div><div class='del'>-	      const char *folderpath,</div><div class='del'>-	      void *closure)</div><div class='del'>-{</div><div class='del'>-	LDIFImporter *gci;</div><div class='del'>-</div><div class='del'>-	gci = (LDIFImporter *) closure;</div><div class='del'>-	gci-&gt;filename = g_strdup (filename);</div><div class='del'>-	gci-&gt;cardlist = NULL;</div><div class='del'>-	gci-&gt;iterator = NULL;</div><div class='del'>-	gci-&gt;ready = FALSE;</div><div class='del'>-	ebook_create (gci);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-					   </div><div class='del'>-static BonoboObject *</div><div class='del'>-factory_fn (BonoboGenericFactory *_factory,</div><div class='del'>-	    void *closure)</div><div class='del'>-{</div><div class='del'>-	EvolutionImporter *importer;</div><div class='del'>-	LDIFImporter *gci;</div><div class='del'>-</div><div class='del'>-	gci = g_new (LDIFImporter, 1);</div><div class='del'>-	importer = evolution_importer_new (support_format_fn, load_file_fn, </div><div class='del'>-					   process_item_fn, NULL, gci);</div><div class='del'>-	</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (importer), "destroy",</div><div class='del'>-			    GTK_SIGNAL_FUNC (importer_destroy_cb), gci);</div><div class='del'>-	</div><div class='del'>-	return BONOBO_OBJECT (importer);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-importer_init (void)</div><div class='del'>-{</div><div class='del'>-	if (factory != NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	factory = bonobo_generic_factory_new (COMPONENT_FACTORY_IID, </div><div class='del'>-					      factory_fn, NULL);</div><div class='del'>-</div><div class='del'>-	if (factory == NULL) {</div><div class='del'>-		g_error ("Unable to create factory");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_running_context_auto_exit_unref (BONOBO_OBJECT (factory));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc,</div><div class='del'>-      char **argv)</div><div class='del'>-{</div><div class='del'>-	CORBA_ORB orb;</div><div class='del'>-	</div><div class='del'>-	gnome_init_with_popt_table ("Evolution-LDIF-Importer",</div><div class='del'>-				    "0.0", argc, argv, oaf_popt_options, 0,</div><div class='del'>-				    NULL);</div><div class='del'>-	orb = oaf_init (argc, argv);</div><div class='del'>-	if (bonobo_init (orb, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) {</div><div class='del'>-		g_error ("Could not initialize Bonobo.");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	importer_init ();</div><div class='del'>-	bonobo_main ();</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/evolution-vcard-importer.c b/addressbook/backend/ebook/evolution-vcard-importer.c<br/>deleted file mode 100644<br/>index e32593b4fb..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/evolution-vcard-importer.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/evolution-vcard-importer.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,260 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-context.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-generic-factory.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-main.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;e-book.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;importer/evolution-importer.h&gt;</div><div class='del'>-#include &lt;importer/GNOME_Evolution_Importer.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;e-util/e-path.h&gt;</div><div class='del'>-</div><div class='del'>-#define COMPONENT_FACTORY_IID "OAFIID:GNOME_Evolution_Addressbook_VCard_ImporterFactory"</div><div class='del'>-</div><div class='del'>-static BonoboGenericFactory *factory = NULL;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *filename;</div><div class='del'>-	char *folderpath;</div><div class='del'>-	GList *cardlist;</div><div class='del'>-	GList *iterator;</div><div class='del'>-	EBook *book;</div><div class='del'>-	gboolean ready;</div><div class='del'>-} VCardImporter;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_card_cb (EBook *book, EBookStatus status, const gchar *id, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD(closure);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	VCardImporter *gci = (VCardImporter *) closure;</div><div class='del'>-</div><div class='del'>-	gci-&gt;cardlist = e_card_load_cards_from_file_with_default_charset(gci-&gt;filename, "ISO-8859-1");</div><div class='del'>-	gci-&gt;ready = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ebook_create (VCardImporter *gci)</div><div class='del'>-{</div><div class='del'>-	gchar *path, *uri;</div><div class='del'>-	gchar *epath;</div><div class='del'>-	</div><div class='del'>-	gci-&gt;book = e_book_new ();</div><div class='del'>-</div><div class='del'>-	if (!gci-&gt;book) {</div><div class='del'>-		printf ("%s: %s(): Couldn't create EBook, bailing.\n",</div><div class='del'>-			__FILE__,</div><div class='del'>-			__FUNCTION__);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	path = g_concat_dir_and_file (g_get_home_dir (), "evolution/local");</div><div class='del'>-	uri = g_strdup_printf ("file://%s", path);</div><div class='del'>-	g_free (path);</div><div class='del'>-</div><div class='del'>-	epath = e_path_to_physical (uri, gci-&gt;folderpath);</div><div class='del'>-	g_free (uri);</div><div class='del'>-	uri = g_strdup_printf ("%s/addressbook.db", epath);</div><div class='del'>-	g_free (epath);</div><div class='del'>-</div><div class='del'>-	if (! e_book_load_uri (gci-&gt;book, uri, book_open_cb, gci)) {</div><div class='del'>-		printf ("error calling load_uri!\n");</div><div class='del'>-	}</div><div class='del'>-	g_free(uri);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* EvolutionImporter methods */</div><div class='del'>-static void</div><div class='del'>-process_item_fn (EvolutionImporter *importer,</div><div class='del'>-		 CORBA_Object listener,</div><div class='del'>-		 void *closure,</div><div class='del'>-		 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	VCardImporter *gci = (VCardImporter *) closure;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	if (gci-&gt;iterator == NULL)</div><div class='del'>-		gci-&gt;iterator = gci-&gt;cardlist;</div><div class='del'>-	</div><div class='del'>-	if (gci-&gt;ready == FALSE) {</div><div class='del'>-		GNOME_Evolution_ImporterListener_notifyResult (listener,</div><div class='del'>-							       GNOME_Evolution_ImporterListener_NOT_READY,</div><div class='del'>-							       gci-&gt;iterator ? TRUE : FALSE, </div><div class='del'>-							       ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (gci-&gt;iterator == NULL) {</div><div class='del'>-		GNOME_Evolution_ImporterListener_notifyResult (listener,</div><div class='del'>-							       GNOME_Evolution_ImporterListener_UNSUPPORTED_OPERATION,</div><div class='del'>-							       FALSE, ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	card = gci-&gt;iterator-&gt;data;</div><div class='del'>-	e_book_add_card (gci-&gt;book, card, add_card_cb, card);</div><div class='del'>-	</div><div class='del'>-	gci-&gt;iterator = gci-&gt;iterator-&gt;next;</div><div class='del'>-	</div><div class='del'>-	GNOME_Evolution_ImporterListener_notifyResult (listener,</div><div class='del'>-						       GNOME_Evolution_ImporterListener_OK,</div><div class='del'>-						       gci-&gt;iterator ? TRUE : FALSE, </div><div class='del'>-						       ev);</div><div class='del'>-	if (ev-&gt;_major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("Error notifying listeners.");</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *supported_extensions[3] = {</div><div class='del'>-	".vcf",</div><div class='del'>-	".gcrd",</div><div class='del'>-	NULL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Actually check the contents of this file */</div><div class='del'>-static gboolean</div><div class='del'>-check_file_is_vcard (const char *filename)</div><div class='del'>-{</div><div class='del'>-	FILE *handle;</div><div class='del'>-	char line[4096];</div><div class='del'>-	gboolean result;</div><div class='del'>-</div><div class='del'>-	handle = fopen (filename, "r");</div><div class='del'>-	if (handle == NULL) {</div><div class='del'>-		g_print ("\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-		</div><div class='del'>-	fgets (line, 4096, handle);</div><div class='del'>-	if (line == NULL) {</div><div class='del'>-		fclose (handle);</div><div class='del'>-		g_print ("\n");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (strncmp (line, "BEGIN:VCARD", 11) == 0) {</div><div class='del'>-		result = TRUE;</div><div class='del'>-	} else {</div><div class='del'>-		result = FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	fclose (handle);</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-support_format_fn (EvolutionImporter *importer,</div><div class='del'>-		   const char *filename,</div><div class='del'>-		   void *closure)</div><div class='del'>-{</div><div class='del'>-	char *ext;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	ext = strrchr (filename, '.');</div><div class='del'>-	if (ext == NULL) {</div><div class='del'>-		return check_file_is_vcard (filename);</div><div class='del'>-	}</div><div class='del'>-	for (i = 0; supported_extensions[i] != NULL; i++) {</div><div class='del'>-		if (strcmp (supported_extensions[i], ext) == 0)</div><div class='del'>-			return check_file_is_vcard (filename);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-importer_destroy_cb (GtkObject *object,</div><div class='del'>-		     VCardImporter *gci)</div><div class='del'>-{</div><div class='del'>-	gtk_main_quit ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-load_file_fn (EvolutionImporter *importer,</div><div class='del'>-	      const char *filename,</div><div class='del'>-	      const char *folderpath,</div><div class='del'>-	      void *closure)</div><div class='del'>-{</div><div class='del'>-	VCardImporter *gci;</div><div class='del'>-</div><div class='del'>-	if (check_file_is_vcard (filename) == FALSE) {</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gci = (VCardImporter *) closure;</div><div class='del'>-	gci-&gt;filename = g_strdup (filename);</div><div class='del'>-	gci-&gt;folderpath = g_strdup (folderpath);</div><div class='del'>-	gci-&gt;cardlist = NULL;</div><div class='del'>-	gci-&gt;iterator = NULL;</div><div class='del'>-	gci-&gt;ready = FALSE;</div><div class='del'>-	ebook_create (gci);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-					   </div><div class='del'>-static BonoboObject *</div><div class='del'>-factory_fn (BonoboGenericFactory *_factory,</div><div class='del'>-	    void *closure)</div><div class='del'>-{</div><div class='del'>-	EvolutionImporter *importer;</div><div class='del'>-	VCardImporter *gci;</div><div class='del'>-</div><div class='del'>-	gci = g_new (VCardImporter, 1);</div><div class='del'>-	importer = evolution_importer_new (support_format_fn, load_file_fn, </div><div class='del'>-					   process_item_fn, NULL, gci);</div><div class='del'>-	</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (importer), "destroy",</div><div class='del'>-			    GTK_SIGNAL_FUNC (importer_destroy_cb), gci);</div><div class='del'>-	</div><div class='del'>-	return BONOBO_OBJECT (importer);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-importer_init (void)</div><div class='del'>-{</div><div class='del'>-	if (factory != NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	factory = bonobo_generic_factory_new (COMPONENT_FACTORY_IID, </div><div class='del'>-					      factory_fn, NULL);</div><div class='del'>-</div><div class='del'>-	if (factory == NULL) {</div><div class='del'>-		g_error ("Unable to create factory");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_running_context_auto_exit_unref (BONOBO_OBJECT (factory));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc,</div><div class='del'>-      char **argv)</div><div class='del'>-{</div><div class='del'>-	CORBA_ORB orb;</div><div class='del'>-	</div><div class='del'>-	gnome_init_with_popt_table ("Evolution-VCard-Importer",</div><div class='del'>-				    PACKAGE, argc, argv, oaf_popt_options, 0,</div><div class='del'>-				    NULL);</div><div class='del'>-	orb = oaf_init (argc, argv);</div><div class='del'>-	if (bonobo_init (orb, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) {</div><div class='del'>-		g_error ("Could not initialize Bonobo.");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	importer_init ();</div><div class='del'>-	bonobo_main ();</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/ebook/load-gnomecard-addressbook.c b/addressbook/backend/ebook/load-gnomecard-addressbook.c<br/>deleted file mode 100644<br/>index 6f592a4664..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/load-gnomecard-addressbook.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/load-gnomecard-addressbook.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,91 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmain.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-util.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-init.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-main.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-book.h"</div><div class='del'>-</div><div class='del'>-static CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_bonobo (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE)</div><div class='del'>-		g_error (_("Could not initialize Bonobo"));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_card_cb (EBook *book, EBookStatus status, const gchar *id, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD(closure);</div><div class='del'>-	char *vcard = e_card_get_vcard_assume_utf8(card);</div><div class='del'>-	g_print ("Saved card: %s\n", vcard);</div><div class='del'>-	g_free(vcard);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	GList *list = e_card_load_cards_from_file_with_default_charset("gnomecard.vcf", "ISO-8859-1");</div><div class='del'>-	GList *iterator;</div><div class='del'>-	for (iterator = list; iterator; iterator = g_list_next(iterator)) {</div><div class='del'>-		ECard *card = iterator-&gt;data;</div><div class='del'>-		e_book_add_card(book, card, add_card_cb, card);</div><div class='del'>-	}</div><div class='del'>-	g_list_free(list);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static guint</div><div class='del'>-ebook_create (void)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	gchar *path, *uri;</div><div class='del'>-	</div><div class='del'>-	book = e_book_new ();</div><div class='del'>-</div><div class='del'>-	if (!book) {</div><div class='del'>-		printf ("%s: %s(): Couldn't create EBook, bailing.\n",</div><div class='del'>-			__FILE__,</div><div class='del'>-			__FUNCTION__);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	path = g_concat_dir_and_file (g_get_home_dir (),</div><div class='del'>-				      "evolution/local/Contacts/addressbook.db");</div><div class='del'>-	uri = g_strdup_printf ("file://%s", path);</div><div class='del'>-	g_free (path);</div><div class='del'>-</div><div class='del'>-	if (! e_book_load_uri (book, uri, book_open_cb, NULL)) {</div><div class='del'>-		printf ("error calling load_uri!\n");</div><div class='del'>-	}</div><div class='del'>-	g_free(uri);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	gnome_init_with_popt_table("blah", "0.0", argc, argv, NULL, 0, NULL);</div><div class='del'>-	oaf_init (argc, argv);</div><div class='del'>-	init_bonobo (argc, argv);</div><div class='del'>-</div><div class='del'>-	gtk_idle_add ((GtkFunction) ebook_create, NULL);</div><div class='del'>-	</div><div class='del'>-	bonobo_main ();</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/load-pine-addressbook.c b/addressbook/backend/ebook/load-pine-addressbook.c<br/>deleted file mode 100644<br/>index c1d58a88bf..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/load-pine-addressbook.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/load-pine-addressbook.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,172 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmain.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-util.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-init.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-main.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-book.h"</div><div class='del'>-</div><div class='del'>-static CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_bonobo (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE)</div><div class='del'>-		g_error (_("Could not initialize Bonobo"));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_card_cb (EBook *book, EBookStatus status, const gchar *id, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD(closure);</div><div class='del'>-	char *vcard = e_card_get_vcard_assume_utf8(card);</div><div class='del'>-	g_print ("Saved card: %s\n", vcard);</div><div class='del'>-	g_free(vcard);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-parse_line (EBook *book, char *line)</div><div class='del'>-{</div><div class='del'>-	char **strings;</div><div class='del'>-	ECardName *name;</div><div class='del'>-	ECard *card;</div><div class='del'>-	EList *list;</div><div class='del'>-</div><div class='del'>-	card = e_card_new("");</div><div class='del'>-	strings = g_strsplit(line, "\t", 3);</div><div class='del'>-	if (strings[0] &amp;&amp; strings[1] &amp;&amp; strings[2]) {</div><div class='del'>-		name = e_card_name_from_string(strings[1]);</div><div class='del'>-		gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-			       "nickname", strings[0],</div><div class='del'>-			       "full_name", strings[1],</div><div class='del'>-			       "name", name,</div><div class='del'>-			       NULL);</div><div class='del'>-		gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-			       "email", &amp;list,</div><div class='del'>-			       NULL);</div><div class='del'>-		e_list_append(list, strings[2]);</div><div class='del'>-		e_book_add_card(book, card, add_card_cb, card);</div><div class='del'>-	}</div><div class='del'>-	g_strfreev(strings);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	FILE *fp = fopen (".addressbook", "r");</div><div class='del'>-	char line[2 * 1024];</div><div class='del'>-	int which = 0;</div><div class='del'>-	char *lastline = NULL;</div><div class='del'>-</div><div class='del'>-	if (!fp) {</div><div class='del'>-		g_warning ("Can't find .addressbook");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	while(fgets(line + which * 1024, 1024, fp)) {</div><div class='del'>-		int length;</div><div class='del'>-		char *thisline = line + which * 1024;</div><div class='del'>-		length = strlen(thisline);</div><div class='del'>-		if (thisline[length - 1] == '\n')</div><div class='del'>-			line[--length] = 0;</div><div class='del'>-		if (lastline &amp;&amp; *thisline &amp;&amp; isspace(*thisline)) {</div><div class='del'>-			char *temp;</div><div class='del'>-			while(*thisline &amp;&amp; isspace(*thisline))</div><div class='del'>-				thisline ++;</div><div class='del'>-			temp = lastline;</div><div class='del'>-			lastline = g_strdup_printf("%s%s", lastline, thisline);</div><div class='del'>-			g_free(temp);</div><div class='del'>-			continue;</div><div class='del'>-		}</div><div class='del'>-		if (lastline) {</div><div class='del'>-			parse_line (book, lastline);</div><div class='del'>-			g_free(lastline);</div><div class='del'>-		}</div><div class='del'>-		lastline = g_strdup(thisline);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (lastline) {</div><div class='del'>-		parse_line (book, lastline);</div><div class='del'>-		g_free(lastline);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static guint</div><div class='del'>-ebook_create (void)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	gchar *path, *uri;</div><div class='del'>-	</div><div class='del'>-	book = e_book_new ();</div><div class='del'>-</div><div class='del'>-	if (!book) {</div><div class='del'>-		printf ("%s: %s(): Couldn't create EBook, bailing.\n",</div><div class='del'>-			__FILE__,</div><div class='del'>-			__FUNCTION__);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	path = g_concat_dir_and_file (g_get_home_dir (),</div><div class='del'>-				      "evolution/local/Contacts/addressbook.db");</div><div class='del'>-	uri = g_strdup_printf ("file://%s", path);</div><div class='del'>-	g_free (path);</div><div class='del'>-</div><div class='del'>-	if (! e_book_load_uri (book, uri, book_open_cb, NULL)) {</div><div class='del'>-		printf ("error calling load_uri!\n");</div><div class='del'>-	}</div><div class='del'>-	g_free(uri);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-static char *</div><div class='del'>-read_file (char *name)</div><div class='del'>-{</div><div class='del'>-	int  len;</div><div class='del'>-	char buff[65536];</div><div class='del'>-	char line[1024];</div><div class='del'>-	FILE *f;</div><div class='del'>-</div><div class='del'>-	f = fopen (name, "r");</div><div class='del'>-	if (f == NULL)</div><div class='del'>-		g_error ("Unable to open %s!\n", name);</div><div class='del'>-</div><div class='del'>-	len  = 0;</div><div class='del'>-	while (fgets (line, sizeof (line), f) != NULL) {</div><div class='del'>-		strcpy (buff + len, line);</div><div class='del'>-		len += strlen (line);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	fclose (f);</div><div class='del'>-</div><div class='del'>-	return g_strdup (buff);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	gnome_init_with_popt_table("blah", "0.0", argc, argv, NULL, 0, NULL);</div><div class='del'>-	oaf_init (argc, argv);</div><div class='del'>-	init_bonobo (argc, argv);</div><div class='del'>-</div><div class='del'>-	gtk_idle_add ((GtkFunction) ebook_create, NULL);</div><div class='del'>-	</div><div class='del'>-	bonobo_main ();</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/test-card.c b/addressbook/backend/ebook/test-card.c<br/>deleted file mode 100644<br/>index dd591d6c51..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/test-card.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/test-card.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,196 +0,0 @@</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-init.h&gt;</div><div class='del'>-#include "e-card.h"</div><div class='del'>-</div><div class='del'>-#define TEST_VCARD                   \</div><div class='del'>-"BEGIN:VCARD</div><div class='del'>-"                      \</div><div class='del'>-"FN:Nat</div><div class='del'>-"                           \</div><div class='del'>-"N:Friedman;Nat;D;Mr.</div><div class='del'>-"             \</div><div class='del'>-"ORG:Ximian, Inc.</div><div class='del'>-"             \</div><div class='del'>-"TITLE:Head Geek</div><div class='del'>-"                  \</div><div class='del'>-"ROLE:Programmer/Executive</div><div class='del'>-"        \</div><div class='del'>-"BDAY:1977-08-06</div><div class='del'>-"                  \</div><div class='del'>-"TEL;WORK:617 679 1984</div><div class='del'>-"            \</div><div class='del'>-"TEL;CELL:123 456 7890</div><div class='del'>-"            \</div><div class='del'>-"EMAIL;INTERNET:nat@nat.org</div><div class='del'>-"       \</div><div class='del'>-"EMAIL;INTERNET:nat@ximian.com</div><div class='del'>-" \</div><div class='del'>-"ADR;WORK;POSTAL:P.O. Box 101;;;Any Town;CA;91921-1234;</div><div class='del'>-" \</div><div class='del'>-"ADR;HOME;POSTAL;INTL:P.O. Box 202;;;Any Town 2;MI;12344-4321;USA</div><div class='del'>-" \</div><div class='del'>-"END:VCARD</div><div class='del'>-"                        \</div><div class='del'>-"</div><div class='del'>-"</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-read_file (char *name)</div><div class='del'>-{</div><div class='del'>-	int  len;</div><div class='del'>-	char buff[65536];</div><div class='del'>-	char line[1024];</div><div class='del'>-	FILE *f;</div><div class='del'>-</div><div class='del'>-	f = fopen (name, "r");</div><div class='del'>-	if (f == NULL)</div><div class='del'>-		g_error ("Unable to open %s!\n", name);</div><div class='del'>-</div><div class='del'>-	len  = 0;</div><div class='del'>-	while (fgets (line, sizeof (line), f) != NULL) {</div><div class='del'>-		strcpy (buff + len, line);</div><div class='del'>-		len += strlen (line);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	fclose (f);</div><div class='del'>-</div><div class='del'>-	return g_strdup (buff);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	char  *cardstr;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	/* Fields */</div><div class='del'>-	char *fname;</div><div class='del'>-	char *org;</div><div class='del'>-	char *org_unit;</div><div class='del'>-        char *title;</div><div class='del'>-	char *role;</div><div class='del'>-	char *nickname;</div><div class='del'>-	char *fburl;</div><div class='del'>-	ECardName *name;</div><div class='del'>-	EList *address;</div><div class='del'>-	EList *phone;</div><div class='del'>-	EList *email;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-	ECardDate *bday;</div><div class='del'>-</div><div class='del'>-	gnome_init ("TestCard", "0.0", argc, argv);</div><div class='del'>-</div><div class='del'>-	cardstr = NULL;</div><div class='del'>-	if (argc == 2)</div><div class='del'>-		cardstr = read_file (argv [1]);</div><div class='del'>-</div><div class='del'>-	if (cardstr == NULL)</div><div class='del'>-		cardstr = TEST_VCARD;</div><div class='del'>-#if 0</div><div class='del'>-	{</div><div class='del'>-	  int i;</div><div class='del'>-	  for ( i = 0; i &lt; 100000; i++ ) {</div><div class='del'>-	    card = e_card_new (cardstr);</div><div class='del'>-	  </div><div class='del'>-	    gtk_object_unref (GTK_OBJECT (card));</div><div class='del'>-	  }</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	card = e_card_new_with_default_charset (cardstr, "ISO-8859-1");</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       "full_name",  &amp;fname,</div><div class='del'>-		       "name",       &amp;name,</div><div class='del'>-		       "address",    &amp;address,</div><div class='del'>-		       "phone",      &amp;phone,</div><div class='del'>-		       "email",      &amp;email,</div><div class='del'>-		       "org",        &amp;org,</div><div class='del'>-		       "org_unit",   &amp;org_unit,</div><div class='del'>-		       "title",      &amp;title,</div><div class='del'>-		       "role",       &amp;role,</div><div class='del'>-		       "nickname",   &amp;nickname,</div><div class='del'>-		       "fburl",      &amp;fburl,</div><div class='del'>-		       "birth_date", &amp;bday,</div><div class='del'>-		       NULL);</div><div class='del'>-	if ( fname ) {</div><div class='del'>-	  printf("Name : %s\n", fname);</div><div class='del'>-	  g_free(fname);</div><div class='del'>-	}</div><div class='del'>-	if ( name ) {</div><div class='del'>-	  printf("Full Name:\n");</div><div class='del'>-	  if ( name-&gt;prefix )</div><div class='del'>-	    printf("  prefix     : %s\n", name-&gt;prefix);</div><div class='del'>-	  if ( name-&gt;given )</div><div class='del'>-	    printf("  given      : %s\n", name-&gt;given);</div><div class='del'>-	  if ( name-&gt;additional )</div><div class='del'>-	    printf("  additional : %s\n", name-&gt;additional);</div><div class='del'>-	  if ( name-&gt;family )</div><div class='del'>-	    printf("  family     : %s\n", name-&gt;family);</div><div class='del'>-	  if ( name-&gt;suffix )</div><div class='del'>-	    printf("  suffix     : %s\n", name-&gt;suffix);</div><div class='del'>-	}</div><div class='del'>-	if ( org ) {</div><div class='del'>-	  printf("Company : %s\n", org);</div><div class='del'>-        }</div><div class='del'>-	if ( org_unit ) {</div><div class='del'>-	  printf("Department : %s\n", org_unit);</div><div class='del'>-        }</div><div class='del'>-	if ( title ) {</div><div class='del'>-	  printf("Title : %s\n", title);</div><div class='del'>-        }</div><div class='del'>-	if ( role ) {</div><div class='del'>-	  printf("Profession : %s\n", role);</div><div class='del'>-        }</div><div class='del'>-	if ( nickname ) {</div><div class='del'>-	  printf("Nickname : %s\n", nickname);</div><div class='del'>-        }</div><div class='del'>-	if ( fburl ) {</div><div class='del'>-	  printf("Free Busy URL : %s\n", fburl);</div><div class='del'>-        }</div><div class='del'>-	if ( bday ) {</div><div class='del'>-	  printf("BDay : %4d-%02d-%02d\n", bday-&gt;year, bday-&gt;month, bday-&gt;day);</div><div class='del'>-	}</div><div class='del'>-	if ( email ) {</div><div class='del'>-	  iterator = e_list_get_iterator(address);</div><div class='del'>-	  for (; e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-	    printf("Email : %s\n", (char *) e_iterator_get(iterator));</div><div class='del'>-	  }</div><div class='del'>-	  gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	}</div><div class='del'>-	if ( phone ) {</div><div class='del'>-	  iterator = e_list_get_iterator(address);</div><div class='del'>-	  for (; e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-	    ECardPhone *e_card_phone = (ECardPhone *) e_iterator_get(iterator);</div><div class='del'>-	    printf("Phone ; %d : %s\n", e_card_phone-&gt;flags, e_card_phone-&gt;number);</div><div class='del'>-	  }</div><div class='del'>-	  gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	}</div><div class='del'>-	if ( address ) {</div><div class='del'>-	  iterator = e_list_get_iterator(address);</div><div class='del'>-	  for (; e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-	    ECardDeliveryAddress *del_address = (ECardDeliveryAddress *) e_iterator_get(iterator);</div><div class='del'>-	    printf("Address ; %d:\n", del_address-&gt;flags);</div><div class='del'>-	    if ( del_address-&gt;po )</div><div class='del'>-	      printf("  Po      : %s\n", del_address-&gt;po);</div><div class='del'>-	    if ( del_address-&gt;ext )</div><div class='del'>-	      printf("  Ext     : %s\n", del_address-&gt;ext);</div><div class='del'>-	    if ( del_address-&gt;street )</div><div class='del'>-	      printf("  Street  : %s\n", del_address-&gt;street);</div><div class='del'>-	    if ( del_address-&gt;city )</div><div class='del'>-	      printf("  City    : %s\n", del_address-&gt;city);</div><div class='del'>-	    if ( del_address-&gt;region )</div><div class='del'>-	      printf("  Region  : %s\n", del_address-&gt;region);</div><div class='del'>-	    if ( del_address-&gt;code )</div><div class='del'>-	      printf("  Code    : %s\n", del_address-&gt;code);</div><div class='del'>-	    if ( del_address-&gt;country )</div><div class='del'>-	      printf("  Country : %s\n", del_address-&gt;country);</div><div class='del'>-	  }</div><div class='del'>-	  gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	}</div><div class='del'>-	printf("%s", e_card_get_vcard_assume_utf8(card));</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (card));</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/test-client-list.c b/addressbook/backend/ebook/test-client-list.c<br/>deleted file mode 100644<br/>index 8a38ccf4e1..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/test-client-list.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/test-client-list.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,76 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmain.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-init.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-main.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-book.h"</div><div class='del'>-</div><div class='del'>-CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_bonobo (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	gnome_init ("blah", "0.0", argc, argv);</div><div class='del'>-	oaf_init (argc, argv);</div><div class='del'>-</div><div class='del'>-	if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE)</div><div class='del'>-		g_error (_("Could not initialize Bonobo"));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_cursor_cb (EBook *book, EBookStatus status, ECardCursor *cursor, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	long length = e_card_cursor_get_length(cursor);</div><div class='del'>-	long i;</div><div class='del'>-	</div><div class='del'>-	printf ("Length: %d\n", (int) length);</div><div class='del'>-	for ( i = 0; i &lt; length; i++ ) {</div><div class='del'>-		ECard *card = e_card_cursor_get_nth(cursor, i);</div><div class='del'>-		char *vcard = e_card_get_vcard_assume_utf8(card);</div><div class='del'>-		printf("[%s]\n", vcard);</div><div class='del'>-		g_free(vcard);</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	printf ("Book opened.\n");</div><div class='del'>-	e_book_get_cursor(book, "", get_cursor_cb, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static guint</div><div class='del'>-ebook_create (void)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	</div><div class='del'>-	book = e_book_new ();</div><div class='del'>-</div><div class='del'>-	if (! e_book_load_uri (book, "file:/tmp/test.db", book_open_cb, NULL)) {</div><div class='del'>-		printf ("error calling load_uri!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	init_bonobo (argc, argv);</div><div class='del'>-</div><div class='del'>-	gtk_idle_add ((GtkFunction) ebook_create, NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_main ();</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/ebook/test-client.c b/addressbook/backend/ebook/test-client.c<br/>deleted file mode 100644<br/>index 44b20ebdde..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/ebook/test-client.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/ebook/test-client.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,203 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmain.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-init.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-main.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-book.h"</div><div class='del'>-</div><div class='del'>-#define TEST_VCARD                   \</div><div class='del'>-"BEGIN:VCARD</div><div class='del'>-"                      \</div><div class='del'>-"FN:Nat</div><div class='del'>-"                           \</div><div class='del'>-"N:Friedman;Nat;D;Mr.</div><div class='del'>-"             \</div><div class='del'>-"BDAY:1977-08-06</div><div class='del'>-"                  \</div><div class='del'>-"TEL;WORK:617 679 1984</div><div class='del'>-"            \</div><div class='del'>-"TEL;CELL:123 456 7890</div><div class='del'>-"            \</div><div class='del'>-"EMAIL;INTERNET:nat@nat.org</div><div class='del'>-"       \</div><div class='del'>-"EMAIL;INTERNET:nat@ximian.com</div><div class='del'>-" \</div><div class='del'>-"ADR;WORK;POSTAL:P.O. Box 101;;;Any Town;CA;91921-1234;</div><div class='del'>-" \</div><div class='del'>-"END:VCARD</div><div class='del'>-"                        \</div><div class='del'>-"</div><div class='del'>-"</div><div class='del'>-</div><div class='del'>-static CORBA_Environment ev;</div><div class='del'>-static char *cardstr;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_bonobo (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE)</div><div class='del'>-		g_error (_("Could not initialize Bonobo"));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_cursor_cb (EBook *book, EBookStatus status, ECardCursor *cursor, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	long length = e_card_cursor_get_length(cursor);</div><div class='del'>-	long i;</div><div class='del'>-</div><div class='del'>-	/* we just added a card, so the length should be &gt;1 */</div><div class='del'>-	printf ("\n%s: %s(): Number of cards is %ld\n",</div><div class='del'>-		__FILE__, __FUNCTION__, length);</div><div class='del'>-	if (length &lt; 1)</div><div class='del'>-		printf ("*** Why isn't this above zero?? ***\n\n");</div><div class='del'>-	</div><div class='del'>-	for ( i = 0; i &lt; length; i++ ) {</div><div class='del'>-		ECard *card = e_card_cursor_get_nth(cursor, i);</div><div class='del'>-		char *vcard = e_card_get_vcard_assume_utf8(card);</div><div class='del'>-		printf("Get all cards callback: [%s]\n", vcard);</div><div class='del'>-		g_free(vcard);</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_card_cb (EBook *book, EBookStatus status, ECard *card, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	char *vcard;</div><div class='del'>-</div><div class='del'>-	vcard = e_card_get_vcard_assume_utf8(card);</div><div class='del'>-	printf ("Card added: [%s]\n", vcard);</div><div class='del'>-	g_free(vcard);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-</div><div class='del'>-	printf ("Getting cards..\n");</div><div class='del'>-	e_book_get_cursor(book, "", get_cursor_cb, NULL);</div><div class='del'>-	printf ("Done getting all cards.\n");	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_card_cb (EBook *book, EBookStatus status, const gchar *id, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	GTimer *timer;</div><div class='del'>-</div><div class='del'>-	printf ("Status: %d\n", status);</div><div class='del'>-</div><div class='del'>-	printf ("Id: %s\n", id);</div><div class='del'>-</div><div class='del'>-	timer = g_timer_new ();</div><div class='del'>-	g_timer_start (timer);</div><div class='del'>-	e_book_get_card (book, id, get_card_cb, closure);</div><div class='del'>-	g_timer_stop (timer);</div><div class='del'>-	printf ("%g\n", g_timer_elapsed (timer, NULL));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_fields_cb (EBook *book, EBookStatus status, EList *fields, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	if (fields) {</div><div class='del'>-		EIterator *iter = e_list_get_iterator (fields);</div><div class='del'>-</div><div class='del'>-		printf ("Supported fields:\n");</div><div class='del'>-</div><div class='del'>-		for (; e_iterator_is_valid (iter); e_iterator_next (iter)) {</div><div class='del'>-			printf (" %s\n", (char*)e_iterator_get (iter));</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(fields));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		printf ("No supported fields?\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_book_add_vcard(book, cardstr, add_card_cb, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-auth_user_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	printf ("user authenticated\n");</div><div class='del'>-	e_book_get_supported_fields (book, get_fields_cb, closure);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	e_book_authenticate_user (book, "username", "password", auth_user_cb, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static guint</div><div class='del'>-ebook_create (void)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	</div><div class='del'>-	book = e_book_new ();</div><div class='del'>-</div><div class='del'>-	if (!book) {</div><div class='del'>-		printf ("%s: %s(): Couldn't create EBook, bailing.\n",</div><div class='del'>-			__FILE__,</div><div class='del'>-			__FUNCTION__);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	if (! e_book_load_uri (book, "file:/tmp/test.db", book_open_cb, NULL)) {</div><div class='del'>-		printf ("error calling load_uri!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-read_file (char *name)</div><div class='del'>-{</div><div class='del'>-	int  len;</div><div class='del'>-	char buff[65536];</div><div class='del'>-	char line[1024];</div><div class='del'>-	FILE *f;</div><div class='del'>-</div><div class='del'>-	f = fopen (name, "r");</div><div class='del'>-	if (f == NULL)</div><div class='del'>-		g_error ("Unable to open %s!\n", name);</div><div class='del'>-</div><div class='del'>-	len  = 0;</div><div class='del'>-	while (fgets (line, sizeof (line), f) != NULL) {</div><div class='del'>-		strcpy (buff + len, line);</div><div class='del'>-		len += strlen (line);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	fclose (f);</div><div class='del'>-</div><div class='del'>-	return g_strdup (buff);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	gnome_init_with_popt_table ("blah", "0.0", argc, argv, NULL, 0, NULL);</div><div class='del'>-	oaf_init (argc, argv);</div><div class='del'>-	init_bonobo (argc, argv);</div><div class='del'>-</div><div class='del'>-	cardstr = NULL;</div><div class='del'>-	if (argc == 2)</div><div class='del'>-		cardstr = read_file (argv [1]);</div><div class='del'>-</div><div class='del'>-	if (cardstr == NULL)</div><div class='del'>-		cardstr = TEST_VCARD;</div><div class='del'>-</div><div class='del'>-	gtk_idle_add ((GtkFunction) ebook_create, NULL);</div><div class='del'>-	</div><div class='del'>-	bonobo_main ();</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/idl/.cvsignore b/addressbook/backend/idl/.cvsignore<br/>deleted file mode 100644<br/>index 09980ae6ba..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/idl/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/idl/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='head'>diff --git a/addressbook/backend/idl/Makefile.am b/addressbook/backend/idl/Makefile.am<br/>deleted file mode 100644<br/>index db61d2c30c..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/idl/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/idl/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-idldir = $(datadir)/idl</div><div class='del'>-</div><div class='del'>-idl_DATA =			\</div><div class='del'>-	addressbook.idl</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = $(idl_DATA)</div><div class='head'>diff --git a/addressbook/backend/idl/addressbook.idl b/addressbook/backend/idl/addressbook.idl<br/>deleted file mode 100644<br/>index 342482d573..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/idl/addressbook.idl?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/idl/addressbook.idl</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,160 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;Bonobo.idl&gt;</div><div class='del'>-</div><div class='del'>-module GNOME {</div><div class='del'>-module Evolution {</div><div class='del'>-module Addressbook {</div><div class='del'>-	typedef string CardId;</div><div class='del'>-	typedef string VCard;</div><div class='del'>-	typedef sequence&lt;VCard&gt; VCardList;</div><div class='del'>-	typedef sequence&lt;string&gt; stringlist;</div><div class='del'>-</div><div class='del'>-	interface CardCursor : Bonobo::Unknown {</div><div class='del'>-		long   count  ();</div><div class='del'>-		string getNth (in long n);</div><div class='del'>-	};</div><div class='del'>-</div><div class='del'>-	/* </div><div class='del'>-	 * A book view is a live view of a book.  It's either a view</div><div class='del'>-	 * of all the cards in the book or a view of a query.  When</div><div class='del'>-	 * created, it will get a series of signal_card_added calls</div><div class='del'>-	 * for all objects in the initial set.  After that, it will</div><div class='del'>-	 * get added, removed, or changed signals whenever the book</div><div class='del'>-	 * changes (if it affects the set of viewed cards.)</div><div class='del'>-	 */</div><div class='del'>-	interface BookViewListener : Bonobo::Unknown {</div><div class='del'>-		void notifyCardAdded        (in VCardList cards);</div><div class='del'>-		void notifyCardRemoved      (in CardId id);</div><div class='del'>-		void notifyCardChanged      (in VCardList cards);</div><div class='del'>-		void notifySequenceComplete ();</div><div class='del'>-		void notifyStatusMessage    (in string message);</div><div class='del'>-	};</div><div class='del'>-	</div><div class='del'>-	interface BookView : Bonobo::Unknown {</div><div class='del'>-	};</div><div class='del'>-</div><div class='del'>-	interface Book : Bonobo::Unknown {</div><div class='del'>-		/*</div><div class='del'>-		 * Fetching cards in the addresbook.</div><div class='del'>-		 */</div><div class='del'>-		void getVCard (in CardId id);</div><div class='del'>-</div><div class='del'>-		void authenticateUser (in string user, in string passwd);</div><div class='del'>-</div><div class='del'>-		/*</div><div class='del'>-		 * Adding and deleting cards in the book.</div><div class='del'>-		 */</div><div class='del'>-		void addCard    (in VCard vcard);</div><div class='del'>-		void removeCard (in CardId Id);</div><div class='del'>-	        </div><div class='del'>-		/*</div><div class='del'>-		 * Modifying cards in the addressbook.</div><div class='del'>-		 */</div><div class='del'>-		void modifyCard (in VCard vcard);</div><div class='del'>-		</div><div class='del'>-		/*</div><div class='del'>-		 * This function returns a cursor to the book</div><div class='del'>-		 * listener.  This is for people who want a snapshot</div><div class='del'>-		 * of the addressbook.  The syntax for the query</div><div class='del'>-		 * string is not yet defined.</div><div class='del'>-		 */</div><div class='del'>-		void getCursor (in string query);</div><div class='del'>-		</div><div class='del'>-		/*</div><div class='del'>-		 * These two functions return a book view to the book</div><div class='del'>-		 * listener.  This is for people who want a live view</div><div class='del'>-		 * of the addressbook.</div><div class='del'>-		 */</div><div class='del'>-		void getBookView (in BookViewListener listener, in string query);</div><div class='del'>-</div><div class='del'>-		void getChanges  (in BookViewListener listener, in string change_id);</div><div class='del'>-</div><div class='del'>-		void checkConnection ();</div><div class='del'>-</div><div class='del'>-		void getSupportedFields ();</div><div class='del'>-</div><div class='del'>-		string getStaticCapabilities ();</div><div class='del'>-</div><div class='del'>-		string getName ();</div><div class='del'>-	};</div><div class='del'>-</div><div class='del'>-	interface BookListener : Bonobo::Unknown {</div><div class='del'>-</div><div class='del'>-		enum CallStatus {</div><div class='del'>-			Success,</div><div class='del'>-			RepositoryOffline,</div><div class='del'>-			PermissionDenied,</div><div class='del'>-			CardNotFound,</div><div class='del'>-			CardIdAlreadyExists,</div><div class='del'>-			ProtocolNotSupported,</div><div class='del'>-			AuthenticationFailed,</div><div class='del'>-			AuthenticationRequired,</div><div class='del'>-			UnsupportedField,</div><div class='del'>-			OtherError</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		void notifyCardCreated  (in CallStatus status, in CardId Id);</div><div class='del'>-</div><div class='del'>-		void notifyCardRemoved  (in CallStatus status);</div><div class='del'>-</div><div class='del'>-		void notifyCardModified (in CallStatus status);</div><div class='del'>-		</div><div class='del'>-		void notifyOpenBookProgress (in string status_message, in short percent);</div><div class='del'>-</div><div class='del'>-		void notifyBookOpened       (in CallStatus status, in Book book);</div><div class='del'>-</div><div class='del'>-		void notifyCardRequested    (in CallStatus status, in VCard card);</div><div class='del'>-</div><div class='del'>-		void notifyCursorRequested  (in CallStatus status, in CardCursor cursor);</div><div class='del'>-</div><div class='del'>-		void notifyViewRequested    (in CallStatus status, in BookView view);</div><div class='del'>-</div><div class='del'>-		void notifyChangesRequested (in CallStatus status, in BookView view);</div><div class='del'>-</div><div class='del'>-		void notifyAuthenticationResult (in CallStatus status);</div><div class='del'>-</div><div class='del'>-		void notifySupportedFields (in CallStatus status, in stringlist fields);</div><div class='del'>-</div><div class='del'>-		/**</div><div class='del'>-		 * notifyConnectionStatus:</div><div class='del'>-		 *</div><div class='del'>-		 * Used to report changes in the connection to the</div><div class='del'>-		 * contact repository.  This is often a response to a</div><div class='del'>-		 * call to check_connection() on the Book, but wombat</div><div class='del'>-		 * is free to report the connection status without</div><div class='del'>-		 * being asked.</div><div class='del'>-		 */</div><div class='del'>-		void notifyConnectionStatus (in boolean connected);</div><div class='del'>-</div><div class='del'>-		/**</div><div class='del'>-		 * notifyWritable:</div><div class='del'>-		 *</div><div class='del'>-		 * Used to report whether or not a backend can write</div><div class='del'>-		 * to a given addressbook.  All books default to</div><div class='del'>-		 * read-only, so unless you receive a notification</div><div class='del'>-		 * saying otherwise, treat the book as read-only.  It</div><div class='del'>-		 * is presumed that this notification will be sent</div><div class='del'>-		 * early (just after a connection is opened, usually),</div><div class='del'>-		 * but it may also be sent later, if/when the backend</div><div class='del'>-		 * notices a change.</div><div class='del'>-		 */</div><div class='del'>-		void notifyWritable (in boolean writable);</div><div class='del'>-	};</div><div class='del'>-</div><div class='del'>-	interface BookFactory : Bonobo::Unknown {</div><div class='del'>-		exception ProtocolNotSupported {};</div><div class='del'>-</div><div class='del'>-		void openBook (in string uri, in BookListener listener)</div><div class='del'>-			raises (ProtocolNotSupported);</div><div class='del'>-	};</div><div class='del'>-};</div><div class='del'>-};</div><div class='del'>-};</div><div class='head'>diff --git a/addressbook/backend/pas/.cvsignore b/addressbook/backend/pas/.cvsignore<br/>deleted file mode 100644<br/>index 071cef99ae..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-.pure</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-addressbook-stubs.c</div><div class='del'>-addressbook-skels.c</div><div class='del'>-addressbook-common.c</div><div class='del'>-addressbook.h</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='head'>diff --git a/addressbook/backend/pas/Makefile.am b/addressbook/backend/pas/Makefile.am<br/>deleted file mode 100644<br/>index ea150597c9..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,63 +0,0 @@</div><div class='del'>-CORBA_SOURCE =						\</div><div class='del'>-	addressbook.h					\</div><div class='del'>-	addressbook-common.c				\</div><div class='del'>-	addressbook-stubs.c				\</div><div class='del'>-	addressbook-skels.c</div><div class='del'>-</div><div class='del'>-idls =							\</div><div class='del'>-	$(srcdir)/../idl/addressbook.idl</div><div class='del'>-</div><div class='del'>-idl_flags = `$(GNOME_CONFIG) --cflags idl` -I $(datadir)/idl</div><div class='del'>-</div><div class='del'>-$(CORBA_SOURCE): $(idls)</div><div class='del'>-	$(ORBIT_IDL) -I $(srcdir) $(srcdir)/../idl/addressbook.idl $(idl_flags)</div><div class='del'>-</div><div class='del'>-INCLUDES =						\</div><div class='del'>-	$(DB3_CFLAGS)					\</div><div class='del'>-	$(LDAP_CFLAGS)					\</div><div class='del'>-        -DGNOMELOCALEDIR=\""$(localedir)"\"		\</div><div class='del'>-	-DG_LOG_DOMAIN=\"wombat-pas\"			\</div><div class='del'>-	-I$(top_srcdir) 				\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend		\</div><div class='del'>-	-I$(top_builddir)/addressbook/backend		\</div><div class='del'>-        $(BONOBO_GNOME_CFLAGS)				\</div><div class='del'>-	$(EXTRA_GNOME_CFLAGS)</div><div class='del'>-</div><div class='del'>-LDAP_SCHEMA =						\</div><div class='del'>-	evolutionperson.schema</div><div class='del'>-</div><div class='del'>-LDAP_BACKEND_FILES = pas-backend-ldap.c pas-backend-ldap.h</div><div class='del'>-</div><div class='del'>-if ENABLE_LDAP</div><div class='del'>-LDAP_BACKEND = $(LDAP_BACKEND_FILES)</div><div class='del'>-else</div><div class='del'>-LDAP_BACKEND = </div><div class='del'>-endif</div><div class='del'>-</div><div class='del'>-noinst_LIBRARIES = libpas.a</div><div class='del'>-</div><div class='del'>-libpas_a_SOURCES =					\</div><div class='del'>-	$(CORBA_SOURCE)					\</div><div class='del'>-	pas-book-factory.c				\</div><div class='del'>-	pas-book-factory.h				\</div><div class='del'>-	pas-book-view.c					\</div><div class='del'>-	pas-book-view.h					\</div><div class='del'>-	pas-book.c					\</div><div class='del'>-	pas-book.h					\</div><div class='del'>-	pas-backend-card-sexp.c				\</div><div class='del'>-	pas-backend-card-sexp.h				\</div><div class='del'>-	pas-backend-file.c				\</div><div class='del'>-	pas-backend-file.h				\</div><div class='del'>-	$(LDAP_BACKEND)					\</div><div class='del'>-	pas-backend.c					\</div><div class='del'>-	pas-backend.h					\</div><div class='del'>-	pas-card-cursor.c				\</div><div class='del'>-	pas-card-cursor.h</div><div class='del'>-</div><div class='del'>-BUILT_SOURCES = $(CORBA_SOURCE)</div><div class='del'>-CLEANFILES = $(BUILT_SOURCES)</div><div class='del'>-</div><div class='del'>-dist-hook:</div><div class='del'>-	cd $(distdir); rm -f $(BUILT_SOURCES)</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = $(LDAP_BACKEND_FILES) $(LDAP_SCHEMA)</div><div class='head'>diff --git a/addressbook/backend/pas/TODO b/addressbook/backend/pas/TODO<br/>deleted file mode 100644<br/>index 0c77c1b200..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/TODO?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/TODO</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2 +0,0 @@</div><div class='del'>-* Implement pas_book_factory_activate</div><div class='del'>-* Authentication
\ No newline at end of file</div><div class='head'>diff --git a/addressbook/backend/pas/evolutionperson.schema b/addressbook/backend/pas/evolutionperson.schema<br/>deleted file mode 100644<br/>index 76a975330e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/evolutionperson.schema?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/evolutionperson.schema</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,192 +0,0 @@</div><div class='del'>-#</div><div class='del'>-# Depends upon</div><div class='del'>-#   Definition of an X.500 Attribute Type and an Object Class to Hold</div><div class='del'>-#   Uniform Resource Identifiers (URIs) [RFC2079]</div><div class='del'>-#	(core.schema)</div><div class='del'>-#   </div><div class='del'>-#   A Summary of the X.500(96) User Schema for use with LDAPv3 [RFC2256]</div><div class='del'>-#	(core.schema)</div><div class='del'>-#</div><div class='del'>-#   The COSINE and Internet X.500 Schema [RFC1274] (cosine.schema)</div><div class='del'>-#</div><div class='del'>-#   The Internet Organizational Person Schema (inetorgperson)</div><div class='del'>-#</div><div class='del'>-# OIDs are broken up into the following:</div><div class='del'>-#   1.3.6.1.4.1.8506.1.?</div><div class='del'>-#                     .1  Syntaxes</div><div class='del'>-#                     .2  Attributes</div><div class='del'>-#                     .3  Objectclasses</div><div class='del'>-   </div><div class='del'>-# primaryPhone</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.1</div><div class='del'>-	NAME 'primaryPhone'</div><div class='del'>-	DESC 'preferred phone number used to contact a person'</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15</div><div class='del'>-	SINGLE-VALUE )</div><div class='del'>-</div><div class='del'>-# carPhone</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.2</div><div class='del'>-	NAME 'carPhone'</div><div class='del'>-	DESC 'car phone telephone number of the person'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15</div><div class='del'>-	SINGLE-VALUE )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.3</div><div class='del'>-	NAME ( 'homeFacsimileTelephoneNumber' 'homeFax' )</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.22 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.4</div><div class='del'>-	NAME 'otherPhone'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.5</div><div class='del'>-	NAME 'businessRole'</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.6</div><div class='del'>-	NAME 'managerName'</div><div class='del'>-	SUP name )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.7</div><div class='del'>-	NAME 'assistantName'</div><div class='del'>-	SUP name )</div><div class='del'>-</div><div class='del'>-# spouseName</div><div class='del'>-# single valued (/me smirks)</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.8</div><div class='del'>-	NAME 'spouseName'</div><div class='del'>-	SUP name</div><div class='del'>-	SINGLE-VALUE )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.9</div><div class='del'>-	NAME 'otherPostalAddress'</div><div class='del'>-	EQUALITY caseIgnoreListMatch</div><div class='del'>-	SUBSTR caseIgnoreListSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.10</div><div class='del'>-	NAME ( 'mailer' 'mua' )</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32} )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.11</div><div class='del'>-	NAME ( 'birthDate' 'dob' )</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.12</div><div class='del'>-	NAME 'anniversary'</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.13</div><div class='del'>-	NAME 'note'</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.14</div><div class='del'>-	NAME 'evolutionArbitrary'</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} )</div><div class='del'>-	)</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.15</div><div class='del'>-	NAME 'fileAs'</div><div class='del'>-	SUP name )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.16</div><div class='del'>-	NAME 'assistantPhone'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.17</div><div class='del'>-	NAME 'companyPhone'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.18</div><div class='del'>-	NAME 'callbackPhone'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.19</div><div class='del'>-	NAME ( 'otherFacsimileTelephoneNumber' 'otherFax' )</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.20</div><div class='del'>-	NAME 'radio'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.21</div><div class='del'>-	NAME 'telex'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.22</div><div class='del'>-	NAME 'tty'</div><div class='del'>-	EQUALITY telephoneNumberMatch</div><div class='del'>-	SUBSTR telephoneNumberSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.23</div><div class='del'>-	NAME 'categories'</div><div class='del'>-	EQUALITY caseIgnoreMatch</div><div class='del'>-	SUBSTR caseIgnoreSubstringsMatch</div><div class='del'>-	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.24</div><div class='del'>-	NAME 'contact'</div><div class='del'>-        EQUALITY distinguishedNameMatch</div><div class='del'>-        SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )</div><div class='del'>-</div><div class='del'>-attributetype ( 1.3.6.1.4.1.8506.1.2.25</div><div class='del'>-	NAME 'listName'</div><div class='del'>-	SUP name</div><div class='del'>-	SINGLE-VALUE )</div><div class='del'>-</div><div class='del'>-# evolutionPerson</div><div class='del'>-objectclass	( 1.3.6.1.4.1.8506.1.3.1</div><div class='del'>-    NAME 'evolutionPerson'</div><div class='del'>-	DESC 'Objectclass geared to Evolution Usage'</div><div class='del'>-    SUP inetOrgPerson</div><div class='del'>-    STRUCTURAL</div><div class='del'>-	MAY (</div><div class='del'>-	        fileAs $ primaryPhone $ carPhone $ homeFacsimileTelephoneNumber $ </div><div class='del'>-		otherPhone $ businessRole $ managerName $ assistantName $ assistantPhone $</div><div class='del'>-		otherPostalAddress $ mailer $ birthDate $ anniversary $ spouseName $</div><div class='del'>-		note $ companyPhone $ callbackPhone $ otherFacsimileTelephoneNumber $</div><div class='del'>-		radio $ telex $ tty $ categories )</div><div class='del'>-	)</div><div class='del'>-</div><div class='del'>-# evolutionPersonList</div><div class='del'>-objectclass	( 1.3.6.1.4.1.8506.1.3.2</div><div class='del'>-    NAME 'evolutionPersonList'</div><div class='del'>-	DESC 'Objectclass geared to Evolution Contact Lists'</div><div class='del'>-    SUP top</div><div class='del'>-    STRUCTURAL</div><div class='del'>-	MUST (</div><div class='del'>-		listName $ mail $ contact )</div><div class='del'>-	)</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend-card-sexp.c b/addressbook/backend/pas/pas-backend-card-sexp.c<br/>deleted file mode 100644<br/>index a1b1fb6d35..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend-card-sexp.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend-card-sexp.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,401 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-#include "pas-backend-card-sexp.h"</div><div class='del'>-</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;e-util/e-sexp.h&gt;</div><div class='del'>-#include &lt;ebook/e-card-simple.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-</div><div class='del'>-static GtkObjectClass *parent_class;</div><div class='del'>-</div><div class='del'>-typedef struct _SearchContext SearchContext;</div><div class='del'>-</div><div class='del'>-struct _PASBackendCardSExpPrivate {</div><div class='del'>-	ESExp *search_sexp;</div><div class='del'>-	SearchContext *search_context;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _SearchContext {</div><div class='del'>-	ECardSimple *card;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-compare_email (ECardSimple *card, const char *str,</div><div class='del'>-	       char *(*compare)(const char*, const char*))</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = E_CARD_SIMPLE_EMAIL_ID_EMAIL; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i ++) {</div><div class='del'>-		const char *email = e_card_simple_get_email (card, i);</div><div class='del'>-</div><div class='del'>-		if (email &amp;&amp; compare(email, str))</div><div class='del'>-			return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-compare_phone (ECardSimple *card, const char *str,</div><div class='del'>-	       char *(*compare)(const char*, const char*))</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = E_CARD_SIMPLE_PHONE_ID_ASSISTANT; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>-		const ECardPhone *phone = e_card_simple_get_phone (card, i);</div><div class='del'>-</div><div class='del'>-		if (phone &amp;&amp; compare(phone-&gt;number, str))</div><div class='del'>-			return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-compare_address (ECardSimple *card, const char *str,</div><div class='del'>-		 char *(*compare)(const char*, const char*))</div><div class='del'>-{</div><div class='del'>-	g_warning("address searching not implemented\n");</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-compare_category (ECardSimple *card, const char *str,</div><div class='del'>-		  char *(*compare)(const char*, const char*))</div><div class='del'>-{</div><div class='del'>-	EList *categories;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-	ECard *ecard;</div><div class='del'>-	gboolean ret_val = FALSE;</div><div class='del'>-</div><div class='del'>-	gtk_object_get (GTK_OBJECT (card),</div><div class='del'>-			"card", &amp;ecard,</div><div class='del'>-			NULL);</div><div class='del'>-	gtk_object_get (GTK_OBJECT (ecard),</div><div class='del'>-			"category_list", &amp;categories,</div><div class='del'>-			NULL);</div><div class='del'>-</div><div class='del'>-	for (iterator = e_list_get_iterator(categories); e_iterator_is_valid (iterator); e_iterator_next (iterator)) {</div><div class='del'>-		const char *category = e_iterator_get (iterator);</div><div class='del'>-</div><div class='del'>-		if (compare(category, str)) {</div><div class='del'>-			ret_val = TRUE;</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (iterator));</div><div class='del'>-	e_card_free_empty_lists (ecard);</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static struct prop_info {</div><div class='del'>-	ECardSimpleField field_id;</div><div class='del'>-	const char *query_prop;</div><div class='del'>-	const char *ecard_prop;</div><div class='del'>-#define PROP_TYPE_NORMAL   0x01</div><div class='del'>-#define PROP_TYPE_LIST     0x02</div><div class='del'>-#define PROP_TYPE_LISTITEM 0x03</div><div class='del'>-#define PROP_TYPE_ID 0x04</div><div class='del'>-	int prop_type;</div><div class='del'>-	gboolean (*list_compare)(ECardSimple *ecard, const char *str,</div><div class='del'>-				 char *(*compare)(const char*, const char*));</div><div class='del'>-</div><div class='del'>-} prop_info_table[] = {</div><div class='del'>-#define NORMAL_PROP(f,q,e) {f, q, e, PROP_TYPE_NORMAL, NULL}</div><div class='del'>-#define ID_PROP {0, "id", NULL, PROP_TYPE_ID, NULL}</div><div class='del'>-#define LIST_PROP(q,e,c) {0, q, e, PROP_TYPE_LIST, c}</div><div class='del'>-</div><div class='del'>-	/* query prop,  ecard prop,   type,              list compare function */</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_FILE_AS, "file_as", "file_as" ),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_FULL_NAME, "full_name",  "full_name" ),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_URL, "url", "url" ),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_MAILER, "mailer", "mailer"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ORG, "org", "org"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ORG_UNIT, "org_unit", "org_unit"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_OFFICE, "office", "office"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_TITLE, "title", "title"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ROLE, "role", "role"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_MANAGER, "manager", "manager"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ASSISTANT, "assistant", "assistant"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_NICKNAME, "nickname", "nickname"),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_SPOUSE, "spouse", "spouse" ),</div><div class='del'>-	NORMAL_PROP ( E_CARD_SIMPLE_FIELD_NOTE, "note", "note"),</div><div class='del'>-	ID_PROP,</div><div class='del'>-	LIST_PROP ( "email", "email", compare_email ),</div><div class='del'>-	LIST_PROP ( "phone", "phone", compare_phone ),</div><div class='del'>-	LIST_PROP ( "address", "address", compare_address ),</div><div class='del'>-	LIST_PROP ( "category", "category", compare_category ),</div><div class='del'>-};</div><div class='del'>-static int num_prop_infos = sizeof(prop_info_table) / sizeof(prop_info_table[0]);</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-entry_compare(SearchContext *ctx, struct _ESExp *f,</div><div class='del'>-	      int argc, struct _ESExpResult **argv,</div><div class='del'>-	      char *(*compare)(const char*, const char*))</div><div class='del'>-{</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-	int truth = FALSE;</div><div class='del'>-</div><div class='del'>-	if (argc == 2</div><div class='del'>-	    &amp;&amp; argv[0]-&gt;type == ESEXP_RES_STRING</div><div class='del'>-	    &amp;&amp; argv[1]-&gt;type == ESEXP_RES_STRING) {</div><div class='del'>-		char *propname;</div><div class='del'>-		struct prop_info *info = NULL;</div><div class='del'>-		int i;</div><div class='del'>-		gboolean any_field;</div><div class='del'>-</div><div class='del'>-		propname = argv[0]-&gt;value.string;</div><div class='del'>-</div><div class='del'>-		any_field = !strcmp(propname, "x-evolution-any-field");</div><div class='del'>-		for (i = 0; i &lt; num_prop_infos; i ++) {</div><div class='del'>-			if (any_field</div><div class='del'>-			    || !strcmp (prop_info_table[i].query_prop, propname)) {</div><div class='del'>-				info = &amp;prop_info_table[i];</div><div class='del'>-				</div><div class='del'>-				if (info-&gt;prop_type == PROP_TYPE_NORMAL) {</div><div class='del'>-					char *prop = NULL;</div><div class='del'>-					/* searches where the query's property</div><div class='del'>-					   maps directly to an ecard property */</div><div class='del'>-					</div><div class='del'>-					prop = e_card_simple_get (ctx-&gt;card, info-&gt;field_id);</div><div class='del'>-</div><div class='del'>-					if (prop &amp;&amp; compare(prop, argv[1]-&gt;value.string)) {</div><div class='del'>-						truth = TRUE;</div><div class='del'>-					}</div><div class='del'>-					if ((!prop) &amp;&amp; compare("", argv[1]-&gt;value.string)) {</div><div class='del'>-						truth = TRUE;</div><div class='del'>-					}</div><div class='del'>-					g_free (prop);</div><div class='del'>-				} else if (info-&gt;prop_type == PROP_TYPE_LIST) {</div><div class='del'>-				/* the special searches that match any of the list elements */</div><div class='del'>-					truth = info-&gt;list_compare (ctx-&gt;card, argv[1]-&gt;value.string, compare);</div><div class='del'>-				} else if (info-&gt;prop_type == PROP_TYPE_ID) {</div><div class='del'>-					const char *prop = NULL;</div><div class='del'>-					/* searches where the query's property</div><div class='del'>-					   maps directly to an ecard property */</div><div class='del'>-					</div><div class='del'>-					prop = e_card_get_id (ctx-&gt;card-&gt;card);</div><div class='del'>-</div><div class='del'>-					if (prop &amp;&amp; compare(prop, argv[1]-&gt;value.string)) {</div><div class='del'>-						truth = TRUE;</div><div class='del'>-					}</div><div class='del'>-					if ((!prop) &amp;&amp; compare("", argv[1]-&gt;value.string)) {</div><div class='del'>-						truth = TRUE;</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				/* if we're looking at all fields and find a match,</div><div class='del'>-				   or if we're just looking at this one field,</div><div class='del'>-				   break. */</div><div class='del'>-				if ((any_field &amp;&amp; truth)</div><div class='del'>-				    || !any_field)</div><div class='del'>-					break;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-	}</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = truth;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_contains(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	SearchContext *ctx = data;</div><div class='del'>-</div><div class='del'>-	return entry_compare (ctx, f, argc, argv, (char *(*)(const char*, const char*)) e_utf8_strstrcase);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-is_helper (const char *s1, const char *s2)</div><div class='del'>-{</div><div class='del'>-	if (!strcmp(s1, s2))</div><div class='del'>-		return (char*)s1;</div><div class='del'>-	else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_is(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	SearchContext *ctx = data;</div><div class='del'>-</div><div class='del'>-	return entry_compare (ctx, f, argc, argv, is_helper);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-endswith_helper (const char *s1, const char *s2)</div><div class='del'>-{</div><div class='del'>-	char *p;</div><div class='del'>-	if ((p = strstr(s1, s2))</div><div class='del'>-	    &amp;&amp; (strlen(p) == strlen(s2)))</div><div class='del'>-		return p;</div><div class='del'>-	else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_endswith(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	SearchContext *ctx = data;</div><div class='del'>-</div><div class='del'>-	return entry_compare (ctx, f, argc, argv, endswith_helper);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-beginswith_helper (const char *s1, const char *s2)</div><div class='del'>-{</div><div class='del'>-	char *p;</div><div class='del'>-	if ((p = strstr(s1, s2))</div><div class='del'>-	    &amp;&amp; (p == s1))</div><div class='del'>-		return p;</div><div class='del'>-	else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_beginswith(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	SearchContext *ctx = data;</div><div class='del'>-</div><div class='del'>-	return entry_compare (ctx, f, argc, argv, beginswith_helper);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* 'builtin' functions */</div><div class='del'>-static struct {</div><div class='del'>-	char *name;</div><div class='del'>-	ESExpFunc *func;</div><div class='del'>-	int type;		/* set to 1 if a function can perform shortcut evaluation, or</div><div class='del'>-				   doesn't execute everything, 0 otherwise */</div><div class='del'>-} symbols[] = {</div><div class='del'>-	{ "contains", func_contains, 0 },</div><div class='del'>-	{ "is", func_is, 0 },</div><div class='del'>-	{ "beginswith", func_beginswith, 0 },</div><div class='del'>-	{ "endswith", func_endswith, 0 },</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-pas_backend_card_sexp_match_vcard (PASBackendCardSExp *sexp, const char *vcard)</div><div class='del'>-{</div><div class='del'>-	ECard *card;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-	gboolean retval;</div><div class='del'>-</div><div class='del'>-	card = e_card_new ((char*)vcard);</div><div class='del'>-	sexp-&gt;priv-&gt;search_context-&gt;card = e_card_simple_new (card);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-</div><div class='del'>-	/* if it's not a valid vcard why is it in our db? :) */</div><div class='del'>-	if (!sexp-&gt;priv-&gt;search_context-&gt;card)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	r = e_sexp_eval(sexp-&gt;priv-&gt;search_sexp);</div><div class='del'>-</div><div class='del'>-	retval = (r &amp;&amp; r-&gt;type == ESEXP_RES_BOOL &amp;&amp; r-&gt;value.bool);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(sexp-&gt;priv-&gt;search_context-&gt;card));</div><div class='del'>-</div><div class='del'>-	e_sexp_result_free(sexp-&gt;priv-&gt;search_sexp, r);</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_card_sexp_new:</div><div class='del'>- */</div><div class='del'>-PASBackendCardSExp *</div><div class='del'>-pas_backend_card_sexp_new (const char *text)</div><div class='del'>-{</div><div class='del'>-	PASBackendCardSExp *sexp = gtk_type_new (pas_backend_card_sexp_get_type ());</div><div class='del'>-	int esexp_error;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	sexp-&gt;priv-&gt;search_sexp = e_sexp_new();</div><div class='del'>-</div><div class='del'>-	for(i=0;i&lt;sizeof(symbols)/sizeof(symbols[0]);i++) {</div><div class='del'>-		if (symbols[i].type == 1) {</div><div class='del'>-			e_sexp_add_ifunction(sexp-&gt;priv-&gt;search_sexp, 0, symbols[i].name,</div><div class='del'>-					     (ESExpIFunc *)symbols[i].func, sexp-&gt;priv-&gt;search_context);</div><div class='del'>-		} else {</div><div class='del'>-			e_sexp_add_function(sexp-&gt;priv-&gt;search_sexp, 0, symbols[i].name,</div><div class='del'>-					    symbols[i].func, sexp-&gt;priv-&gt;search_context);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_sexp_input_text(sexp-&gt;priv-&gt;search_sexp, text, strlen(text));</div><div class='del'>-	esexp_error = e_sexp_parse(sexp-&gt;priv-&gt;search_sexp);</div><div class='del'>-</div><div class='del'>-	if (esexp_error == -1) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (sexp));</div><div class='del'>-		sexp = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return sexp;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_card_sexp_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	PASBackendCardSExp *sexp = PAS_BACKEND_CARD_SEXP (object);</div><div class='del'>-	e_sexp_unref(sexp-&gt;priv-&gt;search_sexp);</div><div class='del'>-</div><div class='del'>-	g_free (sexp-&gt;priv-&gt;search_context);</div><div class='del'>-	g_free (sexp-&gt;priv);</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (parent_class)-&gt;destroy (object);	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_card_sexp_class_init (PASBackendCardSExpClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass  *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class (gtk_object_get_type ());</div><div class='del'>-</div><div class='del'>-	/* Set the virtual methods. */</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = pas_backend_card_sexp_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_card_sexp_init (PASBackendCardSExp *sexp)</div><div class='del'>-{</div><div class='del'>-	PASBackendCardSExpPrivate *priv;</div><div class='del'>-</div><div class='del'>-	priv             = g_new0 (PASBackendCardSExpPrivate, 1);</div><div class='del'>-</div><div class='del'>-	sexp-&gt;priv = priv;</div><div class='del'>-	priv-&gt;search_context = g_new (SearchContext, 1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_card_sexp_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-pas_backend_card_sexp_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASBackendCardSExp",</div><div class='del'>-			sizeof (PASBackendCardSExp),</div><div class='del'>-			sizeof (PASBackendCardSExpClass),</div><div class='del'>-			(GtkClassInitFunc)  pas_backend_card_sexp_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_backend_card_sexp_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (gtk_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend-card-sexp.h b/addressbook/backend/pas/pas-backend-card-sexp.h<br/>deleted file mode 100644<br/>index e1cb75c77d..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend-card-sexp.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend-card-sexp.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,30 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_BACKEND_CARD_SEXP_H__</div><div class='del'>-#define __PAS_BACKEND_CARD_SEXP_H__</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtk.h&gt;</div><div class='del'>-</div><div class='del'>-typedef struct _PASBackendCardSExpPrivate PASBackendCardSExpPrivate;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	GtkObject parent_object;</div><div class='del'>-	PASBackendCardSExpPrivate *priv;</div><div class='del'>-} PASBackendCardSExp;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-} PASBackendCardSExpClass;</div><div class='del'>-</div><div class='del'>-PASBackendCardSExp *pas_backend_card_sexp_new      (const char *text);</div><div class='del'>-GtkType             pas_backend_card_sexp_get_type (void);</div><div class='del'>-</div><div class='del'>-gboolean            pas_backend_card_sexp_match_vcard (PASBackendCardSExp *sexp, const char *vcard);</div><div class='del'>-</div><div class='del'>-#define PAS_BACKEND_CARD_SEXP_TYPE        (pas_backend_card_sexp_get_type ())</div><div class='del'>-#define PAS_BACKEND_CARD_SEXP(o)          (GTK_CHECK_CAST ((o), PAS_BACKEND_CARD_SEXP_TYPE, PASBackendCardSExp))</div><div class='del'>-#define PAS_BACKEND_CARD_SEXP_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_BACKEND_TYPE, PASBackendCardSExpClass))</div><div class='del'>-#define PAS_IS_BACKEND_CARD_SEXP(o)       (GTK_CHECK_TYPE ((o), PAS_BACKEND_CARD_SEXP_TYPE))</div><div class='del'>-#define PAS_IS_BACKEND_CARD_SEXP_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BACKEND_CARD_SEXP_TYPE))</div><div class='del'>-</div><div class='del'>-#endif /* __PAS_BACKEND_CARD_SEXP_H__ */</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c<br/>deleted file mode 100644<br/>index 25c38888a4..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend-file.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend-file.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1548 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include "config.h"  </div><div class='del'>-#include "pas-backend-file.h"</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;db.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;e-util/e-db3-utils.h&gt;</div><div class='del'>-</div><div class='del'>-#if DB_VERSION_MAJOR != 3 || \</div><div class='del'>-    DB_VERSION_MINOR != 1 || \</div><div class='del'>-    DB_VERSION_PATCH != 17</div><div class='del'>-#error Including wrong DB3.  Need libdb 3.1.17.</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-util.h&gt;</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;ebook/e-card-simple.h&gt;</div><div class='del'>-#include &lt;e-util/e-dbhash.h&gt;</div><div class='del'>-#include &lt;e-util/e-db3-utils.h&gt;</div><div class='del'>-#include "pas-book.h"</div><div class='del'>-#include "pas-card-cursor.h"</div><div class='del'>-#include "pas-backend-card-sexp.h"</div><div class='del'>-</div><div class='del'>-#define PAS_BACKEND_FILE_VERSION_NAME "PAS-DB-VERSION"</div><div class='del'>-#define PAS_BACKEND_FILE_VERSION "0.2"</div><div class='del'>-</div><div class='del'>-#define PAS_ID_PREFIX "pas-id-"</div><div class='del'>-</div><div class='del'>-static PASBackendClass *pas_backend_file_parent_class;</div><div class='del'>-typedef struct _PASBackendFileCursorPrivate PASBackendFileCursorPrivate;</div><div class='del'>-typedef struct _PASBackendFileBookView PASBackendFileBookView;</div><div class='del'>-typedef struct _PASBackendFileSearchContext PASBackendFileSearchContext;</div><div class='del'>-typedef struct _PasBackendFileChangeContext PASBackendFileChangeContext;</div><div class='del'>-</div><div class='del'>-struct _PASBackendFilePrivate {</div><div class='del'>-	GList    *clients;</div><div class='del'>-	gboolean  loaded;</div><div class='del'>-	char     *uri;</div><div class='del'>-	DB       *file_db;</div><div class='del'>-	EList    *book_views;</div><div class='del'>-	gboolean  writable;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _PASBackendFileCursorPrivate {</div><div class='del'>-	PASBackend *backend;</div><div class='del'>-	PASBook    *book;</div><div class='del'>-</div><div class='del'>-	GList      *elements;</div><div class='del'>-	guint32    num_elements;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _PASBackendFileBookView {</div><div class='del'>-	PASBookView                 *book_view;</div><div class='del'>-	gchar                       *search;</div><div class='del'>-	PASBackendCardSExp          *card_sexp;</div><div class='del'>-	gchar                       *change_id;</div><div class='del'>-	PASBackendFileChangeContext *change_context;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _PasBackendFileChangeContext {</div><div class='del'>-	DB *db;</div><div class='del'>-</div><div class='del'>-	GList *add_cards;</div><div class='del'>-	GList *add_ids;</div><div class='del'>-	GList *mod_cards;</div><div class='del'>-	GList *mod_ids;</div><div class='del'>-	GList *del_ids;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static PASBackendFileBookView *</div><div class='del'>-pas_backend_file_book_view_copy(const PASBackendFileBookView *book_view, void *closure)</div><div class='del'>-{</div><div class='del'>-	PASBackendFileBookView *new_book_view;</div><div class='del'>-	new_book_view = g_new (PASBackendFileBookView, 1);</div><div class='del'>-	new_book_view-&gt;book_view = book_view-&gt;book_view;</div><div class='del'>-</div><div class='del'>-	new_book_view-&gt;search = g_strdup(book_view-&gt;search);</div><div class='del'>-	new_book_view-&gt;card_sexp = book_view-&gt;card_sexp;</div><div class='del'>-	if (new_book_view-&gt;card_sexp)</div><div class='del'>-		gtk_object_ref(GTK_OBJECT(new_book_view-&gt;card_sexp));</div><div class='del'>-	</div><div class='del'>-	new_book_view-&gt;change_id = g_strdup(book_view-&gt;change_id);</div><div class='del'>-	if (book_view-&gt;change_context) {</div><div class='del'>-		new_book_view-&gt;change_context = g_new(PASBackendFileChangeContext, 1);</div><div class='del'>-		new_book_view-&gt;change_context-&gt;db = book_view-&gt;change_context-&gt;db;</div><div class='del'>-		new_book_view-&gt;change_context-&gt;add_cards = book_view-&gt;change_context-&gt;add_cards;</div><div class='del'>-		new_book_view-&gt;change_context-&gt;add_ids = book_view-&gt;change_context-&gt;add_ids;</div><div class='del'>-		new_book_view-&gt;change_context-&gt;mod_cards = book_view-&gt;change_context-&gt;mod_cards;</div><div class='del'>-		new_book_view-&gt;change_context-&gt;mod_ids = book_view-&gt;change_context-&gt;mod_ids;</div><div class='del'>-		new_book_view-&gt;change_context-&gt;del_ids = book_view-&gt;change_context-&gt;del_ids;</div><div class='del'>-	} else</div><div class='del'>-		new_book_view-&gt;change_context = NULL;</div><div class='del'>-	</div><div class='del'>-	return new_book_view;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_book_view_free(PASBackendFileBookView *book_view, void *closure)</div><div class='del'>-{</div><div class='del'>-	g_free(book_view-&gt;search);</div><div class='del'>-	if (book_view-&gt;card_sexp)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT(book_view-&gt;card_sexp));</div><div class='del'>-</div><div class='del'>-	g_free(book_view-&gt;change_id);</div><div class='del'>-	if (book_view-&gt;change_context) {</div><div class='del'>-		g_list_foreach (book_view-&gt;change_context-&gt;add_cards, (GFunc)g_free, NULL);</div><div class='del'>-		g_list_foreach (book_view-&gt;change_context-&gt;add_ids, (GFunc)g_free, NULL);</div><div class='del'>-		g_list_foreach (book_view-&gt;change_context-&gt;mod_cards, (GFunc)g_free, NULL);</div><div class='del'>-		g_list_foreach (book_view-&gt;change_context-&gt;mod_ids, (GFunc)g_free, NULL);</div><div class='del'>-		g_list_foreach (book_view-&gt;change_context-&gt;del_ids, (GFunc)g_free, NULL);</div><div class='del'>-		g_list_free (book_view-&gt;change_context-&gt;add_cards);</div><div class='del'>-		g_list_free (book_view-&gt;change_context-&gt;add_ids);</div><div class='del'>-		g_list_free (book_view-&gt;change_context-&gt;mod_cards);</div><div class='del'>-		g_list_free (book_view-&gt;change_context-&gt;mod_ids);</div><div class='del'>-		g_list_free (book_view-&gt;change_context-&gt;del_ids);</div><div class='del'>-	}</div><div class='del'>-	g_free(book_view-&gt;change_context);</div><div class='del'>-</div><div class='del'>-	g_free(book_view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static long</div><div class='del'>-get_length(PASCardCursor *cursor, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBackendFileCursorPrivate *cursor_data = (PASBackendFileCursorPrivate *) data;</div><div class='del'>-</div><div class='del'>-	return cursor_data-&gt;num_elements;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-get_nth(PASCardCursor *cursor, long n, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBackendFileCursorPrivate *cursor_data = (PASBackendFileCursorPrivate *) data;</div><div class='del'>-	GList *nth_item = g_list_nth(cursor_data-&gt;elements, n);</div><div class='del'>-</div><div class='del'>-	return g_strdup((char*)nth_item-&gt;data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-cursor_destroy(GtkObject *object, gpointer data)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	GNOME_Evolution_Addressbook_Book corba_book;</div><div class='del'>-	PASBackendFileCursorPrivate *cursor_data = (PASBackendFileCursorPrivate *) data;</div><div class='del'>-</div><div class='del'>-	corba_book = bonobo_object_corba_objref(BONOBO_OBJECT(cursor_data-&gt;book));</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_unref(corba_book, &amp;ev);</div><div class='del'>-	</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("cursor_destroy: Exception unreffing "</div><div class='del'>-			  "corba book.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-</div><div class='del'>-	g_list_foreach(cursor_data-&gt;elements, (GFunc)g_free, NULL);</div><div class='del'>-	g_list_free (cursor_data-&gt;elements);</div><div class='del'>-</div><div class='del'>-	g_free(cursor_data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-view_destroy(GtkObject *object, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBook           *book = (PASBook *)data;</div><div class='del'>-	PASBackendFile    *bf;</div><div class='del'>-	EIterator         *iterator;</div><div class='del'>-	gboolean success = FALSE;</div><div class='del'>-</div><div class='del'>-	bf = PAS_BACKEND_FILE(pas_book_get_backend(book));</div><div class='del'>-	for (iterator = e_list_get_iterator(bf-&gt;priv-&gt;book_views); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-		const PASBackendFileBookView *view = e_iterator_get(iterator);</div><div class='del'>-		if (view-&gt;book_view == PAS_BOOK_VIEW(object)) {</div><div class='del'>-			e_iterator_delete(iterator);</div><div class='del'>-			success = TRUE;</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	if (!success)</div><div class='del'>-		g_warning ("Failed to remove from book_views list");</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-</div><div class='del'>-	bonobo_object_unref(BONOBO_OBJECT(book));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-string_to_dbt(const char *str, DBT *dbt)</div><div class='del'>-{</div><div class='del'>-	memset (dbt, 0, sizeof (*dbt));</div><div class='del'>-	dbt-&gt;data = (void*)str;</div><div class='del'>-	dbt-&gt;size = strlen (str) + 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-pas_backend_file_create_unique_id (char *vcard)</div><div class='del'>-{</div><div class='del'>-	/* use a 32 counter and the 32 bit timestamp to make an id.</div><div class='del'>-	   it's doubtful 2^32 id's will be created in a second, so we</div><div class='del'>-	   should be okay. */</div><div class='del'>-	static guint c = 0;</div><div class='del'>-	return g_strdup_printf (PAS_ID_PREFIX "%08lX%08X", time(NULL), c++);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-vcard_matches_search (const PASBackendFileBookView *view, char *vcard_string)</div><div class='del'>-{</div><div class='del'>-	/* If this is not a search context view, it doesn't match be default */</div><div class='del'>-	if (view-&gt;card_sexp == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	return pas_backend_card_sexp_match_vcard (view-&gt;card_sexp, vcard_string);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_search (PASBackendFile  	      *bf,</div><div class='del'>-			 PASBook         	      *book,</div><div class='del'>-			 const PASBackendFileBookView *cnstview)</div><div class='del'>-{</div><div class='del'>-	int     db_error = 0;</div><div class='del'>-	GList   *cards = NULL;</div><div class='del'>-	gint    card_count = 0, card_threshold = 20, card_threshold_max = 1000;</div><div class='del'>-	DB      *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	DBC     *dbc;</div><div class='del'>-	DBT     id_dbt, vcard_dbt;</div><div class='del'>-	int     file_version_name_len;</div><div class='del'>-	PASBackendFileBookView *view = (PASBackendFileBookView *)cnstview;</div><div class='del'>-	gboolean search_needed;</div><div class='del'>-</div><div class='del'>-	if (!bf-&gt;priv-&gt;loaded)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	search_needed = TRUE;</div><div class='del'>-</div><div class='del'>-	if ( ! strcmp (view-&gt;search, "(contains \"x-evolution-any-field\" \"\")"))</div><div class='del'>-		search_needed = FALSE;</div><div class='del'>-</div><div class='del'>-	if (search_needed)</div><div class='del'>-		pas_book_view_notify_status_message (view-&gt;book_view, _("Searching..."));</div><div class='del'>-	else</div><div class='del'>-		pas_book_view_notify_status_message (view-&gt;book_view, _("Loading..."));</div><div class='del'>-</div><div class='del'>-	if (view-&gt;card_sexp)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT(view-&gt;card_sexp));</div><div class='del'>-</div><div class='del'>-	view-&gt;card_sexp = pas_backend_card_sexp_new (view-&gt;search);</div><div class='del'>-	</div><div class='del'>-	if (!view-&gt;card_sexp) {</div><div class='del'>-		/* need a different error message here. */</div><div class='del'>-		pas_book_view_notify_status_message (view-&gt;book_view, _("Error in search expression."));</div><div class='del'>-		pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	file_version_name_len = strlen (PAS_BACKEND_FILE_VERSION_NAME);</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;cursor (db, NULL, &amp;dbc, 0);</div><div class='del'>-</div><div class='del'>-	memset (&amp;id_dbt, 0, sizeof (id_dbt));</div><div class='del'>-	memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>-	if (db_error != 0) {</div><div class='del'>-		g_warning ("pas_backend_file_search: error building list\n");</div><div class='del'>-	} else {</div><div class='del'>-		db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_FIRST);</div><div class='del'>-</div><div class='del'>-		while (db_error == 0) {</div><div class='del'>-</div><div class='del'>-			/* don't include the version in the list of cards */</div><div class='del'>-			if (id_dbt.size != file_version_name_len+1</div><div class='del'>-			    || strcmp (id_dbt.data, PAS_BACKEND_FILE_VERSION_NAME)) {</div><div class='del'>-				char *vcard_string = vcard_dbt.data;</div><div class='del'>-</div><div class='del'>-				/* check if the vcard matches the search sexp */</div><div class='del'>-				if ((!search_needed) || vcard_matches_search (view, vcard_string)) {</div><div class='del'>-					cards = g_list_prepend (cards, g_strdup (vcard_string));</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				card_count ++;</div><div class='del'>-</div><div class='del'>-				/* If we've accumulated a number of checks, pass them off to the client. */</div><div class='del'>-				if (card_count &gt;= card_threshold) {</div><div class='del'>-					cards = g_list_reverse (cards);</div><div class='del'>-					pas_book_view_notify_add (view-&gt;book_view, cards);</div><div class='del'>-					/* Clean up the handed-off data. */</div><div class='del'>-					g_list_foreach (cards, (GFunc)g_free, NULL);</div><div class='del'>-					g_list_free (cards);</div><div class='del'>-					cards = NULL;</div><div class='del'>-					card_count = 0;</div><div class='del'>-</div><div class='del'>-					/* Yeah, this scheme is overly complicated.  But I like it. */</div><div class='del'>-					if (card_threshold &lt; card_threshold_max) {</div><div class='del'>-						card_threshold = MIN (2*card_threshold, card_threshold_max);</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_NEXT);</div><div class='del'>-		}</div><div class='del'>-		dbc-&gt;c_close (dbc);</div><div class='del'>-</div><div class='del'>-		if (db_error != DB_NOTFOUND) {</div><div class='del'>-			g_warning ("pas_backend_file_search: error building list\n");</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (card_count)</div><div class='del'>-		pas_book_view_notify_add (view-&gt;book_view, cards);</div><div class='del'>-</div><div class='del'>-	pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	** It's fine to do this now since the data has been handed off.</div><div class='del'>-	*/</div><div class='del'>-	g_list_foreach (cards, (GFunc)g_free, NULL);</div><div class='del'>-	g_list_free (cards);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_changes_foreach_key (const char *key, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	PASBackendFileChangeContext *ctx = user_data;</div><div class='del'>-	DB      *db = ctx-&gt;db;</div><div class='del'>-	DBT     id_dbt, vcard_dbt;</div><div class='del'>-	int     db_error = 0;</div><div class='del'>-	</div><div class='del'>-	string_to_dbt (key, &amp;id_dbt);</div><div class='del'>-	memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-	db_error = db-&gt;get (db, NULL, &amp;id_dbt, &amp;vcard_dbt, 0);</div><div class='del'>-	</div><div class='del'>-	if (db_error != 0) {</div><div class='del'>-		char *id = id_dbt.data;</div><div class='del'>-		</div><div class='del'>-		ctx-&gt;del_ids = g_list_append (ctx-&gt;del_ids, g_strdup (id));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_changes (PASBackendFile  	      *bf,</div><div class='del'>-			  PASBook         	      *book,</div><div class='del'>-			  const PASBackendFileBookView *cnstview)</div><div class='del'>-{</div><div class='del'>-	int     db_error = 0;</div><div class='del'>-	DBT     id_dbt, vcard_dbt;</div><div class='del'>-	char    *filename;</div><div class='del'>-	EDbHash *ehash;</div><div class='del'>-	GList *i, *v;</div><div class='del'>-	DB      *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	DBC *dbc;</div><div class='del'>-	PASBackendFileBookView *view = (PASBackendFileBookView *)cnstview;</div><div class='del'>-	PASBackendFileChangeContext *ctx = cnstview-&gt;change_context;</div><div class='del'>-</div><div class='del'>-	memset (&amp;id_dbt, 0, sizeof (id_dbt));</div><div class='del'>-	memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>-	if (!bf-&gt;priv-&gt;loaded)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	/* Find the changed ids - FIX ME, path should not be hard coded */</div><div class='del'>-	filename = g_strdup_printf ("%s/evolution/local/Contacts/%s.db", g_get_home_dir (), view-&gt;change_id);</div><div class='del'>-	ehash = e_dbhash_new (filename);</div><div class='del'>-	g_free (filename);</div><div class='del'>-	</div><div class='del'>-	db_error = db-&gt;cursor (db, NULL, &amp;dbc, 0);</div><div class='del'>-</div><div class='del'>-	if (db_error != 0) {</div><div class='del'>-		g_warning ("pas_backend_file_changes: error building list\n");</div><div class='del'>-	} else {</div><div class='del'>-		db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_FIRST);</div><div class='del'>-</div><div class='del'>-		while (db_error == 0) {</div><div class='del'>-</div><div class='del'>-			/* don't include the version in the list of cards */</div><div class='del'>-			if (id_dbt.size != strlen(PAS_BACKEND_FILE_VERSION_NAME) + 1</div><div class='del'>-			    || strcmp (id_dbt.data, PAS_BACKEND_FILE_VERSION_NAME)) {</div><div class='del'>-				ECard *card;</div><div class='del'>-				char *id = id_dbt.data;</div><div class='del'>-				char *vcard_string;</div><div class='del'>-				</div><div class='del'>-				/* Remove fields the user can't change</div><div class='del'>-				 * and can change without the rest of the</div><div class='del'>-				 * card changing </div><div class='del'>-				 */</div><div class='del'>-				card = e_card_new (vcard_dbt.data);</div><div class='del'>-				gtk_object_set (GTK_OBJECT (card), "last_use", NULL, "use_score", 0.0, NULL);</div><div class='del'>-				vcard_string = e_card_get_vcard_assume_utf8 (card);</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (card));</div><div class='del'>-				</div><div class='del'>-				/* check what type of change has occurred, if any */</div><div class='del'>-				switch (e_dbhash_compare (ehash, id, vcard_string)) {</div><div class='del'>-				case E_DBHASH_STATUS_SAME:</div><div class='del'>-					break;</div><div class='del'>-				case E_DBHASH_STATUS_NOT_FOUND:</div><div class='del'>-					ctx-&gt;add_cards = g_list_append (ctx-&gt;add_cards, </div><div class='del'>-									g_strdup(vcard_string));</div><div class='del'>-					ctx-&gt;add_ids = g_list_append (ctx-&gt;add_ids, g_strdup(id));</div><div class='del'>-					break;</div><div class='del'>-				case E_DBHASH_STATUS_DIFFERENT:</div><div class='del'>-					ctx-&gt;mod_cards = g_list_append (ctx-&gt;mod_cards, </div><div class='del'>-									g_strdup(vcard_string));</div><div class='del'>-					ctx-&gt;mod_ids = g_list_append (ctx-&gt;mod_ids, g_strdup(id));</div><div class='del'>-					break;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_NEXT);</div><div class='del'>-		}</div><div class='del'>-		dbc-&gt;c_close (dbc);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-   	e_dbhash_foreach_key (ehash, (EDbHashFunc)pas_backend_file_changes_foreach_key, view-&gt;change_context);</div><div class='del'>-</div><div class='del'>-	/* Send the changes */</div><div class='del'>-	if (db_error != DB_NOTFOUND) {</div><div class='del'>-		g_warning ("pas_backend_file_changes: error building list\n");</div><div class='del'>-	} else {</div><div class='del'>-  		if (ctx-&gt;add_cards != NULL)</div><div class='del'>-  			pas_book_view_notify_add (view-&gt;book_view, ctx-&gt;add_cards);</div><div class='del'>-		</div><div class='del'>-		if (ctx-&gt;mod_cards != NULL)</div><div class='del'>-			pas_book_view_notify_change (view-&gt;book_view, ctx-&gt;mod_cards);</div><div class='del'>-</div><div class='del'>-		for (v = ctx-&gt;del_ids; v != NULL; v = v-&gt;next){</div><div class='del'>-			char *id = v-&gt;data;</div><div class='del'>-			pas_book_view_notify_remove (view-&gt;book_view, id);</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Update the hash */</div><div class='del'>-	for (i = ctx-&gt;add_ids, v = ctx-&gt;add_cards; i != NULL; i = i-&gt;next, v = v-&gt;next){</div><div class='del'>-		char *id = i-&gt;data;</div><div class='del'>-		char *vcard = v-&gt;data;</div><div class='del'>-</div><div class='del'>-		e_dbhash_add (ehash, id, vcard);</div><div class='del'>-		g_free (i-&gt;data);</div><div class='del'>-		g_free (v-&gt;data);		</div><div class='del'>-	}	</div><div class='del'>-	for (i = ctx-&gt;mod_ids, v = ctx-&gt;mod_cards; i != NULL; i = i-&gt;next, v = v-&gt;next){</div><div class='del'>-		char *id = i-&gt;data;</div><div class='del'>-		char *vcard = v-&gt;data;</div><div class='del'>-</div><div class='del'>-		e_dbhash_add (ehash, id, vcard);</div><div class='del'>-		g_free (i-&gt;data);</div><div class='del'>-		g_free (v-&gt;data);		</div><div class='del'>-	}	</div><div class='del'>-	for (i = ctx-&gt;del_ids; i != NULL; i = i-&gt;next){</div><div class='del'>-		char *id = i-&gt;data;</div><div class='del'>-</div><div class='del'>-		e_dbhash_remove (ehash, id);</div><div class='del'>-		g_free (i-&gt;data);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_dbhash_write (ehash);</div><div class='del'>-  	e_dbhash_destroy (ehash);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-do_create(PASBackend *backend,</div><div class='del'>-	  char       *vcard_req,</div><div class='del'>-	  char      **vcard_ptr)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	DB             *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	DBT            id_dbt, vcard_dbt;</div><div class='del'>-	int            db_error;</div><div class='del'>-	char           *id;</div><div class='del'>-	ECard          *card;</div><div class='del'>-	char           *vcard;</div><div class='del'>-	char           *ret_val;</div><div class='del'>-</div><div class='del'>-	id = pas_backend_file_create_unique_id (vcard_req);</div><div class='del'>-</div><div class='del'>-	string_to_dbt (id, &amp;id_dbt);</div><div class='del'>-	</div><div class='del'>-	card = e_card_new(vcard_req);</div><div class='del'>-	e_card_set_id(card, id);</div><div class='del'>-	vcard = e_card_get_vcard_assume_utf8(card);</div><div class='del'>-</div><div class='del'>-	string_to_dbt (vcard, &amp;vcard_dbt);</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;put (db, NULL, &amp;id_dbt, &amp;vcard_dbt, 0);</div><div class='del'>-</div><div class='del'>-	if (0 == db_error) {</div><div class='del'>-		db_error = db-&gt;sync (db, 0);</div><div class='del'>-		if (db_error != 0)</div><div class='del'>-			g_warning ("db-&gt;sync failed.\n");</div><div class='del'>-		ret_val = id;</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		g_free (id);</div><div class='del'>-		ret_val = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-	card = NULL;</div><div class='del'>-</div><div class='del'>-	if (vcard_ptr &amp;&amp; ret_val)</div><div class='del'>-		*vcard_ptr = vcard;</div><div class='del'>-	else</div><div class='del'>-		g_free (vcard);</div><div class='del'>-</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_create_card (PASBackend *backend,</div><div class='del'>-				      PASBook    *book,</div><div class='del'>-				      PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	char *id;</div><div class='del'>-	char *vcard;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-</div><div class='del'>-	id = do_create(backend, req-&gt;vcard, &amp;vcard);</div><div class='del'>-	if (id) {</div><div class='del'>-		for (iterator = e_list_get_iterator(bf-&gt;priv-&gt;book_views); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			const PASBackendFileBookView *view = e_iterator_get(iterator);</div><div class='del'>-			if (vcard_matches_search (view, vcard)) {</div><div class='del'>-				bonobo_object_ref (BONOBO_OBJECT (view-&gt;book_view));</div><div class='del'>-				pas_book_view_notify_add_1 (view-&gt;book_view, vcard);</div><div class='del'>-				pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-				bonobo_object_unref (BONOBO_OBJECT (view-&gt;book_view));</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-		</div><div class='del'>-		pas_book_respond_create (</div><div class='del'>-			book,</div><div class='del'>-			GNOME_Evolution_Addressbook_BookListener_Success,</div><div class='del'>-			id);</div><div class='del'>-		g_free(vcard);</div><div class='del'>-		g_free(id);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		/* XXX need a different call status for this case, i</div><div class='del'>-                   think */</div><div class='del'>-		pas_book_respond_create (</div><div class='del'>-				 book,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener_CardNotFound,</div><div class='del'>-				 "");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free(req-&gt;vcard);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_remove_card (PASBackend *backend,</div><div class='del'>-				      PASBook    *book,</div><div class='del'>-				      PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	DB             *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	DBT            id_dbt, vcard_dbt;</div><div class='del'>-	int            db_error;</div><div class='del'>-	EIterator     *iterator;</div><div class='del'>-	char          *vcard_string;</div><div class='del'>-	const char    *id;</div><div class='del'>-</div><div class='del'>-	id = req-&gt;id;</div><div class='del'>-	string_to_dbt (id, &amp;id_dbt);</div><div class='del'>-	memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;get (db, NULL, &amp;id_dbt, &amp;vcard_dbt, 0);</div><div class='del'>-	if (0 != db_error) {</div><div class='del'>-		pas_book_respond_remove (</div><div class='del'>-				 book,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener_CardNotFound);</div><div class='del'>-		g_free (req-&gt;id);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	db_error = db-&gt;del (db, NULL, &amp;id_dbt, 0);</div><div class='del'>-	if (0 != db_error) {</div><div class='del'>-		pas_book_respond_remove (</div><div class='del'>-				 book,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener_CardNotFound);</div><div class='del'>-		g_free (req-&gt;id);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;sync (db, 0);</div><div class='del'>-	if (db_error != 0)</div><div class='del'>-		g_warning ("db-&gt;sync failed.\n");</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	vcard_string = vcard_dbt.data;</div><div class='del'>-	for (iterator = e_list_get_iterator (bf-&gt;priv-&gt;book_views); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-		const PASBackendFileBookView *view = e_iterator_get(iterator);</div><div class='del'>-		if (vcard_matches_search (view, vcard_string)) {</div><div class='del'>-			bonobo_object_ref (BONOBO_OBJECT (view-&gt;book_view));</div><div class='del'>-			pas_book_view_notify_remove (view-&gt;book_view, req-&gt;id);</div><div class='del'>-			pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-			bonobo_object_unref (BONOBO_OBJECT (view-&gt;book_view));</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-	</div><div class='del'>-	pas_book_respond_remove (</div><div class='del'>-				 book,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener_Success);</div><div class='del'>-	</div><div class='del'>-	g_free (req-&gt;id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_modify_card (PASBackend *backend,</div><div class='del'>-				      PASBook    *book,</div><div class='del'>-				      PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	DB             *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	DBT            id_dbt, vcard_dbt;</div><div class='del'>-	int            db_error;</div><div class='del'>-	EIterator     *iterator;</div><div class='del'>-	ECard         *card;</div><div class='del'>-	const char    *id, *lookup_id;</div><div class='del'>-	char          *old_vcard_string;</div><div class='del'>-</div><div class='del'>-	/* create a new ecard from the request data */</div><div class='del'>-	card = e_card_new(req-&gt;vcard);</div><div class='del'>-	id = e_card_get_id(card);</div><div class='del'>-</div><div class='del'>-	/* This is disgusting, but for a time cards were added with</div><div class='del'>-           ID's that are no longer used (they contained both the uri</div><div class='del'>-           and the id.) If we recognize it as a uri (file:///...) trim</div><div class='del'>-           off everything before the last '/', and use that as the</div><div class='del'>-           id.*/</div><div class='del'>-	if (!strncmp (id, "file:///", strlen ("file:///"))) {</div><div class='del'>-		lookup_id = strrchr (id, '/') + 1;</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='del'>-		lookup_id = id;</div><div class='del'>-</div><div class='del'>-	string_to_dbt (lookup_id, &amp;id_dbt);	</div><div class='del'>-	memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>-	/* get the old ecard - the one that's presently in the db */</div><div class='del'>-	db_error = db-&gt;get (db, NULL, &amp;id_dbt, &amp;vcard_dbt, 0);</div><div class='del'>-	if (0 != db_error) {</div><div class='del'>-		pas_book_respond_modify (</div><div class='del'>-				 book,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener_CardNotFound);</div><div class='del'>-		g_free (req-&gt;id);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	old_vcard_string = g_strdup(vcard_dbt.data);</div><div class='del'>-</div><div class='del'>-	string_to_dbt (req-&gt;vcard, &amp;vcard_dbt);	</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;put (db, NULL, &amp;id_dbt, &amp;vcard_dbt, 0);</div><div class='del'>-</div><div class='del'>-	if (0 == db_error) {</div><div class='del'>-		db_error = db-&gt;sync (db, 0);</div><div class='del'>-		if (db_error != 0)</div><div class='del'>-			g_warning ("db-&gt;sync failed.\n");</div><div class='del'>-</div><div class='del'>-		for (iterator = e_list_get_iterator(bf-&gt;priv-&gt;book_views); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			CORBA_Environment ev;</div><div class='del'>-			const PASBackendFileBookView *view = e_iterator_get(iterator);</div><div class='del'>-			gboolean old_match, new_match;</div><div class='del'>-</div><div class='del'>-			CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-			bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-</div><div class='del'>-			old_match = vcard_matches_search (view, old_vcard_string);</div><div class='del'>-			new_match = vcard_matches_search (view, req-&gt;vcard);</div><div class='del'>-			if (old_match &amp;&amp; new_match)</div><div class='del'>-				pas_book_view_notify_change_1 (view-&gt;book_view, req-&gt;vcard);</div><div class='del'>-			else if (new_match)</div><div class='del'>-				pas_book_view_notify_add_1 (view-&gt;book_view, req-&gt;vcard);</div><div class='del'>-			else /* if (old_match) */</div><div class='del'>-				pas_book_view_notify_remove (view-&gt;book_view, id);</div><div class='del'>-			pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-</div><div class='del'>-			bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-</div><div class='del'>-		pas_book_respond_modify (</div><div class='del'>-				 book,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener_Success);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		pas_book_respond_modify (</div><div class='del'>-				 book,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener_CardNotFound);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free(old_vcard_string);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-	g_free (req-&gt;vcard);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_build_cards_list(PASBackend *backend,</div><div class='del'>-				      PASBackendFileCursorPrivate *cursor_data,</div><div class='del'>-				      char *search)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	DB             *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	DBC            *dbc;</div><div class='del'>-	int            db_error;</div><div class='del'>-	DBT  id_dbt, vcard_dbt;</div><div class='del'>-	PASBackendCardSExp *card_sexp = NULL;</div><div class='del'>-	gboolean search_needed;</div><div class='del'>-	</div><div class='del'>-	cursor_data-&gt;elements = NULL;</div><div class='del'>-</div><div class='del'>-	search_needed = TRUE;</div><div class='del'>-</div><div class='del'>-	if (!strcmp (search, "(contains \"x-evolution-any-field\" \"\")"))</div><div class='del'>-		search_needed = FALSE;</div><div class='del'>-</div><div class='del'>-	card_sexp = pas_backend_card_sexp_new (search);</div><div class='del'>-	</div><div class='del'>-	if (!card_sexp)</div><div class='del'>-		g_warning ("pas_backend_file_build_all_cards_list: error building list\n");</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;cursor (db, NULL, &amp;dbc, 0);</div><div class='del'>-</div><div class='del'>-	if (db_error != 0) {</div><div class='del'>-		g_warning ("pas_backend_file_build_all_cards_list: error building list\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-	memset (&amp;id_dbt, 0, sizeof (id_dbt));</div><div class='del'>-	db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_FIRST);</div><div class='del'>-</div><div class='del'>-	while (db_error == 0) {</div><div class='del'>-</div><div class='del'>-		/* don't include the version in the list of cards */</div><div class='del'>-		if (id_dbt.size != strlen(PAS_BACKEND_FILE_VERSION_NAME) + 1</div><div class='del'>-		    || strcmp (id_dbt.data, PAS_BACKEND_FILE_VERSION_NAME)) {</div><div class='del'>-</div><div class='del'>-			if ((!search_needed) || (card_sexp != NULL &amp;&amp; pas_backend_card_sexp_match_vcard  (card_sexp, vcard_dbt.data))) {</div><div class='del'>-				cursor_data-&gt;elements = g_list_prepend (cursor_data-&gt;elements, g_strdup (vcard_dbt.data));</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_NEXT);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (db_error != DB_NOTFOUND) {</div><div class='del'>-		g_warning ("pas_backend_file_build_all_cards_list: error building list\n");</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		cursor_data-&gt;num_elements = g_list_length (cursor_data-&gt;elements);</div><div class='del'>-		cursor_data-&gt;elements = g_list_reverse (cursor_data-&gt;elements);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_get_vcard (PASBackend *backend,</div><div class='del'>-				    PASBook    *book,</div><div class='del'>-				    PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf;</div><div class='del'>-	DB             *db;</div><div class='del'>-	DBT             id_dbt, vcard_dbt;</div><div class='del'>-	int             db_error = 0;</div><div class='del'>-	char           *card;</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_CallStatus status;	</div><div class='del'>-</div><div class='del'>-	bf = PAS_BACKEND_FILE (pas_book_get_backend (book));</div><div class='del'>-	db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-</div><div class='del'>-	string_to_dbt (req-&gt;id, &amp;id_dbt);</div><div class='del'>-	memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;get (db, NULL, &amp;id_dbt, &amp;vcard_dbt, 0);</div><div class='del'>-</div><div class='del'>-	if (db_error == 0) {</div><div class='del'>-		card = vcard_dbt.data;</div><div class='del'>-		status = GNOME_Evolution_Addressbook_BookListener_Success;</div><div class='del'>-	} else {</div><div class='del'>-		card = NULL;</div><div class='del'>-		status = GNOME_Evolution_Addressbook_BookListener_CardNotFound;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	pas_book_respond_get_vcard (book,</div><div class='del'>-				    status,</div><div class='del'>-				    card);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_get_cursor (PASBackend *backend,</div><div class='del'>-				     PASBook    *book,</div><div class='del'>-				     PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	/*</div><div class='del'>-	  PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	  DB             *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	  DBT            id_dbt, vcard_dbt;</div><div class='del'>-	*/</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	int            db_error = 0;</div><div class='del'>-	PASBackendFileCursorPrivate *cursor_data;</div><div class='del'>-	PASCardCursor *cursor;</div><div class='del'>-	GNOME_Evolution_Addressbook_Book corba_book;</div><div class='del'>-</div><div class='del'>-	cursor_data = g_new(PASBackendFileCursorPrivate, 1);</div><div class='del'>-	cursor_data-&gt;backend = backend;</div><div class='del'>-	cursor_data-&gt;book = book;</div><div class='del'>-</div><div class='del'>-	pas_backend_file_build_cards_list(backend, cursor_data, req-&gt;search);</div><div class='del'>-</div><div class='del'>-	corba_book = bonobo_object_corba_objref(BONOBO_OBJECT(book));</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_ref(corba_book, &amp;ev);</div><div class='del'>-	</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("pas_backend_file_process_get_cursor: Exception reffing "</div><div class='del'>-			  "corba book.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-	</div><div class='del'>-	cursor = pas_card_cursor_new(get_length,</div><div class='del'>-				     get_nth,</div><div class='del'>-				     cursor_data);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(cursor), "destroy",</div><div class='del'>-			   GTK_SIGNAL_FUNC(cursor_destroy), cursor_data);</div><div class='del'>-	</div><div class='del'>-	pas_book_respond_get_cursor (</div><div class='del'>-		book,</div><div class='del'>-		(db_error == 0 </div><div class='del'>-		 ? GNOME_Evolution_Addressbook_BookListener_Success </div><div class='del'>-		 : GNOME_Evolution_Addressbook_BookListener_CardNotFound),</div><div class='del'>-		cursor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_get_book_view (PASBackend *backend,</div><div class='del'>-					PASBook    *book,</div><div class='del'>-					PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	PASBookView       *book_view;</div><div class='del'>-	PASBackendFileBookView view;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (req-&gt;listener != NULL);</div><div class='del'>-	</div><div class='del'>-	bonobo_object_ref(BONOBO_OBJECT(book));</div><div class='del'>-</div><div class='del'>-	book_view = pas_book_view_new (req-&gt;listener);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(book_view), "destroy",</div><div class='del'>-			   GTK_SIGNAL_FUNC(view_destroy), book);</div><div class='del'>-</div><div class='del'>-	view.book_view = book_view;</div><div class='del'>-	view.search = req-&gt;search;</div><div class='del'>-	view.card_sexp = NULL;</div><div class='del'>-	view.change_id = NULL;</div><div class='del'>-	view.change_context = NULL;	</div><div class='del'>-</div><div class='del'>-	e_list_append(bf-&gt;priv-&gt;book_views, &amp;view);</div><div class='del'>-</div><div class='del'>-	pas_book_respond_get_book_view (book,</div><div class='del'>-		   (book_view != NULL</div><div class='del'>-		    ? GNOME_Evolution_Addressbook_BookListener_Success </div><div class='del'>-		    : GNOME_Evolution_Addressbook_BookListener_CardNotFound /* XXX */),</div><div class='del'>-		   book_view);</div><div class='del'>-</div><div class='del'>-	iterator = e_list_get_iterator(bf-&gt;priv-&gt;book_views);</div><div class='del'>-	e_iterator_last(iterator);</div><div class='del'>-	pas_backend_file_search (bf, book, e_iterator_get(iterator));</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-</div><div class='del'>-	g_free(req-&gt;search);</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	bonobo_object_unref (BONOBO_OBJECT (book_view));</div><div class='del'>-	bonobo_object_release_unref (req-&gt;listener, &amp;ev);</div><div class='del'>-	</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("pas_backend_file_process_get_book_view: Exception unreffing "</div><div class='del'>-			  "listener.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_get_changes (PASBackend *backend,</div><div class='del'>-				      PASBook    *book,</div><div class='del'>-				      PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	PASBookView       *book_view;</div><div class='del'>-	PASBackendFileBookView view;</div><div class='del'>-	PASBackendFileChangeContext ctx;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (req-&gt;listener != NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_object_ref(BONOBO_OBJECT(book));</div><div class='del'>-</div><div class='del'>-	book_view = pas_book_view_new (req-&gt;listener);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(book_view), "destroy",</div><div class='del'>-			   GTK_SIGNAL_FUNC(view_destroy), book);</div><div class='del'>-</div><div class='del'>-	pas_book_respond_get_changes (book,</div><div class='del'>-		   (book_view != NULL</div><div class='del'>-		    ? GNOME_Evolution_Addressbook_BookListener_Success </div><div class='del'>-		    : GNOME_Evolution_Addressbook_BookListener_CardNotFound /* XXX */),</div><div class='del'>-		   book_view);</div><div class='del'>-</div><div class='del'>-	view.book_view = book_view;</div><div class='del'>-	view.change_id = req-&gt;change_id;</div><div class='del'>-	view.change_context = &amp;ctx;</div><div class='del'>-	ctx.db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	ctx.add_cards = NULL;</div><div class='del'>-	ctx.add_ids = NULL;</div><div class='del'>-	ctx.mod_cards = NULL;</div><div class='del'>-	ctx.mod_ids = NULL;</div><div class='del'>-	ctx.del_ids = NULL;</div><div class='del'>-	view.search = NULL;</div><div class='del'>-	view.card_sexp = NULL;</div><div class='del'>-	</div><div class='del'>-	e_list_append(bf-&gt;priv-&gt;book_views, &amp;view);</div><div class='del'>-</div><div class='del'>-	iterator = e_list_get_iterator(bf-&gt;priv-&gt;book_views);</div><div class='del'>-	e_iterator_last(iterator);</div><div class='del'>-	pas_backend_file_changes (bf, book, e_iterator_get(iterator));</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-</div><div class='del'>-	g_free(req-&gt;search);</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-	bonobo_object_release_unref (req-&gt;listener, &amp;ev);</div><div class='del'>-	</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("pas_backend_file_process_get_changed: Exception unreffing "</div><div class='del'>-			  "listener.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_check_connection (PASBackend *backend,</div><div class='del'>-					   PASBook    *book,</div><div class='del'>-					   PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-</div><div class='del'>-	pas_book_report_connection (book, bf-&gt;priv-&gt;file_db != NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-pas_backend_file_extract_path_from_uri (const char *uri)</div><div class='del'>-{</div><div class='del'>-	g_assert (strncasecmp (uri, "file:", 5) == 0);</div><div class='del'>-</div><div class='del'>-	return g_strdup (uri + 5);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_authenticate_user (PASBackend *backend,</div><div class='del'>-					    PASBook    *book,</div><div class='del'>-					    PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	pas_book_respond_authenticate_user (book,</div><div class='del'>-					    GNOME_Evolution_Addressbook_BookListener_Success);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_get_supported_fields (PASBackend *backend,</div><div class='del'>-					       PASBook    *book,</div><div class='del'>-					       PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	EList *fields = e_list_new ((EListCopyFunc)g_strdup, (EListFreeFunc)g_free, NULL);</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	ECard *card;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	/* we support everything, so instantiate an e-card, and loop</div><div class='del'>-           through all fields, adding their ecard_fields. */</div><div class='del'>-</div><div class='del'>-	card = e_card_new ("");</div><div class='del'>-	simple = e_card_simple_new (card);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; E_CARD_SIMPLE_FIELD_LAST; i ++)</div><div class='del'>-		e_list_append (fields, e_card_simple_get_ecard_field (simple, i));</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (card));</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-</div><div class='del'>-	pas_book_respond_get_supported_fields (book,</div><div class='del'>-					       GNOME_Evolution_Addressbook_BookListener_Success,</div><div class='del'>-					       fields);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_process_client_requests (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	PASBackend *backend;</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	backend = pas_book_get_backend (book);</div><div class='del'>-</div><div class='del'>-	req = pas_book_pop_request (book);</div><div class='del'>-	if (req == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	switch (req-&gt;op) {</div><div class='del'>-	case CreateCard:</div><div class='del'>-		pas_backend_file_process_create_card (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case RemoveCard:</div><div class='del'>-		pas_backend_file_process_remove_card (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ModifyCard:</div><div class='del'>-		pas_backend_file_process_modify_card (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case CheckConnection:</div><div class='del'>-		pas_backend_file_process_check_connection (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetVCard:</div><div class='del'>-		pas_backend_file_process_get_vcard (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-		</div><div class='del'>-	case GetCursor:</div><div class='del'>-		pas_backend_file_process_get_cursor (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-		</div><div class='del'>-	case GetBookView:</div><div class='del'>-		pas_backend_file_process_get_book_view (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetChanges:</div><div class='del'>-		pas_backend_file_process_get_changes (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case AuthenticateUser:</div><div class='del'>-		pas_backend_file_process_authenticate_user (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetSupportedFields:</div><div class='del'>-		pas_backend_file_process_get_supported_fields (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_book_destroy_cb (PASBook *book, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *backend;</div><div class='del'>-</div><div class='del'>-	backend = PAS_BACKEND_FILE (data);</div><div class='del'>-</div><div class='del'>-	pas_backend_remove_client (PAS_BACKEND (backend), book);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>-** versions:</div><div class='del'>-**</div><div class='del'>-** 0.0 just a list of cards</div><div class='del'>-**</div><div class='del'>-** 0.1 same as 0.0, but with the version tag</div><div class='del'>-**</div><div class='del'>-** 0.2 not a real format upgrade, just a hack to fix broken ids caused</div><div class='del'>-**     by a bug in early betas, but we only need to convert them if</div><div class='del'>-**     the previous version is 0.1, since the bug existed after 0.1</div><div class='del'>-**     came about.</div><div class='del'>-*/</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_file_upgrade_db (PASBackendFile *bf, char *old_version)</div><div class='del'>-{</div><div class='del'>-	DB  *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	int db_error;</div><div class='del'>-	DBT version_name_dbt, version_dbt;</div><div class='del'>-	</div><div class='del'>-	if (strcmp (old_version, "0.0")</div><div class='del'>-	    &amp;&amp; strcmp (old_version, "0.1")) {</div><div class='del'>-		g_warning ("unsupported version '%s' found in PAS backend file\n",</div><div class='del'>-			   old_version);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!strcmp (old_version, "0.1")) {</div><div class='del'>-		/* we just loop through all the cards in the db,</div><div class='del'>-                   giving them valid ids if they don't have them */</div><div class='del'>-		DBT  id_dbt, vcard_dbt;</div><div class='del'>-		DBC *dbc;</div><div class='del'>-		int  card_failed = 0;</div><div class='del'>-</div><div class='del'>-		db_error = db-&gt;cursor (db, NULL, &amp;dbc, 0);</div><div class='del'>-		if (db_error != 0) {</div><div class='del'>-			g_warning ("unable to get cursor");</div><div class='del'>-			return FALSE;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		memset (&amp;id_dbt, 0, sizeof (id_dbt));</div><div class='del'>-		memset (&amp;vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>-		db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_FIRST);</div><div class='del'>-</div><div class='del'>-		while (db_error == 0) {</div><div class='del'>-			if (id_dbt.size != strlen(PAS_BACKEND_FILE_VERSION_NAME) + 1</div><div class='del'>-			    || strcmp (id_dbt.data, PAS_BACKEND_FILE_VERSION_NAME)) {</div><div class='del'>-				ECard *card;</div><div class='del'>-</div><div class='del'>-				card = e_card_new (vcard_dbt.data);</div><div class='del'>-</div><div class='del'>-				/* the cards we're looking for are</div><div class='del'>-				   created with a normal id dbt, but</div><div class='del'>-				   with the id field in the vcard set</div><div class='del'>-				   to something that doesn't match.</div><div class='del'>-				   so, we need to modify the card to</div><div class='del'>-				   have the same id as the the dbt. */</div><div class='del'>-				if (strcmp (id_dbt.data, e_card_get_id (card))) {</div><div class='del'>-					char *vcard;</div><div class='del'>-</div><div class='del'>-					e_card_set_id (card, id_dbt.data);</div><div class='del'>-</div><div class='del'>-					vcard = e_card_get_vcard (card);</div><div class='del'>-					string_to_dbt (vcard, &amp;vcard_dbt);</div><div class='del'>-</div><div class='del'>-					db_error = db-&gt;put (db, NULL,</div><div class='del'>-							    &amp;id_dbt, &amp;vcard_dbt, 0);</div><div class='del'>-</div><div class='del'>-					g_free (vcard);</div><div class='del'>-</div><div class='del'>-					if (db_error != 0)</div><div class='del'>-						card_failed++;</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				gtk_object_unref (GTK_OBJECT(card));</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			db_error = dbc-&gt;c_get(dbc, &amp;id_dbt, &amp;vcard_dbt, DB_NEXT);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (card_failed) {</div><div class='del'>-			g_warning ("failed to update %d cards\n", card_failed);</div><div class='del'>-			return FALSE;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	string_to_dbt (PAS_BACKEND_FILE_VERSION_NAME, &amp;version_name_dbt);</div><div class='del'>-	string_to_dbt (PAS_BACKEND_FILE_VERSION, &amp;version_dbt);</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;put (db, NULL, &amp;version_name_dbt, &amp;version_dbt, 0);</div><div class='del'>-	if (db_error == 0)</div><div class='del'>-		return TRUE;</div><div class='del'>-	else</div><div class='del'>-		return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_file_maybe_upgrade_db (PASBackendFile *bf)</div><div class='del'>-{</div><div class='del'>-	DB   *db = bf-&gt;priv-&gt;file_db;</div><div class='del'>-	DBT  version_name_dbt, version_dbt;</div><div class='del'>-	int  db_error;</div><div class='del'>-	char *version;</div><div class='del'>-	gboolean ret_val = TRUE;</div><div class='del'>-</div><div class='del'>-	string_to_dbt (PAS_BACKEND_FILE_VERSION_NAME, &amp;version_name_dbt);</div><div class='del'>-	memset (&amp;version_dbt, 0, sizeof (version_dbt));</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;get (db, NULL, &amp;version_name_dbt, &amp;version_dbt, 0);</div><div class='del'>-	if (db_error == 0) {</div><div class='del'>-		/* success */</div><div class='del'>-		version = g_strdup (version_dbt.data);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		/* key was not in file */</div><div class='del'>-		version = g_strdup ("0.0");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (strcmp (version, PAS_BACKEND_FILE_VERSION))</div><div class='del'>-		ret_val = pas_backend_file_upgrade_db (bf, version);</div><div class='del'>-</div><div class='del'>-	g_free (version);</div><div class='del'>-</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#define INITIAL_VCARD "BEGIN:VCARD\n\</div><div class='del'>-X-EVOLUTION-FILE-AS:Ximian, Inc.\n\</div><div class='del'>-LABEL;WORK;QUOTED-PRINTABLE:401 Park Drive  3 West=0ABoston, MA 02215=0AUSA\n\</div><div class='del'>-TEL;WORK;VOICE:(617) 236-0442\n\</div><div class='del'>-TEL;WORK;FAX:(617) 236-8630\n\</div><div class='del'>-EMAIL;INTERNET:hello@ximian.com\n\</div><div class='del'>-URL:www.ximian.com/\n\</div><div class='del'>-ORG:Ximian, Inc.;\n\</div><div class='del'>-NOTE:Welcome to the Ximian Addressbook.\n\</div><div class='del'>-END:VCARD"</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_file_load_uri (PASBackend             *backend,</div><div class='del'>-			   const char             *uri)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-	char           *filename;</div><div class='del'>-	gboolean        writable = FALSE;</div><div class='del'>-	GList          *l;</div><div class='del'>-	int             db_error;</div><div class='del'>-	DB *db;</div><div class='del'>-	int major, minor, patch;</div><div class='del'>-</div><div class='del'>-	g_assert (bf-&gt;priv-&gt;loaded == FALSE);</div><div class='del'>-</div><div class='del'>-	db_version (&amp;major, &amp;minor, &amp;patch);</div><div class='del'>-</div><div class='del'>-	if (major != 3 ||</div><div class='del'>-	    minor != 1 ||</div><div class='del'>-	    patch != 17) {</div><div class='del'>-		g_warning ("Wrong version of libdb.");</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	filename = pas_backend_file_extract_path_from_uri (uri);</div><div class='del'>-</div><div class='del'>-	db_error = e_db3_utils_maybe_recover (filename);</div><div class='del'>-	if (db_error != 0)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	db_error = db_create (&amp;db, NULL, 0);</div><div class='del'>-	if (db_error != 0)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	db_error = db-&gt;open (db, filename, NULL, DB_HASH, 0, 0666);</div><div class='del'>-</div><div class='del'>-	if (db_error == DB_OLD_VERSION) {</div><div class='del'>-		db_error = e_db3_utils_upgrade_format (filename);</div><div class='del'>-</div><div class='del'>-		if (db_error != 0)</div><div class='del'>-			return FALSE;</div><div class='del'>-</div><div class='del'>-		db_error = db-&gt;open (db, filename, NULL, DB_HASH, 0, 0666);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bf-&gt;priv-&gt;file_db = db;</div><div class='del'>-</div><div class='del'>-	if (db_error == 0) {</div><div class='del'>-		writable = TRUE;</div><div class='del'>-	} else {</div><div class='del'>-		db_error = db-&gt;open (db, filename, NULL, DB_HASH, DB_RDONLY, 0666);</div><div class='del'>-</div><div class='del'>-		if (db_error != 0) {</div><div class='del'>-			db_error = db-&gt;open (db, filename, NULL, DB_HASH, DB_CREATE, 0666);</div><div class='del'>-</div><div class='del'>-			if (db_error == 0) {</div><div class='del'>-				char *create_initial_file;</div><div class='del'>-				char *dir;</div><div class='del'>-</div><div class='del'>-				dir = g_dirname(filename);</div><div class='del'>-				create_initial_file = g_concat_dir_and_file(dir, "create-initial");</div><div class='del'>-</div><div class='del'>-				if (g_file_exists(create_initial_file)) {</div><div class='del'>-					char *id;</div><div class='del'>-					id = do_create(backend, INITIAL_VCARD, NULL);</div><div class='del'>-					g_free (id);</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				g_free(create_initial_file);</div><div class='del'>-				g_free(dir);</div><div class='del'>-</div><div class='del'>-				writable = TRUE;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (filename);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	if (db_error != 0) {</div><div class='del'>-		bf-&gt;priv-&gt;file_db = NULL;</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bf-&gt;priv-&gt;writable = writable;</div><div class='del'>-</div><div class='del'>-	if (pas_backend_file_maybe_upgrade_db (bf))</div><div class='del'>-		bf-&gt;priv-&gt;loaded = TRUE;</div><div class='del'>-	else {</div><div class='del'>-		db-&gt;close (db, 0);</div><div class='del'>-		bf-&gt;priv-&gt;file_db = NULL;</div><div class='del'>-		bf-&gt;priv-&gt;writable = FALSE;</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free(bf-&gt;priv-&gt;uri);</div><div class='del'>-	bf-&gt;priv-&gt;uri = g_strdup (uri);</div><div class='del'>-</div><div class='del'>-	/* report the writable status of the book to all its clients */</div><div class='del'>-	for (l = bf-&gt;priv-&gt;clients; l; l = g_list_next (l)) {</div><div class='del'>-		PASBook *book = l-&gt;data;</div><div class='del'>-</div><div class='del'>-		pas_book_report_writable (book, writable);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Get_uri handler for the addressbook file backend */</div><div class='del'>-static const char *</div><div class='del'>-pas_backend_file_get_uri (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf;</div><div class='del'>-</div><div class='del'>-	bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (bf-&gt;priv-&gt;loaded, NULL);</div><div class='del'>-	g_assert (bf-&gt;priv-&gt;uri != NULL);</div><div class='del'>-</div><div class='del'>-	return bf-&gt;priv-&gt;uri;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_file_add_client (PASBackend             *backend,</div><div class='del'>-			     GNOME_Evolution_Addressbook_BookListener  listener)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf;</div><div class='del'>-	PASBook        *book;</div><div class='del'>-</div><div class='del'>-	g_assert (backend != NULL);</div><div class='del'>-	g_assert (PAS_IS_BACKEND_FILE (backend));</div><div class='del'>-</div><div class='del'>-	bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-</div><div class='del'>-	book = pas_book_new (backend, listener);</div><div class='del'>-</div><div class='del'>-	if (!book) {</div><div class='del'>-		if (!bf-&gt;priv-&gt;clients)</div><div class='del'>-			pas_backend_last_client_gone (backend);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (book), "destroy",</div><div class='del'>-			    pas_backend_file_book_destroy_cb, backend);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (book), "requests_queued",</div><div class='del'>-		    pas_backend_file_process_client_requests, NULL);</div><div class='del'>-</div><div class='del'>-	bf-&gt;priv-&gt;clients = g_list_prepend (</div><div class='del'>-		bf-&gt;priv-&gt;clients, book);</div><div class='del'>-</div><div class='del'>-	if (bf-&gt;priv-&gt;loaded) {</div><div class='del'>-		pas_book_respond_open (</div><div class='del'>-			book, GNOME_Evolution_Addressbook_BookListener_Success);</div><div class='del'>-		if (bf-&gt;priv-&gt;writable)</div><div class='del'>-			pas_book_report_writable (book, bf-&gt;priv-&gt;writable);</div><div class='del'>-	} else {</div><div class='del'>-		/* Open the book. */</div><div class='del'>-		pas_book_respond_open (</div><div class='del'>-			book, GNOME_Evolution_Addressbook_BookListener_Success);</div><div class='del'>-		if (bf-&gt;priv-&gt;writable)</div><div class='del'>-			pas_book_report_writable (book, bf-&gt;priv-&gt;writable);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_object_unref (BONOBO_OBJECT (book));</div><div class='del'>-	</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_remove_client (PASBackend             *backend,</div><div class='del'>-				PASBook                *book)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf;</div><div class='del'>-	GList *l;</div><div class='del'>-	PASBook *lbook;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (backend != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BACKEND_FILE (backend));</div><div class='del'>-	g_return_if_fail (book != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	bf = PAS_BACKEND_FILE (backend);</div><div class='del'>-</div><div class='del'>-	/* Find the book in the list of clients */</div><div class='del'>-</div><div class='del'>-	for (l = bf-&gt;priv-&gt;clients; l; l = l-&gt;next) {</div><div class='del'>-		lbook = PAS_BOOK (l-&gt;data);</div><div class='del'>-</div><div class='del'>-		if (lbook == book)</div><div class='del'>-			break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_assert (l != NULL);</div><div class='del'>-</div><div class='del'>-	/* Disconnect */</div><div class='del'>-</div><div class='del'>-	bf-&gt;priv-&gt;clients = g_list_remove_link (bf-&gt;priv-&gt;clients, l);</div><div class='del'>-	g_list_free_1 (l);</div><div class='del'>-</div><div class='del'>-	/* When all clients go away, notify the parent factory about it so that</div><div class='del'>-	 * it may decide whether to kill the backend or not.</div><div class='del'>-	 */</div><div class='del'>-	if (!bf-&gt;priv-&gt;clients)</div><div class='del'>-		pas_backend_last_client_gone (backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-pas_backend_file_get_static_capabilities (PASBackend             *backend)</div><div class='del'>-{</div><div class='del'>-	return g_strdup("local");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_file_construct (PASBackendFile *backend)</div><div class='del'>-{</div><div class='del'>-	g_assert (backend != NULL);</div><div class='del'>-	g_assert (PAS_IS_BACKEND_FILE (backend));</div><div class='del'>-</div><div class='del'>-	if (! pas_backend_construct (PAS_BACKEND (backend)))</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_file_new:</div><div class='del'>- */</div><div class='del'>-PASBackend *</div><div class='del'>-pas_backend_file_new (void)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *backend;</div><div class='del'>-</div><div class='del'>-	backend = gtk_type_new (pas_backend_file_get_type ());</div><div class='del'>-</div><div class='del'>-	if (! pas_backend_file_construct (backend)) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (backend));</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return PAS_BACKEND (backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	PASBackendFile *bf;</div><div class='del'>-</div><div class='del'>-	bf = PAS_BACKEND_FILE (object);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(bf-&gt;priv-&gt;book_views));</div><div class='del'>-	g_free (bf-&gt;priv-&gt;uri);</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (pas_backend_file_parent_class)-&gt;destroy (object);	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_class_init (PASBackendFileClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass  *object_class = (GtkObjectClass *) klass;</div><div class='del'>-	PASBackendClass *parent_class;</div><div class='del'>-</div><div class='del'>-	pas_backend_file_parent_class = gtk_type_class (pas_backend_get_type ());</div><div class='del'>-</div><div class='del'>-	parent_class = PAS_BACKEND_CLASS (klass);</div><div class='del'>-</div><div class='del'>-	/* Set the virtual methods. */</div><div class='del'>-	parent_class-&gt;load_uri                = pas_backend_file_load_uri;</div><div class='del'>-	parent_class-&gt;get_uri                 = pas_backend_file_get_uri;</div><div class='del'>-	parent_class-&gt;add_client              = pas_backend_file_add_client;</div><div class='del'>-	parent_class-&gt;remove_client           = pas_backend_file_remove_client;</div><div class='del'>-	parent_class-&gt;get_static_capabilities = pas_backend_file_get_static_capabilities;</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = pas_backend_file_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_file_init (PASBackendFile *backend)</div><div class='del'>-{</div><div class='del'>-	PASBackendFilePrivate *priv;</div><div class='del'>-</div><div class='del'>-	priv             = g_new0 (PASBackendFilePrivate, 1);</div><div class='del'>-	priv-&gt;loaded     = FALSE;</div><div class='del'>-	priv-&gt;clients    = NULL;</div><div class='del'>-	priv-&gt;book_views = e_list_new((EListCopyFunc) pas_backend_file_book_view_copy, (EListFreeFunc) pas_backend_file_book_view_free, NULL);</div><div class='del'>-	priv-&gt;uri        = NULL;</div><div class='del'>-	priv-&gt;writable   = FALSE;</div><div class='del'>-</div><div class='del'>-	backend-&gt;priv = priv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_file_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-pas_backend_file_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASBackendFile",</div><div class='del'>-			sizeof (PASBackendFile),</div><div class='del'>-			sizeof (PASBackendFileClass),</div><div class='del'>-			(GtkClassInitFunc)  pas_backend_file_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_backend_file_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (pas_backend_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend-file.h b/addressbook/backend/pas/pas-backend-file.h<br/>deleted file mode 100644<br/>index 6c29c8b7a2..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend-file.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend-file.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,32 +0,0 @@</div><div class='del'>-/*</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_BACKEND_FILE_H__</div><div class='del'>-#define __PAS_BACKEND_FILE_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include "pas-backend.h"</div><div class='del'>-</div><div class='del'>-typedef struct _PASBackendFilePrivate PASBackendFilePrivate;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	PASBackend             parent_object;</div><div class='del'>-	PASBackendFilePrivate *priv;</div><div class='del'>-} PASBackendFile;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	PASBackendClass parent_class;</div><div class='del'>-} PASBackendFileClass;</div><div class='del'>-</div><div class='del'>-PASBackend *pas_backend_file_new      (void);</div><div class='del'>-GtkType     pas_backend_file_get_type (void);</div><div class='del'>-</div><div class='del'>-#define PAS_BACKEND_FILE_TYPE        (pas_backend_file_get_type ())</div><div class='del'>-#define PAS_BACKEND_FILE(o)          (GTK_CHECK_CAST ((o), PAS_BACKEND_FILE_TYPE, PASBackendFile))</div><div class='del'>-#define PAS_BACKEND_FILE_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_BACKEND_TYPE, PASBackendFileClass))</div><div class='del'>-#define PAS_IS_BACKEND_FILE(o)       (GTK_CHECK_TYPE ((o), PAS_BACKEND_FILE_TYPE))</div><div class='del'>-#define PAS_IS_BACKEND_FILE_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BACKEND_FILE_TYPE))</div><div class='del'>-</div><div class='del'>-#endif /* ! __PAS_BACKEND_FILE_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend-ldap.c b/addressbook/backend/pas/pas-backend-ldap.c<br/>deleted file mode 100644<br/>index 35f1f54fe2..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend-ldap.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend-ldap.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2566 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Author:</div><div class='del'>- *   Chris Toshok (toshok@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define DEBUG</div><div class='del'>-</div><div class='del'>-#include "config.h"  </div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;lber.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-</div><div class='del'>-#ifdef DEBUG</div><div class='del'>-#define LDAP_DEBUG</div><div class='del'>-#define LDAP_DEBUG_ADD</div><div class='del'>-#endif</div><div class='del'>-#include &lt;ldap.h&gt;</div><div class='del'>-#ifdef DEBUG</div><div class='del'>-#undef LDAP_DEBUG</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if LDAP_VENDOR_VERSION &gt; 20000</div><div class='del'>-#define OPENLDAP2</div><div class='del'>-#else</div><div class='del'>-#define OPENLDAP1</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef OPENLDAP2</div><div class='del'>-#include "ldap_schema.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;e-util/e-sexp.h&gt;</div><div class='del'>-#include &lt;ebook/e-card-simple.h&gt;</div><div class='del'>-</div><div class='del'>-#include "pas-backend-ldap.h"</div><div class='del'>-#include "pas-backend-card-sexp.h"</div><div class='del'>-#include "pas-book.h"</div><div class='del'>-#include "pas-card-cursor.h"</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#define LDAP_MAX_SEARCH_RESPONSES 100</div><div class='del'>-</div><div class='del'>-/* the objectClasses we need */</div><div class='del'>-#define TOP                  "top"</div><div class='del'>-#define PERSON               "person"</div><div class='del'>-#define ORGANIZATIONALPERSON "organizationalPerson"</div><div class='del'>-#define INETORGPERSON        "inetOrgPerson"</div><div class='del'>-#define EVOLUTIONPERSON      "evolutionPerson"</div><div class='del'>-</div><div class='del'>-static gchar *query_prop_to_ldap(gchar *query_prop);</div><div class='del'>-</div><div class='del'>-static PASBackendClass *pas_backend_ldap_parent_class;</div><div class='del'>-typedef struct _PASBackendLDAPCursorPrivate PASBackendLDAPCursorPrivate;</div><div class='del'>-typedef struct _PASBackendLDAPBookView PASBackendLDAPBookView;</div><div class='del'>-typedef struct LDAPOp LDAPOp;</div><div class='del'>-</div><div class='del'>-struct _PASBackendLDAPPrivate {</div><div class='del'>-	char     *uri;</div><div class='del'>-	gboolean connected;</div><div class='del'>-	GList    *clients;</div><div class='del'>-	gchar    *ldap_host;</div><div class='del'>-	gchar    *ldap_rootdn;</div><div class='del'>-	int      ldap_port;</div><div class='del'>-	int      ldap_scope;</div><div class='del'>-	GList    *book_views;</div><div class='del'>-</div><div class='del'>-	LDAP     *ldap;</div><div class='del'>-</div><div class='del'>-	EList    *supported_fields;</div><div class='del'>-</div><div class='del'>-	/* whether or not there's support for the objectclass we need</div><div class='del'>-           to store all our additional fields */</div><div class='del'>-	gboolean evolutionPersonSupported;</div><div class='del'>-	gboolean evolutionPersonChecked;</div><div class='del'>-</div><div class='del'>-	gboolean writable;</div><div class='del'>-</div><div class='del'>-	/* whether or not there's a request in process on our LDAP* */</div><div class='del'>-	LDAPOp *current_op;</div><div class='del'>-	GList *pending_ops;</div><div class='del'>-	int op_idle;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _PASBackendLDAPCursorPrivate {</div><div class='del'>-	PASBackend *backend;</div><div class='del'>-	PASBook    *book;</div><div class='del'>-</div><div class='del'>-	GList      *elements;</div><div class='del'>-	long       num_elements;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _PASBackendLDAPBookView {</div><div class='del'>-	PASBookView           *book_view;</div><div class='del'>-	PASBackendLDAPPrivate *blpriv;</div><div class='del'>-	gchar                 *search;</div><div class='del'>-	PASBackendCardSExp    *card_sexp;</div><div class='del'>-	int                   search_idle;</div><div class='del'>-	int                   search_msgid;</div><div class='del'>-	LDAPOp                *search_op;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef gboolean (*LDAPOpHandler)(PASBackend *backend, LDAPOp *op);</div><div class='del'>-typedef void (*LDAPOpDtor)(PASBackend *backend, LDAPOp *op);</div><div class='del'>-</div><div class='del'>-struct LDAPOp {</div><div class='del'>-	LDAPOpHandler handler;</div><div class='del'>-	LDAPOpDtor    dtor;</div><div class='del'>-	PASBackend    *backend;</div><div class='del'>-	PASBook       *book;</div><div class='del'>-	PASBookView   *view;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void     ldap_op_init (LDAPOp *op, PASBackend *backend, PASBook *book, PASBookView *view, LDAPOpHandler handler, LDAPOpDtor dtor);</div><div class='del'>-static void     ldap_op_process_current (PASBackend *backend);</div><div class='del'>-static void     ldap_op_process (LDAPOp *op);</div><div class='del'>-static void     ldap_op_restart (LDAPOp *op);</div><div class='del'>-static gboolean ldap_op_process_on_idle (PASBackend *backend);</div><div class='del'>-static void     ldap_op_finished (LDAPOp *op);</div><div class='del'>-</div><div class='del'>-static ECardSimple *build_card_from_entry (LDAP *ldap, LDAPMessage *e);</div><div class='del'>-</div><div class='del'>-static void email_populate (ECardSimple *card, char **values);</div><div class='del'>-struct berval** email_ber (ECardSimple *card);</div><div class='del'>-gboolean email_compare (ECardSimple *ecard1, ECardSimple *ecard2);</div><div class='del'>-</div><div class='del'>-static void homephone_populate (ECardSimple *card, char **values);</div><div class='del'>-struct berval** homephone_ber (ECardSimple *card);</div><div class='del'>-gboolean homephone_compare (ECardSimple *ecard1, ECardSimple *ecard2);</div><div class='del'>-</div><div class='del'>-static void business_populate (ECardSimple *card, char **values);</div><div class='del'>-struct berval** business_ber (ECardSimple *card);</div><div class='del'>-gboolean business_compare (ECardSimple *ecard1, ECardSimple *ecard2);</div><div class='del'>-</div><div class='del'>-struct prop_info {</div><div class='del'>-	ECardSimpleField field_id;</div><div class='del'>-	char *query_prop;</div><div class='del'>-	char *ldap_attr;</div><div class='del'>-#define PROP_TYPE_STRING   0x01</div><div class='del'>-#define PROP_TYPE_LIST     0x02</div><div class='del'>-#define PROP_DN            0x04</div><div class='del'>-#define PROP_EVOLVE        0x08</div><div class='del'>-	int prop_type;</div><div class='del'>-</div><div class='del'>-	/* the remaining items are only used for the TYPE_LIST props */</div><div class='del'>-</div><div class='del'>-	/* used when reading from the ldap server populates ECard with the values in **values. */</div><div class='del'>-	void (*populate_ecard_func)(ECardSimple *card, char **values);</div><div class='del'>-	/* used when writing to an ldap server.  returns a NULL terminated array of berval*'s */</div><div class='del'>-	struct berval** (*ber_func)(ECardSimple *card);</div><div class='del'>-	/* used to compare list attributes */</div><div class='del'>-	gboolean (*compare_func)(ECardSimple *card1, ECardSimple *card2);</div><div class='del'>-</div><div class='del'>-} prop_info[] = {</div><div class='del'>-</div><div class='del'>-#define LIST_PROP(fid,q,a,ctor,ber,cmp) {fid, q, a, PROP_TYPE_LIST, ctor, ber, cmp}</div><div class='del'>-#define E_LIST_PROP(fid,q,a,ctor,ber,cmp) {fid, q, a, PROP_TYPE_LIST | PROP_EVOLVE, ctor, ber, cmp}</div><div class='del'>-#define STRING_PROP(fid,q,a) {fid, q, a, PROP_TYPE_STRING}</div><div class='del'>-#define E_STRING_PROP(fid,q,a) {fid, q, a, PROP_TYPE_STRING | PROP_EVOLVE}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	/* name fields */</div><div class='del'>-	STRING_PROP (E_CARD_SIMPLE_FIELD_FULL_NAME,   "full_name", "cn" ),</div><div class='del'>-	STRING_PROP (E_CARD_SIMPLE_FIELD_FAMILY_NAME, "family_name", "sn" ),</div><div class='del'>-</div><div class='del'>-	/* email addresses */</div><div class='del'>-	LIST_PROP   (E_CARD_SIMPLE_FIELD_EMAIL, "email", "mail", email_populate, email_ber, email_compare),</div><div class='del'>-</div><div class='del'>-	/* phone numbers */</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_PRIMARY,      "primary_phone", "primaryPhone"),</div><div class='del'>-	LIST_PROP     (E_CARD_SIMPLE_FIELD_PHONE_BUSINESS,     "business_phone", "telephoneNumber", business_populate, business_ber, business_compare),</div><div class='del'>-	LIST_PROP     (E_CARD_SIMPLE_FIELD_PHONE_HOME,         "home_phone", "homePhone", homephone_populate, homephone_ber, homephone_compare),</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_PHONE_MOBILE,       "mobile_phone", "mobile"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_CAR,          "car_phone", "carPhone"),</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_FAX, "business_fax", "facsimileTelephoneNumber"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_HOME_FAX,     "home_fax", "homeFacsimileTelephoneNumber"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_OTHER,        "other_phone", "otherPhone"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_OTHER,        "other_fax", "otherFacsimileTelephoneNumber"), </div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_PHONE_ISDN,         "isdn", "internationaliSDNNumber"), </div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_PHONE_PAGER,        "pager", "pager"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_RADIO,        "radio", "radio"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_TELEX,        "telex", "telex"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_ASSISTANT,    "assistant_phone", "assistantPhone"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_COMPANY,      "company_phone", "companyPhone"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_CALLBACK,     "callback_phone", "callbackPhone"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_PHONE_TTYTTD,       "tty", "tty"),</div><div class='del'>-</div><div class='del'>-	/* org information */</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_ORG,       "org",       "o"),</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_ORG_UNIT,  "org_unit",  "ou"),</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_OFFICE,    "office",    "roomNumber"),</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_TITLE,     "title",     "title"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_ROLE,      "role",      "businessRole"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_MANAGER,   "manager",   "managerName"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_ASSISTANT, "assistant", "assistantName"), </div><div class='del'>-</div><div class='del'>-	/* addresses */</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_ADDRESS_BUSINESS, "business_address", "postalAddress"),</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_ADDRESS_HOME,     "home_address",     "homePostalAddress"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_ADDRESS_OTHER,    "other_address",    "otherPostalAddress"),</div><div class='del'>-</div><div class='del'>-	/* misc fields */</div><div class='del'>-	STRING_PROP (E_CARD_SIMPLE_FIELD_URL,           "url", "labeledURI"),</div><div class='del'>-	/* map nickname to displayName */</div><div class='del'>-	STRING_PROP   (E_CARD_SIMPLE_FIELD_NICKNAME,    "nickname",  "displayName"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_SPOUSE,      "spouse", "spouseName"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_NOTE,        "note", "note"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_ANNIVERSARY, "anniversary", "anniversary"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_BIRTH_DATE,  "birth_date", "birthDate"), </div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_MAILER,      "mailer", "mailer"), </div><div class='del'>-</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_FILE_AS,     "file_as", "fileAs"),</div><div class='del'>-	E_STRING_PROP (E_CARD_SIMPLE_FIELD_CATEGORIES,  "categories", "categories"),</div><div class='del'>-</div><div class='del'>-/*      E_CARD_SIMPLE_FIELD_FBURL, */</div><div class='del'>-/*  	E_CARD_SIMPLE_FIELD_NAME_OR_ORG, */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#undef E_STRING_PROP</div><div class='del'>-#undef STRING_PROP</div><div class='del'>-#undef E_LIST_PROP</div><div class='del'>-#undef LIST_PROP</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static int num_prop_infos = sizeof(prop_info) / sizeof(prop_info[0]);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-view_destroy(GtkObject *object, gpointer data)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	GNOME_Evolution_Addressbook_Book    corba_book;</div><div class='del'>-	PASBook           *book = (PASBook *)data;</div><div class='del'>-	PASBackendLDAP    *bl;</div><div class='del'>-	GList             *list;</div><div class='del'>-</div><div class='del'>-	bl = PAS_BACKEND_LDAP(pas_book_get_backend(book));</div><div class='del'>-	for (list = bl-&gt;priv-&gt;book_views; list; list = g_list_next(list)) {</div><div class='del'>-		PASBackendLDAPBookView *view = list-&gt;data;</div><div class='del'>-		if (view-&gt;book_view == PAS_BOOK_VIEW(object)) {</div><div class='del'>-			if (view-&gt;search_idle != 0) {</div><div class='del'>-				/* we have a search running on the</div><div class='del'>-				   ldap connection.  remove the idle</div><div class='del'>-				   handler and anbandon the msg id */</div><div class='del'>-				g_source_remove(view-&gt;search_idle);</div><div class='del'>-				if (view-&gt;search_msgid != -1)</div><div class='del'>-					ldap_abandon (bl-&gt;priv-&gt;ldap, view-&gt;search_msgid);</div><div class='del'>-</div><div class='del'>-				/* if the search op is the current op,</div><div class='del'>-				   finish it. else, remove it from the</div><div class='del'>-				   list and nuke it ourselves. */</div><div class='del'>-				if (view-&gt;search_op == bl-&gt;priv-&gt;current_op)</div><div class='del'>-					ldap_op_finished (view-&gt;search_op);</div><div class='del'>-				else {</div><div class='del'>-					bl-&gt;priv-&gt;pending_ops = g_list_remove (bl-&gt;priv-&gt;pending_ops,</div><div class='del'>-									       view-&gt;search_op);</div><div class='del'>-					view-&gt;search_op-&gt;dtor (view-&gt;search_op-&gt;backend,</div><div class='del'>-							       view-&gt;search_op);</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			g_free (view-&gt;search);</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (view-&gt;card_sexp));</div><div class='del'>-			g_free (view);</div><div class='del'>-			bl-&gt;priv-&gt;book_views = g_list_remove_link(bl-&gt;priv-&gt;book_views, list);</div><div class='del'>-			g_list_free_1(list);</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	corba_book = bonobo_object_corba_objref(BONOBO_OBJECT(book));</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_unref(corba_book, &amp;ev);</div><div class='del'>-	</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("view_destroy: Exception unreffing "</div><div class='del'>-			  "corba book.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_to_supported_fields (PASBackendLDAP *bl, char **attrs, GHashTable *attr_hash)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	for (i = 0; attrs[i]; i ++) {</div><div class='del'>-		char *query_prop = g_hash_table_lookup (attr_hash, attrs[i]);</div><div class='del'>-</div><div class='del'>-		if (query_prop) {</div><div class='del'>-			e_list_append (bl-&gt;priv-&gt;supported_fields, query_prop);</div><div class='del'>-</div><div class='del'>-			/* handle the list attributes here */</div><div class='del'>-			if (!strcmp (query_prop, "email")) {</div><div class='del'>-				e_list_append (bl-&gt;priv-&gt;supported_fields, "email_2");</div><div class='del'>-				e_list_append (bl-&gt;priv-&gt;supported_fields, "email_3");</div><div class='del'>-			}</div><div class='del'>-			else if (!strcmp (query_prop, "business_phone")) {</div><div class='del'>-				e_list_append (bl-&gt;priv-&gt;supported_fields, "business_phone_2");</div><div class='del'>-			}</div><div class='del'>-			else if (!strcmp (query_prop, "home_phone")) {</div><div class='del'>-				e_list_append (bl-&gt;priv-&gt;supported_fields, "home_phone_2");</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_oc_attributes_to_supported_fields (PASBackendLDAP *bl, LDAPObjectClass *oc)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	GHashTable *attr_hash = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; num_prop_infos; i ++)</div><div class='del'>-		g_hash_table_insert (attr_hash, prop_info[i].ldap_attr, prop_info[i].query_prop);</div><div class='del'>-</div><div class='del'>-	if (oc-&gt;oc_at_oids_must)</div><div class='del'>-		add_to_supported_fields (bl, oc-&gt;oc_at_oids_must, attr_hash);</div><div class='del'>-</div><div class='del'>-	if (oc-&gt;oc_at_oids_may)</div><div class='del'>-		add_to_supported_fields (bl, oc-&gt;oc_at_oids_may, attr_hash);</div><div class='del'>-</div><div class='del'>-	g_hash_table_destroy (attr_hash);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-check_schema_support (PASBackendLDAP *bl)</div><div class='del'>-{</div><div class='del'>-	char *attrs[2];</div><div class='del'>-	LDAPMessage *resp;</div><div class='del'>-	LDAP *ldap = bl-&gt;priv-&gt;ldap;</div><div class='del'>-</div><div class='del'>-	bl-&gt;priv-&gt;evolutionPersonChecked = TRUE;</div><div class='del'>-</div><div class='del'>-	attrs[0] = "objectClasses";</div><div class='del'>-	attrs[1] = NULL;</div><div class='del'>-</div><div class='del'>-	if (ldap_search_ext_s (ldap, "cn=Subschema", LDAP_SCOPE_BASE,</div><div class='del'>-			       "(objectClass=subschema)", attrs, 0,</div><div class='del'>-			       NULL, NULL, NULL, 0, &amp;resp) == LDAP_SUCCESS) {</div><div class='del'>-		char **values;</div><div class='del'>-</div><div class='del'>-		values = ldap_get_values (ldap, resp, "objectClasses");</div><div class='del'>-</div><div class='del'>-		if (values) {</div><div class='del'>-			int i;</div><div class='del'>-			for (i = 0; values[i]; i ++) {</div><div class='del'>-				int j;</div><div class='del'>-				int code;</div><div class='del'>-				const char *err;</div><div class='del'>-				LDAPObjectClass *oc = ldap_str2objectclass (values[i], &amp;code, &amp;err, 0);</div><div class='del'>-</div><div class='del'>-				if (!oc)</div><div class='del'>-					continue;</div><div class='del'>-</div><div class='del'>-				for (j = 0; oc-&gt;oc_names[j]; j++)</div><div class='del'>-					if (!g_strcasecmp (oc-&gt;oc_names[j], EVOLUTIONPERSON)) {</div><div class='del'>-						g_print ("support found on ldap server for objectclass evolutionPerson\n");</div><div class='del'>-						bl-&gt;priv-&gt;evolutionPersonSupported = TRUE;</div><div class='del'>-</div><div class='del'>-						add_oc_attributes_to_supported_fields (bl, oc);</div><div class='del'>-					}</div><div class='del'>-					else if (!g_strcasecmp (oc-&gt;oc_names[j], INETORGPERSON)</div><div class='del'>-						 || !g_strcasecmp (oc-&gt;oc_names[j], ORGANIZATIONALPERSON)</div><div class='del'>-						 || !g_strcasecmp (oc-&gt;oc_names[j], PERSON)) {</div><div class='del'>-						add_oc_attributes_to_supported_fields (bl, oc);</div><div class='del'>-					}</div><div class='del'>-</div><div class='del'>-				ldap_objectclass_free (oc);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_connect (PASBackendLDAP *bl)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAPPrivate *blpriv = bl-&gt;priv;</div><div class='del'>-</div><div class='del'>-	/* close connection first if it's open first */</div><div class='del'>-	if (blpriv-&gt;ldap)</div><div class='del'>-		ldap_unbind (blpriv-&gt;ldap);</div><div class='del'>-</div><div class='del'>-	blpriv-&gt;ldap = ldap_init (blpriv-&gt;ldap_host, blpriv-&gt;ldap_port);</div><div class='del'>-#ifdef DEBUG</div><div class='del'>-	{</div><div class='del'>-		int debug_level = ~0;</div><div class='del'>-		ldap_set_option (blpriv-&gt;ldap, LDAP_OPT_DEBUG_LEVEL, &amp;debug_level);</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	if (NULL != blpriv-&gt;ldap) {</div><div class='del'>-		ldap_simple_bind_s(blpriv-&gt;ldap,</div><div class='del'>-				   NULL /*binddn*/, NULL /*passwd*/);</div><div class='del'>-		blpriv-&gt;connected = TRUE;</div><div class='del'>-</div><div class='del'>-		/* check to see if evolutionPerson is supported, if we can (me</div><div class='del'>-		   might not be able to if we can't authenticate.  if we</div><div class='del'>-		   can't, try again in auth_user.) */</div><div class='del'>-		check_schema_support (bl);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		g_warning ("pas_backend_ldap_connect failed for "</div><div class='del'>-			   "'ldap://%s:%d/%s'\n",</div><div class='del'>-			   blpriv-&gt;ldap_host,</div><div class='del'>-			   blpriv-&gt;ldap_port,</div><div class='del'>-			   blpriv-&gt;ldap_rootdn ? blpriv-&gt;ldap_rootdn : "");</div><div class='del'>-		blpriv-&gt;connected = FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimple *</div><div class='del'>-search_for_dn (PASBackendLDAP *bl, const char *dn)</div><div class='del'>-{</div><div class='del'>-	LDAP *ldap = bl-&gt;priv-&gt;ldap;</div><div class='del'>-	LDAPMessage    *res, *e;</div><div class='del'>-	ECardSimple *result = NULL;</div><div class='del'>-</div><div class='del'>-	if (ldap_search_s (ldap,</div><div class='del'>-			   dn,</div><div class='del'>-			   LDAP_SCOPE_BASE,</div><div class='del'>-			   "(objectclass=*)",</div><div class='del'>-			   NULL, 0, &amp;res) != -1) {</div><div class='del'>-		e = ldap_first_entry (ldap, res);</div><div class='del'>-		while (NULL != e) {</div><div class='del'>-			if (!strcmp (ldap_get_dn (ldap, e), dn)) {</div><div class='del'>-				printf ("found it\n");</div><div class='del'>-				result = build_card_from_entry (ldap, e);</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			e = ldap_next_entry (ldap, e);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		ldap_msgfree(res);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ldap_op_init (LDAPOp *op, PASBackend *backend,</div><div class='del'>-	      PASBook *book, PASBookView *view,</div><div class='del'>-	      LDAPOpHandler handler, LDAPOpDtor dtor)</div><div class='del'>-{</div><div class='del'>-	op-&gt;backend = backend;</div><div class='del'>-	op-&gt;book = book;</div><div class='del'>-	op-&gt;view = view;</div><div class='del'>-	op-&gt;handler = handler;</div><div class='del'>-	op-&gt;dtor = dtor;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ldap_op_process_current (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	LDAPOp *op = bl-&gt;priv-&gt;current_op;</div><div class='del'>-</div><div class='del'>-	if (!bl-&gt;priv-&gt;connected) {</div><div class='del'>-		if (op-&gt;view)</div><div class='del'>-			pas_book_view_notify_status_message (op-&gt;view, _("Connecting to LDAP server..."));</div><div class='del'>-		pas_backend_ldap_connect(bl);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;connected) {</div><div class='del'>-		if (op-&gt;handler (backend, op))</div><div class='del'>-			ldap_op_finished (op);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		if (op-&gt;view) {</div><div class='del'>-			pas_book_view_notify_status_message (op-&gt;view, _("Unable to connect to LDAP server."));</div><div class='del'>-			pas_book_view_notify_complete (op-&gt;view);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		ldap_op_finished (op);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ldap_op_process (LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (op-&gt;backend);</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;current_op) {</div><div class='del'>-		/* operation in progress.  queue this op for later and return. */</div><div class='del'>-		if (op-&gt;view)</div><div class='del'>-			pas_book_view_notify_status_message (op-&gt;view, _("Waiting for connection to LDAP server..."));</div><div class='del'>-		bl-&gt;priv-&gt;pending_ops = g_list_append (bl-&gt;priv-&gt;pending_ops, op);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		/* nothing going on, do this op now */</div><div class='del'>-		bl-&gt;priv-&gt;current_op = op;</div><div class='del'>-		ldap_op_process_current (op-&gt;backend);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-ldap_op_process_on_idle (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-</div><div class='del'>-	bl-&gt;priv-&gt;op_idle = 0;</div><div class='del'>-</div><div class='del'>-	ldap_op_process_current (backend);</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ldap_op_restart (LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	PASBackend *backend = op-&gt;backend;</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (op == bl-&gt;priv-&gt;current_op);</div><div class='del'>-</div><div class='del'>-	bl-&gt;priv-&gt;op_idle = g_idle_add((GSourceFunc)ldap_op_process_on_idle, backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ldap_op_finished (LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	PASBackend *backend = op-&gt;backend;</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (op == bl-&gt;priv-&gt;current_op);</div><div class='del'>-</div><div class='del'>-	op-&gt;dtor (backend, op);</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;pending_ops) {</div><div class='del'>-		bl-&gt;priv-&gt;current_op = bl-&gt;priv-&gt;pending_ops-&gt;data;</div><div class='del'>-		bl-&gt;priv-&gt;pending_ops = g_list_remove_link (bl-&gt;priv-&gt;pending_ops, bl-&gt;priv-&gt;pending_ops);</div><div class='del'>-</div><div class='del'>-		bl-&gt;priv-&gt;op_idle = g_idle_add((GSourceFunc)ldap_op_process_on_idle, backend);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		bl-&gt;priv-&gt;current_op = NULL;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-ldap_error_to_response (int ldap_error)</div><div class='del'>-{</div><div class='del'>-	if (ldap_error == LDAP_SUCCESS)</div><div class='del'>-		return GNOME_Evolution_Addressbook_BookListener_Success;</div><div class='del'>-	else if (LDAP_NAME_ERROR (ldap_error))</div><div class='del'>-		return GNOME_Evolution_Addressbook_BookListener_CardNotFound;</div><div class='del'>-	else if (ldap_error == LDAP_INSUFFICIENT_ACCESS)</div><div class='del'>-		return GNOME_Evolution_Addressbook_BookListener_PermissionDenied;</div><div class='del'>-	else if (ldap_error == LDAP_SERVER_DOWN)</div><div class='del'>-		return GNOME_Evolution_Addressbook_BookListener_RepositoryOffline;</div><div class='del'>-	else if (ldap_error == LDAP_ALREADY_EXISTS)</div><div class='del'>-		return GNOME_Evolution_Addressbook_BookListener_CardIdAlreadyExists;</div><div class='del'>-	else</div><div class='del'>-		return GNOME_Evolution_Addressbook_BookListener_OtherError;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-create_dn_from_ecard (ECardSimple *card, const char *root_dn)</div><div class='del'>-{</div><div class='del'>-	char *cn, *cn_part = NULL;</div><div class='del'>-	char *dn;</div><div class='del'>-	gboolean need_comma = FALSE;</div><div class='del'>-</div><div class='del'>-	cn = e_card_simple_get (card, E_CARD_SIMPLE_FIELD_FULL_NAME);</div><div class='del'>-	if (cn) {</div><div class='del'>-		cn_part = g_strdup_printf ("cn=%s%s", cn, need_comma ? "," : "");</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		cn_part = g_strdup ("");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	dn = g_strdup_printf ("%s%s%s", cn_part,</div><div class='del'>-			      (root_dn &amp;&amp; strlen(root_dn)) ? "," : "",</div><div class='del'>-			      (root_dn &amp;&amp; strlen(root_dn)) ? root_dn: "");</div><div class='del'>-</div><div class='del'>-	g_free (cn_part);</div><div class='del'>-</div><div class='del'>-	g_print ("generated dn: %s\n", dn);</div><div class='del'>-</div><div class='del'>-	return dn;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-free_mods (GPtrArray *mods)</div><div class='del'>-{</div><div class='del'>-	int i = 0;</div><div class='del'>-	LDAPMod *mod;</div><div class='del'>-</div><div class='del'>-	while ((mod = g_ptr_array_index (mods, i++))) {</div><div class='del'>-		int j;</div><div class='del'>-		g_free (mod-&gt;mod_type);</div><div class='del'>-</div><div class='del'>-		if (mod-&gt;mod_op &amp; LDAP_MOD_BVALUES) {</div><div class='del'>-			for (j = 0; mod-&gt;mod_bvalues[j]; j++) {</div><div class='del'>-				g_free (mod-&gt;mod_bvalues[j]-&gt;bv_val);</div><div class='del'>-				g_free (mod-&gt;mod_bvalues[j]);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			for (j = 0; mod-&gt;mod_values[j]; j++)</div><div class='del'>-				g_free (mod-&gt;mod_values[j]);</div><div class='del'>-		}</div><div class='del'>-		g_free (mod);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_ptr_array_free (mods, TRUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GPtrArray*</div><div class='del'>-build_mods_from_ecards (PASBackendLDAP *bl, ECardSimple *current, ECardSimple *new, gboolean *new_dn_needed)</div><div class='del'>-{</div><div class='del'>-	gboolean adding = (current == NULL);</div><div class='del'>-	GPtrArray *result = g_ptr_array_new();</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	if (new_dn_needed)</div><div class='del'>-		*new_dn_needed = FALSE;</div><div class='del'>-</div><div class='del'>-	/* we walk down the list of properties we can deal with (that</div><div class='del'>-	 big table at the top of the file) */</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; num_prop_infos; i ++) {</div><div class='del'>-		gboolean include;</div><div class='del'>-		gboolean new_prop_present = FALSE;</div><div class='del'>-		gboolean current_prop_present = FALSE;</div><div class='del'>-		struct berval** new_prop_bers = NULL;</div><div class='del'>-		char *new_prop = NULL;</div><div class='del'>-		char *current_prop = NULL;</div><div class='del'>-</div><div class='del'>-		/* XXX if it's an evolutionPerson prop and the ldap</div><div class='del'>-                   server doesn't support that objectclass, skip it. */</div><div class='del'>-		if (prop_info[i].prop_type &amp; PROP_EVOLVE &amp;&amp; !bl-&gt;priv-&gt;evolutionPersonSupported)</div><div class='del'>-			continue;</div><div class='del'>-</div><div class='del'>-		/* get the value for the new card, and compare it to</div><div class='del'>-                   the value in the current card to see if we should</div><div class='del'>-                   update it -- if adding is TRUE, short circuit the</div><div class='del'>-                   check. */</div><div class='del'>-		if (prop_info[i].prop_type &amp; PROP_TYPE_STRING) {</div><div class='del'>-			new_prop = e_card_simple_get (new, prop_info[i].field_id);</div><div class='del'>-			new_prop_present = (new_prop != NULL);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			new_prop_bers = prop_info[i].ber_func (new);</div><div class='del'>-			new_prop_present = (new_prop_bers != NULL);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* need to set INCLUDE to true if the field needs to</div><div class='del'>-                   show up in the ldap modify request */</div><div class='del'>-		if (adding) {</div><div class='del'>-			/* if we're creating a new card, include it if the</div><div class='del'>-                           field is there at all */</div><div class='del'>-			if (prop_info[i].prop_type &amp; PROP_TYPE_STRING)</div><div class='del'>-				include = (new_prop_present &amp;&amp; *new_prop); /* empty strings cause problems */</div><div class='del'>-			else</div><div class='del'>-				include = new_prop_present;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			/* if we're modifying an existing card,</div><div class='del'>-                           include it if the current field value is</div><div class='del'>-                           different than the new one, if it didn't</div><div class='del'>-                           exist previously, or if it's been</div><div class='del'>-                           removed. */</div><div class='del'>-			if (prop_info[i].prop_type &amp; PROP_TYPE_STRING) {</div><div class='del'>-				current_prop = e_card_simple_get (current, prop_info[i].field_id);</div><div class='del'>-				current_prop_present = (current_prop != NULL);</div><div class='del'>-</div><div class='del'>-				if (new_prop &amp;&amp; current_prop)</div><div class='del'>-					include = *new_prop &amp;&amp; strcmp (new_prop, current_prop);</div><div class='del'>-				else</div><div class='del'>-					include = (!!new_prop != !!current_prop);</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-				int j;</div><div class='del'>-				struct berval **current_prop_bers = prop_info[i].ber_func (current);</div><div class='del'>-</div><div class='del'>-				current_prop_present = (current_prop_bers != NULL);</div><div class='del'>-</div><div class='del'>-				/* free up the current_prop_bers */</div><div class='del'>-				if (current_prop_bers) {</div><div class='del'>-					for (j = 0; current_prop_bers[j]; j++) {</div><div class='del'>-						g_free (current_prop_bers[j]-&gt;bv_val);</div><div class='del'>-						g_free (current_prop_bers[j]);</div><div class='del'>-					}</div><div class='del'>-					g_free (current_prop_bers);</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				include = !prop_info[i].compare_func (new, current);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (include) {</div><div class='del'>-			LDAPMod *mod = g_new (LDAPMod, 1);</div><div class='del'>-</div><div class='del'>-			/* the included attribute has changed - we</div><div class='del'>-                           need to update the dn if it's one of the</div><div class='del'>-                           attributes we compute the dn from. */</div><div class='del'>-			if (new_dn_needed)</div><div class='del'>-				*new_dn_needed |= prop_info[i].prop_type &amp; PROP_DN;</div><div class='del'>-</div><div class='del'>-			if (adding) {</div><div class='del'>-				mod-&gt;mod_op = LDAP_MOD_ADD;</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-				if (!new_prop_present)</div><div class='del'>-					mod-&gt;mod_op = LDAP_MOD_DELETE;</div><div class='del'>-				else if (!current_prop_present)</div><div class='del'>-					mod-&gt;mod_op = LDAP_MOD_ADD;</div><div class='del'>-				else</div><div class='del'>-					mod-&gt;mod_op = LDAP_MOD_REPLACE;</div><div class='del'>-			}</div><div class='del'>-			</div><div class='del'>-			mod-&gt;mod_type = g_strdup (prop_info[i].ldap_attr);</div><div class='del'>-</div><div class='del'>-			if (prop_info[i].prop_type &amp; PROP_TYPE_STRING) {</div><div class='del'>-				mod-&gt;mod_values = g_new (char*, 2);</div><div class='del'>-				mod-&gt;mod_values[0] = new_prop;</div><div class='del'>-				mod-&gt;mod_values[1] = NULL;</div><div class='del'>-			}</div><div class='del'>-			else { /* PROP_TYPE_LIST */</div><div class='del'>-				mod-&gt;mod_op |= LDAP_MOD_BVALUES;</div><div class='del'>-				mod-&gt;mod_bvalues = new_prop_bers;</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			g_ptr_array_add (result, mod);</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* NULL terminate the list of modifications */</div><div class='del'>-	g_ptr_array_add (result, NULL);</div><div class='del'>-</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_objectclass_mod (PASBackendLDAP *bl, GPtrArray *mod_array)</div><div class='del'>-{</div><div class='del'>-	LDAPMod *objectclass_mod;</div><div class='del'>-</div><div class='del'>-	objectclass_mod = g_new (LDAPMod, 1);</div><div class='del'>-	objectclass_mod-&gt;mod_op = LDAP_MOD_ADD;</div><div class='del'>-	objectclass_mod-&gt;mod_type = g_strdup ("objectClass");</div><div class='del'>-	objectclass_mod-&gt;mod_values = g_new (char*, bl-&gt;priv-&gt;evolutionPersonSupported ? 6 : 5);</div><div class='del'>-	objectclass_mod-&gt;mod_values[0] = g_strdup (TOP);</div><div class='del'>-	objectclass_mod-&gt;mod_values[1] = g_strdup (PERSON);</div><div class='del'>-	objectclass_mod-&gt;mod_values[2] = g_strdup (ORGANIZATIONALPERSON);</div><div class='del'>-	objectclass_mod-&gt;mod_values[3] = g_strdup (INETORGPERSON);</div><div class='del'>-	if (bl-&gt;priv-&gt;evolutionPersonSupported) {</div><div class='del'>-		objectclass_mod-&gt;mod_values[4] = g_strdup (EVOLUTIONPERSON);</div><div class='del'>-		objectclass_mod-&gt;mod_values[5] = NULL;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		objectclass_mod-&gt;mod_values[4] = NULL;</div><div class='del'>-	}</div><div class='del'>-	g_ptr_array_add (mod_array, objectclass_mod);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	LDAPOp op;</div><div class='del'>-	char *vcard;</div><div class='del'>-} LDAPCreateOp;</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-create_card_handler (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPCreateOp *create_op = (LDAPCreateOp*)op;</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	ECard *new_ecard;</div><div class='del'>-	ECardSimple *new_card;</div><div class='del'>-	char *dn;</div><div class='del'>-	int response;</div><div class='del'>-	int            ldap_error;</div><div class='del'>-	GPtrArray *mod_array;</div><div class='del'>-	LDAPMod **ldap_mods;</div><div class='del'>-	LDAP *ldap;</div><div class='del'>-</div><div class='del'>-	printf ("vcard = %s\n", create_op-&gt;vcard);</div><div class='del'>-</div><div class='del'>-	new_ecard = e_card_new (create_op-&gt;vcard);</div><div class='del'>-	new_card = e_card_simple_new (new_ecard);</div><div class='del'>-</div><div class='del'>-	dn = create_dn_from_ecard (new_card, bl-&gt;priv-&gt;ldap_rootdn);</div><div class='del'>-	e_card_simple_set_id (new_card, dn); /* for the notification code below */</div><div class='del'>-</div><div class='del'>-	ldap = bl-&gt;priv-&gt;ldap;</div><div class='del'>-</div><div class='del'>-	/* build our mods */</div><div class='del'>-	mod_array = build_mods_from_ecards (bl, NULL, new_card, NULL);</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-	if (!mod_array) {</div><div class='del'>-		/* there's an illegal field in there.  report</div><div class='del'>-                   UnsupportedAttribute back */</div><div class='del'>-		g_free (dn);</div><div class='del'>-</div><div class='del'>-		gtk_object_unref (GTK_OBJECT(new_card));</div><div class='del'>-</div><div class='del'>-		pas_book_respond_create (create_op-&gt;op.book,</div><div class='del'>-					 GNOME_Evolution_Addressbook_BookListener_UnsupportedField,</div><div class='del'>-					 dn);</div><div class='del'>-</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	/* remove the NULL at the end */</div><div class='del'>-	g_ptr_array_remove (mod_array, NULL);</div><div class='del'>-</div><div class='del'>-	/* add our objectclass(es) */</div><div class='del'>-	add_objectclass_mod (bl, mod_array);</div><div class='del'>-</div><div class='del'>-	/* then put the NULL back */</div><div class='del'>-	g_ptr_array_add (mod_array, NULL);</div><div class='del'>-</div><div class='del'>-#ifdef LDAP_DEBUG_ADD</div><div class='del'>-	{</div><div class='del'>-		int i;</div><div class='del'>-		printf ("Sending the following to the server as ADD\n");</div><div class='del'>-</div><div class='del'>-		for (i = 0; g_ptr_array_index(mod_array, i); i ++) {</div><div class='del'>-			LDAPMod *mod = g_ptr_array_index(mod_array, i);</div><div class='del'>-			if (mod-&gt;mod_op &amp; LDAP_MOD_DELETE)</div><div class='del'>-				printf ("del ");</div><div class='del'>-			else if (mod-&gt;mod_op &amp; LDAP_MOD_REPLACE)</div><div class='del'>-				printf ("rep ");</div><div class='del'>-			else</div><div class='del'>-				printf ("add ");</div><div class='del'>-			if (mod-&gt;mod_op &amp; LDAP_MOD_BVALUES)</div><div class='del'>-				printf ("ber ");</div><div class='del'>-			else</div><div class='del'>-				printf ("    ");</div><div class='del'>-</div><div class='del'>-			printf (" %s:\n", mod-&gt;mod_type);</div><div class='del'>-</div><div class='del'>-			if (mod-&gt;mod_op &amp; LDAP_MOD_BVALUES) {</div><div class='del'>-				int j;</div><div class='del'>-				for (j = 0; mod-&gt;mod_bvalues[j] &amp;&amp; mod-&gt;mod_bvalues[j]-&gt;bv_val; j++)</div><div class='del'>-					printf ("\t\t'%s'\n", mod-&gt;mod_bvalues[j]-&gt;bv_val);</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-				int j;</div><div class='del'>-</div><div class='del'>-				for (j = 0; mod-&gt;mod_values[j]; j++)</div><div class='del'>-					printf ("\t\t'%s'\n", mod-&gt;mod_values[j]);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	ldap_mods = (LDAPMod**)mod_array-&gt;pdata;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		pas_book_view_notify_status_message (op-&gt;view, _("Adding card to LDAP server..."));</div><div class='del'>-</div><div class='del'>-	/* actually perform the ldap add */</div><div class='del'>-	ldap_error = ldap_add_s (ldap, dn, ldap_mods);</div><div class='del'>-</div><div class='del'>-	if (ldap_error == LDAP_SUCCESS) {</div><div class='del'>-		/* the card was created, let's let the views know about it */</div><div class='del'>-		GList *l;</div><div class='del'>-		for (l = bl-&gt;priv-&gt;book_views; l; l = l-&gt;next) {</div><div class='del'>-			CORBA_Environment ev;</div><div class='del'>-			gboolean match;</div><div class='del'>-			PASBackendLDAPBookView *view = l-&gt;data; </div><div class='del'>-					</div><div class='del'>-			CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-			bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-</div><div class='del'>-			match = pas_backend_card_sexp_match_vcard (view-&gt;card_sexp,</div><div class='del'>-								   e_card_simple_get_vcard_assume_utf8 (new_card));</div><div class='del'>-			if (match)</div><div class='del'>-				pas_book_view_notify_add_1 (view-&gt;book_view, e_card_simple_get_vcard_assume_utf8 (new_card));</div><div class='del'>-			pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-</div><div class='del'>-			bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		ldap_perror (ldap, "ldap_add_s");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		pas_book_view_notify_complete (op-&gt;view);</div><div class='del'>-</div><div class='del'>-	/* and clean up */</div><div class='del'>-	free_mods (mod_array);</div><div class='del'>-	g_free (dn);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT(new_card));</div><div class='del'>-</div><div class='del'>-	/* and lastly respond */</div><div class='del'>-	response = ldap_error_to_response (ldap_error);</div><div class='del'>-	pas_book_respond_create (create_op-&gt;op.book,</div><div class='del'>-				 response,</div><div class='del'>-				 dn);</div><div class='del'>-</div><div class='del'>-	/* we're synchronous */</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-create_card_dtor (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPCreateOp *create_op = (LDAPCreateOp*)op;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op-&gt;view)), NULL);</div><div class='del'>-</div><div class='del'>-	g_free (create_op-&gt;vcard);</div><div class='del'>-	g_free (create_op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_create_card (PASBackend *backend,</div><div class='del'>-				      PASBook    *book,</div><div class='del'>-				      PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	LDAPCreateOp *create_op = g_new (LDAPCreateOp, 1);</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	PASBookView *book_view = NULL;</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;book_views) {</div><div class='del'>-		PASBackendLDAPBookView *v = bl-&gt;priv-&gt;book_views-&gt;data;</div><div class='del'>-		book_view = v-&gt;book_view;</div><div class='del'>-		bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(book_view)), NULL);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ldap_op_init ((LDAPOp*)create_op, backend, book,</div><div class='del'>-		      book_view,</div><div class='del'>-		      create_card_handler, create_card_dtor);</div><div class='del'>-</div><div class='del'>-	create_op-&gt;vcard = req-&gt;vcard;</div><div class='del'>-</div><div class='del'>-	ldap_op_process ((LDAPOp*)create_op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	LDAPOp op;</div><div class='del'>-	char *id;</div><div class='del'>-} LDAPRemoveOp;</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-remove_card_handler (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPRemoveOp *remove_op = (LDAPRemoveOp*)op;</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	int response;</div><div class='del'>-	int ldap_error;</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		pas_book_view_notify_status_message (op-&gt;view, _("Removing card from LDAP server..."));</div><div class='del'>-</div><div class='del'>-	simple = search_for_dn (bl, remove_op-&gt;id);</div><div class='del'>-</div><div class='del'>-	if (simple) {</div><div class='del'>-		ldap_error = ldap_delete_s (bl-&gt;priv-&gt;ldap, remove_op-&gt;id);</div><div class='del'>-</div><div class='del'>-		if (ldap_error == LDAP_SUCCESS) {</div><div class='del'>-			/* the card was removed, let's let the views know about it */</div><div class='del'>-			GList *l;</div><div class='del'>-			for (l = bl-&gt;priv-&gt;book_views; l; l = l-&gt;next) {</div><div class='del'>-				CORBA_Environment ev;</div><div class='del'>-				gboolean match;</div><div class='del'>-				PASBackendLDAPBookView *view = l-&gt;data; </div><div class='del'>-					</div><div class='del'>-				CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-				bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-</div><div class='del'>-				match = pas_backend_card_sexp_match_vcard (view-&gt;card_sexp,</div><div class='del'>-									   e_card_simple_get_vcard_assume_utf8 (simple));</div><div class='del'>-				if (match)</div><div class='del'>-					pas_book_view_notify_remove (view-&gt;book_view, remove_op-&gt;id);</div><div class='del'>-				pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-</div><div class='del'>-				bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			ldap_perror (bl-&gt;priv-&gt;ldap, "ldap_delete_s");</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		response = ldap_error_to_response (ldap_error);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='del'>-		response = GNOME_Evolution_Addressbook_BookListener_CardNotFound;</div><div class='del'>-</div><div class='del'>-	pas_book_respond_remove (remove_op-&gt;op.book,</div><div class='del'>-				 response);</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		pas_book_view_notify_complete (op-&gt;view);</div><div class='del'>-</div><div class='del'>-	/* we're synchronous */</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_card_dtor (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPRemoveOp *remove_op = (LDAPRemoveOp*)op;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op-&gt;view)), NULL);</div><div class='del'>-</div><div class='del'>-	g_free (remove_op-&gt;id);</div><div class='del'>-	g_free (remove_op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_remove_card (PASBackend *backend,</div><div class='del'>-				      PASBook    *book,</div><div class='del'>-				      PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	LDAPRemoveOp *remove_op = g_new (LDAPRemoveOp, 1);</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	PASBookView *book_view = NULL;</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;book_views) {</div><div class='del'>-		PASBackendLDAPBookView *v = bl-&gt;priv-&gt;book_views-&gt;data;</div><div class='del'>-		book_view = v-&gt;book_view;</div><div class='del'>-		bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(book_view)), NULL);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ldap_op_init ((LDAPOp*)remove_op, backend, book,</div><div class='del'>-		      book_view,</div><div class='del'>-		      remove_card_handler, remove_card_dtor);</div><div class='del'>-</div><div class='del'>-	remove_op-&gt;id = req-&gt;id;</div><div class='del'>-</div><div class='del'>-	ldap_op_process ((LDAPOp*)remove_op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	LDAPOp op;</div><div class='del'>-	char *vcard;</div><div class='del'>-} LDAPModifyOp;</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-modify_card_handler (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPModifyOp *modify_op = (LDAPModifyOp*)op;</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	ECard *new_ecard;</div><div class='del'>-	const char *id;</div><div class='del'>-	int response;</div><div class='del'>-	int            ldap_error = LDAP_SUCCESS;</div><div class='del'>-	GPtrArray *mod_array;</div><div class='del'>-	LDAPMod **ldap_mods;</div><div class='del'>-	LDAP *ldap;</div><div class='del'>-	ECardSimple *current_card;</div><div class='del'>-</div><div class='del'>-	new_ecard = e_card_new (modify_op-&gt;vcard);</div><div class='del'>-	id = e_card_get_id(new_ecard);</div><div class='del'>-</div><div class='del'>-	ldap = bl-&gt;priv-&gt;ldap;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		pas_book_view_notify_status_message (op-&gt;view, _("Modifying card from LDAP server..."));</div><div class='del'>-</div><div class='del'>-	current_card = search_for_dn (bl, id);</div><div class='del'>-</div><div class='del'>-	if (current_card) {</div><div class='del'>-		ECardSimple *new_card = e_card_simple_new (new_ecard);</div><div class='del'>-		gboolean need_new_dn;</div><div class='del'>-</div><div class='del'>-		/* build our mods */</div><div class='del'>-		mod_array = build_mods_from_ecards (bl, current_card, new_card, &amp;need_new_dn);</div><div class='del'>-		if (mod_array-&gt;len &gt; 0) {</div><div class='del'>-			ldap_mods = (LDAPMod**)mod_array-&gt;pdata;</div><div class='del'>-</div><div class='del'>-			/* actually perform the ldap modify */</div><div class='del'>-			ldap_error = ldap_modify_ext_s (ldap, id, ldap_mods, NULL, NULL);</div><div class='del'>-			if (ldap_error == LDAP_SUCCESS) {</div><div class='del'>-</div><div class='del'>-				/* the card was modified, let's let the views know about it */</div><div class='del'>-				GList *l;</div><div class='del'>-				for (l = bl-&gt;priv-&gt;book_views; l; l = l-&gt;next) {</div><div class='del'>-					CORBA_Environment ev;</div><div class='del'>-					gboolean old_match, new_match;</div><div class='del'>-					PASBackendLDAPBookView *view = l-&gt;data; </div><div class='del'>-					</div><div class='del'>-					CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-					bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-</div><div class='del'>-					old_match = pas_backend_card_sexp_match_vcard (view-&gt;card_sexp,</div><div class='del'>-										       e_card_simple_get_vcard_assume_utf8 (current_card));</div><div class='del'>-					new_match = pas_backend_card_sexp_match_vcard (view-&gt;card_sexp,</div><div class='del'>-										       modify_op-&gt;vcard);</div><div class='del'>-					if (old_match &amp;&amp; new_match)</div><div class='del'>-						pas_book_view_notify_change_1 (view-&gt;book_view, modify_op-&gt;vcard);</div><div class='del'>-					else if (new_match)</div><div class='del'>-						pas_book_view_notify_add_1 (view-&gt;book_view, modify_op-&gt;vcard);</div><div class='del'>-					else /* if (old_match) */</div><div class='del'>-						pas_book_view_notify_remove (view-&gt;book_view, e_card_simple_get_id (new_card));</div><div class='del'>-					pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-</div><div class='del'>-					bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), &amp;ev);</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-				ldap_perror (ldap, "ldap_modify_s");</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			g_print ("modify list empty.  no modification sent\n");</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* and clean up */</div><div class='del'>-		free_mods (mod_array);</div><div class='del'>-		gtk_object_unref (GTK_OBJECT(new_card));</div><div class='del'>-		gtk_object_unref (GTK_OBJECT(current_card));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		g_print ("didn't find original card\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	response = ldap_error_to_response (ldap_error);</div><div class='del'>-	pas_book_respond_modify (modify_op-&gt;op.book,</div><div class='del'>-				 response);</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		pas_book_view_notify_complete (op-&gt;view);</div><div class='del'>-</div><div class='del'>-	/* we're synchronous */</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-modify_card_dtor (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPModifyOp *modify_op = (LDAPModifyOp*)op;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op-&gt;view)), NULL);</div><div class='del'>-</div><div class='del'>-	g_free (modify_op-&gt;vcard);</div><div class='del'>-	g_free (modify_op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_modify_card (PASBackend *backend,</div><div class='del'>-				      PASBook    *book,</div><div class='del'>-				      PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	LDAPModifyOp *modify_op = g_new (LDAPModifyOp, 1);</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	PASBookView *book_view = NULL;</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;book_views) {</div><div class='del'>-		PASBackendLDAPBookView *v = bl-&gt;priv-&gt;book_views-&gt;data;</div><div class='del'>-		book_view = v-&gt;book_view;</div><div class='del'>-		bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(book_view)), NULL);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ldap_op_init ((LDAPOp*)modify_op, backend, book,</div><div class='del'>-		      book_view,</div><div class='del'>-		      modify_card_handler, modify_card_dtor);</div><div class='del'>-</div><div class='del'>-	modify_op-&gt;vcard = req-&gt;vcard;</div><div class='del'>-</div><div class='del'>-	ldap_op_process ((LDAPOp*)modify_op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_get_vcard (PASBackend *backend,</div><div class='del'>-				    PASBook *book,</div><div class='del'>-				    PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl;</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-</div><div class='del'>-	bl = PAS_BACKEND_LDAP (pas_book_get_backend (book));</div><div class='del'>-</div><div class='del'>-	simple = search_for_dn (bl, req-&gt;id);</div><div class='del'>-</div><div class='del'>-	if (simple) {</div><div class='del'>-		pas_book_respond_get_vcard (book,</div><div class='del'>-					    GNOME_Evolution_Addressbook_BookListener_Success,</div><div class='del'>-					    e_card_simple_get_vcard_assume_utf8 (simple));</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		pas_book_respond_get_vcard (book,</div><div class='del'>-					    GNOME_Evolution_Addressbook_BookListener_CardNotFound,</div><div class='del'>-					    "");</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	LDAPOp op;</div><div class='del'>-	PASBook *book;</div><div class='del'>-} LDAPGetCursorOp;</div><div class='del'>-</div><div class='del'>-static long</div><div class='del'>-get_length(PASCardCursor *cursor, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAPCursorPrivate *cursor_data = (PASBackendLDAPCursorPrivate *) data;</div><div class='del'>-</div><div class='del'>-	return cursor_data-&gt;num_elements;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-get_nth(PASCardCursor *cursor, long n, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAPCursorPrivate *cursor_data = (PASBackendLDAPCursorPrivate *) data;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (n &lt; cursor_data-&gt;num_elements, NULL);</div><div class='del'>-</div><div class='del'>-	return (char*)g_list_nth (cursor_data-&gt;elements, n);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-cursor_destroy(GtkObject *object, gpointer data)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	GNOME_Evolution_Addressbook_Book corba_book;</div><div class='del'>-	PASBackendLDAPCursorPrivate *cursor_data = (PASBackendLDAPCursorPrivate *) data;</div><div class='del'>-</div><div class='del'>-	corba_book = bonobo_object_corba_objref(BONOBO_OBJECT(cursor_data-&gt;book));</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_unref(corba_book, &amp;ev);</div><div class='del'>-	</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("cursor_destroy: Exception unreffing "</div><div class='del'>-			  "corba book.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-</div><div class='del'>-	/* free the ldap specific cursor information */</div><div class='del'>-	g_list_foreach (cursor_data-&gt;elements, (GFunc)g_free, NULL);</div><div class='del'>-	g_list_free (cursor_data-&gt;elements);</div><div class='del'>-</div><div class='del'>-	g_free(cursor_data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_build_all_cards_list(PASBackend *backend,</div><div class='del'>-				      PASBackendLDAPCursorPrivate *cursor_data)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	LDAP           *ldap = bl-&gt;priv-&gt;ldap;</div><div class='del'>-	int            ldap_error;</div><div class='del'>-	LDAPMessage    *res, *e;</div><div class='del'>-</div><div class='del'>-	if ((ldap_error = ldap_search_s (ldap,</div><div class='del'>-					 bl-&gt;priv-&gt;ldap_rootdn,</div><div class='del'>-					 bl-&gt;priv-&gt;ldap_scope,</div><div class='del'>-					 "(objectclass=*)",</div><div class='del'>-					 NULL, 0, &amp;res)) == -1) {</div><div class='del'>-		g_warning ("ldap error '%s' in "</div><div class='del'>-			   "pas_backend_ldap_build_all_cards_list\n",</div><div class='del'>-			   ldap_err2string(ldap_error));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	cursor_data-&gt;elements = NULL;</div><div class='del'>-</div><div class='del'>-	cursor_data-&gt;num_elements = ldap_count_entries (ldap, res);</div><div class='del'>-</div><div class='del'>-	e = ldap_first_entry(ldap, res);</div><div class='del'>-</div><div class='del'>-	while (NULL != e) {</div><div class='del'>-</div><div class='del'>-		/* for now just make a list of the dn's */</div><div class='del'>-#if 0</div><div class='del'>-		for ( a = ldap_first_attribute( ldap, e, &amp;ber ); a != NULL;</div><div class='del'>-		      a = ldap_next_attribute( ldap, e, ber ) ) {</div><div class='del'>-		}</div><div class='del'>-#else</div><div class='del'>-		cursor_data-&gt;elements = g_list_prepend(cursor_data-&gt;elements,</div><div class='del'>-						       g_strdup(ldap_get_dn(ldap, e)));</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-		e = ldap_next_entry(ldap, e);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ldap_msgfree(res);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-get_cursor_handler (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPGetCursorOp *cursor_op = (LDAPGetCursorOp*)op;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	int            ldap_error = 0;</div><div class='del'>-	PASCardCursor *cursor;</div><div class='del'>-	GNOME_Evolution_Addressbook_Book corba_book;</div><div class='del'>-	PASBackendLDAPCursorPrivate *cursor_data;</div><div class='del'>-	PASBook *book = cursor_op-&gt;book;</div><div class='del'>-</div><div class='del'>-	cursor_data = g_new(PASBackendLDAPCursorPrivate, 1);</div><div class='del'>-	cursor_data-&gt;backend = backend;</div><div class='del'>-	cursor_data-&gt;book = book;</div><div class='del'>-</div><div class='del'>-	pas_backend_ldap_build_all_cards_list(backend, cursor_data);</div><div class='del'>-</div><div class='del'>-	corba_book = bonobo_object_corba_objref(BONOBO_OBJECT(book));</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_Book_ref(corba_book, &amp;ev);</div><div class='del'>-	</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("pas_backend_file_process_get_cursor: Exception reffing "</div><div class='del'>-			  "corba book.\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-	</div><div class='del'>-	cursor = pas_card_cursor_new(get_length,</div><div class='del'>-				     get_nth,</div><div class='del'>-				     cursor_data);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(cursor), "destroy",</div><div class='del'>-			   GTK_SIGNAL_FUNC(cursor_destroy), cursor_data);</div><div class='del'>-	</div><div class='del'>-	pas_book_respond_get_cursor (book,</div><div class='del'>-				     ldap_error_to_response (ldap_error),</div><div class='del'>-				     cursor);</div><div class='del'>-</div><div class='del'>-	/* we're synchronous */</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_cursor_dtor (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	g_free (op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_get_cursor (PASBackend *backend,</div><div class='del'>-				     PASBook    *book,</div><div class='del'>-				     PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	LDAPGetCursorOp *op = g_new (LDAPGetCursorOp, 1);</div><div class='del'>-</div><div class='del'>-	ldap_op_init ((LDAPOp*)op, backend, book, NULL, get_cursor_handler, get_cursor_dtor);</div><div class='del'>-</div><div class='del'>-	ldap_op_process ((LDAPOp*)op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* List property functions */</div><div class='del'>-static void</div><div class='del'>-email_populate(ECardSimple *card, char **values)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = 0; values[i] &amp;&amp; i &lt; 3; i ++) {</div><div class='del'>-		e_card_simple_set_email (card, i, values[i]);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct berval**</div><div class='del'>-email_ber(ECardSimple *card)</div><div class='del'>-{</div><div class='del'>-	struct berval** result;</div><div class='del'>-	const char *emails[3];</div><div class='del'>-	int i, j, num;</div><div class='del'>-</div><div class='del'>-	num = 0;</div><div class='del'>-	for (i = 0; i &lt; 3; i ++) {</div><div class='del'>-		emails[i] = e_card_simple_get_email (card, E_CARD_SIMPLE_EMAIL_ID_EMAIL + i);</div><div class='del'>-		if (emails[i])</div><div class='del'>-			num++;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (num == 0)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	result = g_new (struct berval*, num + 1);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; num; i ++)</div><div class='del'>-		result[i] = g_new (struct berval, 1);</div><div class='del'>-</div><div class='del'>-	j = 0;</div><div class='del'>-	for (i = 0; i &lt; 3; i ++) {</div><div class='del'>-		if (emails[i]) {</div><div class='del'>-			result[j]-&gt;bv_val = g_strdup (emails[i]);</div><div class='del'>-			result[j++]-&gt;bv_len = strlen (emails[i]);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	result[num] = NULL;</div><div class='del'>-</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-email_compare (ECardSimple *ecard1, ECardSimple *ecard2)</div><div class='del'>-{</div><div class='del'>-	const char *email1, *email2;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; 3; i ++) {</div><div class='del'>-		gboolean equal;</div><div class='del'>-		email1 = e_card_simple_get_email (ecard1, E_CARD_SIMPLE_EMAIL_ID_EMAIL + i);</div><div class='del'>-		email2 = e_card_simple_get_email (ecard2, E_CARD_SIMPLE_EMAIL_ID_EMAIL + i);</div><div class='del'>-</div><div class='del'>-		if (email1 &amp;&amp; email2)</div><div class='del'>-			equal = !strcmp (email1, email2);</div><div class='del'>-		else</div><div class='del'>-			equal = (!!email1 == !!email2);</div><div class='del'>-</div><div class='del'>-		if (!equal)</div><div class='del'>-			return equal;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-homephone_populate(ECardSimple *card, char **values)</div><div class='del'>-{</div><div class='del'>-	if (values[0])</div><div class='del'>-		e_card_simple_set (card, E_CARD_SIMPLE_FIELD_PHONE_HOME, values[0]);</div><div class='del'>-	if (values[1])</div><div class='del'>-		e_card_simple_set (card, E_CARD_SIMPLE_FIELD_PHONE_HOME_2, values[1]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct berval**</div><div class='del'>-homephone_ber(ECardSimple *card)</div><div class='del'>-{</div><div class='del'>-	struct berval** result;</div><div class='del'>-	const char *homephones[3];</div><div class='del'>-	int i, j, num;</div><div class='del'>-</div><div class='del'>-	num = 0;</div><div class='del'>-	if ((homephones[0] = e_card_simple_get (card, E_CARD_SIMPLE_FIELD_PHONE_HOME)))</div><div class='del'>-		num++;</div><div class='del'>-	if ((homephones[1] = e_card_simple_get (card, E_CARD_SIMPLE_FIELD_PHONE_HOME_2)))</div><div class='del'>-		num++;</div><div class='del'>-</div><div class='del'>-	if (num == 0)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	result = g_new (struct berval*, num + 1);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; num; i ++)</div><div class='del'>-		result[i] = g_new (struct berval, 1);</div><div class='del'>-</div><div class='del'>-	j = 0;</div><div class='del'>-	for (i = 0; i &lt; 2; i ++) {</div><div class='del'>-		if (homephones[i]) {</div><div class='del'>-			result[j]-&gt;bv_val = g_strdup (homephones[i]);</div><div class='del'>-			result[j++]-&gt;bv_len = strlen (homephones[i]);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	result[num] = NULL;</div><div class='del'>-</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-homephone_compare (ECardSimple *ecard1, ECardSimple *ecard2)</div><div class='del'>-{</div><div class='del'>-	int phone_ids[2] = { E_CARD_SIMPLE_FIELD_PHONE_HOME, E_CARD_SIMPLE_FIELD_PHONE_HOME_2 };</div><div class='del'>-	const char *phone1, *phone2;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; 2; i ++) {</div><div class='del'>-		gboolean equal;</div><div class='del'>-		phone1 = e_card_simple_get (ecard1, phone_ids[i]);</div><div class='del'>-		phone2 = e_card_simple_get (ecard2, phone_ids[i]);</div><div class='del'>-</div><div class='del'>-		if (phone1 &amp;&amp; phone2)</div><div class='del'>-			equal = !strcmp (phone1, phone2);</div><div class='del'>-		else</div><div class='del'>-			equal = (!!phone1 == !!phone2);</div><div class='del'>-</div><div class='del'>-		if (!equal)</div><div class='del'>-			return equal;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-business_populate(ECardSimple *card, char **values)</div><div class='del'>-{</div><div class='del'>-	if (values[0])</div><div class='del'>-		e_card_simple_set (card, E_CARD_SIMPLE_FIELD_PHONE_BUSINESS, values[0]);</div><div class='del'>-	if (values[1])</div><div class='del'>-		e_card_simple_set (card, E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_2, values[1]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct berval**</div><div class='del'>-business_ber(ECardSimple *card)</div><div class='del'>-{</div><div class='del'>-	struct berval** result;</div><div class='del'>-	const char *business_phones[3];</div><div class='del'>-	int i, j, num;</div><div class='del'>-</div><div class='del'>-	num = 0;</div><div class='del'>-	if ((business_phones[0] = e_card_simple_get (card, E_CARD_SIMPLE_FIELD_PHONE_BUSINESS)))</div><div class='del'>-		num++;</div><div class='del'>-	if ((business_phones[1] = e_card_simple_get (card, E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_2)))</div><div class='del'>-		num++;</div><div class='del'>-</div><div class='del'>-	if (num == 0)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	result = g_new (struct berval*, num + 1);</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; num; i ++)</div><div class='del'>-		result[i] = g_new (struct berval, 1);</div><div class='del'>-</div><div class='del'>-	j = 0;</div><div class='del'>-	for (i = 0; i &lt; 2; i ++) {</div><div class='del'>-		if (business_phones[i]) {</div><div class='del'>-			result[j]-&gt;bv_val = g_strdup (business_phones[i]);</div><div class='del'>-			result[j++]-&gt;bv_len = strlen (business_phones[i]);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	result[num] = NULL;</div><div class='del'>-</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-business_compare (ECardSimple *ecard1, ECardSimple *ecard2)</div><div class='del'>-{</div><div class='del'>-	int phone_ids[2] = { E_CARD_SIMPLE_FIELD_PHONE_BUSINESS, E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_2 };</div><div class='del'>-	const char *phone1, *phone2;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; 2; i ++) {</div><div class='del'>-		gboolean equal;</div><div class='del'>-		phone1 = e_card_simple_get (ecard1, phone_ids[i]);</div><div class='del'>-		phone2 = e_card_simple_get (ecard2, phone_ids[i]);</div><div class='del'>-</div><div class='del'>-		if (phone1 &amp;&amp; phone2)</div><div class='del'>-			equal = !strcmp (phone1, phone2);</div><div class='del'>-		else</div><div class='del'>-			equal = (!!phone1 == !!phone2);</div><div class='del'>-</div><div class='del'>-		if (!equal)</div><div class='del'>-			return equal;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define IS_RFC2254_CHAR(c) ((c) == '*' || (c) =='\\' || (c) == '(' || (c) == ')' || (c) == '\0')</div><div class='del'>-static char hex[] = "0123456789abcdef";</div><div class='del'>-static char *</div><div class='del'>-rfc2254_escape(char *str)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	int len = strlen(str);</div><div class='del'>-	int newlen = 0;</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; len; i ++) {</div><div class='del'>-		if (IS_RFC2254_CHAR(str[i]))</div><div class='del'>-			newlen += 3;</div><div class='del'>-		else</div><div class='del'>-			newlen ++;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (len == newlen) {</div><div class='del'>-		return g_strdup (str);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		char *newstr = g_malloc0 (newlen + 1);</div><div class='del'>-		int j = 0;</div><div class='del'>-		for (i = 0; i &lt; len; i ++) {</div><div class='del'>-			if (IS_RFC2254_CHAR(str[i])) {</div><div class='del'>-				newstr[j++] = '\\';</div><div class='del'>-				newstr[j++] = hex[(str[i]&amp;0xf0) &gt;&gt; 4];</div><div class='del'>-				newstr[j++] = hex[str[i]&amp;0x0f];</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-				newstr[j++] = str[i];</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		return newstr;</div><div class='del'>-	}</div><div class='del'>-		</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_and(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	GList **list = data;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-	char ** strings;</div><div class='del'>-</div><div class='del'>-	if (argc &gt; 0) {</div><div class='del'>-		int i;</div><div class='del'>-</div><div class='del'>-		strings = g_new(char*, argc+3);</div><div class='del'>-		strings[0] = g_strdup ("(&amp;");</div><div class='del'>-		strings[argc+3 - 2] = g_strdup (")");</div><div class='del'>-		strings[argc+3 - 1] = NULL;</div><div class='del'>-		</div><div class='del'>-		for (i = 0; i &lt; argc; i ++) {</div><div class='del'>-			GList *list_head = *list;</div><div class='del'>-			strings[argc - i] = (*list)-&gt;data;</div><div class='del'>-			*list = g_list_remove_link(*list, *list);</div><div class='del'>-			g_list_free_1(list_head);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		*list = g_list_prepend(*list, g_strjoinv(" ", strings));</div><div class='del'>-</div><div class='del'>-		for (i = 0 ; i &lt; argc + 2; i ++)</div><div class='del'>-			g_free (strings[i]);</div><div class='del'>-</div><div class='del'>-		g_free (strings);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = FALSE;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_or(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	GList **list = data;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-	char ** strings;</div><div class='del'>-</div><div class='del'>-	if (argc &gt; 0) {</div><div class='del'>-		int i;</div><div class='del'>-</div><div class='del'>-		strings = g_new(char*, argc+3);</div><div class='del'>-		strings[0] = g_strdup ("(|");</div><div class='del'>-		strings[argc+3 - 2] = g_strdup (")");</div><div class='del'>-		strings[argc+3 - 1] = NULL;</div><div class='del'>-		for (i = 0; i &lt; argc; i ++) {</div><div class='del'>-			GList *list_head = *list;</div><div class='del'>-			strings[argc - i] = (*list)-&gt;data;</div><div class='del'>-			*list = g_list_remove_link(*list, *list);</div><div class='del'>-			g_list_free_1(list_head);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		*list = g_list_prepend(*list, g_strjoinv(" ", strings));</div><div class='del'>-</div><div class='del'>-		for (i = 0 ; i &lt; argc + 2; i ++)</div><div class='del'>-			g_free (strings[i]);</div><div class='del'>-</div><div class='del'>-		g_free (strings);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = FALSE;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_not(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	GList **list = data;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-</div><div class='del'>-	/* just replace the head of the list with the NOT of it. */</div><div class='del'>-	if (argc &gt; 0) {</div><div class='del'>-		char *term = (*list)-&gt;data;</div><div class='del'>-		(*list)-&gt;data = g_strdup_printf("(!%s)", term);</div><div class='del'>-		g_free (term);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = FALSE;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_contains(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	GList **list = data;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-</div><div class='del'>-	if (argc == 2</div><div class='del'>-	    &amp;&amp; argv[0]-&gt;type == ESEXP_RES_STRING</div><div class='del'>-	    &amp;&amp; argv[1]-&gt;type == ESEXP_RES_STRING) {</div><div class='del'>-		char *propname = argv[0]-&gt;value.string;</div><div class='del'>-		char *str = rfc2254_escape(argv[1]-&gt;value.string);</div><div class='del'>-		gboolean one_star = FALSE;</div><div class='del'>-</div><div class='del'>-		if (strlen(str) == 0)</div><div class='del'>-			one_star = TRUE;</div><div class='del'>-</div><div class='del'>-		if (!strcmp (propname, "x-evolution-any-field")) {</div><div class='del'>-			int i;</div><div class='del'>-			int query_length;</div><div class='del'>-			char *big_query;</div><div class='del'>-			char *match_str;</div><div class='del'>-</div><div class='del'>-			match_str = g_strdup_printf("=*%s%s)",</div><div class='del'>-						    str, one_star ? "" : "*");</div><div class='del'>-</div><div class='del'>-			query_length = 3; /* strlen ("(|") + strlen (")") */</div><div class='del'>-</div><div class='del'>-			for (i = 0; i &lt; num_prop_infos; i ++) {</div><div class='del'>-				query_length += 1 /* strlen ("(") */ + strlen(prop_info[i].ldap_attr) + strlen (match_str);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			big_query = g_malloc0(query_length + 1);</div><div class='del'>-			strcat (big_query, "(|");</div><div class='del'>-			for (i = 0; i &lt; num_prop_infos; i ++) {</div><div class='del'>-				strcat (big_query, "(");</div><div class='del'>-				strcat (big_query, prop_info[i].ldap_attr);</div><div class='del'>-				strcat (big_query, match_str);</div><div class='del'>-			}</div><div class='del'>-			strcat (big_query, ")");</div><div class='del'>-</div><div class='del'>-			*list = g_list_prepend(*list, big_query);</div><div class='del'>-</div><div class='del'>-			g_free (match_str);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			char *ldap_attr = query_prop_to_ldap(propname);</div><div class='del'>-</div><div class='del'>-			if (ldap_attr)</div><div class='del'>-				*list = g_list_prepend(*list,</div><div class='del'>-						       g_strdup_printf("(%s=*%s%s)",</div><div class='del'>-								       ldap_attr,</div><div class='del'>-								       str,</div><div class='del'>-								       one_star ? "" : "*"));</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		g_free (str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = FALSE;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_is(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	GList **list = data;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-</div><div class='del'>-	if (argc == 2</div><div class='del'>-	    &amp;&amp; argv[0]-&gt;type == ESEXP_RES_STRING</div><div class='del'>-	    &amp;&amp; argv[1]-&gt;type == ESEXP_RES_STRING) {</div><div class='del'>-		char *propname = argv[0]-&gt;value.string;</div><div class='del'>-		char *str = rfc2254_escape(argv[1]-&gt;value.string);</div><div class='del'>-		char *ldap_attr = query_prop_to_ldap(propname);</div><div class='del'>-</div><div class='del'>-		if (ldap_attr)</div><div class='del'>-			*list = g_list_prepend(*list,</div><div class='del'>-					       g_strdup_printf("(%s=%s)",</div><div class='del'>-							       ldap_attr, str));</div><div class='del'>-		else {</div><div class='del'>-			g_warning ("unknown query property\n");</div><div class='del'>-			/* we want something that'll always be false */</div><div class='del'>-			*list = g_list_prepend(*list,</div><div class='del'>-					       g_strdup("objectClass=MyBarnIsBiggerThanYourBarn"));</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		g_free (str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = FALSE;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_beginswith(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	GList **list = data;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-</div><div class='del'>-	if (argc == 2</div><div class='del'>-	    &amp;&amp; argv[0]-&gt;type == ESEXP_RES_STRING</div><div class='del'>-	    &amp;&amp; argv[1]-&gt;type == ESEXP_RES_STRING) {</div><div class='del'>-		char *propname = argv[0]-&gt;value.string;</div><div class='del'>-		char *str = rfc2254_escape(argv[1]-&gt;value.string);</div><div class='del'>-		char *ldap_attr = query_prop_to_ldap(propname);</div><div class='del'>-		gboolean one_star = FALSE;</div><div class='del'>-</div><div class='del'>-		if (strlen(str) == 0)</div><div class='del'>-			one_star = TRUE;</div><div class='del'>-</div><div class='del'>-		if (ldap_attr)</div><div class='del'>-			*list = g_list_prepend(*list,</div><div class='del'>-					       g_strdup_printf("(%s=%s*)",</div><div class='del'>-							       ldap_attr,</div><div class='del'>-							       str));</div><div class='del'>-		g_free (str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = FALSE;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESExpResult *</div><div class='del'>-func_endswith(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data)</div><div class='del'>-{</div><div class='del'>-	GList **list = data;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-</div><div class='del'>-	if (argc == 2</div><div class='del'>-	    &amp;&amp; argv[0]-&gt;type == ESEXP_RES_STRING</div><div class='del'>-	    &amp;&amp; argv[1]-&gt;type == ESEXP_RES_STRING) {</div><div class='del'>-		char *propname = argv[0]-&gt;value.string;</div><div class='del'>-		char *str = rfc2254_escape(argv[1]-&gt;value.string);</div><div class='del'>-		char *ldap_attr = query_prop_to_ldap(propname);</div><div class='del'>-		gboolean one_star = FALSE;</div><div class='del'>-</div><div class='del'>-		if (strlen(str) == 0)</div><div class='del'>-			one_star = TRUE;</div><div class='del'>-</div><div class='del'>-		if (ldap_attr)</div><div class='del'>-			*list = g_list_prepend(*list,</div><div class='del'>-					       g_strdup_printf("(%s=*%s)",</div><div class='del'>-							       ldap_attr,</div><div class='del'>-							       str));</div><div class='del'>-		g_free (str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	r = e_sexp_result_new(f, ESEXP_RES_BOOL);</div><div class='del'>-	r-&gt;value.bool = FALSE;</div><div class='del'>-</div><div class='del'>-	return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* 'builtin' functions */</div><div class='del'>-static struct {</div><div class='del'>-	char *name;</div><div class='del'>-	ESExpFunc *func;</div><div class='del'>-	int type;		/* set to 1 if a function can perform shortcut evaluation, or</div><div class='del'>-				   doesn't execute everything, 0 otherwise */</div><div class='del'>-} symbols[] = {</div><div class='del'>-	{ "and", func_and, 0 },</div><div class='del'>-	{ "or", func_or, 0 },</div><div class='del'>-	{ "not", func_not, 0 },</div><div class='del'>-	{ "contains", func_contains, 0 },</div><div class='del'>-	{ "is", func_is, 0 },</div><div class='del'>-	{ "beginswith", func_beginswith, 0 },</div><div class='del'>-	{ "endswith", func_endswith, 0 },</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-pas_backend_ldap_build_query (gchar *query)</div><div class='del'>-{</div><div class='del'>-	ESExp *sexp;</div><div class='del'>-	ESExpResult *r;</div><div class='del'>-	gchar *retval;</div><div class='del'>-	GList *list = NULL;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	sexp = e_sexp_new();</div><div class='del'>-</div><div class='del'>-	for(i=0;i&lt;sizeof(symbols)/sizeof(symbols[0]);i++) {</div><div class='del'>-		if (symbols[i].type == 1) {</div><div class='del'>-			e_sexp_add_ifunction(sexp, 0, symbols[i].name,</div><div class='del'>-					     (ESExpIFunc *)symbols[i].func, &amp;list);</div><div class='del'>-		} else {</div><div class='del'>-			e_sexp_add_function(sexp, 0, symbols[i].name,</div><div class='del'>-					    symbols[i].func, &amp;list);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_sexp_input_text(sexp, query, strlen(query));</div><div class='del'>-	e_sexp_parse(sexp);</div><div class='del'>-</div><div class='del'>-	r = e_sexp_eval(sexp);</div><div class='del'>-</div><div class='del'>-	e_sexp_result_free(sexp, r);</div><div class='del'>-	e_sexp_unref (sexp);</div><div class='del'>-</div><div class='del'>-	if (list) {</div><div class='del'>-		if (list-&gt;next) {</div><div class='del'>-			g_warning ("conversion to ldap query string failed");</div><div class='del'>-			retval = NULL;</div><div class='del'>-			g_list_foreach (list, (GFunc)g_free, NULL);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			retval = list-&gt;data;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		g_warning ("conversion to ldap query string failed");</div><div class='del'>-		retval = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_list_free (list);</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-query_prop_to_ldap(gchar *query_prop)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; num_prop_infos; i ++)</div><div class='del'>-		if (!strcmp (query_prop, prop_info[i].query_prop))</div><div class='del'>-			return prop_info[i].ldap_attr;</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	LDAPOp op;</div><div class='del'>-	char *ldap_query;</div><div class='del'>-	PASBackendLDAP *bl;</div><div class='del'>-	PASBackendLDAPBookView *view;</div><div class='del'>-} LDAPSearchOp;</div><div class='del'>-</div><div class='del'>-static ECardSimple *</div><div class='del'>-build_card_from_entry (LDAP *ldap, LDAPMessage *e)</div><div class='del'>-{</div><div class='del'>-	ECard *ecard = E_CARD(gtk_type_new(e_card_get_type()));</div><div class='del'>-	ECardSimple *card = e_card_simple_new (ecard);</div><div class='del'>-	char *dn = ldap_get_dn(ldap, e);</div><div class='del'>-	char *attr;</div><div class='del'>-	BerElement *ber = NULL;</div><div class='del'>-</div><div class='del'>-	g_print ("build_card_from_entry, dn = %s\n", dn);</div><div class='del'>-	e_card_simple_set_id (card, dn);</div><div class='del'>-</div><div class='del'>-	for (attr = ldap_first_attribute (ldap, e, &amp;ber); attr;</div><div class='del'>-	     attr = ldap_next_attribute (ldap, e, ber)) {</div><div class='del'>-		int i;</div><div class='del'>-		struct prop_info *info = NULL;</div><div class='del'>-</div><div class='del'>-		for (i = 0; i &lt; num_prop_infos; i ++)</div><div class='del'>-			if (!g_strcasecmp (attr, prop_info[i].ldap_attr))</div><div class='del'>-				info = &amp;prop_info[i];</div><div class='del'>-</div><div class='del'>-		if (info) {</div><div class='del'>-			char **values;</div><div class='del'>-			values = ldap_get_values (ldap, e, attr);</div><div class='del'>-</div><div class='del'>-			if (values) {</div><div class='del'>-				if (info-&gt;prop_type &amp; PROP_TYPE_STRING) {</div><div class='del'>-				/* if it's a normal property just set the string */</div><div class='del'>-					e_card_simple_set (card, info-&gt;field_id, values[0]);</div><div class='del'>-</div><div class='del'>-				}</div><div class='del'>-				else if (info-&gt;prop_type &amp; PROP_TYPE_LIST) {</div><div class='del'>-				/* if it's a list call the ecard-populate function,</div><div class='del'>-				   which calls gtk_object_set to set the property */</div><div class='del'>-					info-&gt;populate_ecard_func(card,</div><div class='del'>-								  values);</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				ldap_value_free (values);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-#ifndef OPENLDAP2</div><div class='del'>-	/* if ldap-&gt;ld_errno == LDAP_DECODING_ERROR there was an</div><div class='del'>-	   error decoding an attribute, and we shouldn't free ber,</div><div class='del'>-	   since the ldap library already did it. */</div><div class='del'>-	if (ldap-&gt;ld_errno != LDAP_DECODING_ERROR &amp;&amp; ber)</div><div class='del'>-		ber_free (ber, 0);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	e_card_simple_sync_card (card);</div><div class='del'>-</div><div class='del'>-	return card;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-poll_ldap (LDAPSearchOp *op)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAPBookView *view = op-&gt;view;</div><div class='del'>-	PASBackendLDAP *bl = op-&gt;bl;</div><div class='del'>-	LDAP           *ldap = bl-&gt;priv-&gt;ldap;</div><div class='del'>-	int            rc;</div><div class='del'>-	LDAPMessage    *res, *e;</div><div class='del'>-	GList   *cards = NULL;</div><div class='del'>-	static int received = 0;</div><div class='del'>-</div><div class='del'>-	pas_book_view_notify_status_message (view-&gt;book_view, _("Receiving LDAP search results..."));</div><div class='del'>-</div><div class='del'>-	rc = ldap_result (ldap, view-&gt;search_msgid, 0, NULL, &amp;res);</div><div class='del'>-	</div><div class='del'>-	if (rc == -1 &amp;&amp; received == 0) {</div><div class='del'>-		pas_book_view_notify_status_message (view-&gt;book_view, _("Restarting search."));</div><div class='del'>-		/* connection went down and we never got any. */</div><div class='del'>-		bl-&gt;priv-&gt;connected = FALSE;</div><div class='del'>-</div><div class='del'>-		/* this will reopen the connection */</div><div class='del'>-		ldap_op_restart ((LDAPOp*)op);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (rc != LDAP_RES_SEARCH_ENTRY) {</div><div class='del'>-		view-&gt;search_idle = 0;</div><div class='del'>-		pas_book_view_notify_complete (view-&gt;book_view);</div><div class='del'>-		ldap_op_finished ((LDAPOp*)op);</div><div class='del'>-		received = 0;</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	received = 1;</div><div class='del'>-		</div><div class='del'>-	e = ldap_first_entry(ldap, res);</div><div class='del'>-</div><div class='del'>-	while (NULL != e) {</div><div class='del'>-		ECardSimple *card = build_card_from_entry (ldap, e);</div><div class='del'>-</div><div class='del'>-		cards = g_list_append (cards, e_card_simple_get_vcard_assume_utf8 (card));</div><div class='del'>-</div><div class='del'>-		gtk_object_unref (GTK_OBJECT(card));</div><div class='del'>-</div><div class='del'>-		e = ldap_next_entry(ldap, e);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (cards) {</div><div class='del'>-		pas_book_view_notify_add (view-&gt;book_view, cards);</div><div class='del'>-			</div><div class='del'>-		g_list_foreach (cards, (GFunc)g_free, NULL);</div><div class='del'>-		g_list_free (cards);</div><div class='del'>-		cards = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ldap_msgfree(res);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-ldap_search_handler (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPSearchOp *search_op = (LDAPSearchOp*) op;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		pas_book_view_notify_status_message (op-&gt;view, _("Searching..."));</div><div class='del'>-</div><div class='del'>-	/* it might not be NULL if we've been restarted */</div><div class='del'>-	if (search_op-&gt;ldap_query == NULL)</div><div class='del'>-		search_op-&gt;ldap_query = pas_backend_ldap_build_query(search_op-&gt;view-&gt;search);</div><div class='del'>-</div><div class='del'>-	if (search_op-&gt;ldap_query != NULL) {</div><div class='del'>-		PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-		PASBackendLDAPBookView *view = search_op-&gt;view;</div><div class='del'>-		LDAP *ldap = bl-&gt;priv-&gt;ldap;</div><div class='del'>-		int ldap_err;</div><div class='del'>-</div><div class='del'>-		ldap_err = ldap_search_ext (ldap, bl-&gt;priv-&gt;ldap_rootdn,</div><div class='del'>-					    bl-&gt;priv-&gt;ldap_scope,</div><div class='del'>-					    search_op-&gt;ldap_query,</div><div class='del'>-					    NULL, 0,</div><div class='del'>-					    NULL, /* XXX */</div><div class='del'>-					    NULL, /* XXX */</div><div class='del'>-					    NULL,</div><div class='del'>-					    LDAP_MAX_SEARCH_RESPONSES, &amp;view-&gt;search_msgid);</div><div class='del'>-</div><div class='del'>-		if (ldap_err != LDAP_SUCCESS) {</div><div class='del'>-			pas_book_view_notify_status_message (view-&gt;book_view, ldap_err2string(ldap_err));</div><div class='del'>-			return TRUE; /* act synchronous in this case */</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (view-&gt;search_msgid == -1) {</div><div class='del'>-			pas_book_view_notify_status_message (view-&gt;book_view, ldap_err2string(ldap_err));</div><div class='del'>-			return TRUE; /* act synchronous in this case */</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			view-&gt;search_idle = g_idle_add((GSourceFunc)poll_ldap, search_op);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* we're async */</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		/* error doing the conversion to an ldap query, let's</div><div class='del'>-                   end this now by acting like we're synchronous. */</div><div class='del'>-		g_warning ("LDAP problem converting search query %s\n", search_op-&gt;view-&gt;search);</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ldap_search_dtor (PASBackend *backend, LDAPOp *op)</div><div class='del'>-{</div><div class='del'>-	LDAPSearchOp *search_op = (LDAPSearchOp*) op;</div><div class='del'>-</div><div class='del'>-	if (op-&gt;view)</div><div class='del'>-		bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op-&gt;view)), NULL);</div><div class='del'>-</div><div class='del'>-	g_free (search_op-&gt;ldap_query);</div><div class='del'>-	g_free (search_op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_search (PASBackendLDAP  	*bl,</div><div class='del'>-			 PASBook         	*book,</div><div class='del'>-			 PASBackendLDAPBookView *view)</div><div class='del'>-{</div><div class='del'>-	LDAPSearchOp *op = g_new (LDAPSearchOp, 1);</div><div class='del'>-</div><div class='del'>-	bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view-&gt;book_view)), NULL);</div><div class='del'>-	ldap_op_init ((LDAPOp*)op, PAS_BACKEND(bl), book, view-&gt;book_view, ldap_search_handler, ldap_search_dtor);</div><div class='del'>-</div><div class='del'>-	op-&gt;ldap_query = NULL;</div><div class='del'>-	op-&gt;view = view;</div><div class='del'>-	op-&gt;bl = bl;</div><div class='del'>-</div><div class='del'>-	/* keep track of the search op so we can delete it from the</div><div class='del'>-           list if the view is destroyed */</div><div class='del'>-	view-&gt;search_op = (LDAPOp*)op;</div><div class='del'>-</div><div class='del'>-	ldap_op_process ((LDAPOp*)op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_get_book_view (PASBackend *backend,</div><div class='del'>-					PASBook    *book,</div><div class='del'>-					PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	PASBookView       *book_view;</div><div class='del'>-	PASBackendLDAPBookView *view;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (req-&gt;listener != NULL);</div><div class='del'>-</div><div class='del'>-	book_view = pas_book_view_new (req-&gt;listener);</div><div class='del'>-</div><div class='del'>-	bonobo_object_ref(BONOBO_OBJECT(book));</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(book_view), "destroy",</div><div class='del'>-			   GTK_SIGNAL_FUNC(view_destroy), book);</div><div class='del'>-</div><div class='del'>-	view = g_new0(PASBackendLDAPBookView, 1);</div><div class='del'>-	view-&gt;book_view = book_view;</div><div class='del'>-	view-&gt;search = g_strdup(req-&gt;search);</div><div class='del'>-	view-&gt;card_sexp = pas_backend_card_sexp_new (view-&gt;search);</div><div class='del'>-	view-&gt;blpriv = bl-&gt;priv;</div><div class='del'>-</div><div class='del'>-	bl-&gt;priv-&gt;book_views = g_list_prepend(bl-&gt;priv-&gt;book_views, view);</div><div class='del'>-</div><div class='del'>-	pas_book_respond_get_book_view (book,</div><div class='del'>-		(book_view != NULL</div><div class='del'>-		 ? GNOME_Evolution_Addressbook_BookListener_Success </div><div class='del'>-		 : GNOME_Evolution_Addressbook_BookListener_CardNotFound /* XXX */),</div><div class='del'>-		book_view);</div><div class='del'>-</div><div class='del'>-	pas_backend_ldap_search (bl, book, view);</div><div class='del'>-</div><div class='del'>-	g_free (req-&gt;search);</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	bonobo_object_unref (BONOBO_OBJECT (book_view));</div><div class='del'>-	bonobo_object_release_unref(req-&gt;listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("pas_backend_file_process_get_book_view: Exception reffing "</div><div class='del'>-			  "corba book.\n");</div><div class='del'>-	}</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_check_connection (PASBackend *backend,</div><div class='del'>-					   PASBook    *book,</div><div class='del'>-					   PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-</div><div class='del'>-	pas_book_report_connection (book, bl-&gt;priv-&gt;connected);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_authenticate_user (PASBackend *backend,</div><div class='del'>-					    PASBook    *book,</div><div class='del'>-					    PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	int ldap_error;</div><div class='del'>-	char *query;</div><div class='del'>-	LDAPMessage    *res, *e;</div><div class='del'>-</div><div class='del'>-	query = g_strdup_printf ("(mail=%s)", req-&gt;user);</div><div class='del'>-</div><div class='del'>-	if (ldap_search_s (bl-&gt;priv-&gt;ldap,</div><div class='del'>-			   bl-&gt;priv-&gt;ldap_rootdn,</div><div class='del'>-			   bl-&gt;priv-&gt;ldap_scope,</div><div class='del'>-			   query,</div><div class='del'>-			   NULL, 0, &amp;res) != -1) {</div><div class='del'>-		char *dn;</div><div class='del'>-</div><div class='del'>-		e = ldap_first_entry (bl-&gt;priv-&gt;ldap, res);</div><div class='del'>-		dn = ldap_get_dn (bl-&gt;priv-&gt;ldap, e);</div><div class='del'>-</div><div class='del'>-		printf ("authenticating as %s\n", dn);</div><div class='del'>-</div><div class='del'>-		ldap_error = ldap_simple_bind_s(bl-&gt;priv-&gt;ldap,</div><div class='del'>-						dn,</div><div class='del'>-						req-&gt;passwd);</div><div class='del'>-</div><div class='del'>-		pas_book_respond_authenticate_user (book,</div><div class='del'>-						    ldap_error_to_response (ldap_error));</div><div class='del'>-</div><div class='del'>-		bl-&gt;priv-&gt;writable = (ldap_error == LDAP_SUCCESS);</div><div class='del'>-</div><div class='del'>-		if (!bl-&gt;priv-&gt;evolutionPersonChecked)</div><div class='del'>-			check_schema_support (bl);</div><div class='del'>-</div><div class='del'>-		ldap_msgfree (res);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		pas_book_respond_authenticate_user (book, GNOME_Evolution_Addressbook_BookListener_PermissionDenied);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	pas_book_report_writable (book, bl-&gt;priv-&gt;writable);</div><div class='del'>-</div><div class='del'>-	g_free (query);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_get_supported_fields (PASBackend *backend,</div><div class='del'>-					       PASBook    *book,</div><div class='del'>-					       PASRequest *req)</div><div class='del'>-</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-</div><div class='del'>-	pas_book_respond_get_supported_fields (book,</div><div class='del'>-					       GNOME_Evolution_Addressbook_BookListener_Success,</div><div class='del'>-					       bl-&gt;priv-&gt;supported_fields);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_process_client_requests (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	PASBackend *backend;</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	backend = pas_book_get_backend (book);</div><div class='del'>-</div><div class='del'>-	req = pas_book_pop_request (book);</div><div class='del'>-	if (req == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	switch (req-&gt;op) {</div><div class='del'>-	case CreateCard:</div><div class='del'>-		pas_backend_ldap_process_create_card (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case RemoveCard:</div><div class='del'>-		pas_backend_ldap_process_remove_card (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ModifyCard:</div><div class='del'>-		pas_backend_ldap_process_modify_card (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case CheckConnection:</div><div class='del'>-		pas_backend_ldap_process_check_connection (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetVCard:</div><div class='del'>-		pas_backend_ldap_process_get_vcard (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetCursor:</div><div class='del'>-		pas_backend_ldap_process_get_cursor (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetBookView:</div><div class='del'>-		pas_backend_ldap_process_get_book_view (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetChanges:</div><div class='del'>-		/* FIXME: Code this. */</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case AuthenticateUser:</div><div class='del'>-		pas_backend_ldap_process_authenticate_user (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case GetSupportedFields:</div><div class='del'>-		pas_backend_ldap_process_get_supported_fields (backend, book, req);</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_book_destroy_cb (PASBook *book, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *backend;</div><div class='del'>-</div><div class='del'>-	backend = PAS_BACKEND_LDAP (data);</div><div class='del'>-</div><div class='del'>-	pas_backend_remove_client (PAS_BACKEND (backend), book);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_ldap_load_uri (PASBackend             *backend,</div><div class='del'>-			   const char             *uri)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	LDAPURLDesc    *lud;</div><div class='del'>-	int ldap_error;</div><div class='del'>-</div><div class='del'>-	g_assert (bl-&gt;priv-&gt;connected == FALSE);</div><div class='del'>-</div><div class='del'>-	ldap_error = ldap_url_parse ((char*)uri, &amp;lud);</div><div class='del'>-	if (ldap_error == LDAP_SUCCESS) {</div><div class='del'>-		g_free(bl-&gt;priv-&gt;uri);</div><div class='del'>-		bl-&gt;priv-&gt;uri = g_strdup (uri);</div><div class='del'>-		bl-&gt;priv-&gt;ldap_host = g_strdup(lud-&gt;lud_host);</div><div class='del'>-		bl-&gt;priv-&gt;ldap_port = lud-&gt;lud_port;</div><div class='del'>-		/* if a port wasn't specified, default to LDAP_PORT */</div><div class='del'>-		if (bl-&gt;priv-&gt;ldap_port == 0)</div><div class='del'>-			bl-&gt;priv-&gt;ldap_port = LDAP_PORT;</div><div class='del'>-		bl-&gt;priv-&gt;ldap_rootdn = g_strdup(lud-&gt;lud_dn);</div><div class='del'>-		bl-&gt;priv-&gt;ldap_scope = lud-&gt;lud_scope;</div><div class='del'>-</div><div class='del'>-		ldap_free_urldesc(lud);</div><div class='del'>-</div><div class='del'>-		pas_backend_ldap_connect (bl);</div><div class='del'>-		if (bl-&gt;priv-&gt;ldap == NULL)</div><div class='del'>-			return FALSE;</div><div class='del'>-		else</div><div class='del'>-			return TRUE;</div><div class='del'>-	} else</div><div class='del'>-		return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Get_uri handler for the addressbook LDAP backend */</div><div class='del'>-static const char *</div><div class='del'>-pas_backend_ldap_get_uri (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl;</div><div class='del'>-</div><div class='del'>-	bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-	return bl-&gt;priv-&gt;uri;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_ldap_add_client (PASBackend             *backend,</div><div class='del'>-			     GNOME_Evolution_Addressbook_BookListener  listener)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl;</div><div class='del'>-	PASBook        *book;</div><div class='del'>-</div><div class='del'>-	g_assert (backend != NULL);</div><div class='del'>-	g_assert (PAS_IS_BACKEND_LDAP (backend));</div><div class='del'>-</div><div class='del'>-	bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-</div><div class='del'>-	book = pas_book_new (backend, listener);</div><div class='del'>-</div><div class='del'>-	if (!book) {</div><div class='del'>-		if (!bl-&gt;priv-&gt;clients)</div><div class='del'>-			pas_backend_last_client_gone (backend);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (book), "destroy",</div><div class='del'>-		    pas_backend_ldap_book_destroy_cb, backend);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (book), "requests_queued",</div><div class='del'>-		    pas_backend_ldap_process_client_requests, NULL);</div><div class='del'>-</div><div class='del'>-	bl-&gt;priv-&gt;clients = g_list_prepend (</div><div class='del'>-		bl-&gt;priv-&gt;clients, book);</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;connected) {</div><div class='del'>-		pas_book_respond_open (</div><div class='del'>-			book, GNOME_Evolution_Addressbook_BookListener_Success);</div><div class='del'>-	} else {</div><div class='del'>-		/* Open the book. */</div><div class='del'>-		pas_book_respond_open (</div><div class='del'>-			book, GNOME_Evolution_Addressbook_BookListener_Success);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	pas_book_report_writable (book, bl-&gt;priv-&gt;writable);</div><div class='del'>-</div><div class='del'>-	bonobo_object_unref (BONOBO_OBJECT (book));</div><div class='del'>-	</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_remove_client (PASBackend             *backend,</div><div class='del'>-				PASBook                *book)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl;</div><div class='del'>-	GList *l;</div><div class='del'>-	PASBook *lbook;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (backend != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BACKEND_LDAP (backend));</div><div class='del'>-	g_return_if_fail (book != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>-</div><div class='del'>-	/* Find the book in the list of clients */</div><div class='del'>-</div><div class='del'>-	for (l = bl-&gt;priv-&gt;clients; l; l = l-&gt;next) {</div><div class='del'>-		lbook = PAS_BOOK (l-&gt;data);</div><div class='del'>-</div><div class='del'>-		if (lbook == book)</div><div class='del'>-			break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_assert (l != NULL);</div><div class='del'>-</div><div class='del'>-	/* Disconnect */</div><div class='del'>-</div><div class='del'>-	bl-&gt;priv-&gt;clients = g_list_remove_link (bl-&gt;priv-&gt;clients, l);</div><div class='del'>-	g_list_free_1 (l);</div><div class='del'>-</div><div class='del'>-	/* When all clients go away, notify the parent factory about it so that</div><div class='del'>-	 * it may decide whether to kill the backend or not.</div><div class='del'>-	 */</div><div class='del'>-	if (!bl-&gt;priv-&gt;clients)</div><div class='del'>-		pas_backend_last_client_gone (backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-pas_backend_ldap_get_static_capabilites (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	return g_strdup("net");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_backend_ldap_construct (PASBackendLDAP *backend)</div><div class='del'>-{</div><div class='del'>-	g_assert (backend != NULL);</div><div class='del'>-	g_assert (PAS_IS_BACKEND_LDAP (backend));</div><div class='del'>-</div><div class='del'>-	if (! pas_backend_construct (PAS_BACKEND (backend)))</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_ldap_new:</div><div class='del'>- */</div><div class='del'>-PASBackend *</div><div class='del'>-pas_backend_ldap_new (void)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *backend;</div><div class='del'>-</div><div class='del'>-	backend = gtk_type_new (pas_backend_ldap_get_type ());</div><div class='del'>-</div><div class='del'>-	if (! pas_backend_ldap_construct (backend)) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (backend));</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return PAS_BACKEND (backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-call_dtor (LDAPOp *op, gpointer data)</div><div class='del'>-{</div><div class='del'>-	op-&gt;dtor (op-&gt;backend, op);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAP *bl;</div><div class='del'>-</div><div class='del'>-	bl = PAS_BACKEND_LDAP (object);</div><div class='del'>-</div><div class='del'>-	g_list_foreach (bl-&gt;priv-&gt;pending_ops, (GFunc)call_dtor, NULL);</div><div class='del'>-	g_list_free (bl-&gt;priv-&gt;pending_ops);</div><div class='del'>-</div><div class='del'>-	if (bl-&gt;priv-&gt;supported_fields)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (bl-&gt;priv-&gt;supported_fields));</div><div class='del'>-</div><div class='del'>-	g_free (bl-&gt;priv-&gt;uri);</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (pas_backend_ldap_parent_class)-&gt;destroy (object);	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_class_init (PASBackendLDAPClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass  *object_class = (GtkObjectClass *) klass;</div><div class='del'>-	PASBackendClass *parent_class;</div><div class='del'>-</div><div class='del'>-	pas_backend_ldap_parent_class = gtk_type_class (pas_backend_get_type ());</div><div class='del'>-</div><div class='del'>-	parent_class = PAS_BACKEND_CLASS (klass);</div><div class='del'>-</div><div class='del'>-	/* Set the virtual methods. */</div><div class='del'>-	parent_class-&gt;load_uri                = pas_backend_ldap_load_uri;</div><div class='del'>-	parent_class-&gt;get_uri                 = pas_backend_ldap_get_uri;</div><div class='del'>-	parent_class-&gt;add_client              = pas_backend_ldap_add_client;</div><div class='del'>-	parent_class-&gt;remove_client           = pas_backend_ldap_remove_client;</div><div class='del'>-	parent_class-&gt;get_static_capabilities = pas_backend_ldap_get_static_capabilites;</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = pas_backend_ldap_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_ldap_init (PASBackendLDAP *backend)</div><div class='del'>-{</div><div class='del'>-	PASBackendLDAPPrivate *priv;</div><div class='del'>-</div><div class='del'>-	priv                   = g_new0 (PASBackendLDAPPrivate, 1);</div><div class='del'>-</div><div class='del'>-	priv-&gt;supported_fields = e_list_new ((EListCopyFunc)g_strdup, (EListFreeFunc)g_free, NULL);</div><div class='del'>-</div><div class='del'>-	backend-&gt;priv = priv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_ldap_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-pas_backend_ldap_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASBackendLDAP",</div><div class='del'>-			sizeof (PASBackendLDAP),</div><div class='del'>-			sizeof (PASBackendLDAPClass),</div><div class='del'>-			(GtkClassInitFunc)  pas_backend_ldap_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_backend_ldap_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (pas_backend_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend-ldap.h b/addressbook/backend/pas/pas-backend-ldap.h<br/>deleted file mode 100644<br/>index 9f32c58bbf..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend-ldap.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend-ldap.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,32 +0,0 @@</div><div class='del'>-/*</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_BACKEND_LDAP_H__</div><div class='del'>-#define __PAS_BACKEND_LDAP_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include "pas-backend.h"</div><div class='del'>-</div><div class='del'>-typedef struct _PASBackendLDAPPrivate PASBackendLDAPPrivate;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	PASBackend             parent_object;</div><div class='del'>-	PASBackendLDAPPrivate *priv;</div><div class='del'>-} PASBackendLDAP;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	PASBackendClass parent_class;</div><div class='del'>-} PASBackendLDAPClass;</div><div class='del'>-</div><div class='del'>-PASBackend *pas_backend_ldap_new      (void);</div><div class='del'>-GtkType     pas_backend_ldap_get_type (void);</div><div class='del'>-</div><div class='del'>-#define PAS_BACKEND_LDAP_TYPE        (pas_backend_ldap_get_type ())</div><div class='del'>-#define PAS_BACKEND_LDAP(o)          (GTK_CHECK_CAST ((o), PAS_BACKEND_LDAP_TYPE, PASBackendLDAP))</div><div class='del'>-#define PAS_BACKEND_LDAP_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_BACKEND_TYPE, PASBackendLDAPClass))</div><div class='del'>-#define PAS_IS_BACKEND_LDAP(o)       (GTK_CHECK_TYPE ((o), PAS_BACKEND_LDAP_TYPE))</div><div class='del'>-#define PAS_IS_BACKEND_LDAP_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BACKEND_LDAP_TYPE))</div><div class='del'>-</div><div class='del'>-#endif /* ! __PAS_BACKEND_LDAP_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend.c b/addressbook/backend/pas/pas-backend.c<br/>deleted file mode 100644<br/>index 593ed624d2..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,178 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include "pas-backend.h"</div><div class='del'>-</div><div class='del'>-#define CLASS(o) PAS_BACKEND_CLASS (GTK_OBJECT (o)-&gt;klass)</div><div class='del'>-</div><div class='del'>-/* Signal IDs */</div><div class='del'>-enum {</div><div class='del'>-	LAST_CLIENT_GONE,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint pas_backend_signals[LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-pas_backend_construct (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-pas_backend_load_uri (PASBackend             *backend,</div><div class='del'>-		      const char             *uri)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (backend != NULL, FALSE);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BACKEND (backend), FALSE);</div><div class='del'>-	g_return_val_if_fail (uri != NULL, FALSE);</div><div class='del'>-</div><div class='del'>-	g_assert (CLASS (backend)-&gt;load_uri != NULL);</div><div class='del'>-</div><div class='del'>-	return (* CLASS (backend)-&gt;load_uri) (backend, uri);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_get_uri:</div><div class='del'>- * @backend: An addressbook backend.</div><div class='del'>- * </div><div class='del'>- * Queries the URI that an addressbook backend is serving.</div><div class='del'>- * </div><div class='del'>- * Return value: URI for the backend.</div><div class='del'>- **/</div><div class='del'>-const char *</div><div class='del'>-pas_backend_get_uri (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (backend != NULL, NULL);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BACKEND (backend), NULL);</div><div class='del'>-</div><div class='del'>-	g_assert (CLASS (backend)-&gt;get_uri != NULL);</div><div class='del'>-</div><div class='del'>-	return (* CLASS (backend)-&gt;get_uri) (backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_add_client:</div><div class='del'>- * @backend: An addressbook backend.</div><div class='del'>- * @listener: Listener for notification to the client.</div><div class='del'>- *</div><div class='del'>- * Adds a client to an addressbook backend.</div><div class='del'>- *</div><div class='del'>- * Return value: TRUE on success, FALSE on failure to add the client.</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-pas_backend_add_client (PASBackend             *backend,</div><div class='del'>-			GNOME_Evolution_Addressbook_BookListener  listener)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (backend != NULL, FALSE);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BACKEND (backend), FALSE);</div><div class='del'>-	g_return_val_if_fail (listener != CORBA_OBJECT_NIL, FALSE);</div><div class='del'>-</div><div class='del'>-	g_assert (CLASS (backend)-&gt;add_client != NULL);</div><div class='del'>-</div><div class='del'>-	return CLASS (backend)-&gt;add_client (backend, listener);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-pas_backend_remove_client (PASBackend *backend,</div><div class='del'>-			   PASBook    *book)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (backend != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BACKEND (backend));</div><div class='del'>-	g_return_if_fail (book    != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BOOK (book));</div><div class='del'>-	</div><div class='del'>-	g_assert (CLASS (backend)-&gt;remove_client != NULL);</div><div class='del'>-</div><div class='del'>-	CLASS (backend)-&gt;remove_client (backend, book);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-pas_backend_get_static_capabilities (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (backend != NULL, NULL);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BACKEND (backend), NULL);</div><div class='del'>-	</div><div class='del'>-	g_assert (CLASS (backend)-&gt;get_static_capabilities != NULL);</div><div class='del'>-</div><div class='del'>-	return CLASS (backend)-&gt;get_static_capabilities (backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_last_client_gone:</div><div class='del'>- * @backend: An addressbook backend.</div><div class='del'>- * </div><div class='del'>- * Emits the "last_client_gone" signal for the specified backend.  Should</div><div class='del'>- * only be called from backend implementations if the backend really does</div><div class='del'>- * not have any more clients.</div><div class='del'>- **/</div><div class='del'>-void</div><div class='del'>-pas_backend_last_client_gone (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (backend != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BACKEND (backend));</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (backend), pas_backend_signals[LAST_CLIENT_GONE]);	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_init (PASBackend *backend)</div><div class='del'>-{</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_backend_class_init (PASBackendClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-	object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	pas_backend_signals[LAST_CLIENT_GONE] =</div><div class='del'>-		gtk_signal_new ("last_client_gone",</div><div class='del'>-				GTK_RUN_FIRST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (PASBackendClass, last_client_gone),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, pas_backend_signals, LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	klass-&gt;add_client = NULL;</div><div class='del'>-	klass-&gt;remove_client = NULL;</div><div class='del'>-	klass-&gt;get_static_capabilities = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_backend_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-pas_backend_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASBackend",</div><div class='del'>-			sizeof (PASBackend),</div><div class='del'>-			sizeof (PASBackendClass),</div><div class='del'>-			(GtkClassInitFunc)  pas_backend_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_backend_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (gtk_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/pas/pas-backend.h b/addressbook/backend/pas/pas-backend.h<br/>deleted file mode 100644<br/>index bd9a12c2a0..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-backend.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-backend.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,77 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * An abstract class which defines the API to a given backend.</div><div class='del'>- * There will be one PASBackend object for every URI which is loaded.</div><div class='del'>- *</div><div class='del'>- * Two people will call into the PASBackend API:</div><div class='del'>- *</div><div class='del'>- * 1. The PASBookFactory, when it has been asked to load a book.</div><div class='del'>- *    It will create a new PASBackend if one is not already running</div><div class='del'>- *    for the requested URI.  It will call pas_backend_add_client to</div><div class='del'>- *    add a new client to an existing PASBackend server.</div><div class='del'>- *</div><div class='del'>- * 2. A PASBook, when a client has requested an operation on the</div><div class='del'>- *    GNOME_Evolution_Addressbook_Book interface.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_BACKEND_H__</div><div class='del'>-#define __PAS_BACKEND_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;pas/addressbook.h&gt;</div><div class='del'>-</div><div class='del'>-typedef struct _PASBackend        PASBackend;</div><div class='del'>-typedef struct _PASBackendPrivate PASBackendPrivate;</div><div class='del'>-</div><div class='del'>-#include &lt;pas/pas-book.h&gt;</div><div class='del'>-</div><div class='del'>-struct _PASBackend {</div><div class='del'>-	GtkObject parent_object;</div><div class='del'>-	PASBackendPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	/* Virtual methods */</div><div class='del'>-	gboolean (*load_uri) (PASBackend *backend, const char *uri);</div><div class='del'>-	const char *(* get_uri) (PASBackend *backend);</div><div class='del'>-	gboolean (*add_client) (PASBackend *backend, GNOME_Evolution_Addressbook_BookListener listener);</div><div class='del'>-	void (*remove_client) (PASBackend *backend, PASBook *book);</div><div class='del'>-        char *(*get_static_capabilities) (PASBackend *backend);</div><div class='del'>-</div><div class='del'>-	/* Notification signals */</div><div class='del'>-	void (* last_client_gone) (PASBackend *backend);</div><div class='del'>-} PASBackendClass;</div><div class='del'>-</div><div class='del'>-typedef PASBackend * (*PASBackendFactoryFn) (void);</div><div class='del'>-</div><div class='del'>-gboolean    pas_backend_construct                (PASBackend             *backend);</div><div class='del'>-gboolean    pas_backend_load_uri                 (PASBackend             *backend,</div><div class='del'>-						  const char             *uri);</div><div class='del'>-const char *pas_backend_get_uri                  (PASBackend             *backend);</div><div class='del'>-</div><div class='del'>-gboolean    pas_backend_add_client               (PASBackend             *backend,</div><div class='del'>-						  GNOME_Evolution_Addressbook_BookListener  listener);</div><div class='del'>-void        pas_backend_remove_client            (PASBackend             *backend,</div><div class='del'>-						  PASBook                *book);</div><div class='del'>-char       *pas_backend_get_static_capabilities  (PASBackend             *backend);</div><div class='del'>-</div><div class='del'>-void        pas_backend_last_client_gone         (PASBackend             *backend);</div><div class='del'>-</div><div class='del'>-GtkType     pas_backend_get_type                 (void);</div><div class='del'>-</div><div class='del'>-#define PAS_BACKEND_TYPE        (pas_backend_get_type ())</div><div class='del'>-#define PAS_BACKEND(o)          (GTK_CHECK_CAST ((o), PAS_BACKEND_TYPE, PASBackend))</div><div class='del'>-#define PAS_BACKEND_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_BACKEND_TYPE, PASBackendClass))</div><div class='del'>-#define PAS_IS_BACKEND(o)       (GTK_CHECK_TYPE ((o), PAS_BACKEND_TYPE))</div><div class='del'>-#define PAS_IS_BACKEND_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BACKEND_TYPE))</div><div class='del'>-</div><div class='del'>-#endif /* ! __PAS_BACKEND_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/pas/pas-book-factory.c b/addressbook/backend/pas/pas-book-factory.c<br/>deleted file mode 100644<br/>index cb7b291a9e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-book-factory.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-book-factory.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,624 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "pas-book-factory.h"</div><div class='del'>-</div><div class='del'>-#define DEFAULT_PAS_BOOK_FACTORY_OAF_ID "OAFIID:GNOME_Evolution_Wombat_ServerFactory"</div><div class='del'>-</div><div class='del'>-static BonoboObjectClass          *pas_book_factory_parent_class;</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookFactory__vepv   pas_book_factory_vepv;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char                              *uri;</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener             listener;</div><div class='del'>-} PASBookFactoryQueuedRequest;</div><div class='del'>-</div><div class='del'>-struct _PASBookFactoryPrivate {</div><div class='del'>-	gint        idle_id;</div><div class='del'>-	GHashTable *backends;</div><div class='del'>-	GHashTable *active_server_map;</div><div class='del'>-	GList      *queued_requests;</div><div class='del'>-</div><div class='del'>-	/* OAFIID of the factory */</div><div class='del'>-	char *iid;</div><div class='del'>-</div><div class='del'>-	/* Whether the factory has been registered with OAF yet */</div><div class='del'>-	guint       registered : 1;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Signal IDs */</div><div class='del'>-enum {</div><div class='del'>-	LAST_BOOK_GONE,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint factory_signals[LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-pas_book_factory_canonicalize_uri (const char *uri)</div><div class='del'>-{</div><div class='del'>-	/* FIXME: What do I do here? */</div><div class='del'>-</div><div class='del'>-	return g_strdup (uri);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-pas_book_factory_extract_proto_from_uri (const char *uri)</div><div class='del'>-{</div><div class='del'>-	char *proto;</div><div class='del'>-	char *p;</div><div class='del'>-</div><div class='del'>-	p = strchr (uri, ':');</div><div class='del'>-</div><div class='del'>-	if (p == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	proto = g_malloc0 (p - uri + 1);</div><div class='del'>-</div><div class='del'>-	strncpy (proto, uri, p - uri);</div><div class='del'>-</div><div class='del'>-	return proto;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_factory_register_backend:</div><div class='del'>- * @factory:</div><div class='del'>- * @proto:</div><div class='del'>- * @backend:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_factory_register_backend (PASBookFactory      *factory,</div><div class='del'>-				   const char          *proto,</div><div class='del'>-				   PASBackendFactoryFn  backend)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (factory != NULL);</div><div class='del'>-	g_return_if_fail (PAS_IS_BOOK_FACTORY (factory));</div><div class='del'>-	g_return_if_fail (proto != NULL);</div><div class='del'>-	g_return_if_fail (backend != NULL);</div><div class='del'>-</div><div class='del'>-	if (g_hash_table_lookup (factory-&gt;priv-&gt;backends, proto) != NULL) {</div><div class='del'>-		g_warning ("pas_book_factory_register_backend: "</div><div class='del'>-			   "Proto \"%s\" already registered!\n", proto);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_hash_table_insert (factory-&gt;priv-&gt;backends,</div><div class='del'>-			     g_strdup (proto), backend);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_factory_get_n_backends:</div><div class='del'>- * @factory: An addressbook factory.</div><div class='del'>- * </div><div class='del'>- * Queries the number of running addressbook backends in an addressbook factory.</div><div class='del'>- * </div><div class='del'>- * Return value: Number of running backends.</div><div class='del'>- **/</div><div class='del'>-int</div><div class='del'>-pas_book_factory_get_n_backends (PASBookFactory *factory)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (factory != NULL, -1);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BOOK_FACTORY (factory), -1);</div><div class='del'>-</div><div class='del'>-	return g_hash_table_size (factory-&gt;priv-&gt;active_server_map);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Callback used when a backend loses its last connected client */</div><div class='del'>-static void</div><div class='del'>-backend_last_client_gone_cb (PASBackend *backend, gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASBookFactory *factory;</div><div class='del'>-	const char *uri;</div><div class='del'>-	gpointer orig_key;</div><div class='del'>-	gboolean result;</div><div class='del'>-	char *orig_uri;</div><div class='del'>-</div><div class='del'>-	factory = PAS_BOOK_FACTORY (data);</div><div class='del'>-</div><div class='del'>-	/* Remove the backend from the active server map */</div><div class='del'>-</div><div class='del'>-	uri = pas_backend_get_uri (backend);</div><div class='del'>-	g_assert (uri != NULL);</div><div class='del'>-</div><div class='del'>-	result = g_hash_table_lookup_extended (factory-&gt;priv-&gt;active_server_map, uri,</div><div class='del'>-					       &amp;orig_key, NULL);</div><div class='del'>-	g_assert (result != FALSE);</div><div class='del'>-</div><div class='del'>-	orig_uri = orig_key;</div><div class='del'>-</div><div class='del'>-	g_hash_table_remove (factory-&gt;priv-&gt;active_server_map, orig_uri);</div><div class='del'>-	g_free (orig_uri);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (backend));</div><div class='del'>-</div><div class='del'>-	/* Notify upstream if there are no more backends */</div><div class='del'>-</div><div class='del'>-	if (g_hash_table_size (factory-&gt;priv-&gt;active_server_map) == 0)</div><div class='del'>-		gtk_signal_emit (GTK_OBJECT (factory), factory_signals[LAST_BOOK_GONE]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static PASBackendFactoryFn</div><div class='del'>-pas_book_factory_lookup_backend_factory (PASBookFactory *factory,</div><div class='del'>-					 const char     *uri)</div><div class='del'>-{</div><div class='del'>-	PASBackendFactoryFn  backend_fn;</div><div class='del'>-	char                *proto;</div><div class='del'>-	char                *canonical_uri;</div><div class='del'>-</div><div class='del'>-	g_assert (factory != NULL);</div><div class='del'>-	g_assert (PAS_IS_BOOK_FACTORY (factory));</div><div class='del'>-	g_assert (uri != NULL);</div><div class='del'>-</div><div class='del'>-	canonical_uri = pas_book_factory_canonicalize_uri (uri);</div><div class='del'>-	if (canonical_uri == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	proto = pas_book_factory_extract_proto_from_uri (canonical_uri);</div><div class='del'>-	if (proto == NULL) {</div><div class='del'>-		g_free (canonical_uri);</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	backend_fn = g_hash_table_lookup (factory-&gt;priv-&gt;backends, proto);</div><div class='del'>-</div><div class='del'>-	g_free (proto); </div><div class='del'>-	g_free (canonical_uri);</div><div class='del'>-</div><div class='del'>-	return backend_fn;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static PASBackend *</div><div class='del'>-pas_book_factory_launch_backend (PASBookFactory              *factory,</div><div class='del'>-				 GNOME_Evolution_Addressbook_BookListener       listener,</div><div class='del'>-				 const char                  *uri)</div><div class='del'>-{</div><div class='del'>-	PASBackendFactoryFn  backend_factory;</div><div class='del'>-	PASBackend          *backend;</div><div class='del'>-</div><div class='del'>-	backend_factory = pas_book_factory_lookup_backend_factory (</div><div class='del'>-		factory, uri);</div><div class='del'>-</div><div class='del'>-	if (!backend_factory) {</div><div class='del'>-		CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-		GNOME_Evolution_Addressbook_BookListener_notifyBookOpened (</div><div class='del'>-			listener,</div><div class='del'>-			GNOME_Evolution_Addressbook_BookListener_ProtocolNotSupported,</div><div class='del'>-			CORBA_OBJECT_NIL,</div><div class='del'>-			&amp;ev);</div><div class='del'>-</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION)</div><div class='del'>-			g_message ("pas_book_factory_launch_backend(): could not notify "</div><div class='del'>-				   "the listener");</div><div class='del'>-</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	backend = (* backend_factory) ();</div><div class='del'>-	if (!backend) {</div><div class='del'>-		CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-		GNOME_Evolution_Addressbook_BookListener_notifyBookOpened (</div><div class='del'>-			listener,</div><div class='del'>-			GNOME_Evolution_Addressbook_BookListener_OtherError,</div><div class='del'>-			CORBA_OBJECT_NIL,</div><div class='del'>-			&amp;ev);</div><div class='del'>-</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION)</div><div class='del'>-			g_message ("pas_book_factory_launch_backend(): could not notify "</div><div class='del'>-				   "the listener");</div><div class='del'>-</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_hash_table_insert (factory-&gt;priv-&gt;active_server_map,</div><div class='del'>-			     g_strdup (uri),</div><div class='del'>-			     backend);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (backend), "last_client_gone",</div><div class='del'>-			    backend_last_client_gone_cb,</div><div class='del'>-			    factory);</div><div class='del'>-</div><div class='del'>-	return backend;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_factory_process_request (PASBookFactory              *factory,</div><div class='del'>-				  PASBookFactoryQueuedRequest *request)</div><div class='del'>-{</div><div class='del'>-	PASBackend *backend;</div><div class='del'>-	char *uri;</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener listener;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	uri = request-&gt;uri;</div><div class='del'>-	listener = request-&gt;listener;</div><div class='del'>-	g_free (request);</div><div class='del'>-</div><div class='del'>-	/* Look up the backend and create one if needed */</div><div class='del'>-</div><div class='del'>-	backend = g_hash_table_lookup (factory-&gt;priv-&gt;active_server_map, uri);</div><div class='del'>-</div><div class='del'>-	if (!backend) {</div><div class='del'>-		backend = pas_book_factory_launch_backend (factory, listener, uri);</div><div class='del'>-		if (!backend)</div><div class='del'>-			goto out;</div><div class='del'>-</div><div class='del'>-		if (!pas_backend_add_client (backend, listener))</div><div class='del'>-			goto out;</div><div class='del'>-</div><div class='del'>-		pas_backend_load_uri (backend, uri);</div><div class='del'>-</div><div class='del'>-		goto out;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	pas_backend_add_client (backend, listener);</div><div class='del'>-</div><div class='del'>- out:</div><div class='del'>-	g_free (uri);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	CORBA_Object_release (listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION)</div><div class='del'>-		g_message ("pas_book_factory_process_request(): could not release the listener");</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_book_factory_process_queue (PASBookFactory *factory)</div><div class='del'>-{</div><div class='del'>-	/* Process pending Book-creation requests. */</div><div class='del'>-	if (factory-&gt;priv-&gt;queued_requests != NULL) {</div><div class='del'>-		PASBookFactoryQueuedRequest  *request;</div><div class='del'>-		GList *l;</div><div class='del'>-</div><div class='del'>-		l = factory-&gt;priv-&gt;queued_requests;</div><div class='del'>-		request = l-&gt;data;</div><div class='del'>-</div><div class='del'>-		pas_book_factory_process_request (factory, request);</div><div class='del'>-</div><div class='del'>-		factory-&gt;priv-&gt;queued_requests = g_list_remove_link (</div><div class='del'>-			factory-&gt;priv-&gt;queued_requests, l);</div><div class='del'>-		g_list_free_1 (l);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (factory-&gt;priv-&gt;queued_requests == NULL) {</div><div class='del'>-</div><div class='del'>-		factory-&gt;priv-&gt;idle_id = 0;</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_factory_queue_request (PASBookFactory               *factory,</div><div class='del'>-				const char                   *uri,</div><div class='del'>-				const GNOME_Evolution_Addressbook_BookListener  listener)</div><div class='del'>-{</div><div class='del'>-	PASBookFactoryQueuedRequest *request;</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener       listener_copy;</div><div class='del'>-	CORBA_Environment            ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	listener_copy = CORBA_Object_duplicate (listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("PASBookFactory: Could not duplicate BookListener!\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	request           = g_new0 (PASBookFactoryQueuedRequest, 1);</div><div class='del'>-	request-&gt;listener = listener_copy;</div><div class='del'>-	request-&gt;uri      = g_strdup (uri);</div><div class='del'>-</div><div class='del'>-	factory-&gt;priv-&gt;queued_requests =</div><div class='del'>-		g_list_prepend (factory-&gt;priv-&gt;queued_requests, request);</div><div class='del'>-</div><div class='del'>-	if (! factory-&gt;priv-&gt;idle_id) {</div><div class='del'>-		factory-&gt;priv-&gt;idle_id =</div><div class='del'>-			g_idle_add ((GSourceFunc) pas_book_factory_process_queue, factory);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_BookFactory_openBook (PortableServer_Servant        servant,</div><div class='del'>-				      const CORBA_char             *uri,</div><div class='del'>-				      const GNOME_Evolution_Addressbook_BookListener  listener,</div><div class='del'>-				      CORBA_Environment            *ev)</div><div class='del'>-{</div><div class='del'>-	PASBookFactory      *factory =</div><div class='del'>-		PAS_BOOK_FACTORY (bonobo_object_from_servant (servant));</div><div class='del'>-	PASBackendFactoryFn  backend_factory;</div><div class='del'>-</div><div class='del'>-	backend_factory = pas_book_factory_lookup_backend_factory (factory, uri);</div><div class='del'>-</div><div class='del'>-	if (backend_factory == NULL) {</div><div class='del'>-		GNOME_Evolution_Addressbook_BookListener_notifyBookOpened (</div><div class='del'>-			listener,</div><div class='del'>-			GNOME_Evolution_Addressbook_BookListener_ProtocolNotSupported,</div><div class='del'>-			CORBA_OBJECT_NIL,</div><div class='del'>-			ev);</div><div class='del'>-</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	pas_book_factory_queue_request (factory, uri, listener);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_book_factory_construct (PASBookFactory *factory)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookFactory  *servant;</div><div class='del'>-	CORBA_Environment           ev;</div><div class='del'>-	CORBA_Object                obj;</div><div class='del'>-</div><div class='del'>-	g_assert (factory != NULL);</div><div class='del'>-	g_assert (PAS_IS_BOOK_FACTORY (factory));</div><div class='del'>-</div><div class='del'>-	servant = (POA_GNOME_Evolution_Addressbook_BookFactory *) g_new0 (BonoboObjectServant, 1);</div><div class='del'>-	servant-&gt;vepv = &amp;pas_book_factory_vepv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookFactory__init ((PortableServer_Servant) servant, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	obj = bonobo_object_activate_servant (BONOBO_OBJECT (factory), servant);</div><div class='del'>-	if (obj == CORBA_OBJECT_NIL) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_object_construct (BONOBO_OBJECT (factory), obj);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_factory_new:</div><div class='del'>- */</div><div class='del'>-PASBookFactory *</div><div class='del'>-pas_book_factory_new (void)</div><div class='del'>-{</div><div class='del'>-	PASBookFactory *factory;</div><div class='del'>-</div><div class='del'>-	factory = gtk_type_new (pas_book_factory_get_type ());</div><div class='del'>-</div><div class='del'>-	if (! pas_book_factory_construct (factory)) {</div><div class='del'>-		g_warning ("pas_book_factory_new: Could not construct PASBookFactory!\n");</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (factory));</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return factory;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_factory_activate:</div><div class='del'>- */</div><div class='del'>-gboolean</div><div class='del'>-pas_book_factory_activate (PASBookFactory *factory, const char *iid)</div><div class='del'>-{</div><div class='del'>-	PASBookFactoryPrivate *priv;</div><div class='del'>-	CORBA_Object obj;</div><div class='del'>-	OAF_RegistrationResult result;</div><div class='del'>-	char *tmp_iid;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (factory != NULL, FALSE);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BOOK_FACTORY (factory), FALSE);</div><div class='del'>-</div><div class='del'>-	priv = factory-&gt;priv;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (!priv-&gt;registered, FALSE);</div><div class='del'>-</div><div class='del'>-	/* if iid is NULL, use the default factory OAFIID */</div><div class='del'>-	if (iid)</div><div class='del'>-		tmp_iid = g_strdup (iid);</div><div class='del'>-	else</div><div class='del'>-		tmp_iid = g_strdup (DEFAULT_PAS_BOOK_FACTORY_OAF_ID);</div><div class='del'>-</div><div class='del'>-	obj = bonobo_object_corba_objref (BONOBO_OBJECT (factory));</div><div class='del'>-</div><div class='del'>-	result = oaf_active_server_register (tmp_iid, obj);</div><div class='del'>-</div><div class='del'>-	switch (result) {</div><div class='del'>-	case OAF_REG_SUCCESS:</div><div class='del'>-		priv-&gt;registered = TRUE;</div><div class='del'>-		priv-&gt;iid = tmp_iid;</div><div class='del'>-		return TRUE;</div><div class='del'>-	case OAF_REG_NOT_LISTED:</div><div class='del'>-		g_message ("Error registering the PAS factory: not listed");</div><div class='del'>-		break;</div><div class='del'>-	case OAF_REG_ALREADY_ACTIVE:</div><div class='del'>-		g_message ("Error registering the PAS factory: already active");</div><div class='del'>-		break;</div><div class='del'>-	case OAF_REG_ERROR:</div><div class='del'>-	default:</div><div class='del'>-		g_message ("Error registering the PAS factory: generic error");</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (tmp_iid);</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_factory_init (PASBookFactory *factory)</div><div class='del'>-{</div><div class='del'>-	factory-&gt;priv = g_new0 (PASBookFactoryPrivate, 1);</div><div class='del'>-</div><div class='del'>-	factory-&gt;priv-&gt;active_server_map = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>-	factory-&gt;priv-&gt;backends          = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>-	factory-&gt;priv-&gt;queued_requests   = NULL;</div><div class='del'>-	factory-&gt;priv-&gt;registered        = FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-free_active_server_map_entry (gpointer key, gpointer value, gpointer data)</div><div class='del'>-{</div><div class='del'>-	char *uri;</div><div class='del'>-	PASBackend *backend;</div><div class='del'>-</div><div class='del'>-	uri = key;</div><div class='del'>-	g_free (uri);</div><div class='del'>-</div><div class='del'>-	backend = PAS_BACKEND (value);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (backend));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_backends_entry (gpointer key, gpointer value, gpointer data)</div><div class='del'>-{</div><div class='del'>-	char *uri;</div><div class='del'>-</div><div class='del'>-	uri = key;</div><div class='del'>-	g_free (uri);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_factory_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	PASBookFactory *factory = PAS_BOOK_FACTORY (object);</div><div class='del'>-	GList          *l;</div><div class='del'>-</div><div class='del'>-	for (l = factory-&gt;priv-&gt;queued_requests; l != NULL; l = l-&gt;next) {</div><div class='del'>-		PASBookFactoryQueuedRequest *request = l-&gt;data;</div><div class='del'>-		CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-		g_free (request-&gt;uri);</div><div class='del'>-</div><div class='del'>-		CORBA_exception_init (&amp;ev);</div><div class='del'>-		CORBA_Object_release (request-&gt;listener, &amp;ev);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		g_free (request);</div><div class='del'>-	}</div><div class='del'>-	g_list_free (factory-&gt;priv-&gt;queued_requests);</div><div class='del'>-	factory-&gt;priv-&gt;queued_requests = NULL;</div><div class='del'>-</div><div class='del'>-	g_hash_table_foreach (factory-&gt;priv-&gt;active_server_map,</div><div class='del'>-			      free_active_server_map_entry,</div><div class='del'>-			      NULL);</div><div class='del'>-	g_hash_table_destroy (factory-&gt;priv-&gt;active_server_map);</div><div class='del'>-	factory-&gt;priv-&gt;active_server_map = NULL;</div><div class='del'>-</div><div class='del'>-	g_hash_table_foreach (factory-&gt;priv-&gt;backends,</div><div class='del'>-			      remove_backends_entry,</div><div class='del'>-			      NULL);</div><div class='del'>-	g_hash_table_destroy (factory-&gt;priv-&gt;backends);</div><div class='del'>-	factory-&gt;priv-&gt;backends = NULL;</div><div class='del'>-</div><div class='del'>-	if (factory-&gt;priv-&gt;registered) {</div><div class='del'>-		CORBA_Object obj;</div><div class='del'>-</div><div class='del'>-		obj = bonobo_object_corba_objref (BONOBO_OBJECT (factory));</div><div class='del'>-		oaf_active_server_unregister (factory-&gt;priv-&gt;iid, obj);</div><div class='del'>-		factory-&gt;priv-&gt;registered = FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (factory-&gt;priv-&gt;iid);</div><div class='del'>-	</div><div class='del'>-	g_free (factory-&gt;priv);</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (pas_book_factory_parent_class)-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static POA_GNOME_Evolution_Addressbook_BookFactory__epv *</div><div class='del'>-pas_book_factory_get_epv (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookFactory__epv *epv;</div><div class='del'>-</div><div class='del'>-	epv = g_new0 (POA_GNOME_Evolution_Addressbook_BookFactory__epv, 1);</div><div class='del'>-</div><div class='del'>-	epv-&gt;openBook = impl_GNOME_Evolution_Addressbook_BookFactory_openBook;</div><div class='del'>-</div><div class='del'>-	return epv;</div><div class='del'>-	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_factory_corba_class_init (void)</div><div class='del'>-{</div><div class='del'>-	pas_book_factory_vepv.Bonobo_Unknown_epv         = bonobo_object_get_epv ();</div><div class='del'>-	pas_book_factory_vepv.GNOME_Evolution_Addressbook_BookFactory_epv = pas_book_factory_get_epv ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_factory_class_init (PASBookFactoryClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	pas_book_factory_parent_class = gtk_type_class (bonobo_object_get_type ());</div><div class='del'>-</div><div class='del'>-	factory_signals[LAST_BOOK_GONE] =</div><div class='del'>-		gtk_signal_new ("last_book_gone",</div><div class='del'>-				GTK_RUN_FIRST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (PASBookFactoryClass, last_book_gone),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, factory_signals, LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = pas_book_factory_destroy;</div><div class='del'>-</div><div class='del'>-	pas_book_factory_corba_class_init ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_factory_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-pas_book_factory_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASBookFactory",</div><div class='del'>-			sizeof (PASBookFactory),</div><div class='del'>-			sizeof (PASBookFactoryClass),</div><div class='del'>-			(GtkClassInitFunc)  pas_book_factory_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_book_factory_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (bonobo_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/pas/pas-book-factory.h b/addressbook/backend/pas/pas-book-factory.h<br/>deleted file mode 100644<br/>index 22d4a87b3e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-book-factory.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-book-factory.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,50 +0,0 @@</div><div class='del'>-/*</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;pas/pas-backend.h&gt;</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_BOOK_FACTORY_H__</div><div class='del'>-#define __PAS_BOOK_FACTORY_H__</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef struct _PASBookFactoryPrivate PASBookFactoryPrivate;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	BonoboObject            parent_object;</div><div class='del'>-	PASBookFactoryPrivate *priv;</div><div class='del'>-} PASBookFactory;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	BonoboObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	/* Notification signals */</div><div class='del'>-</div><div class='del'>-	void (* last_book_gone) (PASBookFactory *factory);</div><div class='del'>-} PASBookFactoryClass;</div><div class='del'>-</div><div class='del'>-PASBookFactory *pas_book_factory_new              (void);</div><div class='del'>-</div><div class='del'>-void            pas_book_factory_register_backend (PASBookFactory               *factory,</div><div class='del'>-						   const char                   *proto,</div><div class='del'>-						   PASBackendFactoryFn           backend_factory);</div><div class='del'>-</div><div class='del'>-int             pas_book_factory_get_n_backends   (PASBookFactory               *factory);</div><div class='del'>-</div><div class='del'>-gboolean        pas_book_factory_activate         (PASBookFactory               *factory, const char *iid);</div><div class='del'>-</div><div class='del'>-GtkType         pas_book_factory_get_type (void);</div><div class='del'>-</div><div class='del'>-#define PAS_BOOK_FACTORY_TYPE        (pas_book_factory_get_type ())</div><div class='del'>-#define PAS_BOOK_FACTORY(o)          (GTK_CHECK_CAST ((o), PAS_BOOK_FACTORY_TYPE, PASBookFactory))</div><div class='del'>-#define PAS_BOOK_FACTORY_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_BOOK_FACTORY_TYPE, PASBookFactoryClass))</div><div class='del'>-#define PAS_IS_BOOK_FACTORY(o)       (GTK_CHECK_TYPE ((o), PAS_BOOK_FACTORY_TYPE))</div><div class='del'>-#define PAS_IS_BOOK_FACTORY_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BOOK_FACTORY_TYPE))</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __PAS_BOOK_FACTORY_H__ */</div><div class='head'>diff --git a/addressbook/backend/pas/pas-book-view.c b/addressbook/backend/pas/pas-book-view.c<br/>deleted file mode 100644<br/>index b5266a6b35..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-book-view.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-book-view.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,315 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * pas-book-view.c</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include "pas-book-view.h"</div><div class='del'>-</div><div class='del'>-static BonoboObjectClass *pas_book_view_parent_class;</div><div class='del'>-POA_GNOME_Evolution_Addressbook_BookView__vepv pas_book_view_vepv;</div><div class='del'>-</div><div class='del'>-struct _PASBookViewPrivate {</div><div class='del'>-	GNOME_Evolution_Addressbook_BookViewListener  listener;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_view_notify_change:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_view_notify_change (PASBookView                *book_view,</div><div class='del'>-			     const GList                *cards)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	gint i, length;</div><div class='del'>-	CORBA_sequence_GNOME_Evolution_Addressbook_VCard card_sequence;</div><div class='del'>-</div><div class='del'>-	length = g_list_length((GList *) cards);</div><div class='del'>-</div><div class='del'>-	card_sequence._buffer = CORBA_sequence_GNOME_Evolution_Addressbook_VCard_allocbuf(length);</div><div class='del'>-	card_sequence._maximum = length;</div><div class='del'>-	card_sequence._length = length;</div><div class='del'>-</div><div class='del'>-	for ( i = 0; cards; cards = g_list_next(cards), i++ ) {</div><div class='del'>-		card_sequence._buffer[i] = CORBA_string_dup((char *) cards-&gt;data);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookViewListener_notifyCardChanged (</div><div class='del'>-		book_view-&gt;priv-&gt;listener, &amp;card_sequence, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_view_notify_change: Exception signaling BookViewListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	CORBA_free(card_sequence._buffer);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-pas_book_view_notify_change_1 (PASBookView *book_view,</div><div class='del'>-			       const char  *card)</div><div class='del'>-{</div><div class='del'>-	GList *list = g_list_append(NULL, (char *) card);</div><div class='del'>-	pas_book_view_notify_change(book_view, list);</div><div class='del'>-	g_list_free(list);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_view_notify_remove:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_view_notify_remove (PASBookView                *book_view,</div><div class='del'>-			     const char                 *id)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookViewListener_notifyCardRemoved (</div><div class='del'>-		book_view-&gt;priv-&gt;listener, (GNOME_Evolution_Addressbook_CardId) id, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_view_notify_remove: Exception signaling BookViewListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_view_notify_add:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_view_notify_add (PASBookView                *book_view,</div><div class='del'>-			  const GList                *cards)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	gint i, length;</div><div class='del'>-	CORBA_sequence_GNOME_Evolution_Addressbook_VCard card_sequence;</div><div class='del'>-</div><div class='del'>-	length = g_list_length((GList *)cards);</div><div class='del'>-</div><div class='del'>-	card_sequence._buffer = CORBA_sequence_GNOME_Evolution_Addressbook_VCard_allocbuf(length);</div><div class='del'>-	card_sequence._maximum = length;</div><div class='del'>-	card_sequence._length = length;</div><div class='del'>-</div><div class='del'>-	for ( i = 0; cards; cards = g_list_next(cards), i++ ) {</div><div class='del'>-		card_sequence._buffer[i] = CORBA_string_dup((char *) cards-&gt;data);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookViewListener_notifyCardAdded (</div><div class='del'>-		book_view-&gt;priv-&gt;listener, &amp;card_sequence, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_view_notify_add: Exception signaling BookViewListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	CORBA_free(card_sequence._buffer);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-pas_book_view_notify_add_1 (PASBookView *book_view,</div><div class='del'>-			    const char  *card)</div><div class='del'>-{</div><div class='del'>-	GList *list = g_list_append(NULL, (char *) card);</div><div class='del'>-	pas_book_view_notify_add(book_view, list);</div><div class='del'>-	g_list_free(list);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-pas_book_view_notify_complete (PASBookView *book_view)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookViewListener_notifySequenceComplete (</div><div class='del'>-		book_view-&gt;priv-&gt;listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_view_notify_complete: Exception signaling BookViewListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-pas_book_view_notify_status_message (PASBookView *book_view,</div><div class='del'>-				     const char  *message)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookViewListener_notifyStatusMessage (</div><div class='del'>-		book_view-&gt;priv-&gt;listener, message, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_view_notify_status_message: Exception signaling BookViewListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_book_view_construct (PASBookView                *book_view,</div><div class='del'>-			 GNOME_Evolution_Addressbook_BookViewListener  listener)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookView *servant;</div><div class='del'>-	CORBA_Environment   ev;</div><div class='del'>-	CORBA_Object        obj;</div><div class='del'>-</div><div class='del'>-	g_assert (book_view      != NULL);</div><div class='del'>-	g_assert (PAS_IS_BOOK_VIEW (book_view));</div><div class='del'>-	g_assert (listener  != CORBA_OBJECT_NIL);</div><div class='del'>-</div><div class='del'>-	servant = (POA_GNOME_Evolution_Addressbook_BookView *) g_new0 (BonoboObjectServant, 1);</div><div class='del'>-	servant-&gt;vepv = &amp;pas_book_view_vepv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookView__init ((PortableServer_Servant) servant, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_object_dup_ref (listener, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning("Unable to duplicate &amp; ref listener object in pas-book-view.c\n");</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	obj = bonobo_object_activate_servant (BONOBO_OBJECT (book_view), servant);</div><div class='del'>-	if (obj == CORBA_OBJECT_NIL) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_object_construct (BONOBO_OBJECT (book_view), obj);</div><div class='del'>-</div><div class='del'>-	book_view-&gt;priv-&gt;listener  = listener;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_view_new:</div><div class='del'>- */</div><div class='del'>-PASBookView *</div><div class='del'>-pas_book_view_new (GNOME_Evolution_Addressbook_BookViewListener  listener)</div><div class='del'>-{</div><div class='del'>-	PASBookView *book_view;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (listener  != CORBA_OBJECT_NIL, NULL);</div><div class='del'>-</div><div class='del'>-	book_view = gtk_type_new (pas_book_view_get_type ());</div><div class='del'>-</div><div class='del'>-	if (! pas_book_view_construct (book_view, listener)) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book_view));</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return book_view;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_view_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	PASBookView *book_view = PAS_BOOK_VIEW (object);</div><div class='del'>-	CORBA_Environment   ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	bonobo_object_release_unref (book_view-&gt;priv-&gt;listener, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	g_free (book_view-&gt;priv);</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (pas_book_view_parent_class)-&gt;destroy (object);	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static POA_GNOME_Evolution_Addressbook_BookView__epv *</div><div class='del'>-pas_book_view_get_epv (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_BookView__epv *epv;</div><div class='del'>-</div><div class='del'>-	epv = g_new0 (POA_GNOME_Evolution_Addressbook_BookView__epv, 1);</div><div class='del'>-</div><div class='del'>-	return epv;</div><div class='del'>-	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_view_corba_class_init (void)</div><div class='del'>-{</div><div class='del'>-	pas_book_view_vepv.Bonobo_Unknown_epv     = bonobo_object_get_epv ();</div><div class='del'>-	pas_book_view_vepv.GNOME_Evolution_Addressbook_BookView_epv = pas_book_view_get_epv ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_view_class_init (PASBookViewClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	pas_book_view_parent_class = gtk_type_class (bonobo_object_get_type ());</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = pas_book_view_destroy;</div><div class='del'>-</div><div class='del'>-	pas_book_view_corba_class_init ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_view_init (PASBookView *book_view)</div><div class='del'>-{</div><div class='del'>-	book_view-&gt;priv           = g_new0 (PASBookViewPrivate, 1);</div><div class='del'>-	book_view-&gt;priv-&gt;listener = CORBA_OBJECT_NIL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_view_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-pas_book_view_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASBookView",</div><div class='del'>-			sizeof (PASBookView),</div><div class='del'>-			sizeof (PASBookViewClass),</div><div class='del'>-			(GtkClassInitFunc)  pas_book_view_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_book_view_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (bonobo_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/pas/pas-book-view.h b/addressbook/backend/pas/pas-book-view.h<br/>deleted file mode 100644<br/>index 26bf360f17..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-book-view.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-book-view.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,55 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * A wrapper object which exports the GNOME_Evolution_Addressbook_Book CORBA interface</div><div class='del'>- * and which maintains a request queue.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_BOOK_VIEW_H__</div><div class='del'>-#define __PAS_BOOK_VIEW_H__</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;pas/addressbook.h&gt;</div><div class='del'>-</div><div class='del'>-typedef struct _PASBookView        PASBookView;</div><div class='del'>-typedef struct _PASBookViewClass   PASBookViewClass;</div><div class='del'>-typedef struct _PASBookViewPrivate PASBookViewPrivate;</div><div class='del'>-</div><div class='del'>-struct _PASBookView {</div><div class='del'>-	BonoboObject     parent_object;</div><div class='del'>-	PASBookViewPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _PASBookViewClass {</div><div class='del'>-	BonoboObjectClass parent_class;</div><div class='del'>-};</div><div class='del'>-PASBookView *pas_book_view_new                    (GNOME_Evolution_Addressbook_BookViewListener  listener);</div><div class='del'>-</div><div class='del'>-void         pas_book_view_notify_change          (PASBookView                *book_view,</div><div class='del'>-						   const GList                *cards);</div><div class='del'>-void         pas_book_view_notify_change_1        (PASBookView                *book_view,</div><div class='del'>-						   const char                 *card);</div><div class='del'>-void         pas_book_view_notify_remove          (PASBookView                *book_view,</div><div class='del'>-						   const char                 *id);</div><div class='del'>-void         pas_book_view_notify_add             (PASBookView                *book_view,</div><div class='del'>-						   const GList                *cards);</div><div class='del'>-void         pas_book_view_notify_add_1           (PASBookView                *book_view,</div><div class='del'>-						   const char                 *card);</div><div class='del'>-void         pas_book_view_notify_complete        (PASBookView                *book_view);</div><div class='del'>-void         pas_book_view_notify_status_message  (PASBookView                *book_view,</div><div class='del'>-						   const char                 *message);</div><div class='del'>-</div><div class='del'>-GtkType      pas_book_view_get_type               (void);</div><div class='del'>-</div><div class='del'>-#define PAS_BOOK_VIEW_TYPE        (pas_book_view_get_type ())</div><div class='del'>-#define PAS_BOOK_VIEW(o)          (GTK_CHECK_CAST ((o), PAS_BOOK_VIEW_TYPE, PASBookView))</div><div class='del'>-#define PAS_BOOK_VIEW_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_BOOK_VIEW_FACTORY_TYPE, PASBookViewClass))</div><div class='del'>-#define PAS_IS_BOOK_VIEW(o)       (GTK_CHECK_TYPE ((o), PAS_BOOK_VIEW_TYPE))</div><div class='del'>-#define PAS_IS_BOOK_VIEW_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BOOK_VIEW_TYPE))</div><div class='del'>-</div><div class='del'>-#endif /* ! __PAS_BOOK_VIEW_H__ */</div><div class='head'>diff --git a/addressbook/backend/pas/pas-book.c b/addressbook/backend/pas/pas-book.c<br/>deleted file mode 100644<br/>index 306d7e5f39..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-book.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-book.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,871 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * pas-book.c</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include "e-util/e-list.h"</div><div class='del'>-#include "pas-book.h"</div><div class='del'>-</div><div class='del'>-static BonoboObjectClass *pas_book_parent_class;</div><div class='del'>-POA_GNOME_Evolution_Addressbook_Book__vepv pas_book_vepv;</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	REQUESTS_QUEUED,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint pas_book_signals [LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-struct _PASBookPrivate {</div><div class='del'>-	PASBackend             *backend;</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener  listener;</div><div class='del'>-</div><div class='del'>-	GList                  *request_queue;</div><div class='del'>-	gint                    idle_id;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_book_check_queue (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	if (book-&gt;priv-&gt;request_queue != NULL) {</div><div class='del'>-		gtk_signal_emit (GTK_OBJECT (book),</div><div class='del'>-				 pas_book_signals [REQUESTS_QUEUED]);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;request_queue == NULL) {</div><div class='del'>-		book-&gt;priv-&gt;idle_id = 0;</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_request (PASBook *book, PASRequest *req)</div><div class='del'>-{</div><div class='del'>-	book-&gt;priv-&gt;request_queue =</div><div class='del'>-		g_list_append (book-&gt;priv-&gt;request_queue, req);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;idle_id == 0) {</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (book));</div><div class='del'>-		book-&gt;priv-&gt;idle_id = g_idle_add ((GSourceFunc) pas_book_check_queue, book);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_create_card (PASBook *book, const char *vcard)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req        = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op    = CreateCard;</div><div class='del'>-	req-&gt;vcard = g_strdup (vcard);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_remove_card (PASBook *book, const char *id)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req     = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op = RemoveCard;</div><div class='del'>-	req-&gt;id = g_strdup (id);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_modify_card (PASBook *book, const char *vcard)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req        = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op    = ModifyCard;</div><div class='del'>-	req-&gt;vcard = g_strdup (vcard);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_get_cursor (PASBook *book, const char *search)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req         = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op     = GetCursor;</div><div class='del'>-	req-&gt;search = g_strdup(search);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_get_vcard (PASBook *book, const char *id)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req     = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op = GetVCard;</div><div class='del'>-	req-&gt;id = g_strdup(id);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_authenticate_user (PASBook *book,</div><div class='del'>-				  const char *user, const char *passwd)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req         = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op     = AuthenticateUser;</div><div class='del'>-	req-&gt;user   = g_strdup(user);</div><div class='del'>-	req-&gt;passwd = g_strdup(passwd);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_get_supported_fields (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req     = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op = GetSupportedFields;</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_get_book_view (PASBook *book, const GNOME_Evolution_Addressbook_BookViewListener listener, const char *search)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	req           = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op       = GetBookView;</div><div class='del'>-	req-&gt;search   = g_strdup(search);</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	req-&gt;listener = bonobo_object_dup_ref(listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_queue_get_book_view: Exception "</div><div class='del'>-			   "duplicating BookViewListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_get_changes (PASBook *book, const GNOME_Evolution_Addressbook_BookViewListener listener, const char *change_id)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	req           = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op       = GetChanges;</div><div class='del'>-	req-&gt;change_id= g_strdup(change_id);</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	req-&gt;listener = bonobo_object_dup_ref(listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_queue_get_changes: Exception "</div><div class='del'>-			   "duplicating BookViewListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_queue_check_connection (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	req        = g_new0 (PASRequest, 1);</div><div class='del'>-	req-&gt;op    = CheckConnection;</div><div class='del'>-</div><div class='del'>-	pas_book_queue_request (book, req);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_getVCard (PortableServer_Servant servant,</div><div class='del'>-						const GNOME_Evolution_Addressbook_CardId id,</div><div class='del'>-						CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_get_vcard (book, id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_authenticateUser (PortableServer_Servant servant,</div><div class='del'>-							const char* user,</div><div class='del'>-							const char* passwd,</div><div class='del'>-							CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_authenticate_user (book, user, passwd);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_addCard (PortableServer_Servant servant,</div><div class='del'>-				 const GNOME_Evolution_Addressbook_VCard vcard,</div><div class='del'>-				 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_create_card (book, (const char *) vcard);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_removeCard (PortableServer_Servant servant,</div><div class='del'>-				 const GNOME_Evolution_Addressbook_CardId id,</div><div class='del'>-				 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_remove_card (book, (const char *) id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_modifyCard (PortableServer_Servant servant,</div><div class='del'>-				 const GNOME_Evolution_Addressbook_VCard vcard,</div><div class='del'>-				 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_modify_card (book, (const char *) vcard);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_getCursor (PortableServer_Servant servant,</div><div class='del'>-				const CORBA_char *search,</div><div class='del'>-				CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_get_cursor (book, search);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_getBookView (PortableServer_Servant servant,</div><div class='del'>-				   const GNOME_Evolution_Addressbook_BookViewListener listener,</div><div class='del'>-				   const CORBA_char *search,</div><div class='del'>-				   CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_get_book_view (book, listener, search);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_getChanges (PortableServer_Servant servant,</div><div class='del'>-				 const GNOME_Evolution_Addressbook_BookViewListener listener,</div><div class='del'>-				 const CORBA_char *change_id,</div><div class='del'>-				 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_get_changes (book, listener, change_id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_checkConnection (PortableServer_Servant servant,</div><div class='del'>-				      CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_check_connection (book);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_getStaticCapabilities (PortableServer_Servant servant,</div><div class='del'>-					     CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-	char *temp;</div><div class='del'>-	char *ret_val;</div><div class='del'>-</div><div class='del'>-	temp = pas_backend_get_static_capabilities (book-&gt;priv-&gt;backend);</div><div class='del'>-	ret_val = CORBA_string_dup(temp);</div><div class='del'>-	g_free(temp);</div><div class='del'>-	return ret_val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_GNOME_Evolution_Addressbook_Book_getSupportedFields (PortableServer_Servant servant,</div><div class='del'>-							  CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));</div><div class='del'>-</div><div class='del'>-	pas_book_queue_get_supported_fields (book);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_get_backend:</div><div class='del'>- */</div><div class='del'>-PASBackend *</div><div class='del'>-pas_book_get_backend (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (book != NULL,       NULL);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BOOK (book), NULL);</div><div class='del'>-</div><div class='del'>-	return book-&gt;priv-&gt;backend;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_get_listener:</div><div class='del'>- */</div><div class='del'>-GNOME_Evolution_Addressbook_BookListener</div><div class='del'>-pas_book_get_listener (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (book != NULL,       CORBA_OBJECT_NIL);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BOOK (book), CORBA_OBJECT_NIL);</div><div class='del'>-</div><div class='del'>-	return book-&gt;priv-&gt;listener;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_check_pending</div><div class='del'>- */</div><div class='del'>-gint</div><div class='del'>-pas_book_check_pending (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (book != NULL,       -1);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BOOK (book), -1);</div><div class='del'>-</div><div class='del'>-	return g_list_length (book-&gt;priv-&gt;request_queue);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_pop_request:</div><div class='del'>- */</div><div class='del'>-PASRequest *</div><div class='del'>-pas_book_pop_request (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	GList      *popped;</div><div class='del'>-	PASRequest *req;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book != NULL,       NULL);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_BOOK (book), NULL);</div><div class='del'>-</div><div class='del'>-	if (book-&gt;priv-&gt;request_queue == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	req = book-&gt;priv-&gt;request_queue-&gt;data;</div><div class='del'>-</div><div class='del'>-	popped = book-&gt;priv-&gt;request_queue;</div><div class='del'>-	book-&gt;priv-&gt;request_queue =</div><div class='del'>-		g_list_remove_link (book-&gt;priv-&gt;request_queue, popped);</div><div class='del'>-</div><div class='del'>-	g_list_free_1 (popped);</div><div class='del'>-</div><div class='del'>-	return req;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_open:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_open (PASBook                           *book,</div><div class='del'>-		       GNOME_Evolution_Addressbook_BookListener_CallStatus  status)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (status == GNOME_Evolution_Addressbook_BookListener_Success) {</div><div class='del'>-		GNOME_Evolution_Addressbook_BookListener_notifyBookOpened (</div><div class='del'>-			book-&gt;priv-&gt;listener, status,</div><div class='del'>-			bonobo_object_corba_objref (BONOBO_OBJECT (book)),</div><div class='del'>-			&amp;ev);</div><div class='del'>-	} else {</div><div class='del'>-		GNOME_Evolution_Addressbook_BookListener_notifyBookOpened (</div><div class='del'>-			book-&gt;priv-&gt;listener, status,</div><div class='del'>-			CORBA_OBJECT_NIL, &amp;ev);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_open: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_create:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_create (PASBook                           *book,</div><div class='del'>-			 GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-			 const char                        *id)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyCardCreated (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, (char *)id, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_create: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_remove:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_remove (PASBook                           *book,</div><div class='del'>-			 GNOME_Evolution_Addressbook_BookListener_CallStatus  status)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyCardRemoved (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_remove: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_modify:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_modify (PASBook                           *book,</div><div class='del'>-			 GNOME_Evolution_Addressbook_BookListener_CallStatus  status)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyCardModified (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_modify: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_authenticate_user:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_authenticate_user (PASBook                           *book,</div><div class='del'>-				    GNOME_Evolution_Addressbook_BookListener_CallStatus  status)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyAuthenticationResult (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_authenticate_user: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-pas_book_respond_get_supported_fields (PASBook *book,</div><div class='del'>-				       GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-				       EList   *fields)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	GNOME_Evolution_Addressbook_stringlist stringlist;</div><div class='del'>-	int num_fields;</div><div class='del'>-	EIterator *iter;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	num_fields = e_list_length (fields);</div><div class='del'>-</div><div class='del'>-	stringlist._buffer = CORBA_sequence_CORBA_string_allocbuf (num_fields);</div><div class='del'>-	stringlist._maximum = num_fields;</div><div class='del'>-	stringlist._length = num_fields;</div><div class='del'>-</div><div class='del'>-	iter = e_list_get_iterator (fields);</div><div class='del'>-</div><div class='del'>-	for (i = 0; e_iterator_is_valid (iter); e_iterator_next (iter), i ++) {</div><div class='del'>-		stringlist._buffer[i] = CORBA_string_dup (e_iterator_get(iter));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (fields));</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifySupportedFields (</div><div class='del'>-			book-&gt;priv-&gt;listener, status,</div><div class='del'>-			&amp;stringlist,</div><div class='del'>-			&amp;ev);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	CORBA_free(stringlist._buffer);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_get_cursor:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_get_cursor (PASBook                           *book,</div><div class='del'>-			     GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-			     PASCardCursor                     *cursor)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	CORBA_Object      object;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	</div><div class='del'>-	object = bonobo_object_corba_objref(BONOBO_OBJECT(cursor));</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyCursorRequested (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, object, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_get_cursor: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_get_book_view:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_get_book_view (PASBook                           *book,</div><div class='del'>-				GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-				PASBookView                       *book_view)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	CORBA_Object      object;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	</div><div class='del'>-	object = bonobo_object_corba_objref(BONOBO_OBJECT(book_view));</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyViewRequested (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, object, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_get_book_view: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_get_changes:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_get_vcard (PASBook                           *book,</div><div class='del'>-			    GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-			    char                              *vcard)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyCardRequested (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, vcard, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_get_card: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_respond_get_changes:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_respond_get_changes (PASBook                           *book,</div><div class='del'>-			      GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-			      PASBookView                       *book_view)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	CORBA_Object      object;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	</div><div class='del'>-	object = bonobo_object_corba_objref(BONOBO_OBJECT(book_view));</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyChangesRequested (</div><div class='del'>-		book-&gt;priv-&gt;listener, status, object, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_respond_get_changes: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_report_connection:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_report_connection (PASBook  *book,</div><div class='del'>-			    gboolean  connected)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyConnectionStatus (</div><div class='del'>-		book-&gt;priv-&gt;listener, (CORBA_boolean) connected, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_report_connection: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_report_writable:</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-pas_book_report_writable (PASBook                           *book,</div><div class='del'>-			  gboolean                           writable)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Addressbook_BookListener_notifyWritable (</div><div class='del'>-		book-&gt;priv-&gt;listener, (CORBA_boolean) writable, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("pas_book_report_writable: Exception "</div><div class='del'>-			   "responding to BookListener!\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-pas_book_construct (PASBook                *book,</div><div class='del'>-		    PASBackend             *backend,</div><div class='del'>-		    GNOME_Evolution_Addressbook_BookListener  listener)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_Book *servant;</div><div class='del'>-	CORBA_Environment   ev;</div><div class='del'>-	CORBA_Object        obj;</div><div class='del'>-</div><div class='del'>-	g_assert (book      != NULL);</div><div class='del'>-	g_assert (PAS_IS_BOOK (book));</div><div class='del'>-	g_assert (listener  != CORBA_OBJECT_NIL);</div><div class='del'>-</div><div class='del'>-	servant = (POA_GNOME_Evolution_Addressbook_Book *) g_new0 (BonoboObjectServant, 1);</div><div class='del'>-	servant-&gt;vepv = &amp;pas_book_vepv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_Book__init ((PortableServer_Servant) servant, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	obj = bonobo_object_activate_servant (BONOBO_OBJECT (book), servant);</div><div class='del'>-	if (obj == CORBA_OBJECT_NIL) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	bonobo_object_construct (BONOBO_OBJECT (book), obj);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	book-&gt;priv-&gt;listener = CORBA_Object_duplicate (listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION)</div><div class='del'>-		g_message ("pas_book_construct(): could not duplicate the listener");</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	book-&gt;priv-&gt;listener  = listener;</div><div class='del'>-	book-&gt;priv-&gt;backend   = backend;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_new:</div><div class='del'>- */</div><div class='del'>-PASBook *</div><div class='del'>-pas_book_new (PASBackend             *backend,</div><div class='del'>-	      GNOME_Evolution_Addressbook_BookListener  listener)</div><div class='del'>-{</div><div class='del'>-	PASBook *book;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (listener  != CORBA_OBJECT_NIL, NULL);</div><div class='del'>-</div><div class='del'>-	book = gtk_type_new (pas_book_get_type ());</div><div class='del'>-</div><div class='del'>-	if (! pas_book_construct (book, backend, listener)) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return book;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	PASBook *book = PAS_BOOK (object);</div><div class='del'>-	GList   *l;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	for (l = book-&gt;priv-&gt;request_queue; l != NULL; l = l-&gt;next) {</div><div class='del'>-		PASRequest *req = l-&gt;data;</div><div class='del'>-</div><div class='del'>-		g_free (req-&gt;id);</div><div class='del'>-		g_free (req-&gt;vcard);</div><div class='del'>-		g_free (req);</div><div class='del'>-	}</div><div class='del'>-	g_list_free (book-&gt;priv-&gt;request_queue);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	CORBA_Object_release (book-&gt;priv-&gt;listener, &amp;ev);</div><div class='del'>-</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION)</div><div class='del'>-		g_message ("pas_book_construct(): could not release the listener");</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	g_free (book-&gt;priv);</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (pas_book_parent_class)-&gt;destroy (object);	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static POA_GNOME_Evolution_Addressbook_Book__epv *</div><div class='del'>-pas_book_get_epv (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_Book__epv *epv;</div><div class='del'>-</div><div class='del'>-	epv = g_new0 (POA_GNOME_Evolution_Addressbook_Book__epv, 1);</div><div class='del'>-</div><div class='del'>-	epv-&gt;getVCard              = impl_GNOME_Evolution_Addressbook_Book_getVCard;</div><div class='del'>-	epv-&gt;authenticateUser      = impl_GNOME_Evolution_Addressbook_Book_authenticateUser;</div><div class='del'>-	epv-&gt;addCard               = impl_GNOME_Evolution_Addressbook_Book_addCard;</div><div class='del'>-	epv-&gt;removeCard            = impl_GNOME_Evolution_Addressbook_Book_removeCard;</div><div class='del'>-	epv-&gt;modifyCard            = impl_GNOME_Evolution_Addressbook_Book_modifyCard;</div><div class='del'>-	epv-&gt;checkConnection       = impl_GNOME_Evolution_Addressbook_Book_checkConnection;</div><div class='del'>-	epv-&gt;getStaticCapabilities = impl_GNOME_Evolution_Addressbook_Book_getStaticCapabilities;</div><div class='del'>-	epv-&gt;getSupportedFields    = impl_GNOME_Evolution_Addressbook_Book_getSupportedFields;</div><div class='del'>-	epv-&gt;getCursor             = impl_GNOME_Evolution_Addressbook_Book_getCursor;</div><div class='del'>-	epv-&gt;getBookView           = impl_GNOME_Evolution_Addressbook_Book_getBookView;</div><div class='del'>-	epv-&gt;getChanges            = impl_GNOME_Evolution_Addressbook_Book_getChanges;</div><div class='del'>-</div><div class='del'>-	return epv;</div><div class='del'>-	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_corba_class_init (void)</div><div class='del'>-{</div><div class='del'>-	pas_book_vepv.Bonobo_Unknown_epv  = bonobo_object_get_epv ();</div><div class='del'>-	pas_book_vepv.GNOME_Evolution_Addressbook_Book_epv = pas_book_get_epv ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_class_init (PASBookClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	pas_book_parent_class = gtk_type_class (bonobo_object_get_type ());</div><div class='del'>-</div><div class='del'>-	pas_book_signals [REQUESTS_QUEUED] =</div><div class='del'>-		gtk_signal_new ("requests_queued",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (PASBookClass, requests_queued),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, pas_book_signals, LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = pas_book_destroy;</div><div class='del'>-</div><div class='del'>-	pas_book_corba_class_init ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_book_init (PASBook *book)</div><div class='del'>-{</div><div class='del'>-	book-&gt;priv                = g_new0 (PASBookPrivate, 1);</div><div class='del'>-	book-&gt;priv-&gt;idle_id       = 0;</div><div class='del'>-	book-&gt;priv-&gt;request_queue = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * pas_book_get_type:</div><div class='del'>- */</div><div class='del'>-GtkType</div><div class='del'>-pas_book_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (! type) {</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASBook",</div><div class='del'>-			sizeof (PASBook),</div><div class='del'>-			sizeof (PASBookClass),</div><div class='del'>-			(GtkClassInitFunc)  pas_book_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_book_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (bonobo_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/backend/pas/pas-book.h b/addressbook/backend/pas/pas-book.h<br/>deleted file mode 100644<br/>index 6f5832d914..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-book.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-book.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,114 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * A wrapper object which exports the GNOME_Evolution_Addressbook_Book CORBA interface</div><div class='del'>- * and which maintains a request queue.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_BOOK_H__</div><div class='del'>-#define __PAS_BOOK_H__</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;pas/addressbook.h&gt;</div><div class='del'>-#include &lt;pas/pas-book-view.h&gt;</div><div class='del'>-#include "e-util/e-list.h"</div><div class='del'>-</div><div class='del'>-typedef struct _PASBook        PASBook;</div><div class='del'>-typedef struct _PASBookPrivate PASBookPrivate;</div><div class='del'>-</div><div class='del'>-#include &lt;pas/pas-backend.h&gt;</div><div class='del'>-#include &lt;pas/pas-card-cursor.h&gt;</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	CreateCard,</div><div class='del'>-	RemoveCard,</div><div class='del'>-	ModifyCard,</div><div class='del'>-	GetVCard,</div><div class='del'>-	GetCursor,</div><div class='del'>-	GetBookView,</div><div class='del'>-	GetChanges,</div><div class='del'>-	CheckConnection,</div><div class='del'>-	AuthenticateUser,</div><div class='del'>-	GetSupportedFields</div><div class='del'>-} PASOperation;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	PASOperation               op;</div><div class='del'>-	char                      *id;</div><div class='del'>-	char                      *vcard;</div><div class='del'>-	char                      *search;</div><div class='del'>-	char                      *change_id;</div><div class='del'>-	char                      *user;</div><div class='del'>-        char                      *passwd;</div><div class='del'>-	GNOME_Evolution_Addressbook_BookViewListener listener;</div><div class='del'>-	GNOME_Evolution_Addressbook_stringlist fields;</div><div class='del'>-} PASRequest;</div><div class='del'>-</div><div class='del'>-struct _PASBook {</div><div class='del'>-	BonoboObject     parent_object;</div><div class='del'>-	PASBookPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	BonoboObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	/* Signals */</div><div class='del'>-	void (*requests_queued) (void);</div><div class='del'>-} PASBookClass;</div><div class='del'>-</div><div class='del'>-typedef gboolean (*PASBookCanWriteFn)     (PASBook *book);</div><div class='del'>-typedef gboolean (*PASBookCanWriteCardFn) (PASBook *book, const char *id);</div><div class='del'>-</div><div class='del'>-PASBook                *pas_book_new                    (PASBackend                        *backend,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener             listener);</div><div class='del'>-PASBackend             *pas_book_get_backend            (PASBook                           *book);</div><div class='del'>-GNOME_Evolution_Addressbook_BookListener  pas_book_get_listener           (PASBook                           *book);</div><div class='del'>-int                     pas_book_check_pending          (PASBook                           *book);</div><div class='del'>-PASRequest             *pas_book_pop_request            (PASBook                           *book);</div><div class='del'>-void                    pas_book_respond_open           (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status);</div><div class='del'>-void                    pas_book_respond_create         (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-							 const char                        *id);</div><div class='del'>-void                    pas_book_respond_remove         (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status);</div><div class='del'>-void                    pas_book_respond_modify         (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status);</div><div class='del'>-void                    pas_book_respond_authenticate_user (PASBook                           *book,</div><div class='del'>-							    GNOME_Evolution_Addressbook_BookListener_CallStatus  status);</div><div class='del'>-void                    pas_book_respond_get_supported_fields (PASBook *book,</div><div class='del'>-							       GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-							       EList   *fields);</div><div class='del'>-</div><div class='del'>-void                    pas_book_respond_get_cursor     (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-							 PASCardCursor                     *cursor);</div><div class='del'>-void                    pas_book_respond_get_book_view  (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-							 PASBookView                       *book_view);</div><div class='del'>-void                    pas_book_respond_get_vcard      (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-							 char                              *vcard);</div><div class='del'>-void                    pas_book_respond_get_changes    (PASBook                           *book,</div><div class='del'>-							 GNOME_Evolution_Addressbook_BookListener_CallStatus  status,</div><div class='del'>-							 PASBookView                       *book_view);</div><div class='del'>-void                    pas_book_report_connection      (PASBook                           *book,</div><div class='del'>-							 gboolean                           connected);</div><div class='del'>-</div><div class='del'>-void                    pas_book_report_writable        (PASBook                           *book,</div><div class='del'>-							 gboolean                           writable);</div><div class='del'>-</div><div class='del'>-GtkType                 pas_book_get_type               (void);</div><div class='del'>-</div><div class='del'>-#define PAS_BOOK_TYPE        (pas_book_get_type ())</div><div class='del'>-#define PAS_BOOK(o)          (GTK_CHECK_CAST ((o), PAS_BOOK_TYPE, PASBook))</div><div class='del'>-#define PAS_BOOK_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_BOOK_FACTORY_TYPE, PASBookClass))</div><div class='del'>-#define PAS_IS_BOOK(o)       (GTK_CHECK_TYPE ((o), PAS_BOOK_TYPE))</div><div class='del'>-#define PAS_IS_BOOK_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BOOK_TYPE))</div><div class='del'>-</div><div class='del'>-#endif /* ! __PAS_BOOK_H__ */</div><div class='head'>diff --git a/addressbook/backend/pas/pas-card-cursor.c b/addressbook/backend/pas/pas-card-cursor.c<br/>deleted file mode 100644<br/>index 572f63f46e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-card-cursor.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-card-cursor.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,226 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * pas-card-cursor.c: Implements card cursors.</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Christopher James Lahey &lt;clahey@ximian.com.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "pas-card-cursor.h"</div><div class='del'>-</div><div class='del'>-struct _PASCardCursorPrivate {</div><div class='del'>-	long     (*get_length) (PASCardCursor *cursor, gpointer data);</div><div class='del'>-	char *   (*get_nth)    (PASCardCursor *cursor, long n, gpointer data);</div><div class='del'>-	gpointer   data;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * A pointer to our parent object class</div><div class='del'>- */</div><div class='del'>-static BonoboObjectClass *parent_class;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The VEPV for the CardCursor object</div><div class='del'>- */</div><div class='del'>-static POA_GNOME_Evolution_Addressbook_CardCursor__vepv cursor_vepv;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Implemented GtkObject::destroy</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-pas_card_cursor_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	PASCardCursor *cursor = PAS_CARD_CURSOR (object);</div><div class='del'>-</div><div class='del'>-	if ( cursor-&gt;priv )</div><div class='del'>-		g_free ( cursor-&gt;priv );</div><div class='del'>-</div><div class='del'>-	GTK_OBJECT_CLASS (parent_class)-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * CORBA Demo::Echo::echo method implementation</div><div class='del'>- */</div><div class='del'>-static CORBA_long</div><div class='del'>-impl_pas_card_cursor_get_length (PortableServer_Servant  servant,</div><div class='del'>-			       CORBA_Environment      *ev)</div><div class='del'>-{</div><div class='del'>-	PASCardCursor *cursor = PAS_CARD_CURSOR (bonobo_object_from_servant (servant));</div><div class='del'>-	if ( cursor-&gt;priv-&gt;get_length )</div><div class='del'>-		return cursor-&gt;priv-&gt;get_length( cursor, cursor-&gt;priv-&gt;data );</div><div class='del'>-	else</div><div class='del'>-		return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * CORBA Demo::Echo::echo method implementation</div><div class='del'>- */</div><div class='del'>-static char *</div><div class='del'>-impl_pas_card_cursor_get_nth (PortableServer_Servant  servant,</div><div class='del'>-			    const CORBA_long        n,</div><div class='del'>-			    CORBA_Environment      *ev)</div><div class='del'>-{</div><div class='del'>-	PASCardCursor *cursor = PAS_CARD_CURSOR (bonobo_object_from_servant (servant));</div><div class='del'>-	if ( cursor-&gt;priv-&gt;get_nth ) {</div><div class='del'>-		char *vcard = cursor-&gt;priv-&gt;get_nth( cursor, n, cursor-&gt;priv-&gt;data );</div><div class='del'>-		char *retval = CORBA_string_dup (vcard);</div><div class='del'>-		g_free (vcard);</div><div class='del'>-		return retval;</div><div class='del'>-	} else</div><div class='del'>-		return CORBA_string_dup ("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * If you want users to derive classes from your implementation</div><div class='del'>- * you need to support this method.</div><div class='del'>- */</div><div class='del'>-POA_GNOME_Evolution_Addressbook_CardCursor__epv *</div><div class='del'>-pas_card_cursor_get_epv (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_CardCursor__epv *epv;</div><div class='del'>-</div><div class='del'>-	epv = g_new0 (POA_GNOME_Evolution_Addressbook_CardCursor__epv, 1);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * This is the method invoked by CORBA</div><div class='del'>-	 */</div><div class='del'>-	epv-&gt;count  = impl_pas_card_cursor_get_length;</div><div class='del'>-	epv-&gt;getNth = impl_pas_card_cursor_get_nth;</div><div class='del'>-</div><div class='del'>-	return epv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_pas_card_cursor_corba_class (void)</div><div class='del'>-{</div><div class='del'>-	cursor_vepv.Bonobo_Unknown_epv       = bonobo_object_get_epv ();</div><div class='del'>-	cursor_vepv.GNOME_Evolution_Addressbook_CardCursor_epv = pas_card_cursor_get_epv ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_card_cursor_class_init (PASCardCursorClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class (bonobo_object_get_type ());</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = pas_card_cursor_destroy;</div><div class='del'>-</div><div class='del'>-	init_pas_card_cursor_corba_class ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-pas_card_cursor_init (PASCardCursor *cursor)</div><div class='del'>-{</div><div class='del'>-	cursor-&gt;priv = g_new(PASCardCursorPrivate, 1);</div><div class='del'>-	cursor-&gt;priv-&gt;get_length = NULL;</div><div class='del'>-	cursor-&gt;priv-&gt;get_nth = NULL;</div><div class='del'>-	cursor-&gt;priv-&gt;data = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-pas_card_cursor_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (!type){</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"PASCardCursor",</div><div class='del'>-			sizeof (PASCardCursor),</div><div class='del'>-			sizeof (PASCardCursorClass),</div><div class='del'>-			(GtkClassInitFunc) pas_card_cursor_class_init,</div><div class='del'>-			(GtkObjectInitFunc) pas_card_cursor_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (bonobo_object_get_type (), &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-PASCardCursor *</div><div class='del'>-pas_card_cursor_construct (PASCardCursor           *cursor,</div><div class='del'>-			   GNOME_Evolution_Addressbook_CardCursor     corba_cursor,</div><div class='del'>-			   PASCardCursorLengthFunc  get_length,</div><div class='del'>-			   PASCardCursorNthFunc     get_nth,</div><div class='del'>-			   gpointer data)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (cursor != NULL, NULL);</div><div class='del'>-	g_return_val_if_fail (PAS_IS_CARD_CURSOR (cursor), NULL);</div><div class='del'>-	g_return_val_if_fail (corba_cursor != CORBA_OBJECT_NIL, NULL);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Call parent constructor</div><div class='del'>-	 */</div><div class='del'>-	if (!bonobo_object_construct (BONOBO_OBJECT (cursor), (CORBA_Object) corba_cursor))</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Initialize cursor</div><div class='del'>-	 */</div><div class='del'>-	cursor-&gt;priv-&gt;get_length = get_length;</div><div class='del'>-	cursor-&gt;priv-&gt;get_nth = get_nth;</div><div class='del'>-	cursor-&gt;priv-&gt;data = data;</div><div class='del'>-	</div><div class='del'>-	/*</div><div class='del'>-	 * Success: return the GtkType we were given</div><div class='del'>-	 */</div><div class='del'>-	return cursor;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This routine creates the ORBit CORBA server and initializes the</div><div class='del'>- * CORBA side of things</div><div class='del'>- */</div><div class='del'>-static GNOME_Evolution_Addressbook_CardCursor</div><div class='del'>-create_cursor (BonoboObject *cursor)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_CardCursor *servant;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	servant = (POA_GNOME_Evolution_Addressbook_CardCursor *) g_new0 (BonoboObjectServant, 1);</div><div class='del'>-	servant-&gt;vepv = &amp;cursor_vepv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_CardCursor__init ((PortableServer_Servant) servant, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION){</div><div class='del'>-		g_free (servant);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return CORBA_OBJECT_NIL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Activates the CORBA object.</div><div class='del'>-	 */</div><div class='del'>-	return (GNOME_Evolution_Addressbook_CardCursor) bonobo_object_activate_servant (cursor, servant);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-PASCardCursor *</div><div class='del'>-pas_card_cursor_new (PASCardCursorLengthFunc  get_length,</div><div class='del'>-		     PASCardCursorNthFunc     get_nth,</div><div class='del'>-		     gpointer data)</div><div class='del'>-{</div><div class='del'>-	PASCardCursor *cursor;</div><div class='del'>-	GNOME_Evolution_Addressbook_CardCursor corba_cursor;</div><div class='del'>-</div><div class='del'>-	cursor = gtk_type_new (pas_card_cursor_get_type ());</div><div class='del'>-	corba_cursor = create_cursor (BONOBO_OBJECT (cursor));</div><div class='del'>-</div><div class='del'>-	if (corba_cursor == CORBA_OBJECT_NIL){</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (cursor));</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return pas_card_cursor_construct (cursor,</div><div class='del'>-					  corba_cursor,</div><div class='del'>-					  get_length,</div><div class='del'>-					  get_nth,</div><div class='del'>-					  data);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/backend/pas/pas-card-cursor.h b/addressbook/backend/pas/pas-card-cursor.h<br/>deleted file mode 100644<br/>index 70ecb5e718..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/backend/pas/pas-card-cursor.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/backend/pas/pas-card-cursor.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,58 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@ximian.com)</div><div class='del'>- *</div><div class='del'>- * Copyright 2000, Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __PAS_CARD_CURSOR_H__</div><div class='del'>-#define __PAS_CARD_CURSOR_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-#include &lt;pas/addressbook.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-typedef struct _PASCardCursor        PASCardCursor;</div><div class='del'>-typedef struct _PASCardCursorPrivate PASCardCursorPrivate;</div><div class='del'>-typedef struct _PASCardCursorClass   PASCardCursorClass;</div><div class='del'>-</div><div class='del'>-typedef long (*PASCardCursorLengthFunc) (PASCardCursor *cursor, gpointer data);</div><div class='del'>-typedef char * (*PASCardCursorNthFunc) (PASCardCursor *cursor, long n, gpointer data);</div><div class='del'>-</div><div class='del'>-struct _PASCardCursor {</div><div class='del'>-	BonoboObject     parent;</div><div class='del'>-	PASCardCursorPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _PASCardCursorClass {</div><div class='del'>-	BonoboObjectClass parent;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Creating a new addressbook. */</div><div class='del'>-PASCardCursor *pas_card_cursor_new       (PASCardCursorLengthFunc  get_length,</div><div class='del'>-				          PASCardCursorNthFunc     get_nth,</div><div class='del'>-					  gpointer data);</div><div class='del'>-PASCardCursor *pas_card_cursor_construct (PASCardCursor           *cursor,</div><div class='del'>-					  GNOME_Evolution_Addressbook_CardCursor     corba_cursor,</div><div class='del'>-					  PASCardCursorLengthFunc  get_length,</div><div class='del'>-					  PASCardCursorNthFunc     get_nth,</div><div class='del'>-					  gpointer data);</div><div class='del'>-</div><div class='del'>-GtkType        pas_card_cursor_get_type  (void);</div><div class='del'>-POA_GNOME_Evolution_Addressbook_CardCursor__epv *</div><div class='del'>-               pas_card_cursor_get_epv   (void);</div><div class='del'>-</div><div class='del'>-/* Fetching cards. */</div><div class='del'>-#define PAS_CARD_CURSOR_TYPE        (pas_card_cursor_get_type ())</div><div class='del'>-#define PAS_CARD_CURSOR(o)          (GTK_CHECK_CAST ((o), PAS_CARD_CURSOR_TYPE, PASCardCursor))</div><div class='del'>-#define PAS_CARD_CURSOR_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), PAS_CARD_CURSOR_TYPE, PASCardCursorClass))</div><div class='del'>-#define PAS_IS_CARD_CURSOR(o)       (GTK_CHECK_TYPE ((o), PAS_CARD_CURSOR_TYPE))</div><div class='del'>-#define PAS_IS_CARD_CURSOR_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_CARD_CURSOR_TYPE))</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* ! __PAS_CARD_CURSOR_H__ */</div><div class='head'>diff --git a/addressbook/conduit/.cvsignore b/addressbook/conduit/.cvsignore<br/>deleted file mode 100644<br/>index 87b35d3be5..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/conduit/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/conduit/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-*.lo</div><div class='del'>-Makefile.in</div><div class='del'>-Makefile</div><div class='del'>-libeaddress_conduit.la</div><div class='del'>-e-address-conduit-control-applet</div><div class='del'>-e-address-conduit-control-applet.desktop</div><div class='del'>-e-address.conduit</div><div class='head'>diff --git a/addressbook/conduit/Makefile.am b/addressbook/conduit/Makefile.am<br/>deleted file mode 100644<br/>index d382736b46..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/conduit/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/conduit/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,50 +0,0 @@</div><div class='del'>-INCLUDES = 					\</div><div class='del'>-	-I$(top_srcdir)				\</div><div class='del'>-	-I$(top_srcdir)/addressbook		\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend	\</div><div class='del'>-	-I$(top_srcdir)/e-util			\</div><div class='del'>-	-I$(top_builddir)/e-util		\</div><div class='del'>-	$(PISOCK_CFLAGS)			\</div><div class='del'>-	$(GNOME_PILOT_CFLAGS)			\</div><div class='del'>-	$(BONOBO_GNOME_CFLAGS)			\</div><div class='del'>-	-DCAMEL_PROVIDERDIR=\""$(providerdir)"\"</div><div class='del'>-</div><div class='del'>-# Address Conduit</div><div class='del'>-e_address_conduitsdir=$(libdir)/gnome-pilot/conduits</div><div class='del'>-e_address_conduits_LTLIBRARIES = libeaddress_conduit.la</div><div class='del'>-</div><div class='del'>-libeaddress_conduit_la_SOURCES = \</div><div class='del'>-	address-conduit.c \</div><div class='del'>-	address-conduit.h \</div><div class='del'>-	address-conduit-config.h</div><div class='del'>-</div><div class='del'>-libeaddress_conduit_la_LDFLAGS = -module -avoid-version</div><div class='del'>-libeaddress_conduit_la_LIBADD = 					\</div><div class='del'>-	$(top_builddir)/addressbook/backend/ebook/libebook-static.la	\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename-static.la			\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la				\</div><div class='del'>-	$(top_builddir)/e-util/libeconduit-static.la	 		\</div><div class='del'>-	$(top_builddir)/camel/libcamel-static.la	 		\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la				\</div><div class='del'>-	$(PISOCK_LIBS) 							\</div><div class='del'>-	$(GNOME_PILOT_LIBS) 						\</div><div class='del'>-	$(BONOBO_CONF_LIBS)						\</div><div class='del'>-	$(BONOBO_GNOME_LIBS)						\</div><div class='del'>-	$(GNOME_LIBDIR) 						\</div><div class='del'>-	$(GNOME_LIBS)</div><div class='del'>-</div><div class='del'>-e-address.conduit: e-address.conduit.in Makefile</div><div class='del'>-	sed -e 's^\@prefix\@^$(prefix)^g' 				\</div><div class='del'>-	    -e 's^\@datadir\@^$(datadir)^g' 				\</div><div class='del'>-	    &lt; $(srcdir)/e-address.conduit.in &gt; e-address.conduit.tmp 	\</div><div class='del'>-	&amp;&amp; mv e-address.conduit.tmp e-address.conduit</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Conduitdir = $(datadir)/gnome-pilot/conduits/</div><div class='del'>-Conduit_DATA = e-address.conduit</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = \</div><div class='del'>-	e-address.conduit.in</div><div class='del'>-</div><div class='del'>-install-data-local:</div><div class='del'>-	$(mkinstalldirs) $(Conduitdir)</div><div class='head'>diff --git a/addressbook/conduit/address-conduit-config.h b/addressbook/conduit/address-conduit-config.h<br/>deleted file mode 100644<br/>index d227bbc6d4..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/conduit/address-conduit-config.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/conduit/address-conduit-config.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,114 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* Evolution calendar - Addressbook Conduit Configuration</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 1998 Free Software Foundation</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Authors: Eskil Heyn Olsen &lt;deity@eskil.dk&gt; </div><div class='del'>- *          JP Rosevear &lt;jpr@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or modify</div><div class='del'>- * it under the terms of the GNU General Public License as published by</div><div class='del'>- * the Free Software Foundation; either version 2 of the License, or</div><div class='del'>- * (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __ADDR_CONDUIT_CONFIG_H__</div><div class='del'>-#define __ADDR_CONDUIT_CONFIG_H__</div><div class='del'>-</div><div class='del'>-#include &lt;gnome.h&gt;</div><div class='del'>-#include &lt;libgpilotdCM/gnome-pilot-conduit-management.h&gt;</div><div class='del'>-#include &lt;gpilotd/gnome-pilot-conduit.h&gt;</div><div class='del'>-#include &lt;libgpilotdCM/gnome-pilot-conduit-config.h&gt;</div><div class='del'>-</div><div class='del'>-/* Configuration info */</div><div class='del'>-typedef struct _EAddrConduitCfg EAddrConduitCfg;</div><div class='del'>-struct _EAddrConduitCfg {</div><div class='del'>-	gboolean open_secret;</div><div class='del'>-	guint32 pilot_id;</div><div class='del'>-	GnomePilotConduitSyncType  sync_type;   /* only used by capplet */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#ifdef ADDR_CONFIG_LOAD</div><div class='del'>-/* Loads the configuration data */</div><div class='del'>-static void </div><div class='del'>-addrconduit_load_configuration (EAddrConduitCfg **c, guint32 pilot_id) </div><div class='del'>-{</div><div class='del'>-	gchar prefix[256];</div><div class='del'>-	g_snprintf (prefix, 255, "/gnome-pilot.d/e-address-conduit/Pilot_%u/",</div><div class='del'>-		    pilot_id);</div><div class='del'>-	</div><div class='del'>-	*c = g_new0 (EAddrConduitCfg,1);</div><div class='del'>-	g_assert (*c != NULL);</div><div class='del'>-</div><div class='del'>-	gnome_config_push_prefix (prefix);</div><div class='del'>-	(*c)-&gt;open_secret = gnome_config_get_bool ("open_secret=FALSE");</div><div class='del'>-</div><div class='del'>-        /* set in capplets main */</div><div class='del'>-	(*c)-&gt;sync_type = GnomePilotConduitSyncTypeCustom; </div><div class='del'>-	gnome_config_pop_prefix ();</div><div class='del'>-	</div><div class='del'>-	(*c)-&gt;pilot_id = pilot_id;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef ADDR_CONFIG_SAVE</div><div class='del'>-/* Saves the configuration data. */</div><div class='del'>-static void</div><div class='del'>-addrconduit_save_configuration (EAddrConduitCfg *c) </div><div class='del'>-{</div><div class='del'>-	gchar prefix[256];</div><div class='del'>-</div><div class='del'>-	g_snprintf (prefix, 255, "/gnome-pilot.d/e-address-conduit/Pilot_%u/",</div><div class='del'>-		    c-&gt;pilot_id);</div><div class='del'>-</div><div class='del'>-	gnome_config_push_prefix (prefix);</div><div class='del'>-	gnome_config_set_bool ("open_secret", c-&gt;open_secret);</div><div class='del'>-	gnome_config_pop_prefix ();</div><div class='del'>-</div><div class='del'>-	gnome_config_sync ();</div><div class='del'>-	gnome_config_drop_all ();</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef ADDR_CONFIG_DUPE</div><div class='del'>-/* Creates a duplicate of the configuration data */</div><div class='del'>-static EAddrConduitCfg*</div><div class='del'>-addrconduit_dupe_configuration (EAddrConduitCfg *c) </div><div class='del'>-{</div><div class='del'>-	EAddrConduitCfg *retval;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (c != NULL, NULL);</div><div class='del'>-</div><div class='del'>-	retval = g_new0 (EAddrConduitCfg, 1);</div><div class='del'>-	retval-&gt;sync_type = c-&gt;sync_type;</div><div class='del'>-	retval-&gt;open_secret = c-&gt;open_secret;</div><div class='del'>-	retval-&gt;pilot_id = c-&gt;pilot_id;</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef ADDR_CONFIG_DESTROY</div><div class='del'>-/* Destroy a configuration */</div><div class='del'>-static void </div><div class='del'>-addrconduit_destroy_configuration (EAddrConduitCfg **c) </div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (c != NULL);</div><div class='del'>-	g_return_if_fail (*c != NULL);</div><div class='del'>-</div><div class='del'>-	g_free (*c);</div><div class='del'>-	*c = NULL;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#endif /* __ADDR_CONDUIT_CONFIG_H__ */</div><div class='head'>diff --git a/addressbook/conduit/address-conduit.c b/addressbook/conduit/address-conduit.c<br/>deleted file mode 100644<br/>index bbc176c642..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/conduit/address-conduit.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/conduit/address-conduit.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1478 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* Evolution addressbook - Address Conduit</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 1998 Free Software Foundation</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Authors: Eskil Heyn Olsen &lt;deity@eskil.dk&gt; </div><div class='del'>- *          JP Rosevear &lt;jpr@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or modify</div><div class='del'>- * it under the terms of the GNU General Public License as published by</div><div class='del'>- * the Free Software Foundation; either version 2 of the License, or</div><div class='del'>- * (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-#include &lt;bonobo.h&gt;</div><div class='del'>-#include &lt;gnome-xml/parser.h&gt;</div><div class='del'>-#include &lt;pi-source.h&gt;</div><div class='del'>-#include &lt;pi-socket.h&gt;</div><div class='del'>-#include &lt;pi-file.h&gt;</div><div class='del'>-#include &lt;pi-dlp.h&gt;</div><div class='del'>-#include &lt;ebook/e-book.h&gt;</div><div class='del'>-#include &lt;ebook/e-card-types.h&gt;</div><div class='del'>-#include &lt;ebook/e-card-cursor.h&gt;</div><div class='del'>-#include &lt;ebook/e-card.h&gt;</div><div class='del'>-#include &lt;ebook/e-card-simple.h&gt;</div><div class='del'>-#include &lt;e-pilot-util.h&gt;</div><div class='del'>-</div><div class='del'>-#define ADDR_CONFIG_LOAD 1</div><div class='del'>-#define ADDR_CONFIG_DESTROY 1</div><div class='del'>-#include "address-conduit-config.h"</div><div class='del'>-#undef ADDR_CONFIG_LOAD</div><div class='del'>-#undef ADDR_CONFIG_DESTROY</div><div class='del'>-</div><div class='del'>-#include "address-conduit.h"</div><div class='del'>-</div><div class='del'>-GnomePilotConduit * conduit_get_gpilot_conduit (guint32);</div><div class='del'>-void conduit_destroy_gpilot_conduit (GnomePilotConduit*);</div><div class='del'>-</div><div class='del'>-#define CONDUIT_VERSION "0.1.2"</div><div class='del'>-#ifdef G_LOG_DOMAIN</div><div class='del'>-#undef G_LOG_DOMAIN</div><div class='del'>-#endif</div><div class='del'>-#define G_LOG_DOMAIN "eaddrconduit"</div><div class='del'>-</div><div class='del'>-#define DEBUG_CONDUIT 1</div><div class='del'>-/* #undef DEBUG_CONDUIT */</div><div class='del'>-</div><div class='del'>-#ifdef DEBUG_CONDUIT</div><div class='del'>-#define LOG(e...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, e)</div><div class='del'>-#else</div><div class='del'>-#define LOG(e...)</div><div class='del'>-#endif </div><div class='del'>-</div><div class='del'>-#define WARN(e...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, e)</div><div class='del'>-#define INFO(e...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, e)</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	EBookStatus status;</div><div class='del'>-	char *id;</div><div class='del'>-} CardObjectChangeStatus;</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	CARD_ADDED,</div><div class='del'>-	CARD_MODIFIED,</div><div class='del'>-	CARD_DELETED</div><div class='del'>-} CardObjectChangeType;</div><div class='del'>-</div><div class='del'>-typedef struct </div><div class='del'>-{</div><div class='del'>-	ECard *card;</div><div class='del'>-	CardObjectChangeType type;</div><div class='del'>-} CardObjectChange;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static ECardSimpleField priority [] = {</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_BUSINESS,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_HOME,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_FAX,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_EMAIL,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_PAGER,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_MOBILE,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_2,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_HOME_2,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_HOME_FAX,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_EMAIL_2,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_OTHER,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_PRIMARY,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_PHONE_OTHER_FAX,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_EMAIL_3,</div><div class='del'>-	E_CARD_SIMPLE_FIELD_LAST</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static char *priority_label [] = {</div><div class='del'>-	"Work",</div><div class='del'>-	"Home",</div><div class='del'>-	"Fax",</div><div class='del'>-	"E-mail",</div><div class='del'>-	"Pager",</div><div class='del'>-	"Mobile",</div><div class='del'>-	"Work",</div><div class='del'>-	"Home",</div><div class='del'>-	"Fax",</div><div class='del'>-	"E-mail",</div><div class='del'>-	"Other",</div><div class='del'>-	"Main",</div><div class='del'>-	"Fax",</div><div class='del'>-	"E-Mail",</div><div class='del'>-	NULL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* Debug routines */</div><div class='del'>-static char *</div><div class='del'>-print_local (EAddrLocalRecord *local)</div><div class='del'>-{</div><div class='del'>-	static char buff[ 4096 ];</div><div class='del'>-</div><div class='del'>-	if (local == NULL) {</div><div class='del'>-		sprintf (buff, "[NULL]");</div><div class='del'>-		return buff;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (local-&gt;addr) {</div><div class='del'>-		g_snprintf (buff, 4096, "['%s' '%s' '%s']",</div><div class='del'>-			    local-&gt;addr-&gt;entry[entryLastname] ?</div><div class='del'>-			    local-&gt;addr-&gt;entry[entryLastname] : "",</div><div class='del'>-			    local-&gt;addr-&gt;entry[entryFirstname] ?</div><div class='del'>-			    local-&gt;addr-&gt;entry[entryFirstname] : "",</div><div class='del'>-			    local-&gt;addr-&gt;entry[entryCompany] ?</div><div class='del'>-			    local-&gt;addr-&gt;entry[entryCompany] : "");</div><div class='del'>-		return buff;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return "";</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *print_remote (GnomePilotRecord *remote)</div><div class='del'>-{</div><div class='del'>-	static char buff[ 4096 ];</div><div class='del'>-	struct Address addr;</div><div class='del'>-</div><div class='del'>-	if (remote == NULL) {</div><div class='del'>-		sprintf (buff, "[NULL]");</div><div class='del'>-		return buff;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	memset (&amp;addr, 0, sizeof (struct Address));</div><div class='del'>-	unpack_Address (&amp;addr, remote-&gt;record, remote-&gt;length);</div><div class='del'>-</div><div class='del'>-	g_snprintf (buff, 4096, "['%s' '%s' '%s']",</div><div class='del'>-		    addr.entry[entryLastname] ?</div><div class='del'>-		    addr.entry[entryLastname] : "",</div><div class='del'>-		    addr.entry[entryFirstname] ?</div><div class='del'>-		    addr.entry[entryFirstname] : "",</div><div class='del'>-		    addr.entry[entryCompany] ?</div><div class='del'>-		    addr.entry[entryCompany] : "");</div><div class='del'>-</div><div class='del'>-	return buff;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Context Routines */</div><div class='del'>-static void</div><div class='del'>-e_addr_context_new (EAddrConduitContext **ctxt, guint32 pilot_id) </div><div class='del'>-{</div><div class='del'>-	*ctxt = g_new0 (EAddrConduitContext,1);</div><div class='del'>-	g_assert (ctxt!=NULL);</div><div class='del'>-</div><div class='del'>-	addrconduit_load_configuration (&amp;(*ctxt)-&gt;cfg, pilot_id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_addr_context_destroy (EAddrConduitContext **ctxt)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (ctxt!=NULL);</div><div class='del'>-	g_return_if_fail (*ctxt!=NULL);</div><div class='del'>-</div><div class='del'>-	if ((*ctxt)-&gt;cfg != NULL)</div><div class='del'>-		addrconduit_destroy_configuration (&amp;(*ctxt)-&gt;cfg);</div><div class='del'>-</div><div class='del'>-	g_free (*ctxt);</div><div class='del'>-	*ctxt = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Addressbok Server routines */</div><div class='del'>-static void</div><div class='del'>-add_card_cb (EBook *ebook, EBookStatus status, const char *id, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	CardObjectChangeStatus *cons = closure;</div><div class='del'>-</div><div class='del'>-	cons-&gt;status = status;</div><div class='del'>-	cons-&gt;id = g_strdup (id);</div><div class='del'>-	</div><div class='del'>-	gtk_main_quit();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-status_cb (EBook *ebook, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	(*(EBookStatus*)closure) = status;</div><div class='del'>-	gtk_main_quit();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-cursor_cb (EBook *book, EBookStatus status, ECardCursor *cursor, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EAddrConduitContext *ctxt = (EAddrConduitContext*)closure;</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		long length;</div><div class='del'>-		int i;</div><div class='del'>-</div><div class='del'>-		ctxt-&gt;address_load_success = TRUE;</div><div class='del'>-</div><div class='del'>-		length = e_card_cursor_get_length (cursor);</div><div class='del'>-		ctxt-&gt;cards = NULL;</div><div class='del'>-		for (i = 0; i &lt; length; i ++) {</div><div class='del'>-			ECard *card = e_card_cursor_get_nth (cursor, i);</div><div class='del'>-			</div><div class='del'>-			if (e_card_evolution_list (card))</div><div class='del'>-				continue;</div><div class='del'>-</div><div class='del'>-			gtk_object_ref (GTK_OBJECT (card));</div><div class='del'>-			ctxt-&gt;cards = g_list_append (ctxt-&gt;cards, card);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		gtk_main_quit(); /* end the sub event loop */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		WARN (_("Cursor could not be loaded\n"));</div><div class='del'>-		gtk_main_quit(); /* end the sub event loop */</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EAddrConduitContext *ctxt = (EAddrConduitContext*)closure;</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		e_book_get_cursor (book, "(contains \"full_name\" \"\")", cursor_cb, ctxt);</div><div class='del'>-	} else {</div><div class='del'>-		WARN (_("EBook not loaded\n"));</div><div class='del'>-		gtk_main_quit(); /* end the sub event loop */</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-start_addressbook_server (EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	gchar *uri, *path;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail(ctxt!=NULL,-2);</div><div class='del'>-</div><div class='del'>-	ctxt-&gt;ebook = e_book_new ();</div><div class='del'>-</div><div class='del'>-	path = g_concat_dir_and_file (g_get_home_dir (),</div><div class='del'>-				      "evolution/local/Contacts/addressbook.db");</div><div class='del'>-	uri = g_strdup_printf ("file://%s", path);</div><div class='del'>-	g_free (path);</div><div class='del'>-</div><div class='del'>-	e_book_load_uri (ctxt-&gt;ebook, uri, book_open_cb, ctxt);</div><div class='del'>-</div><div class='del'>-	/* run a sub event loop to turn ebook's async loading into a</div><div class='del'>-           synchronous call */</div><div class='del'>-	gtk_main ();</div><div class='del'>-</div><div class='del'>-	g_free (uri);</div><div class='del'>-</div><div class='del'>-	if (ctxt-&gt;address_load_success)</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	return -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Utility routines */</div><div class='del'>-static char *</div><div class='del'>-map_name (EAddrConduitContext *ctxt) </div><div class='del'>-{</div><div class='del'>-	char *filename = NULL;</div><div class='del'>-	</div><div class='del'>-	filename = g_strdup_printf ("%s/evolution/local/Contacts/pilot-map-%d.xml", g_get_home_dir (), ctxt-&gt;cfg-&gt;pilot_id);</div><div class='del'>-</div><div class='del'>-	return filename;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GList *</div><div class='del'>-next_changed_item (EAddrConduitContext *ctxt, GList *changes) </div><div class='del'>-{</div><div class='del'>-	CardObjectChange *coc;</div><div class='del'>-	GList *l;</div><div class='del'>-	</div><div class='del'>-	for (l = changes; l != NULL; l = l-&gt;next) {</div><div class='del'>-		coc = l-&gt;data;</div><div class='del'>-		</div><div class='del'>-		if (g_hash_table_lookup (ctxt-&gt;changed_hash, e_card_get_id (coc-&gt;card)))</div><div class='del'>-			return l;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-get_label (EAddrConduitContext *ctxt, const char *label)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	for (i = 0; i &lt; 8; i++) {</div><div class='del'>-		if (!strcmp (ctxt-&gt;ai.phoneLabels[i], label))</div><div class='del'>-			return i;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_mail (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_EMAIL;</div><div class='del'>-	</div><div class='del'>-	switch (*field) {</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_EMAIL:</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_EMAIL_2;</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_EMAIL_2:</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_EMAIL_3;</div><div class='del'>-	default:</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_home (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_HOME;</div><div class='del'>-	</div><div class='del'>-	switch (*field) {</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_PHONE_HOME:</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_HOME_2;</div><div class='del'>-	default:</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_work (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_BUSINESS;</div><div class='del'>-	</div><div class='del'>-	switch (*field) {</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_PHONE_BUSINESS:</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_2;</div><div class='del'>-	default:</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_fax (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_FAX;</div><div class='del'>-	</div><div class='del'>-	switch (*field) {</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_PHONE_BUSINESS_FAX:</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_HOME_FAX;</div><div class='del'>-	case E_CARD_SIMPLE_FIELD_PHONE_HOME_FAX:</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_OTHER_FAX;</div><div class='del'>-	default:</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_other (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_OTHER;</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_main (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_PRIMARY;</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_pager (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_PAGER;</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECardSimpleField</div><div class='del'>-get_next_mobile (ECardSimpleField *field)</div><div class='del'>-{</div><div class='del'>-	if (field == NULL)</div><div class='del'>-		return E_CARD_SIMPLE_FIELD_PHONE_MOBILE;</div><div class='del'>-</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_next_init (ECardSimpleField *next_mail,</div><div class='del'>-	       ECardSimpleField *next_home,</div><div class='del'>-	       ECardSimpleField *next_work,</div><div class='del'>-	       ECardSimpleField *next_fax,</div><div class='del'>-	       ECardSimpleField *next_other,</div><div class='del'>-	       ECardSimpleField *next_main,</div><div class='del'>-	       ECardSimpleField *next_pager,</div><div class='del'>-	       ECardSimpleField *next_mobile)</div><div class='del'>-{	</div><div class='del'>-	*next_mail = get_next_mail (NULL);</div><div class='del'>-	*next_home = get_next_home (NULL);</div><div class='del'>-	*next_work = get_next_work (NULL);</div><div class='del'>-	*next_fax = get_next_fax (NULL);</div><div class='del'>-	*next_other = get_next_other (NULL);</div><div class='del'>-	*next_main = get_next_main (NULL);</div><div class='del'>-	*next_pager = get_next_pager (NULL);</div><div class='del'>-	*next_mobile = get_next_mobile (NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-is_next_done (ECardSimpleField field)</div><div class='del'>-{</div><div class='del'>-	if (field == E_CARD_SIMPLE_FIELD_LAST)</div><div class='del'>-		return TRUE;</div><div class='del'>-	</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-get_entry_text (struct Address address, int field)</div><div class='del'>-{</div><div class='del'>-	if (address.entry[field])</div><div class='del'>-		return e_pilot_utf8_from_pchar (address.entry[field]);</div><div class='del'>-	</div><div class='del'>-	return g_strdup ("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-compute_status (EAddrConduitContext *ctxt, EAddrLocalRecord *local, const char *uid)</div><div class='del'>-{</div><div class='del'>-	CardObjectChange *coc;</div><div class='del'>-</div><div class='del'>-	local-&gt;local.archived = FALSE;</div><div class='del'>-	local-&gt;local.secret = FALSE;</div><div class='del'>-</div><div class='del'>-	coc = g_hash_table_lookup (ctxt-&gt;changed_hash, uid);</div><div class='del'>-	</div><div class='del'>-	if (coc == NULL) {</div><div class='del'>-		local-&gt;local.attr = GnomePilotRecordNothing;</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	switch (coc-&gt;type) {</div><div class='del'>-	case CARD_ADDED:</div><div class='del'>-		local-&gt;local.attr = GnomePilotRecordNew;</div><div class='del'>-		break;	</div><div class='del'>-	case CARD_MODIFIED:</div><div class='del'>-		local-&gt;local.attr = GnomePilotRecordModified;</div><div class='del'>-		break;</div><div class='del'>-	case CARD_DELETED:</div><div class='del'>-		local-&gt;local.attr = GnomePilotRecordDeleted;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GnomePilotRecord</div><div class='del'>-local_record_to_pilot_record (EAddrLocalRecord *local,</div><div class='del'>-			      EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	GnomePilotRecord p;</div><div class='del'>-	</div><div class='del'>-	g_assert (local-&gt;addr != NULL );</div><div class='del'>-	</div><div class='del'>-	LOG ("local_record_to_pilot_record\n");</div><div class='del'>-</div><div class='del'>-	p.ID = local-&gt;local.ID;</div><div class='del'>-	p.category = local-&gt;local.category;</div><div class='del'>-	p.attr = local-&gt;local.attr;</div><div class='del'>-	p.archived = local-&gt;local.archived;</div><div class='del'>-	p.secret = local-&gt;local.secret;</div><div class='del'>-</div><div class='del'>-	/* Generate pilot record structure */</div><div class='del'>-	p.record = g_new0 (char,0xffff);</div><div class='del'>-	p.length = pack_Address (local-&gt;addr, p.record, 0xffff);</div><div class='del'>-</div><div class='del'>-	return p;	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-local_record_from_ecard (EAddrLocalRecord *local, ECard *ecard, EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	const ECardDeliveryAddress *delivery;</div><div class='del'>-	int phone = entryPhone1;</div><div class='del'>-	ECardSimpleField next_mail, next_home, next_work, next_fax;</div><div class='del'>-	ECardSimpleField next_other, next_main, next_pager, next_mobile;</div><div class='del'>-	gboolean syncable;</div><div class='del'>-	int i;</div><div class='del'>-	</div><div class='del'>-	g_return_if_fail (local != NULL);</div><div class='del'>-	g_return_if_fail (ecard != NULL);</div><div class='del'>-</div><div class='del'>-	local-&gt;ecard = ecard;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (ecard));</div><div class='del'>-	simple = e_card_simple_new (ecard);</div><div class='del'>-	</div><div class='del'>-	local-&gt;local.ID = e_pilot_map_lookup_pid (ctxt-&gt;map, ecard-&gt;id);</div><div class='del'>-</div><div class='del'>-	compute_status (ctxt, local, ecard-&gt;id);</div><div class='del'>-</div><div class='del'>-	local-&gt;addr = g_new0 (struct Address, 1);</div><div class='del'>-</div><div class='del'>-	/* Handle the fields and category we don't sync by making sure</div><div class='del'>-         * we don't overwrite them </div><div class='del'>-	 */</div><div class='del'>-	if (local-&gt;local.ID != 0) {</div><div class='del'>-		char record[0xffff];</div><div class='del'>-		int cat = 0;</div><div class='del'>-		</div><div class='del'>-		if (dlp_ReadRecordById (ctxt-&gt;dbi-&gt;pilot_socket, </div><div class='del'>-					ctxt-&gt;dbi-&gt;db_handle,</div><div class='del'>-					local-&gt;local.ID, &amp;record, </div><div class='del'>-					NULL, NULL, NULL, &amp;cat) &gt; 0) {</div><div class='del'>-			local-&gt;local.category = cat;			</div><div class='del'>-			unpack_Address (local-&gt;addr, record, 0xffff);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (ecard-&gt;name) {</div><div class='del'>-		if (ecard-&gt;name-&gt;given)</div><div class='del'>-			local-&gt;addr-&gt;entry[entryFirstname] = e_pilot_utf8_to_pchar (ecard-&gt;name-&gt;given);</div><div class='del'>-		if (ecard-&gt;name-&gt;family)</div><div class='del'>-			local-&gt;addr-&gt;entry[entryLastname] = e_pilot_utf8_to_pchar (ecard-&gt;name-&gt;family);</div><div class='del'>-		if (ecard-&gt;org)</div><div class='del'>-			local-&gt;addr-&gt;entry[entryCompany] = e_pilot_utf8_to_pchar (ecard-&gt;org);</div><div class='del'>-		if (ecard-&gt;title)</div><div class='del'>-			local-&gt;addr-&gt;entry[entryTitle] = e_pilot_utf8_to_pchar (ecard-&gt;title);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	delivery = e_card_simple_get_delivery_address (simple, E_CARD_SIMPLE_ADDRESS_ID_BUSINESS);</div><div class='del'>-	if (delivery) {</div><div class='del'>-		local-&gt;addr-&gt;entry[entryAddress] = e_pilot_utf8_to_pchar (delivery-&gt;street);</div><div class='del'>-		local-&gt;addr-&gt;entry[entryCity] = e_pilot_utf8_to_pchar (delivery-&gt;city);</div><div class='del'>-		local-&gt;addr-&gt;entry[entryState] = e_pilot_utf8_to_pchar (delivery-&gt;region);</div><div class='del'>-		local-&gt;addr-&gt;entry[entryZip] = e_pilot_utf8_to_pchar (delivery-&gt;code);</div><div class='del'>-		local-&gt;addr-&gt;entry[entryCountry] = e_pilot_utf8_to_pchar (delivery-&gt;country);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Phone numbers */</div><div class='del'>-	get_next_init (&amp;next_mail, &amp;next_home, &amp;next_work, &amp;next_fax,</div><div class='del'>-		       &amp;next_other, &amp;next_main, &amp;next_pager, &amp;next_mobile);</div><div class='del'>-</div><div class='del'>-	/* See if everything is syncable */</div><div class='del'>-	syncable = TRUE;</div><div class='del'>-	for (i = entryPhone1; i &lt;= entryPhone5; i++) {</div><div class='del'>-		char *phonelabel = ctxt-&gt;ai.phoneLabels[local-&gt;addr-&gt;phoneLabel[i - entryPhone1]];</div><div class='del'>-		const char *phone_str = NULL;</div><div class='del'>-		</div><div class='del'>-		if (!strcmp (phonelabel, "E-mail")) {</div><div class='del'>-			if (is_next_done (next_mail)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_home);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_mail = get_next_mail (&amp;next_mail);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Home")) {</div><div class='del'>-			if (is_next_done (next_home)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_home);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_home = get_next_home (&amp;next_home);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Work")) {</div><div class='del'>-			if (is_next_done (next_work)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_work);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_work = get_next_work (&amp;next_work);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Fax")) {</div><div class='del'>-			if (is_next_done (next_fax)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_fax);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_fax = get_next_fax (&amp;next_fax);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Other")) {</div><div class='del'>-			if (is_next_done (next_other)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_other);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_other = get_next_other (&amp;next_other);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Main")) {</div><div class='del'>-			if (is_next_done (next_main)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_main);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_main = get_next_main (&amp;next_main);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Pager")) {</div><div class='del'>-			if (is_next_done (next_pager)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_pager);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_pager = get_next_pager (&amp;next_pager);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Mobile")) {</div><div class='del'>-			if (is_next_done (next_mobile)) {</div><div class='del'>-				syncable = FALSE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, next_mobile);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				next_mobile = get_next_mobile (&amp;next_mobile);</div><div class='del'>-		}		</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (syncable) {</div><div class='del'>-		INFO ("Syncable");</div><div class='del'>-		/* Sync by priority */</div><div class='del'>-		for (i = 0, phone = entryPhone1; </div><div class='del'>-		     priority[i] != E_CARD_SIMPLE_FIELD_LAST &amp;&amp; phone &lt;= entryPhone5; i++) {</div><div class='del'>-			const char *phone_str;</div><div class='del'>-			</div><div class='del'>-			phone_str = e_card_simple_get_const (simple, priority[i]);</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str) {</div><div class='del'>-				local-&gt;addr-&gt;entry[phone] = e_pilot_utf8_to_pchar (phone_str);</div><div class='del'>-				local-&gt;addr-&gt;phoneLabel[phone - entryPhone1] = </div><div class='del'>-					get_label (ctxt, priority_label[i]);</div><div class='del'>-				phone++;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		for ( ; phone &lt;= entryPhone5; phone++)</div><div class='del'>-			      local-&gt;addr-&gt;phoneLabel[phone - entryPhone1] = phone - entryPhone1;</div><div class='del'>-	} else {</div><div class='del'>-		INFO ("Not Syncable");</div><div class='del'>-		get_next_init (&amp;next_mail, &amp;next_home, &amp;next_work, &amp;next_fax,</div><div class='del'>-			       &amp;next_other, &amp;next_main, &amp;next_pager, &amp;next_mobile);</div><div class='del'>-</div><div class='del'>-		/* Not completely syncable, so do the best we can */</div><div class='del'>-		for (i = entryPhone1; i &lt;= entryPhone5; i++) {</div><div class='del'>-			char *phonelabel = ctxt-&gt;ai.phoneLabels[local-&gt;addr-&gt;phoneLabel[i - entryPhone1]];</div><div class='del'>-			const char *phone_str = NULL;</div><div class='del'>-			</div><div class='del'>-			if (!strcmp (phonelabel, "E-mail") &amp;&amp; !is_next_done (next_mail)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_mail);</div><div class='del'>-				next_mail = get_next_mail (&amp;next_mail);</div><div class='del'>-			} else if (!strcmp (phonelabel, "Home") &amp;&amp; !is_next_done (next_home)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_home);</div><div class='del'>-				next_home = get_next_home (&amp;next_home);</div><div class='del'>-			} else if (!strcmp (phonelabel, "Work") &amp;&amp; !is_next_done (next_work)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_work);</div><div class='del'>-				next_work = get_next_work (&amp;next_work);</div><div class='del'>-			} else if (!strcmp (phonelabel, "Fax") &amp;&amp; !is_next_done (next_fax)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_fax);</div><div class='del'>-				next_fax = get_next_fax (&amp;next_fax);</div><div class='del'>-			} else if (!strcmp (phonelabel, "Other")  &amp;&amp; !is_next_done (next_other)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_other);</div><div class='del'>-				next_other = get_next_other (&amp;next_other);</div><div class='del'>-			} else if (!strcmp (phonelabel, "Main") &amp;&amp; !is_next_done (next_main)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_main);</div><div class='del'>-				next_main = get_next_main (&amp;next_main);</div><div class='del'>-			} else if (!strcmp (phonelabel, "Pager") &amp;&amp; !is_next_done (next_pager)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_pager);</div><div class='del'>-				next_pager = get_next_pager (&amp;next_pager);</div><div class='del'>-			} else if (!strcmp (phonelabel, "Mobile") &amp;&amp; !is_next_done (next_mobile)) {</div><div class='del'>-				phone_str = e_card_simple_get_const (simple, next_mobile);</div><div class='del'>-				next_mobile = get_next_mobile (&amp;next_mobile);</div><div class='del'>-			}</div><div class='del'>-			</div><div class='del'>-			if (phone_str &amp;&amp; *phone_str)</div><div class='del'>-				local-&gt;addr-&gt;entry[i] = e_pilot_utf8_to_pchar (phone_str);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	/* Note */</div><div class='del'>-	local-&gt;addr-&gt;entry[entryNote] = e_pilot_utf8_to_pchar (ecard-&gt;note);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void </div><div class='del'>-local_record_from_uid (EAddrLocalRecord *local,</div><div class='del'>-		       const char *uid,</div><div class='del'>-		       EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	ECard *ecard = NULL;</div><div class='del'>-	GList *l;</div><div class='del'>-	</div><div class='del'>-	g_assert (local != NULL);</div><div class='del'>-</div><div class='del'>-	for (l = ctxt-&gt;cards; l != NULL; l = l-&gt;next) {</div><div class='del'>-		ecard = l-&gt;data;</div><div class='del'>-		</div><div class='del'>-		if (ecard-&gt;id &amp;&amp; !strcmp (ecard-&gt;id, uid))</div><div class='del'>-			break;</div><div class='del'>-</div><div class='del'>-		ecard = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (ecard != NULL) {</div><div class='del'>-		local_record_from_ecard (local, ecard, ctxt);</div><div class='del'>-	} else {</div><div class='del'>-		ecard = e_card_new ("");</div><div class='del'>-		e_card_set_id (ecard, uid);</div><div class='del'>-		local_record_from_ecard (local, ecard, ctxt);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECard *</div><div class='del'>-ecard_from_remote_record(EAddrConduitContext *ctxt,</div><div class='del'>-			 GnomePilotRecord *remote,</div><div class='del'>-			 ECard *in_card)</div><div class='del'>-{</div><div class='del'>-	struct Address address;</div><div class='del'>-	ECard *ecard;</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	ECardDeliveryAddress *delivery;</div><div class='del'>-	ECardAddrLabel *label;</div><div class='del'>-	char *txt;</div><div class='del'>-	char *stringparts[3];</div><div class='del'>-	ECardSimpleField next_mail, next_home, next_work, next_fax;</div><div class='del'>-	ECardSimpleField next_other, next_main, next_pager, next_mobile;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail(remote!=NULL,NULL);</div><div class='del'>-	memset (&amp;address, 0, sizeof (struct Address));</div><div class='del'>-	unpack_Address (&amp;address, remote-&gt;record, remote-&gt;length);</div><div class='del'>-</div><div class='del'>-	if (in_card == NULL)</div><div class='del'>-		ecard = e_card_new("");</div><div class='del'>-	else</div><div class='del'>-		ecard = e_card_duplicate (in_card);</div><div class='del'>-	simple = e_card_simple_new (ecard);</div><div class='del'>-</div><div class='del'>-	/* Name and company */</div><div class='del'>-	i = 0;</div><div class='del'>-	if (address.entry[entryFirstname] &amp;&amp; *address.entry[entryFirstname])</div><div class='del'>-		stringparts[i++] = address.entry[entryFirstname];</div><div class='del'>-	if (address.entry[entryLastname] &amp;&amp; *address.entry[entryLastname])</div><div class='del'>-		stringparts[i++] = address.entry[entryLastname];</div><div class='del'>-	stringparts[i] = NULL;</div><div class='del'>-</div><div class='del'>-	txt = g_strjoinv (" ", stringparts);</div><div class='del'>-	e_card_simple_set (simple, E_CARD_SIMPLE_FIELD_FULL_NAME, e_pilot_utf8_from_pchar (txt));</div><div class='del'>-	g_free (txt);</div><div class='del'>-</div><div class='del'>-	txt = get_entry_text (address, entryTitle);</div><div class='del'>-	e_card_simple_set(simple, E_CARD_SIMPLE_FIELD_TITLE, txt);</div><div class='del'>-	g_free (txt);</div><div class='del'>-</div><div class='del'>-	txt = get_entry_text (address, entryCompany);</div><div class='del'>-	e_card_simple_set(simple, E_CARD_SIMPLE_FIELD_ORG, txt);</div><div class='del'>-	if (i == 0)</div><div class='del'>-		e_card_simple_set(simple, E_CARD_SIMPLE_FIELD_FILE_AS, txt);	</div><div class='del'>-	g_free (txt);</div><div class='del'>-</div><div class='del'>-	/* Address */</div><div class='del'>-	delivery = e_card_delivery_address_new ();</div><div class='del'>-	delivery-&gt;flags = E_CARD_ADDR_WORK;</div><div class='del'>-	delivery-&gt;street = get_entry_text (address, entryAddress);</div><div class='del'>-	delivery-&gt;city = get_entry_text (address, entryCity);</div><div class='del'>-	delivery-&gt;region = get_entry_text (address, entryState);</div><div class='del'>-	delivery-&gt;country = get_entry_text (address, entryCountry);</div><div class='del'>-	delivery-&gt;code = get_entry_text (address, entryZip);</div><div class='del'>-</div><div class='del'>-	label = e_card_address_label_new ();</div><div class='del'>-	label-&gt;flags = E_CARD_ADDR_WORK;</div><div class='del'>-	label-&gt;data = e_card_delivery_address_to_string (delivery);</div><div class='del'>-</div><div class='del'>-	e_card_simple_set_address (simple, E_CARD_SIMPLE_ADDRESS_ID_BUSINESS, label);</div><div class='del'>-	e_card_simple_set_delivery_address (simple, E_CARD_SIMPLE_ADDRESS_ID_BUSINESS, delivery);</div><div class='del'>-</div><div class='del'>-	e_card_delivery_address_unref (delivery);</div><div class='del'>-	e_card_address_label_unref (label);</div><div class='del'>-	</div><div class='del'>-	/* Phone numbers */</div><div class='del'>-	get_next_init (&amp;next_mail, &amp;next_home, &amp;next_work, &amp;next_fax,</div><div class='del'>-		       &amp;next_other, &amp;next_main, &amp;next_pager, &amp;next_mobile);</div><div class='del'>-</div><div class='del'>-	for (i = entryPhone1; i &lt;= entryPhone5; i++) {</div><div class='del'>-		char *phonelabel = ctxt-&gt;ai.phoneLabels[address.phoneLabel[i - entryPhone1]];</div><div class='del'>-		char *phonenum = get_entry_text (address, i);</div><div class='del'>-		</div><div class='del'>-		if (!strcmp (phonelabel, "E-mail") &amp;&amp; !is_next_done (next_mail)) {</div><div class='del'>-			e_card_simple_set (simple, next_mail, phonenum);</div><div class='del'>-			next_mail = get_next_mail (&amp;next_mail);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Home") &amp;&amp; !is_next_done (next_home)) {</div><div class='del'>-			e_card_simple_set (simple, next_home, phonenum);</div><div class='del'>-			next_home = get_next_home (&amp;next_home);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Work") &amp;&amp; !is_next_done (next_work)) {</div><div class='del'>-			e_card_simple_set (simple, next_work, phonenum);</div><div class='del'>-			next_work = get_next_work (&amp;next_work);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Fax") &amp;&amp; !is_next_done (next_fax)) {</div><div class='del'>-			e_card_simple_set (simple, next_fax, phonenum);</div><div class='del'>-			next_fax = get_next_fax (&amp;next_fax);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Other") &amp;&amp; !is_next_done (next_other)) {</div><div class='del'>-			e_card_simple_set (simple, next_other, phonenum);</div><div class='del'>-			next_other = get_next_other (&amp;next_other);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Main") &amp;&amp; !is_next_done (next_main)) {</div><div class='del'>-			e_card_simple_set (simple, next_main, phonenum);</div><div class='del'>-			next_main = get_next_main (&amp;next_main);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Pager") &amp;&amp; !is_next_done (next_pager)) {</div><div class='del'>-			e_card_simple_set (simple, next_pager, phonenum);</div><div class='del'>-			next_pager = get_next_pager (&amp;next_pager);</div><div class='del'>-		} else if (!strcmp (phonelabel, "Mobile") &amp;&amp; !is_next_done (next_mobile)) {</div><div class='del'>-			e_card_simple_set (simple, next_mobile, phonenum);</div><div class='del'>-			next_mobile = get_next_mobile (&amp;next_mobile);</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		g_free (phonenum);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Note */</div><div class='del'>-	txt = get_entry_text (address, entryNote);</div><div class='del'>-	e_card_simple_set(simple, E_CARD_SIMPLE_FIELD_NOTE, txt);</div><div class='del'>-	g_free (txt);</div><div class='del'>-	</div><div class='del'>-	e_card_simple_sync_card (simple);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(simple));</div><div class='del'>-</div><div class='del'>-	free_Address(&amp;address);</div><div class='del'>-</div><div class='del'>-	return ecard;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-check_for_slow_setting (GnomePilotConduit *c, EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	int count, map_count;</div><div class='del'>-</div><div class='del'>-  	count = g_list_length (ctxt-&gt;cards);</div><div class='del'>-	map_count = g_hash_table_size (ctxt-&gt;map-&gt;pid_map);</div><div class='del'>-	</div><div class='del'>-	if (map_count == 0) {</div><div class='del'>-		GnomePilotConduitStandard *conduit;</div><div class='del'>-		LOG ("    doing slow sync\n");</div><div class='del'>-		conduit = GNOME_PILOT_CONDUIT_STANDARD (c);</div><div class='del'>-		gnome_pilot_conduit_standard_set_slow (conduit, TRUE);</div><div class='del'>-	} else {</div><div class='del'>-		LOG ("    doing fast sync\n");</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_added (EBookView *book_view, const GList *cards, EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	const GList *l;</div><div class='del'>-</div><div class='del'>-	for (l = cards; l != NULL; l = l-&gt;next) {</div><div class='del'>-		ECard *card = E_CARD (l-&gt;data);</div><div class='del'>-		CardObjectChange *coc;</div><div class='del'>-		</div><div class='del'>-		if (e_card_evolution_list (card))</div><div class='del'>-			continue;</div><div class='del'>-		</div><div class='del'>-		coc = g_new0 (CardObjectChange, 1);</div><div class='del'>-		coc-&gt;card = card;</div><div class='del'>-		coc-&gt;type = CARD_ADDED;</div><div class='del'>-</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (coc-&gt;card));</div><div class='del'>-		ctxt-&gt;changed = g_list_prepend (ctxt-&gt;changed, coc);</div><div class='del'>-		if (!e_pilot_map_uid_is_archived (ctxt-&gt;map, e_card_get_id (coc-&gt;card)))</div><div class='del'>-			g_hash_table_insert (ctxt-&gt;changed_hash, (gpointer)e_card_get_id (coc-&gt;card), coc);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_changed (EBookView *book_view, const GList *cards, EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	const GList *l;</div><div class='del'>-</div><div class='del'>-	for (l = cards; l != NULL; l = l-&gt;next) {</div><div class='del'>-		ECard *card = E_CARD (l-&gt;data);</div><div class='del'>-		CardObjectChange *coc;</div><div class='del'>-</div><div class='del'>-		if (e_card_evolution_list (card))</div><div class='del'>-			continue;</div><div class='del'>-		</div><div class='del'>-		coc = g_new0 (CardObjectChange, 1);		</div><div class='del'>-		coc-&gt;card = E_CARD (l-&gt;data);</div><div class='del'>-		coc-&gt;type = CARD_MODIFIED;</div><div class='del'>-</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (coc-&gt;card));</div><div class='del'>-		ctxt-&gt;changed = g_list_prepend (ctxt-&gt;changed, coc);</div><div class='del'>-		if (!e_pilot_map_uid_is_archived (ctxt-&gt;map, e_card_get_id (coc-&gt;card)))</div><div class='del'>-			g_hash_table_insert (ctxt-&gt;changed_hash, (gpointer)e_card_get_id (coc-&gt;card), coc);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_removed (EBookView *book_view, const char *id, EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	CardObjectChange *coc;</div><div class='del'>-</div><div class='del'>-	/* If its deleted but not in the map its probably a list */</div><div class='del'>-	if (e_pilot_map_lookup_pid (ctxt-&gt;map, id) == 0)</div><div class='del'>-		return;	</div><div class='del'>-	</div><div class='del'>-	coc = g_new0 (CardObjectChange, 1);</div><div class='del'>-	coc-&gt;card = e_card_new ("");</div><div class='del'>-	e_card_set_id (coc-&gt;card, id);</div><div class='del'>-	coc-&gt;type = CARD_DELETED;</div><div class='del'>-</div><div class='del'>-	ctxt-&gt;changed = g_list_prepend (ctxt-&gt;changed, coc);</div><div class='del'>-	</div><div class='del'>-	if (!e_pilot_map_uid_is_archived (ctxt-&gt;map, id))</div><div class='del'>-		g_hash_table_insert (ctxt-&gt;changed_hash, (gpointer)e_card_get_id (coc-&gt;card), coc);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-sequence_complete (EBookView *book_view, EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_disconnect_by_data (GTK_OBJECT (book_view), ctxt);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (book_view));</div><div class='del'>-  	gtk_main_quit ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-view_cb (EBook *book, EBookStatus status, EBookView *book_view, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EAddrConduitContext *ctxt = data;</div><div class='del'>-	</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (book_view));</div><div class='del'>-	</div><div class='del'>-  	gtk_signal_connect (GTK_OBJECT (book_view), "card_added", </div><div class='del'>-			    (GtkSignalFunc) card_added, ctxt);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (book_view), "card_changed", </div><div class='del'>-			    (GtkSignalFunc) card_changed, ctxt);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (book_view), "card_removed", </div><div class='del'>-			    (GtkSignalFunc) card_removed, ctxt);</div><div class='del'>-  	gtk_signal_connect (GTK_OBJECT (book_view), "sequence_complete", </div><div class='del'>-			    (GtkSignalFunc) sequence_complete, ctxt);</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Pilot syncing callbacks */</div><div class='del'>-static gint</div><div class='del'>-pre_sync (GnomePilotConduit *conduit,</div><div class='del'>-	  GnomePilotDBInfo *dbi,</div><div class='del'>-	  EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	GnomePilotConduitSyncAbs *abs_conduit;</div><div class='del'>-/*    	GList *l; */</div><div class='del'>-	int len;</div><div class='del'>-	unsigned char *buf;</div><div class='del'>-	char *filename;</div><div class='del'>-	char *change_id;</div><div class='del'>-/*  	gint num_records; */</div><div class='del'>-</div><div class='del'>-	abs_conduit = GNOME_PILOT_CONDUIT_SYNC_ABS (conduit);</div><div class='del'>-</div><div class='del'>-	LOG ("---------------------------------------------------------\n");</div><div class='del'>-	LOG ("pre_sync: Addressbook Conduit v.%s", CONDUIT_VERSION);</div><div class='del'>-	g_message ("Addressbook Conduit v.%s", CONDUIT_VERSION);</div><div class='del'>-</div><div class='del'>-	ctxt-&gt;dbi = dbi;	</div><div class='del'>-	ctxt-&gt;ebook = NULL;</div><div class='del'>-	</div><div class='del'>-	if (start_addressbook_server (ctxt) != 0) {</div><div class='del'>-		WARN(_("Could not start wombat server"));</div><div class='del'>-		gnome_pilot_conduit_error (conduit, _("Could not start wombat"));</div><div class='del'>-		return -1;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Load the uid &lt;--&gt; pilot id mappings */</div><div class='del'>-	filename = map_name (ctxt);</div><div class='del'>-	e_pilot_map_read (filename, &amp;ctxt-&gt;map);</div><div class='del'>-	g_free (filename);</div><div class='del'>-</div><div class='del'>-	/* Count and hash the changes */</div><div class='del'>-	change_id = g_strdup_printf ("pilot-sync-evolution-addressbook-%d", ctxt-&gt;cfg-&gt;pilot_id);</div><div class='del'>-	ctxt-&gt;changed_hash = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>-	e_book_get_changes (ctxt-&gt;ebook, change_id, view_cb, ctxt);</div><div class='del'>-</div><div class='del'>-	/* Force the view loading to be synchronous */</div><div class='del'>-	gtk_main ();</div><div class='del'>-	g_free (change_id);</div><div class='del'>-	</div><div class='del'>-	/* Set the count information */</div><div class='del'>-/*  	num_records = cal_client_get_n_objects (ctxt-&gt;client, CALOBJ_TYPE_TODO); */</div><div class='del'>-/*  	gnome_pilot_conduit_sync_abs_set_num_local_records(abs_conduit, num_records); */</div><div class='del'>-/*  	gnome_pilot_conduit_sync_abs_set_num_new_local_records (abs_conduit, add_records); */</div><div class='del'>-/*  	gnome_pilot_conduit_sync_abs_set_num_updated_local_records (abs_conduit, mod_records); */</div><div class='del'>-/*  	gnome_pilot_conduit_sync_abs_set_num_deleted_local_records(abs_conduit, del_records); */</div><div class='del'>-</div><div class='del'>-	buf = (unsigned char*)g_malloc (0xffff);</div><div class='del'>-	len = dlp_ReadAppBlock (dbi-&gt;pilot_socket, dbi-&gt;db_handle, 0,</div><div class='del'>-			      (unsigned char *)buf, 0xffff);</div><div class='del'>-	</div><div class='del'>-	if (len &lt; 0) {</div><div class='del'>-		WARN (_("Could not read pilot's Address application block"));</div><div class='del'>-		WARN ("dlp_ReadAppBlock(...) = %d", len);</div><div class='del'>-		gnome_pilot_conduit_error (conduit,</div><div class='del'>-					   _("Could not read pilot's Address application block"));</div><div class='del'>-		return -1;</div><div class='del'>-	}</div><div class='del'>-	unpack_AddressAppInfo (&amp;(ctxt-&gt;ai), buf, len);</div><div class='del'>-	g_free (buf);</div><div class='del'>-</div><div class='del'>-  	check_for_slow_setting (conduit, ctxt);</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-post_sync (GnomePilotConduit *conduit,</div><div class='del'>-	   GnomePilotDBInfo *dbi,</div><div class='del'>-	   EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	gchar *filename, *change_id;</div><div class='del'>-	</div><div class='del'>-	LOG ("post_sync: Address Conduit v.%s", CONDUIT_VERSION);</div><div class='del'>-	LOG ("---------------------------------------------------------\n");</div><div class='del'>-</div><div class='del'>-	filename = map_name (ctxt);</div><div class='del'>-	e_pilot_map_write (filename, ctxt-&gt;map);</div><div class='del'>-	g_free (filename);</div><div class='del'>-</div><div class='del'>-	/* FIX ME ugly hack - our changes musn't count, this does introduce</div><div class='del'>-	 * a race condition if anyone changes a record elsewhere during sycnc</div><div class='del'>-         */	</div><div class='del'>-	change_id = g_strdup_printf ("pilot-sync-evolution-addressbook-%d", ctxt-&gt;cfg-&gt;pilot_id);</div><div class='del'>-	e_book_get_changes (ctxt-&gt;ebook, change_id, view_cb, ctxt);</div><div class='del'>-	g_free (change_id);</div><div class='del'>-	gtk_main ();</div><div class='del'>-	</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-set_pilot_id (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-	      EAddrLocalRecord *local,</div><div class='del'>-	      guint32 ID,</div><div class='del'>-	      EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	LOG ("set_pilot_id: setting to %d\n", ID);</div><div class='del'>-	</div><div class='del'>-	e_pilot_map_insert (ctxt-&gt;map, ID, local-&gt;ecard-&gt;id, FALSE);</div><div class='del'>-</div><div class='del'>-        return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-set_status_cleared (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-		    EAddrLocalRecord *local,</div><div class='del'>-		    EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	LOG ("set_status_cleared: clearing status\n");</div><div class='del'>-	</div><div class='del'>-	g_hash_table_remove (ctxt-&gt;changed_hash, e_card_get_id (local-&gt;ecard));</div><div class='del'>-	</div><div class='del'>-        return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-for_each (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-	  EAddrLocalRecord **local,</div><div class='del'>-	  EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-  	static GList *cards, *iterator;</div><div class='del'>-  	static int count;</div><div class='del'>-</div><div class='del'>-  	g_return_val_if_fail (local != NULL, -1);</div><div class='del'>-</div><div class='del'>-	if (*local == NULL) {</div><div class='del'>-		LOG ("beginning for_each");</div><div class='del'>-</div><div class='del'>-		cards = ctxt-&gt;cards;</div><div class='del'>-		count = 0;</div><div class='del'>-		</div><div class='del'>-		if (cards != NULL) {</div><div class='del'>-			LOG ("iterating over %d records", g_list_length (cards));</div><div class='del'>-</div><div class='del'>-			*local = g_new0 (EAddrLocalRecord, 1);</div><div class='del'>-  			local_record_from_ecard (*local, cards-&gt;data, ctxt);</div><div class='del'>-</div><div class='del'>-			iterator = cards;</div><div class='del'>-		} else {</div><div class='del'>-			LOG ("no events");</div><div class='del'>-			(*local) = NULL;</div><div class='del'>-			return 0;</div><div class='del'>-		}</div><div class='del'>-	} else {</div><div class='del'>-		count++;</div><div class='del'>-		if (g_list_next (iterator)) {</div><div class='del'>-			iterator = g_list_next (iterator);</div><div class='del'>-</div><div class='del'>-			*local = g_new0 (EAddrLocalRecord, 1);</div><div class='del'>-			local_record_from_ecard (*local, iterator-&gt;data, ctxt);</div><div class='del'>-		} else {</div><div class='del'>-			LOG ("for_each ending");</div><div class='del'>-</div><div class='del'>-  			/* Tell the pilot the iteration is over */</div><div class='del'>-			*local = NULL;</div><div class='del'>-</div><div class='del'>-			return 0;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-for_each_modified (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-		   EAddrLocalRecord **local,</div><div class='del'>-		   EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	static GList *iterator;</div><div class='del'>-	static int count;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (local != NULL, 0);</div><div class='del'>-</div><div class='del'>-	if (*local == NULL) {</div><div class='del'>-		LOG ("beginning for_each_modified: beginning\n");</div><div class='del'>-		</div><div class='del'>-		iterator = ctxt-&gt;changed;</div><div class='del'>-		</div><div class='del'>-		count = 0;</div><div class='del'>-		</div><div class='del'>-		iterator = next_changed_item (ctxt, iterator);</div><div class='del'>-		if (iterator != NULL) {</div><div class='del'>-			CardObjectChange *coc = iterator-&gt;data;</div><div class='del'>-			</div><div class='del'>-			LOG ("iterating over %d records", g_hash_table_size (ctxt-&gt;changed_hash));</div><div class='del'>-			 </div><div class='del'>-			*local = g_new0 (EAddrLocalRecord, 1);</div><div class='del'>-			local_record_from_ecard (*local, coc-&gt;card, ctxt);</div><div class='del'>-		} else {</div><div class='del'>-			LOG ("no events");</div><div class='del'>-</div><div class='del'>-			*local = NULL;</div><div class='del'>-		}</div><div class='del'>-	} else {</div><div class='del'>-		count++;</div><div class='del'>-		iterator = g_list_next (iterator);</div><div class='del'>-		if (iterator &amp;&amp; (iterator = next_changed_item (ctxt, iterator))) {</div><div class='del'>-			CardObjectChange *coc = iterator-&gt;data;</div><div class='del'>-</div><div class='del'>-			*local = g_new0 (EAddrLocalRecord, 1);</div><div class='del'>-			local_record_from_ecard (*local, coc-&gt;card, ctxt);</div><div class='del'>-		} else {</div><div class='del'>-			LOG ("for_each_modified ending");</div><div class='del'>-</div><div class='del'>-    			/* Signal the iteration is over */</div><div class='del'>-			*local = NULL;</div><div class='del'>-</div><div class='del'>-			return 0;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-compare (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-	 EAddrLocalRecord *local,</div><div class='del'>-	 GnomePilotRecord *remote,</div><div class='del'>-	 EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	/* used by the quick compare */</div><div class='del'>-	GnomePilotRecord local_pilot;</div><div class='del'>-	int retval = 0;</div><div class='del'>-</div><div class='del'>-	LOG ("compare: local=%s remote=%s...\n",</div><div class='del'>-	     print_local (local), print_remote (remote));</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (local!=NULL,-1);</div><div class='del'>-	g_return_val_if_fail (remote!=NULL,-1);</div><div class='del'>-</div><div class='del'>-  	local_pilot = local_record_to_pilot_record (local, ctxt);</div><div class='del'>-</div><div class='del'>-	if (remote-&gt;length != local_pilot.length</div><div class='del'>-	    || memcmp (local_pilot.record, remote-&gt;record, remote-&gt;length))</div><div class='del'>-		retval = 1;</div><div class='del'>-</div><div class='del'>-	if (retval == 0)</div><div class='del'>-		LOG ("    equal");</div><div class='del'>-	else</div><div class='del'>-		LOG ("    not equal");</div><div class='del'>-	</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-add_record (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-	    GnomePilotRecord *remote,</div><div class='del'>-	    EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	ECard *ecard;</div><div class='del'>-	CardObjectChangeStatus cons;</div><div class='del'>-	int retval = 0;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (remote != NULL, -1);</div><div class='del'>-</div><div class='del'>-	LOG ("add_record: adding %s to desktop\n", print_remote (remote));</div><div class='del'>-</div><div class='del'>-	ecard = ecard_from_remote_record (ctxt, remote, NULL);</div><div class='del'>-	</div><div class='del'>-	/* add the ecard to the server */</div><div class='del'>-	e_book_add_card (ctxt-&gt;ebook, ecard, add_card_cb, &amp;cons);</div><div class='del'>-</div><div class='del'>-	gtk_main(); /* enter sub mainloop */</div><div class='del'>-	</div><div class='del'>-	if (cons.status != E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		WARN ("add_record: failed to add card to ebook\n");</div><div class='del'>-		return -1;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_card_set_id (ecard, cons.id);</div><div class='del'>-	e_pilot_map_insert (ctxt-&gt;map, remote-&gt;ID, ecard-&gt;id, FALSE);</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-replace_record (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-		EAddrLocalRecord *local,</div><div class='del'>-		GnomePilotRecord *remote,</div><div class='del'>-		EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	ECard *new_ecard;</div><div class='del'>-	EBookStatus commit_status;</div><div class='del'>-	CardObjectChange *coc;</div><div class='del'>-	CardObjectChangeStatus cons;</div><div class='del'>-	char *old_id;</div><div class='del'>-	int retval = 0;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (remote != NULL, -1);</div><div class='del'>-</div><div class='del'>-	LOG ("replace_record: replace %s with %s\n",</div><div class='del'>-	     print_local (local), print_remote (remote));</div><div class='del'>-</div><div class='del'>-	old_id = g_strdup (e_card_get_id (local-&gt;ecard));</div><div class='del'>-	coc = g_hash_table_lookup (ctxt-&gt;changed_hash, old_id);</div><div class='del'>-	</div><div class='del'>-	new_ecard = ecard_from_remote_record (ctxt, remote, local-&gt;ecard);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (local-&gt;ecard));</div><div class='del'>-	local-&gt;ecard = new_ecard;</div><div class='del'>-</div><div class='del'>-	if (coc &amp;&amp; coc-&gt;type == CARD_DELETED)</div><div class='del'>-		e_book_add_card (ctxt-&gt;ebook, local-&gt;ecard, add_card_cb, &amp;cons);</div><div class='del'>-	else</div><div class='del'>-		e_book_commit_card (ctxt-&gt;ebook, local-&gt;ecard, status_cb, &amp;commit_status);</div><div class='del'>-	</div><div class='del'>-	gtk_main (); /* enter sub mainloop */</div><div class='del'>-</div><div class='del'>-	/* Adding a record causes wombat to assign a new uid so we must tidy */</div><div class='del'>-	if (coc &amp;&amp; coc-&gt;type == CARD_DELETED) {</div><div class='del'>-		gboolean arch = e_pilot_map_uid_is_archived (ctxt-&gt;map, e_card_get_id (local-&gt;ecard));</div><div class='del'>-		</div><div class='del'>-		e_card_set_id (local-&gt;ecard, cons.id);</div><div class='del'>-		e_pilot_map_insert (ctxt-&gt;map, remote-&gt;ID, cons.id, arch);</div><div class='del'>-</div><div class='del'>-		coc = g_hash_table_lookup (ctxt-&gt;changed_hash, old_id);</div><div class='del'>-		if (coc) {</div><div class='del'>-			g_hash_table_remove (ctxt-&gt;changed_hash, e_card_get_id (coc-&gt;card));</div><div class='del'>-			coc-&gt;card = local-&gt;ecard;</div><div class='del'>-			g_hash_table_insert (ctxt-&gt;changed_hash, (gpointer)e_card_get_id (coc-&gt;card), coc);</div><div class='del'>-			</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		commit_status = cons.status;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (commit_status != E_BOOK_STATUS_SUCCESS)</div><div class='del'>-		WARN ("replace_record: failed to update card in ebook\n");</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-delete_record (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-	       EAddrLocalRecord *local,</div><div class='del'>-	       EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	EBookStatus commit_status;</div><div class='del'>-	int retval = 0;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (local != NULL, -1);</div><div class='del'>-	g_return_val_if_fail (local-&gt;ecard != NULL, -1);</div><div class='del'>-</div><div class='del'>-	LOG ("delete_record: delete %s\n", print_local (local));</div><div class='del'>-</div><div class='del'>-	e_pilot_map_remove_by_uid (ctxt-&gt;map, local-&gt;ecard-&gt;id);</div><div class='del'>-	e_book_remove_card_by_id (ctxt-&gt;ebook, local-&gt;ecard-&gt;id, status_cb, &amp;commit_status);</div><div class='del'>-	</div><div class='del'>-	gtk_main (); /* enter sub mainloop */</div><div class='del'>-	</div><div class='del'>-	if (commit_status != E_BOOK_STATUS_SUCCESS &amp;&amp; commit_status != E_BOOK_STATUS_CARD_NOT_FOUND)</div><div class='del'>-		WARN ("delete_record: failed to delete card in ebook\n");</div><div class='del'>-	</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-archive_record (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-		EAddrLocalRecord *local,</div><div class='del'>-		gboolean archive,</div><div class='del'>-		EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	int retval = 0;</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (local != NULL, -1);</div><div class='del'>-</div><div class='del'>-	LOG ("archive_record: %s\n", archive ? "yes" : "no");</div><div class='del'>-</div><div class='del'>-	e_pilot_map_insert (ctxt-&gt;map, local-&gt;local.ID, local-&gt;ecard-&gt;id, archive);</div><div class='del'>-	</div><div class='del'>-        return retval;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-match (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-       GnomePilotRecord *remote,</div><div class='del'>-       EAddrLocalRecord **local,</div><div class='del'>-       EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-  	const char *uid;</div><div class='del'>-	</div><div class='del'>-	LOG ("match: looking for local copy of %s\n",</div><div class='del'>-	     print_remote (remote));	</div><div class='del'>-	</div><div class='del'>-	g_return_val_if_fail (local != NULL, -1);</div><div class='del'>-	g_return_val_if_fail (remote != NULL, -1);</div><div class='del'>-</div><div class='del'>-	*local = NULL;</div><div class='del'>-	uid = e_pilot_map_lookup_uid (ctxt-&gt;map, remote-&gt;ID);</div><div class='del'>-	</div><div class='del'>-	if (!uid)</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	LOG ("  matched\n");</div><div class='del'>-	</div><div class='del'>-	*local = g_new0 (EAddrLocalRecord, 1);</div><div class='del'>-	local_record_from_uid (*local, uid, ctxt);</div><div class='del'>-	</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-free_match (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-	    EAddrLocalRecord *local,</div><div class='del'>-	    EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	LOG ("free_match: freeing\n");</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (local != NULL, -1);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (local-&gt;ecard));</div><div class='del'>-	g_free (local);</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-prepare (GnomePilotConduitSyncAbs *conduit,</div><div class='del'>-	 EAddrLocalRecord *local,</div><div class='del'>-	 GnomePilotRecord *remote,</div><div class='del'>-	 EAddrConduitContext *ctxt)</div><div class='del'>-{</div><div class='del'>-	LOG ("prepare: encoding local %s\n", print_local (local));</div><div class='del'>-	</div><div class='del'>-	*remote = local_record_to_pilot_record (local, ctxt);</div><div class='del'>-	</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ORBit_MessageValidationResult</div><div class='del'>-accept_all_cookies (CORBA_unsigned_long request_id,</div><div class='del'>-		    CORBA_Principal *principal,</div><div class='del'>-		    CORBA_char *operation)</div><div class='del'>-{</div><div class='del'>-	/* allow ALL cookies */</div><div class='del'>-	return ORBIT_MESSAGE_ALLOW_ALL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GnomePilotConduit *</div><div class='del'>-conduit_get_gpilot_conduit (guint32 pilot_id)</div><div class='del'>-{</div><div class='del'>-	GtkObject *retval;</div><div class='del'>-	EAddrConduitContext *ctxt;</div><div class='del'>-</div><div class='del'>-	LOG ("in address's conduit_get_gpilot_conduit\n");</div><div class='del'>-</div><div class='del'>-	/* we need to find wombat with oaf, so make sure oaf</div><div class='del'>-	   is initialized here.  once the desktop is converted</div><div class='del'>-	   to oaf and gpilotd is built with oaf, this can go away */</div><div class='del'>-	if (!oaf_is_initialized ()) {</div><div class='del'>-		char *argv[ 1 ] = {"hi"};</div><div class='del'>-		oaf_init (1, argv);</div><div class='del'>-</div><div class='del'>-		if (bonobo_init (CORBA_OBJECT_NIL,</div><div class='del'>-				 CORBA_OBJECT_NIL,</div><div class='del'>-				 CORBA_OBJECT_NIL) == FALSE)</div><div class='del'>-			g_error (_("Could not initialize Bonobo"));</div><div class='del'>-</div><div class='del'>-		ORBit_set_request_validation_handler (accept_all_cookies);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	retval = gnome_pilot_conduit_sync_abs_new ("AddressDB", 0x61646472);</div><div class='del'>-	g_assert (retval != NULL);</div><div class='del'>-</div><div class='del'>-	e_addr_context_new (&amp;ctxt, pilot_id);</div><div class='del'>-	gtk_object_set_data (GTK_OBJECT (retval), "addrconduit_context", ctxt);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (retval, "pre_sync", (GtkSignalFunc) pre_sync, ctxt);</div><div class='del'>-	gtk_signal_connect (retval, "post_sync", (GtkSignalFunc) post_sync, ctxt);</div><div class='del'>-</div><div class='del'>-  	gtk_signal_connect (retval, "set_pilot_id", (GtkSignalFunc) set_pilot_id, ctxt);</div><div class='del'>-  	gtk_signal_connect (retval, "set_status_cleared", (GtkSignalFunc) set_status_cleared, ctxt);</div><div class='del'>-</div><div class='del'>-  	gtk_signal_connect (retval, "for_each", (GtkSignalFunc) for_each, ctxt);</div><div class='del'>-  	gtk_signal_connect (retval, "for_each_modified", (GtkSignalFunc) for_each_modified, ctxt);</div><div class='del'>-  	gtk_signal_connect (retval, "compare", (GtkSignalFunc) compare, ctxt);</div><div class='del'>-</div><div class='del'>-  	gtk_signal_connect (retval, "add_record", (GtkSignalFunc) add_record, ctxt);</div><div class='del'>-  	gtk_signal_connect (retval, "replace_record", (GtkSignalFunc) replace_record, ctxt);</div><div class='del'>-  	gtk_signal_connect (retval, "delete_record", (GtkSignalFunc) delete_record, ctxt);</div><div class='del'>-  	gtk_signal_connect (retval, "archive_record", (GtkSignalFunc) archive_record, ctxt);</div><div class='del'>-</div><div class='del'>-  	gtk_signal_connect (retval, "match", (GtkSignalFunc) match, ctxt);</div><div class='del'>-  	gtk_signal_connect (retval, "free_match", (GtkSignalFunc) free_match, ctxt);</div><div class='del'>-</div><div class='del'>-  	gtk_signal_connect (retval, "prepare", (GtkSignalFunc) prepare, ctxt);</div><div class='del'>-</div><div class='del'>-	return GNOME_PILOT_CONDUIT (retval);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-conduit_destroy_gpilot_conduit (GnomePilotConduit *conduit)</div><div class='del'>-{ </div><div class='del'>-	EAddrConduitContext *ctxt;</div><div class='del'>-</div><div class='del'>-	ctxt = gtk_object_get_data (GTK_OBJECT (conduit), </div><div class='del'>-				    "addrconduit_context");</div><div class='del'>-</div><div class='del'>-	e_addr_context_destroy (&amp;ctxt);</div><div class='del'>-</div><div class='del'>-	gtk_object_destroy (GTK_OBJECT (conduit));</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/conduit/address-conduit.h b/addressbook/conduit/address-conduit.h<br/>deleted file mode 100644<br/>index 0b9cc5e551..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/conduit/address-conduit.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/conduit/address-conduit.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,78 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* Evolution calendar - Addressbook Conduit Capplet</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 1998 Free Software Foundation</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Authors: Eskil Heyn Olsen &lt;deity@eskil.dk&gt; </div><div class='del'>- *          JP Rosevear &lt;jpr@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or modify</div><div class='del'>- * it under the terms of the GNU General Public License as published by</div><div class='del'>- * the Free Software Foundation; either version 2 of the License, or</div><div class='del'>- * (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __ADDR_CONDUIT_H__</div><div class='del'>-#define __ADDR_CONDUIT_H__</div><div class='del'>-</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-#include &lt;gnome.h&gt;</div><div class='del'>-#include &lt;pi-address.h&gt;</div><div class='del'>-#include &lt;gpilotd/gnome-pilot-conduit.h&gt;</div><div class='del'>-#include &lt;gpilotd/gnome-pilot-conduit-sync-abs.h&gt;</div><div class='del'>-#include &lt;e-pilot-map.h&gt;</div><div class='del'>-</div><div class='del'>-/* This is the local record structure for the Evolution Addressbook conduit. */</div><div class='del'>-typedef struct _EAddrLocalRecord EAddrLocalRecord;</div><div class='del'>-struct _EAddrLocalRecord {</div><div class='del'>-	/* The stuff from gnome-pilot-conduit-standard-abs.h</div><div class='del'>-	   Must be first in the structure, or instances of this</div><div class='del'>-	   structure cannot be used by gnome-pilot-conduit-standard-abs.</div><div class='del'>-	*/</div><div class='del'>-	GnomePilotDesktopRecord local;</div><div class='del'>-</div><div class='del'>-	/* The corresponding ECard object */</div><div class='del'>-	ECard *ecard;</div><div class='del'>-</div><div class='del'>-        /* pilot-link address structure, used for implementing Transmit. */</div><div class='del'>-	struct Address *addr;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* This is the context for all the GnomeCal conduit methods. */</div><div class='del'>-typedef struct _EAddrConduitContext EAddrConduitContext;</div><div class='del'>-struct _EAddrConduitContext {</div><div class='del'>-	EAddrConduitCfg *cfg;</div><div class='del'>-	GnomePilotDBInfo *dbi;</div><div class='del'>-	</div><div class='del'>-	struct AddressAppInfo ai;</div><div class='del'>-</div><div class='del'>-	EBook *ebook;</div><div class='del'>-	GList *cards;</div><div class='del'>-	GList *changed;</div><div class='del'>-	GHashTable *changed_hash;</div><div class='del'>-	</div><div class='del'>-	gboolean address_load_tried;</div><div class='del'>-	gboolean address_load_success;</div><div class='del'>-</div><div class='del'>-	EPilotMap *map;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#endif /* __ADDR_CONDUIT_H__ */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/conduit/e-address.conduit.in b/addressbook/conduit/e-address.conduit.in<br/>deleted file mode 100644<br/>index 99b5a15221..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/conduit/e-address.conduit.in?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/conduit/e-address.conduit.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-&lt;gnome-pilot-conduit version="1.0"&gt;</div><div class='del'>-	&lt;conduit id="e_address_conduit" type="shlib" location="@prefix@/lib/gnome-pilot/conduits/libeaddress_conduit.so"/&gt;</div><div class='del'>-	&lt;name value="EAddress"/&gt;</div><div class='del'>-	&lt;conduit-attribute name="description" value="Synchronizes Addressbook with Evolution"/&gt;</div><div class='del'>-	&lt;conduit-attribute name="default-synctype" value="synchronize"/&gt;</div><div class='del'>-	&lt;conduit-attribute name="valid-synctypes" value="synchronize copy_from_pilot copy_to_pilot merge_from_pilot merge_to_pilot"/&gt;</div><div class='del'>-     	&lt;conduit-attribute name="settings" value="FALSE"/&gt;</div><div class='del'>-	&lt;conduit-attribute name="icon" value="@datadir@/images/evolution/conduits/48_evo-address-conduit.png"/&gt;</div><div class='del'>-&lt;/gnome-pilot-conduit&gt;</div><div class='head'>diff --git a/addressbook/gui/.cvsignore b/addressbook/gui/.cvsignore<br/>deleted file mode 100644<br/>index 09980ae6ba..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='head'>diff --git a/addressbook/gui/Makefile.am b/addressbook/gui/Makefile.am<br/>deleted file mode 100644<br/>index 6b0850da5d..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1 +0,0 @@</div><div class='del'>-SUBDIRS = contact-editor contact-list-editor merging widgets search component</div><div class='head'>diff --git a/addressbook/gui/component/.cvsignore b/addressbook/gui/component/.cvsignore<br/>deleted file mode 100644<br/>index 8bcb766191..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-.pure</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='del'>-evolution-addressbook</div><div class='del'>-evolution-addressbook.pure</div><div class='del'>-test-addressbook</div><div class='del'>-GNOME_Evolution_Addressbook.oaf
\ No newline at end of file</div><div class='head'>diff --git a/addressbook/gui/component/GNOME_Evolution_Addressbook.oaf.in b/addressbook/gui/component/GNOME_Evolution_Addressbook.oaf.in<br/>deleted file mode 100644<br/>index b050e8ebb8..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/GNOME_Evolution_Addressbook.oaf.in?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/GNOME_Evolution_Addressbook.oaf.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,134 +0,0 @@</div><div class='del'>-&lt;oaf_info&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_MiniCard_ControlFactory"</div><div class='del'>-            type="exe"</div><div class='del'>-            location="evolution-addressbook"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/ObjectFactory:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-                       _value="Factory for the Addressbook Minicard control"/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_MiniCard_Control"</div><div class='del'>-            type="factory"</div><div class='del'>-            location="OAFIID:GNOME_Evolution_Addressbook_MiniCard_ControlFactory"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:Bonobo/Control:1.0"/&gt;</div><div class='del'>-	        &lt;item value="IDL:Bonobo/PersistStream:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="bonobo:supported_mime_types" type="stringv"&gt;</div><div class='del'>-		&lt;item value="text/vcard"/&gt;</div><div class='del'>-		&lt;item value="text/x-vcard"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="name" type="string"</div><div class='del'>-		       _value="Evolution Addressbook minicard viewer"/&gt;</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-	               _value="Control that displays an Evolution addressbook minicard."/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_ControlFactory"</div><div class='del'>-            type="exe"</div><div class='del'>-            location="evolution-addressbook"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/ObjectFactory:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-                       _value="Factory for the sample Addressbook control"/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_Control"</div><div class='del'>-            type="factory"</div><div class='del'>-            location="OAFIID:GNOME_Evolution_Addressbook_ControlFactory"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:BonoboControl/addressbook-control:1.0"/&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/Control:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-                       _value="A sample Bonobo control which displays an addressbook."/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_ShellComponent"</div><div class='del'>-            type="exe"</div><div class='del'>-            location="evolution-addressbook"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/Evolution/ShellComponent:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-	               _value="Evolution component for handling contacts."/&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="evolution:shell-component-icon" type="string"</div><div class='del'>-		       value="evolution-contacts.png"/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressWidgetFactory"</div><div class='del'>-	    type="exe"</div><div class='del'>-	    location="evolution-addressbook"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/ObjectFactory:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="Factory for the Addressbook's address displayer"/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressWidget"</div><div class='del'>-	    type="factory"</div><div class='del'>-	    location="OAFIID:GNOME_Evolution_Addressbook_AddressWidgetFactory"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:BonoboControl/address-widget:1.0"/&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/Control:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="A Bonobo control for displaying an address."/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressPopupFactory"</div><div class='del'>-	    type="exe"</div><div class='del'>-	    location="evolution-addressbook"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/ObjectFactory:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="Factory for the Addressbook's address popup"/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressPopup"</div><div class='del'>-	    type="factory"</div><div class='del'>-	    location="OAFIID:GNOME_Evolution_Addressbook_AddressPopupFactory"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:BonoboControl/address-widget:1.0"/&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/Control:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-		       _value="A Bonobo control for an address popup."/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_info&gt;</div><div class='head'>diff --git a/addressbook/gui/component/Makefile.am b/addressbook/gui/component/Makefile.am<br/>deleted file mode 100644<br/>index 68138c8390..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,95 +0,0 @@</div><div class='del'>-SUBDIRS	= select-names</div><div class='del'>-</div><div class='del'>-INCLUDES =							\</div><div class='del'>-	-DG_LOG_DOMAIN=\"evolution-addressbook\"		\</div><div class='del'>-	$(EXTRA_GNOME_CFLAGS)					\</div><div class='del'>-	$(GNOME_INCLUDEDIR)					\</div><div class='del'>-	-I$(top_srcdir)						\</div><div class='del'>-	-I$(top_builddir)					\</div><div class='del'>-	-I$(top_srcdir)/shell					\</div><div class='del'>-	-I$(top_builddir)/shell					\</div><div class='del'>-	-I$(top_srcdir)/widgets/misc				\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/contact-editor		\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/contact-list-editor	\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/minicard		\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/widgets			\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend			\</div><div class='del'>-	-I$(top_builddir)/addressbook/backend			\</div><div class='del'>-	$(BONOBO_HTML_GNOME_CFLAGS)				\</div><div class='del'>-	-DEVOLUTION_DATADIR=\""$(datadir)"\"			\</div><div class='del'>-	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"			\</div><div class='del'>-	-DEVOLUTION_ICONSDIR=\""$(iconsdir)"\"			\</div><div class='del'>-	-DEVOLUTION_LOCALEDIR=\""$(localedir)"\"		\</div><div class='del'>-	-DCAMEL_PROVIDERDIR=\""$(providerdir)"\"		\</div><div class='del'>-	-DEVOLUTION_IMAGESDIR=\""$(datadir)"/images/evolution\"</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-bin_PROGRAMS =	\</div><div class='del'>-	evolution-addressbook</div><div class='del'>-</div><div class='del'>-evolution_addressbook_SOURCES = 	\</div><div class='del'>-	addressbook-component.c		\</div><div class='del'>-	addressbook-component.h		\</div><div class='del'>-	addressbook-config.c		\</div><div class='del'>-	addressbook-config.h		\</div><div class='del'>-	addressbook-factory.c		\</div><div class='del'>-	addressbook-storage.c		\</div><div class='del'>-	addressbook-storage.h		\</div><div class='del'>-	addressbook.c			\</div><div class='del'>-	addressbook.h			\</div><div class='del'>-	e-cardlist-model.c		\</div><div class='del'>-	e-cardlist-model.h		\</div><div class='del'>-	e-address-widget.h		\</div><div class='del'>-	e-address-widget.c		\</div><div class='del'>-	e-address-popup.h		\</div><div class='del'>-	e-address-popup.c</div><div class='del'>-</div><div class='del'>-evolution_addressbook_LDADD =						\</div><div class='del'>-	select-names/libeselectnames.la					\</div><div class='del'>-	$(top_builddir)/shell/libeshell.la				\</div><div class='del'>-	$(EXTRA_GNOME_LIBS)						\</div><div class='del'>-	$(BONOBO_HTML_GNOME_LIBS)					\</div><div class='del'>-	$(BONOBO_CONF_LIBS)						\</div><div class='del'>-	$(top_builddir)/addressbook/gui/widgets/libeminicard.a		\</div><div class='del'>-	$(top_builddir)/addressbook/backend/ebook/libebook.la		\</div><div class='del'>-	$(top_builddir)/camel/libcamel.la				\</div><div class='del'>-	$(top_builddir)/libibex/libibex.la				\</div><div class='del'>-	$(top_builddir)/e-util/ename/libename.la			\</div><div class='del'>-	$(top_builddir)/addressbook/gui/contact-list-editor/libecontactlisteditor.a	\</div><div class='del'>-	$(top_builddir)/addressbook/gui/contact-editor/libecontacteditor.a	\</div><div class='del'>-	$(top_builddir)/libversit/libversit.la				\</div><div class='del'>-	$(top_builddir)/widgets/misc/libemiscwidgets.a 			\</div><div class='del'>-	$(top_builddir)/addressbook/printing/libecontactprint.a		\</div><div class='del'>-	$(top_builddir)/addressbook/gui/search/libeaddressbooksearch.a	\</div><div class='del'>-	$(top_builddir)/addressbook/gui/merging/libecardmerging.a	\</div><div class='del'>-	$(top_builddir)/filter/libfilter.la				\</div><div class='del'>-	$(top_builddir)/e-util/libeutil.la				\</div><div class='del'>-	$(top_builddir)/widgets/menus/libmenus.la</div><div class='del'>-</div><div class='del'>-evolution_addressbook_LDFLAGS = `gnome-config --libs gdk_pixbuf` -export-dynamic</div><div class='del'>-</div><div class='del'>-@XML_I18N_MERGE_OAF_RULE@</div><div class='del'>-</div><div class='del'>-oafdir = $(datadir)/oaf</div><div class='del'>-oaf_in_files = GNOME_Evolution_Addressbook.oaf.in</div><div class='del'>-oaf_DATA = $(oaf_in_files:.oaf.in=.oaf)</div><div class='del'>-</div><div class='del'>-gladedir   = $(datadir)/evolution/glade</div><div class='del'>-glade_DATA = addressbook-config.glade</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = 			\</div><div class='del'>-	$(glade_DATA)		\</div><div class='del'>-	$(oaf_DATA)		\</div><div class='del'>-	addressbook-config.glade\</div><div class='del'>-	$(oaf_in_files)</div><div class='del'>-</div><div class='del'>-if ENABLE_PURIFY</div><div class='del'>-PLINK = $(LIBTOOL) --mode=link $(PURIFY) $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@</div><div class='del'>-</div><div class='del'>-all-local: evolution-addressbook.pure</div><div class='del'>-</div><div class='del'>-evolution-addressbook.pure: evolution-addressbook</div><div class='del'>-	@rm -f evolution-addressbook.pure</div><div class='del'>-	$(PLINK) $(evolution_addressbook_LDFLAGS) $(evolution_addressbook_OBJECTS) $(evolution_addressbook_LDADD) $(LIBS)</div><div class='del'>-</div><div class='del'>-endif</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-component.c b/addressbook/gui/component/addressbook-component.c<br/>deleted file mode 100644<br/>index 43dcb6098f..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-component.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-component.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,449 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* addressbook-component.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Ettore Perazzoli</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_CONFIG_H</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/stat.h&gt;</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-generic-factory.h&gt;</div><div class='del'>-</div><div class='del'>-#include "evolution-shell-component.h"</div><div class='del'>-#include "evolution-shell-component-dnd.h"</div><div class='del'>-#include "evolution-storage.h"</div><div class='del'>-</div><div class='del'>-#include "ebook/e-book.h"</div><div class='del'>-#include "ebook/e-card.h"</div><div class='del'>-#include "ebook/e-book-util.h"</div><div class='del'>-</div><div class='del'>-#include "addressbook-storage.h"</div><div class='del'>-#include "addressbook-component.h"</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "addressbook/gui/merging/e-card-merging.h"</div><div class='del'>-#include "addressbook/gui/widgets/e-addressbook-util.h"</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#define GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_ID "OAFIID:GNOME_Evolution_Addressbook_ShellComponent"</div><div class='del'>-</div><div class='del'>-EvolutionShellClient *global_shell_client;</div><div class='del'>-</div><div class='del'>-EvolutionShellClient *</div><div class='del'>-addressbook_component_get_shell_client  (void)</div><div class='del'>-{</div><div class='del'>-	return global_shell_client;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *accepted_dnd_types[] = {</div><div class='del'>-	"text/x-vcard",</div><div class='del'>-	NULL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static const EvolutionShellComponentFolderType folder_types[] = {</div><div class='del'>-	{ "contacts", "evolution-contacts.png", N_("Contacts"), N_("Folder containing contact information"),</div><div class='del'>-	  TRUE, accepted_dnd_types, NULL },</div><div class='del'>-	{ "ldap-contacts", "ldap.png", N_("LDAP Server"), N_("LDAP server containing contact information"),</div><div class='del'>-	  FALSE, accepted_dnd_types, NULL },</div><div class='del'>-	{ NULL }</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define IS_CONTACT_TYPE(x)  (g_strcasecmp((x), "contacts") == 0 || g_strcasecmp ((x), "ldap-contacts") == 0)</div><div class='del'>-</div><div class='del'>-/* EvolutionShellComponent methods and signals.  */</div><div class='del'>-</div><div class='del'>-static EvolutionShellComponentResult</div><div class='del'>-create_view (EvolutionShellComponent *shell_component,</div><div class='del'>-	     const char *physical_uri,</div><div class='del'>-	     const char *type,</div><div class='del'>-	     BonoboControl **control_return,</div><div class='del'>-	     void *closure)</div><div class='del'>-{</div><div class='del'>-	BonoboControl *control;</div><div class='del'>-</div><div class='del'>-	if (!IS_CONTACT_TYPE (type))</div><div class='del'>-		return EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDTYPE;</div><div class='del'>-</div><div class='del'>-	control = addressbook_factory_new_control ();</div><div class='del'>-	bonobo_control_set_property (control, "folder_uri", physical_uri, NULL);</div><div class='del'>-</div><div class='del'>-	*control_return = control;</div><div class='del'>-</div><div class='del'>-	return EVOLUTION_SHELL_COMPONENT_OK;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-create_folder (EvolutionShellComponent *shell_component,</div><div class='del'>-	       const char *physical_uri,</div><div class='del'>-	       const char *type,</div><div class='del'>-	       const GNOME_Evolution_ShellComponentListener listener,</div><div class='del'>-	       void *closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	GNOME_Evolution_ShellComponentListener_Result result;</div><div class='del'>-</div><div class='del'>-	if (!IS_CONTACT_TYPE (type))</div><div class='del'>-		result = GNOME_Evolution_ShellComponentListener_UNSUPPORTED_TYPE;</div><div class='del'>-	else </div><div class='del'>-		result = GNOME_Evolution_ShellComponentListener_OK;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-	GNOME_Evolution_ShellComponentListener_notifyResult(listener, result, &amp;ev);</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_folder (EvolutionShellComponent *shell_component,</div><div class='del'>-	       const char *physical_uri,</div><div class='del'>-	       const char *type,</div><div class='del'>-	       const GNOME_Evolution_ShellComponentListener listener,</div><div class='del'>-	       void *closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	char *addressbook_db_path, *subdir_path;</div><div class='del'>-	struct stat sb;</div><div class='del'>-	int rv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (!IS_CONTACT_TYPE (type)) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-								     GNOME_Evolution_ShellComponentListener_UNSUPPORTED_TYPE,</div><div class='del'>-								     &amp;ev);</div><div class='del'>-		CORBA_exception_free(&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!strncmp (physical_uri, "ldap://", 7)) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-								     GNOME_Evolution_ShellComponentListener_UNSUPPORTED_OPERATION,</div><div class='del'>-								     &amp;ev);</div><div class='del'>-		CORBA_exception_free(&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	if (strncmp (physical_uri, "file://", 7)) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-								     GNOME_Evolution_ShellComponentListener_INVALID_URI,</div><div class='del'>-								     &amp;ev);</div><div class='del'>-		CORBA_exception_free(&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	subdir_path = g_concat_dir_and_file (physical_uri + 7, "subfolders");</div><div class='del'>-	rv = stat (subdir_path, &amp;sb);</div><div class='del'>-	g_free (subdir_path);</div><div class='del'>-	if (rv != -1) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-								     GNOME_Evolution_ShellComponentListener_HAS_SUBFOLDERS,</div><div class='del'>-								     &amp;ev);</div><div class='del'>-		CORBA_exception_free(&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	addressbook_db_path = g_concat_dir_and_file (physical_uri + 7, "addressbook.db");</div><div class='del'>-	rv = unlink (addressbook_db_path);</div><div class='del'>-	g_free (addressbook_db_path);</div><div class='del'>-	if (rv == 0) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-								     GNOME_Evolution_ShellComponentListener_OK,</div><div class='del'>-								     &amp;ev);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		if (errno == EACCES || errno == EPERM)</div><div class='del'>-			GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-							     GNOME_Evolution_ShellComponentListener_PERMISSION_DENIED,</div><div class='del'>-							     &amp;ev);</div><div class='del'>-		else</div><div class='del'>-			GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-							     GNOME_Evolution_ShellComponentListener_INVALID_URI, /*XXX*/</div><div class='del'>-							     &amp;ev);</div><div class='del'>-	}</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-xfer_folder (EvolutionShellComponent *shell_component,</div><div class='del'>-	     const char *source_physical_uri,</div><div class='del'>-	     const char *destination_physical_uri,</div><div class='del'>-	     const char *type,</div><div class='del'>-	     gboolean remove_source,</div><div class='del'>-	     const GNOME_Evolution_ShellComponentListener listener,</div><div class='del'>-	     void *closure)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	char *source_path;</div><div class='del'>-	char *destination_path;</div><div class='del'>-	</div><div class='del'>-	if (!IS_CONTACT_TYPE (type)) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-								     GNOME_Evolution_ShellComponentListener_UNSUPPORTED_TYPE,</div><div class='del'>-								     &amp;ev);</div><div class='del'>-		CORBA_exception_free(&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!strncmp (source_physical_uri, "ldap://", 7)</div><div class='del'>-	    || !strncmp (destination_physical_uri, "ldap://", 7)) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-							     GNOME_Evolution_ShellComponentListener_UNSUPPORTED_OPERATION,</div><div class='del'>-							     &amp;ev);</div><div class='del'>-		CORBA_exception_free(&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	if (strncmp (source_physical_uri, "file://", 7)</div><div class='del'>-	    || strncmp (destination_physical_uri, "file://", 7)) {</div><div class='del'>-		GNOME_Evolution_ShellComponentListener_notifyResult (listener,</div><div class='del'>-							     GNOME_Evolution_ShellComponentListener_INVALID_URI,</div><div class='del'>-							     &amp;ev);</div><div class='del'>-		CORBA_exception_free(&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* strip the 'file://' from the beginning of each uri and add addressbook.db */</div><div class='del'>-	source_path = g_concat_dir_and_file (source_physical_uri + 7, "addressbook.db");</div><div class='del'>-	destination_path = g_concat_dir_and_file (destination_physical_uri + 7, "addressbook.db");</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	/* XXX always fail for now, until the above stuff is written */</div><div class='del'>-	GNOME_Evolution_ShellComponentListener_notifyResult (listener, GNOME_Evolution_ShellComponentListener_PERMISSION_DENIED, &amp;ev);</div><div class='del'>-</div><div class='del'>-	g_free (source_path);</div><div class='del'>-	g_free (destination_path);</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char*</div><div class='del'>-get_dnd_selection (EvolutionShellComponent *shell_component,</div><div class='del'>-		   const char *physical_uri,</div><div class='del'>-		   int type,</div><div class='del'>-		   int *format_return,</div><div class='del'>-		   const char **selection_return,</div><div class='del'>-		   int *selection_length_return,</div><div class='del'>-		   void *closure)</div><div class='del'>-{</div><div class='del'>-	g_print ("should get dnd selection for %s\n", physical_uri);</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int owner_count = 0;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-owner_set_cb (EvolutionShellComponent *shell_component,</div><div class='del'>-	      EvolutionShellClient *shell_client,</div><div class='del'>-	      const char *evolution_homedir,</div><div class='del'>-	      gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	owner_count ++;</div><div class='del'>-</div><div class='del'>-	if (global_shell_client == NULL)</div><div class='del'>-		global_shell_client = shell_client;</div><div class='del'>-</div><div class='del'>-	addressbook_storage_setup (shell_component, evolution_homedir);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-gtk_main_quit_cb (gpointer closure)</div><div class='del'>-{</div><div class='del'>-	gtk_main_quit ();</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-owner_unset_cb (EvolutionShellComponent *shell_component,</div><div class='del'>-		GNOME_Evolution_Shell shell_interface,</div><div class='del'>-		gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	owner_count --;</div><div class='del'>-	if (owner_count == 0) {</div><div class='del'>-		g_idle_add (gtk_main_quit_cb, NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* FIXME We should perhaps take the time to figure out if the book is editable. */</div><div class='del'>-static void</div><div class='del'>-local_addressbook_cb (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	gboolean is_list = GPOINTER_TO_INT (closure);</div><div class='del'>-	if (book == NULL)</div><div class='del'>-		return;</div><div class='del'>-	if (is_list)</div><div class='del'>-		e_addressbook_show_contact_list_editor (book, e_card_new(""), TRUE, TRUE);</div><div class='del'>-	else</div><div class='del'>-		e_addressbook_show_contact_editor (book, e_card_new(""), TRUE, TRUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-nonlocal_addressbook_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS)</div><div class='del'>-		local_addressbook_cb (book, closure);</div><div class='del'>-	else</div><div class='del'>-		local_addressbook_cb (NULL, closure);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-user_create_new_item_cb (EvolutionShellComponent *shell_component,</div><div class='del'>-			 const char *id,</div><div class='del'>-			 const char *parent_folder_physical_uri,</div><div class='del'>-			 const char *parent_folder_type,</div><div class='del'>-			 gpointer data)</div><div class='del'>-{</div><div class='del'>-	gboolean is_contact_list;</div><div class='del'>-	if (!strcmp (id, "contact")) {</div><div class='del'>-		is_contact_list = FALSE;</div><div class='del'>-	} else if (!strcmp (id, "contact_list")) {</div><div class='del'>-		is_contact_list = TRUE;</div><div class='del'>-	} else {</div><div class='del'>-		g_warning ("Don't know how to create item of type \"%s\"", id);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	if (IS_CONTACT_TYPE (parent_folder_type)) {</div><div class='del'>-		EBook *book;</div><div class='del'>-		gchar *uri;</div><div class='del'>-</div><div class='del'>-		book = e_book_new ();</div><div class='del'>-		uri = g_strdup_printf ("%s/addressbook.db", parent_folder_physical_uri);</div><div class='del'>-</div><div class='del'>-		if (addressbook_load_uri (book, uri, nonlocal_addressbook_cb, GINT_TO_POINTER (is_contact_list)) == 0)</div><div class='del'>-			g_warning ("Couldn't load addressbook %s", uri);</div><div class='del'>-</div><div class='del'>-		g_free (uri);</div><div class='del'>-	} else {</div><div class='del'>-		e_book_use_local_address_book (local_addressbook_cb, GINT_TO_POINTER (is_contact_list));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Destination side DnD */</div><div class='del'>-</div><div class='del'>-static CORBA_boolean</div><div class='del'>-destination_folder_handle_motion (EvolutionShellComponentDndDestinationFolder *folder,</div><div class='del'>-				  const char *physical_uri,</div><div class='del'>-				  const char *folder_type,</div><div class='del'>-				  const GNOME_Evolution_ShellComponentDnd_DestinationFolder_Context * destination_context,</div><div class='del'>-				  GNOME_Evolution_ShellComponentDnd_Action * suggested_action_return,</div><div class='del'>-				  gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	*suggested_action_return = GNOME_Evolution_ShellComponentDnd_ACTION_MOVE;</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-dnd_drop_book_open_cb (EBook *book, EBookStatus status, GList *card_list)</div><div class='del'>-{</div><div class='del'>-	GList *l;</div><div class='del'>-</div><div class='del'>-	for (l = card_list; l; l = l-&gt;next) {</div><div class='del'>-		ECard *card = l-&gt;data;</div><div class='del'>-</div><div class='del'>-		e_card_merging_book_add_card (book, card, NULL /* XXX */, NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static CORBA_boolean</div><div class='del'>-destination_folder_handle_drop (EvolutionShellComponentDndDestinationFolder *folder,</div><div class='del'>-				const char *physical_uri,</div><div class='del'>-				const char *folder_type,</div><div class='del'>-				const GNOME_Evolution_ShellComponentDnd_DestinationFolder_Context * destination_context,</div><div class='del'>-				const GNOME_Evolution_ShellComponentDnd_Action action,</div><div class='del'>-				const GNOME_Evolution_ShellComponentDnd_Data * data,</div><div class='del'>-				gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	GList *card_list;</div><div class='del'>-	char *expanded_uri;</div><div class='del'>-</div><div class='del'>-	if (action == GNOME_Evolution_ShellComponentDnd_ACTION_LINK)</div><div class='del'>-		return FALSE; /* we can't create links in our addressbook format */</div><div class='del'>-</div><div class='del'>-	g_print ("in destination_folder_handle_drop (%s)\n", physical_uri);</div><div class='del'>-</div><div class='del'>-	card_list = e_card_load_cards_from_string_with_default_charset (data-&gt;bytes._buffer, "ISO-8859-1");</div><div class='del'>-</div><div class='del'>-	expanded_uri = addressbook_expand_uri (physical_uri);</div><div class='del'>-</div><div class='del'>-	book = e_book_new ();</div><div class='del'>-	addressbook_load_uri (book, expanded_uri,</div><div class='del'>-			      (EBookCallback)dnd_drop_book_open_cb, card_list);</div><div class='del'>-</div><div class='del'>-	g_free (expanded_uri);</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* The factory function.  */</div><div class='del'>-</div><div class='del'>-static BonoboObject *</div><div class='del'>-create_component (void)</div><div class='del'>-{</div><div class='del'>-	EvolutionShellComponent *shell_component;</div><div class='del'>-	EvolutionShellComponentDndDestinationFolder *destination_interface;</div><div class='del'>-</div><div class='del'>-	shell_component = evolution_shell_component_new (folder_types, NULL,</div><div class='del'>-							 create_view, create_folder,</div><div class='del'>-							 remove_folder, xfer_folder,</div><div class='del'>-							 NULL,</div><div class='del'>-							 get_dnd_selection,</div><div class='del'>-							 NULL);</div><div class='del'>-</div><div class='del'>-	destination_interface = evolution_shell_component_dnd_destination_folder_new (destination_folder_handle_motion,</div><div class='del'>-										      destination_folder_handle_drop,</div><div class='del'>-										      shell_component);</div><div class='del'>-</div><div class='del'>-	bonobo_object_add_interface (BONOBO_OBJECT (shell_component),</div><div class='del'>-				     BONOBO_OBJECT (destination_interface));</div><div class='del'>-</div><div class='del'>-	evolution_shell_component_add_user_creatable_item (shell_component, "contact", _("New Contact"), _("New _Contact"), 'c');</div><div class='del'>-	evolution_shell_component_add_user_creatable_item (shell_component, "contact_list", _("New Contact List"), _("New Contact _List"), 'l');</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (shell_component), "owner_set",</div><div class='del'>-			    GTK_SIGNAL_FUNC (owner_set_cb), NULL);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (shell_component), "owner_unset",</div><div class='del'>-			    GTK_SIGNAL_FUNC (owner_unset_cb), NULL);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (shell_component), "user_create_new_item",</div><div class='del'>-			    GTK_SIGNAL_FUNC (user_create_new_item_cb), NULL);</div><div class='del'>-</div><div class='del'>-	return BONOBO_OBJECT (shell_component);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* FIXME this should probably be renamed as we don't use factories anymore.  */</div><div class='del'>-void</div><div class='del'>-addressbook_component_factory_init (void)</div><div class='del'>-{</div><div class='del'>-	BonoboObject *object;</div><div class='del'>-	int result;</div><div class='del'>-</div><div class='del'>-	object = create_component ();</div><div class='del'>-</div><div class='del'>-	/* FIXME: Handle errors better?  */</div><div class='del'>-</div><div class='del'>-	result = oaf_active_server_register (GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_ID,</div><div class='del'>-					     bonobo_object_corba_objref (object));</div><div class='del'>-	if (result == OAF_REG_ERROR)</div><div class='del'>-		g_error ("Cannot register -- %s", GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_ID);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-component.h b/addressbook/gui/component/addressbook-component.h<br/>deleted file mode 100644<br/>index e5dc74e17e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-component.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-component.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,33 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* addressbook-component.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Ettore Perazzoli</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef _ADDRESSBOOK_COMPONENT_H</div><div class='del'>-#define _ADDRESSBOOK_COMPONENT_H</div><div class='del'>-</div><div class='del'>-#include "evolution-shell-component.h"</div><div class='del'>-#include "evolution-storage.h"</div><div class='del'>-</div><div class='del'>-void                  addressbook_component_factory_init      (void);</div><div class='del'>-EvolutionShellClient *addressbook_component_get_shell_client  (void);</div><div class='del'>-</div><div class='del'>-#endif /* _ADDRESSBOOK_COMPONENT_H */</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-config.c b/addressbook/gui/component/addressbook-config.c<br/>deleted file mode 100644<br/>index d21ec43d14..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-config.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-config.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,487 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-stock.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include &lt;gtkhtml/gtkhtml.h&gt;</div><div class='del'>-#include &lt;e-util/e-html-utils.h&gt;</div><div class='del'>-#include "addressbook-config.h"</div><div class='del'>-#include "addressbook-storage.h"</div><div class='del'>-</div><div class='del'>-typedef struct _AddressbookSourceDialog AddressbookSourceDialog;</div><div class='del'>-typedef struct _AddressbookSourcePageItem  AddressbookSourcePageItem;</div><div class='del'>-</div><div class='del'>-struct _AddressbookSourceDialog {</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-</div><div class='del'>-	GtkWidget *dialog;</div><div class='del'>-</div><div class='del'>-	GtkWidget *notebook;</div><div class='del'>-	GtkWidget *basic_notebook;</div><div class='del'>-	GtkWidget *advanced_notebook;</div><div class='del'>-</div><div class='del'>-	GtkWidget *name;</div><div class='del'>-	GtkWidget *host;</div><div class='del'>-	GtkWidget *email;</div><div class='del'>-	GtkWidget *email_label;</div><div class='del'>-</div><div class='del'>-	GtkWidget *port;</div><div class='del'>-	GtkWidget *rootdn;</div><div class='del'>-	GtkWidget *scope_optionmenu;</div><div class='del'>-	AddressbookLDAPScopeType ldap_scope;</div><div class='del'>-	GtkWidget *auth_checkbutton;</div><div class='del'>-</div><div class='del'>-	gint id; /* button we closed the dialog with */</div><div class='del'>-</div><div class='del'>-	AddressbookSource *source; /* our result if the Ok button was clicked */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_source_edit_changed (GtkWidget *item, AddressbookSourceDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	char *data;</div><div class='del'>-	gboolean complete = TRUE;</div><div class='del'>-</div><div class='del'>-	if (complete) {</div><div class='del'>-		data = e_utf8_gtk_editable_get_chars (GTK_EDITABLE (dialog-&gt;name), 0, -1);</div><div class='del'>-		if (!data || !*data)</div><div class='del'>-			complete = FALSE;</div><div class='del'>-		g_free (data);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (complete) {</div><div class='del'>-		if (complete) {</div><div class='del'>-			data = e_utf8_gtk_editable_get_chars (GTK_EDITABLE (dialog-&gt;host), 0, -1);</div><div class='del'>-			if (!data || !*data)</div><div class='del'>-				complete = FALSE;</div><div class='del'>-			g_free (data);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (complete) {</div><div class='del'>-			data = e_utf8_gtk_editable_get_chars (GTK_EDITABLE (dialog-&gt;port), 0, -1);</div><div class='del'>-			if (!data || !*data)</div><div class='del'>-				complete = FALSE;</div><div class='del'>-				/* XXX more validation on port here */</div><div class='del'>-			g_free (data);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG (dialog-&gt;dialog), 0, complete);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-auth_checkbutton_changed (GtkWidget *item, AddressbookSourceDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	/* make sure the change is reflected by the state of the dialog's OK button */</div><div class='del'>-	addressbook_source_edit_changed (item, dialog);</div><div class='del'>-</div><div class='del'>-	gtk_widget_set_sensitive (dialog-&gt;email_label,</div><div class='del'>-				  gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog-&gt;auth_checkbutton)));</div><div class='del'>-	gtk_entry_set_editable (GTK_ENTRY(dialog-&gt;email),</div><div class='del'>-				gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog-&gt;auth_checkbutton)));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-option_menuitem_activated (GtkWidget *item, AddressbookSourceDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	/* make sure the change is reflected by the state of the dialog's OK button */</div><div class='del'>-	addressbook_source_edit_changed (item, dialog);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;ldap_scope = g_list_index (gtk_container_children (GTK_CONTAINER (item-&gt;parent)),</div><div class='del'>-					   item);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	GtkWidget *notebook;</div><div class='del'>-	int page_num;</div><div class='del'>-} FocusHelpClosure;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-focus_help (GtkWidget *w, GdkEventFocus *event, FocusHelpClosure *closure)</div><div class='del'>-{</div><div class='del'>-	gtk_notebook_set_page (GTK_NOTEBOOK(closure-&gt;notebook), closure-&gt;page_num);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_focus_handler (GtkWidget *widget, GtkWidget *notebook, int page_num)</div><div class='del'>-{</div><div class='del'>-	FocusHelpClosure *focus_closure = g_new0 (FocusHelpClosure, 1);</div><div class='del'>-	focus_closure-&gt;notebook = notebook;</div><div class='del'>-	focus_closure-&gt;page_num = page_num;</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect_full (GTK_OBJECT (widget),</div><div class='del'>-				 "focus_in_event" /* XXX */,</div><div class='del'>-				 (GtkSignalFunc) focus_help, NULL,</div><div class='del'>-				 focus_closure,</div><div class='del'>-				 (GtkDestroyNotify) g_free,</div><div class='del'>-				 FALSE, FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_source_dialog_set_source (AddressbookSourceDialog *dialog, AddressbookSource *source)</div><div class='del'>-{</div><div class='del'>-	e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog-&gt;name), source ? source-&gt;name : "");</div><div class='del'>-	e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog-&gt;host), source ? source-&gt;host : "");</div><div class='del'>-	e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog-&gt;email), source ? source-&gt;email_addr : "");</div><div class='del'>-	e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog-&gt;port), source ? source-&gt;port : "389");</div><div class='del'>-	e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog-&gt;rootdn), source ? source-&gt;rootdn : "");</div><div class='del'>-</div><div class='del'>-	gtk_option_menu_set_history (GTK_OPTION_MENU(dialog-&gt;scope_optionmenu), source ? source-&gt;scope : ADDRESSBOOK_LDAP_SCOPE_ONELEVEL);</div><div class='del'>-	dialog-&gt;ldap_scope = source ? source-&gt;scope : ADDRESSBOOK_LDAP_SCOPE_ONELEVEL;</div><div class='del'>-</div><div class='del'>-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(dialog-&gt;auth_checkbutton), source &amp;&amp; source-&gt;auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE);</div><div class='del'>-	gtk_widget_set_sensitive (dialog-&gt;email_label, source &amp;&amp; source-&gt;auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE);</div><div class='del'>-	gtk_entry_set_editable (GTK_ENTRY(dialog-&gt;email), source &amp;&amp; source-&gt;auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static AddressbookSource *</div><div class='del'>-addressbook_source_dialog_get_source (AddressbookSourceDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	AddressbookSource *source = g_new0 (AddressbookSource, 1);</div><div class='del'>-</div><div class='del'>-	source-&gt;name       = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog-&gt;name));</div><div class='del'>-	source-&gt;host       = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog-&gt;host));</div><div class='del'>-	source-&gt;email_addr = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog-&gt;email));</div><div class='del'>-	source-&gt;port       = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog-&gt;port));</div><div class='del'>-	source-&gt;rootdn     = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog-&gt;rootdn));</div><div class='del'>-	source-&gt;scope      = dialog-&gt;ldap_scope;</div><div class='del'>-	source-&gt;auth       = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog-&gt;auth_checkbutton))</div><div class='del'>-			      ? ADDRESSBOOK_LDAP_AUTH_SIMPLE : ADDRESSBOOK_LDAP_AUTH_NONE);</div><div class='del'>-</div><div class='del'>-	addressbook_storage_init_source_uri (source);</div><div class='del'>-</div><div class='del'>-	return source;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_source_dialog_ok_clicked (GtkWidget *widget, AddressbookSourceDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	dialog-&gt;source = addressbook_source_dialog_get_source (dialog);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_activate_cb (GtkWidget *item, AddressbookSourceDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (item), "activate",</div><div class='del'>-			    GTK_SIGNAL_FUNC (option_menuitem_activated), dialog);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static AddressbookSourceDialog*</div><div class='del'>-addressbook_source_dialog (GladeXML *gui, AddressbookSource *source, GtkWidget *parent)</div><div class='del'>-{</div><div class='del'>-	AddressbookSourceDialog *dialog = g_new0 (AddressbookSourceDialog, 1);</div><div class='del'>-	GtkWidget *menu;</div><div class='del'>-</div><div class='del'>-	dialog-&gt;gui = gui;</div><div class='del'>-</div><div class='del'>-	dialog-&gt;dialog = glade_xml_get_widget (gui, "add_addressbook");</div><div class='del'>-</div><div class='del'>-	if (source)</div><div class='del'>-		gtk_window_set_title (GTK_WINDOW (dialog-&gt;dialog), _("Edit Addressbook"));</div><div class='del'>-</div><div class='del'>-	gtk_window_set_modal (GTK_WINDOW (dialog-&gt;dialog), TRUE);</div><div class='del'>-	gtk_window_set_policy (GTK_WINDOW (dialog-&gt;dialog), </div><div class='del'>-			       FALSE, TRUE, FALSE);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_set_parent (GNOME_DIALOG (dialog-&gt;dialog),</div><div class='del'>-				 GTK_WINDOW (parent));</div><div class='del'>-</div><div class='del'>-	dialog-&gt;notebook = glade_xml_get_widget (gui, "add-addressbook-notebook");</div><div class='del'>-	dialog-&gt;basic_notebook = glade_xml_get_widget (gui, "basic-notebook");</div><div class='del'>-	dialog-&gt;advanced_notebook = glade_xml_get_widget (gui, "advanced-notebook");</div><div class='del'>-</div><div class='del'>-	/* BASIC STUFF */</div><div class='del'>-	dialog-&gt;name = glade_xml_get_widget (gui, "account-name-entry");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dialog-&gt;name), "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>-	add_focus_handler (dialog-&gt;name, dialog-&gt;basic_notebook, 0);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;host = glade_xml_get_widget (gui, "server-name-entry");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dialog-&gt;host), "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>-	add_focus_handler (dialog-&gt;host, dialog-&gt;basic_notebook, 1);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;email = glade_xml_get_widget (gui, "email-address-entry");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dialog-&gt;email), "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>-	add_focus_handler (dialog-&gt;email, dialog-&gt;basic_notebook, 2);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;email_label = glade_xml_get_widget (gui, "email-address-label");</div><div class='del'>-</div><div class='del'>-	dialog-&gt;auth_checkbutton = glade_xml_get_widget (gui, "auth-checkbutton");</div><div class='del'>-	add_focus_handler (dialog-&gt;auth_checkbutton, dialog-&gt;basic_notebook, 2);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dialog-&gt;auth_checkbutton), "toggled",</div><div class='del'>-			    GTK_SIGNAL_FUNC (auth_checkbutton_changed), dialog);</div><div class='del'>-</div><div class='del'>-	/* ADVANCED STUFF */</div><div class='del'>-	dialog-&gt;port = glade_xml_get_widget (gui, "port-entry");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dialog-&gt;port), "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>-	add_focus_handler (dialog-&gt;port, dialog-&gt;advanced_notebook, 0);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;rootdn = glade_xml_get_widget (gui, "rootdn-entry");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dialog-&gt;rootdn), "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>-	add_focus_handler (dialog-&gt;rootdn, dialog-&gt;advanced_notebook, 1);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;scope_optionmenu = glade_xml_get_widget (gui, "scope-optionmenu");</div><div class='del'>-	add_focus_handler (dialog-&gt;scope_optionmenu, dialog-&gt;advanced_notebook, 2);</div><div class='del'>-	menu = gtk_option_menu_get_menu (GTK_OPTION_MENU(dialog-&gt;scope_optionmenu));</div><div class='del'>-	gtk_container_foreach (GTK_CONTAINER (menu), (GtkCallback)add_activate_cb, dialog);</div><div class='del'>-</div><div class='del'>-	/* fill in source info if there is some */</div><div class='del'>-	addressbook_source_dialog_set_source (dialog, source);</div><div class='del'>-</div><div class='del'>-	/* always start out on the first page. */</div><div class='del'>-	gtk_notebook_set_page (GTK_NOTEBOOK (dialog-&gt;notebook), 0);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG (dialog-&gt;dialog), 0, FALSE);</div><div class='del'>-	</div><div class='del'>-	gnome_dialog_button_connect( GNOME_DIALOG (dialog-&gt;dialog), 0,</div><div class='del'>-				     GTK_SIGNAL_FUNC (addressbook_source_dialog_ok_clicked),</div><div class='del'>-				     dialog);</div><div class='del'>-</div><div class='del'>-	/* and set focus to be the Account field (the first editable</div><div class='del'>-           field on the first page) */</div><div class='del'>-	gtk_widget_grab_focus (dialog-&gt;name);</div><div class='del'>-</div><div class='del'>-	return dialog;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static AddressbookSourceDialog *</div><div class='del'>-addressbook_config_source_with_gui (GladeXML *gui, AddressbookSource *source, GtkWidget *parent)</div><div class='del'>-{</div><div class='del'>-	AddressbookSourceDialog* dialog;</div><div class='del'>-</div><div class='del'>-	dialog = addressbook_source_dialog (gui, source, parent);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_close_hides (GNOME_DIALOG(dialog-&gt;dialog), TRUE);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;id = gnome_dialog_run_and_close (GNOME_DIALOG (dialog-&gt;dialog));</div><div class='del'>-</div><div class='del'>-	return dialog;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_create_new_source (char *new_source, GtkWidget *parent)</div><div class='del'>-{</div><div class='del'>-	AddressbookSourceDialog *dialog;</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/addressbook-config.glade", NULL);</div><div class='del'>-</div><div class='del'>-	dialog = addressbook_source_dialog (gui, NULL, parent);</div><div class='del'>-</div><div class='del'>-	e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog-&gt;name), new_source);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_close_hides (GNOME_DIALOG(dialog-&gt;dialog), TRUE);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;id = gnome_dialog_run_and_close (GNOME_DIALOG (dialog-&gt;dialog));</div><div class='del'>-	</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (dialog-&gt;gui));</div><div class='del'>-</div><div class='del'>-	if (dialog-&gt;id == 0) {</div><div class='del'>-		/* Ok was clicked */</div><div class='del'>-		addressbook_storage_add_source (addressbook_source_copy(dialog-&gt;source));</div><div class='del'>-		addressbook_storage_write_sources();</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GNOME_Evolution_Shell shell;</div><div class='del'>-	GtkWidget *dialog;</div><div class='del'>-	GtkWidget *clistSources;</div><div class='del'>-	GtkWidget *addSource;</div><div class='del'>-	GtkWidget *editSource;</div><div class='del'>-	GtkWidget *deleteSource;</div><div class='del'>-	gint      source_row;</div><div class='del'>-} AddressbookDialog;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-update_sensitivity (AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	gboolean sensitive = dialog-&gt;source_row != -1;</div><div class='del'>-</div><div class='del'>-	gtk_widget_set_sensitive (dialog-&gt;editSource, sensitive);</div><div class='del'>-	gtk_widget_set_sensitive (dialog-&gt;deleteSource, sensitive);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	AddressbookSourceDialog *sdialog;</div><div class='del'>-</div><div class='del'>-	sdialog = addressbook_config_source_with_gui (dialog-&gt;gui, NULL, dialog-&gt;dialog);</div><div class='del'>-	if (sdialog-&gt;id == 0) {</div><div class='del'>-		/* Ok was clicked */</div><div class='del'>-		AddressbookSource *source = addressbook_source_copy(sdialog-&gt;source);</div><div class='del'>-		gint row;</div><div class='del'>-		gchar *text[2];</div><div class='del'>-</div><div class='del'>-		text[0] = source-&gt;name;</div><div class='del'>-		text[1] = source-&gt;host;</div><div class='del'>-</div><div class='del'>-		row = e_utf8_gtk_clist_append (GTK_CLIST(dialog-&gt;clistSources), text);</div><div class='del'>-		gtk_clist_set_row_data_full (GTK_CLIST(dialog-&gt;clistSources), row, source, (GtkDestroyNotify) addressbook_source_free);</div><div class='del'>-		gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 0, TRUE);</div><div class='del'>-		gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 1, TRUE);</div><div class='del'>-		update_sensitivity (dialog);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-edit_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	AddressbookSource *source;</div><div class='del'>-	AddressbookSourceDialog *sdialog;</div><div class='del'>-</div><div class='del'>-	source = gtk_clist_get_row_data (GTK_CLIST (dialog-&gt;clistSources), dialog-&gt;source_row);</div><div class='del'>-</div><div class='del'>-	sdialog = addressbook_config_source_with_gui (dialog-&gt;gui, source, dialog-&gt;dialog);</div><div class='del'>-	if (sdialog-&gt;id == 0) {</div><div class='del'>-		/* Ok was clicked */</div><div class='del'>-		source = addressbook_source_copy(sdialog-&gt;source);</div><div class='del'>-</div><div class='del'>-		e_utf8_gtk_clist_set_text (GTK_CLIST (dialog-&gt;clistSources), dialog-&gt;source_row, 0, source-&gt;name);</div><div class='del'>-		e_utf8_gtk_clist_set_text (GTK_CLIST (dialog-&gt;clistSources), dialog-&gt;source_row, 1, source-&gt;host);</div><div class='del'>-		gtk_clist_set_row_data (GTK_CLIST (dialog-&gt;clistSources), dialog-&gt;source_row, source);</div><div class='del'>-		gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 0, TRUE);</div><div class='del'>-		gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 1, TRUE);</div><div class='del'>-		update_sensitivity (dialog);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-delete_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	gtk_clist_remove (GTK_CLIST (dialog-&gt;clistSources), dialog-&gt;source_row);</div><div class='del'>-	dialog-&gt;source_row = -1;</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 0, TRUE);</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 1, TRUE);</div><div class='del'>-	update_sensitivity (dialog);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-sources_select_row (GtkWidget *widget, gint row, gint column,</div><div class='del'>-		    GdkEventButton *event, AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	dialog-&gt;source_row = row;</div><div class='del'>-</div><div class='del'>-	update_sensitivity (dialog);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_dialog_close (GtkWidget *w, AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	gtk_widget_destroy (dialog-&gt;dialog);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (dialog-&gt;gui));</div><div class='del'>-	g_free (dialog);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_dialog_apply (GtkWidget *w, AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	addressbook_storage_clear_sources();</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; GTK_CLIST(dialog-&gt;clistSources)-&gt;rows; i ++) {</div><div class='del'>-		AddressbookSource *source = (AddressbookSource*)gtk_clist_get_row_data (GTK_CLIST (dialog-&gt;clistSources), i);</div><div class='del'>-		addressbook_storage_add_source (addressbook_source_copy (source));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	addressbook_storage_write_sources();</div><div class='del'>-</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 0, FALSE);</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 1, FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_dialog_ok (GtkWidget *w, AddressbookDialog *dialog)</div><div class='del'>-{</div><div class='del'>-	addressbook_dialog_apply(w, dialog);</div><div class='del'>-	addressbook_dialog_close(w, dialog);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_config (GNOME_Evolution_Shell shell)</div><div class='del'>-{</div><div class='del'>-	AddressbookDialog *dialog;</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *clist;</div><div class='del'>-	GList *l;</div><div class='del'>-</div><div class='del'>-	dialog = g_new0 (AddressbookDialog, 1);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;source_row = -1;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/addressbook-config.glade", NULL);</div><div class='del'>-	dialog-&gt;gui = gui;</div><div class='del'>-	dialog-&gt;shell = shell;</div><div class='del'>-</div><div class='del'>-	dialog-&gt;dialog = glade_xml_get_widget (gui, "addressbook_sources");</div><div class='del'>-</div><div class='del'>-	clist = glade_xml_get_widget (gui, "clistSources");</div><div class='del'>-	dialog-&gt;clistSources = clist;</div><div class='del'>-	</div><div class='del'>-	gtk_clist_column_titles_passive (GTK_CLIST (clist));</div><div class='del'>-	gtk_clist_set_column_width (GTK_CLIST (clist), 0, 80);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;addSource = glade_xml_get_widget (gui, "addSource");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(dialog-&gt;addSource), "clicked",</div><div class='del'>-			    GTK_SIGNAL_FUNC (add_source_clicked),</div><div class='del'>-			    dialog);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;editSource = glade_xml_get_widget (gui, "editSource");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(dialog-&gt;editSource), "clicked",</div><div class='del'>-			    GTK_SIGNAL_FUNC (edit_source_clicked),</div><div class='del'>-			    dialog);</div><div class='del'>-</div><div class='del'>-	dialog-&gt;deleteSource = glade_xml_get_widget (gui, "deleteSource");</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(dialog-&gt;deleteSource), "clicked",</div><div class='del'>-			    GTK_SIGNAL_FUNC (delete_source_clicked),</div><div class='del'>-			    dialog);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 0, FALSE);</div><div class='del'>-	gnome_dialog_set_sensitive (GNOME_DIALOG(dialog-&gt;dialog), 1, FALSE);</div><div class='del'>-	update_sensitivity (dialog);</div><div class='del'>-</div><div class='del'>-	l = addressbook_storage_get_sources ();</div><div class='del'>-	for (; l != NULL; l = l-&gt;next) {</div><div class='del'>-		AddressbookSource *source;</div><div class='del'>-		gint row;</div><div class='del'>-		gchar *text[2];</div><div class='del'>-</div><div class='del'>-		source = addressbook_source_copy ((AddressbookSource*)l-&gt;data);</div><div class='del'>-</div><div class='del'>-		text[0] = source-&gt;name;</div><div class='del'>-		text[1] = source-&gt;host;</div><div class='del'>-</div><div class='del'>-		row = e_utf8_gtk_clist_append (GTK_CLIST(clist), text);</div><div class='del'>-		gtk_clist_set_row_data_full (GTK_CLIST(clist), row, source, (GtkDestroyNotify) addressbook_source_free);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (clist), "select_row",</div><div class='del'>-			    GTK_SIGNAL_FUNC (sources_select_row),</div><div class='del'>-			    dialog);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_button_connect (GNOME_DIALOG(dialog-&gt;dialog),</div><div class='del'>-				     0 /* OK */, addressbook_dialog_ok, dialog);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_button_connect (GNOME_DIALOG(dialog-&gt;dialog),</div><div class='del'>-				     1 /* APPLY */, addressbook_dialog_apply, dialog);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_button_connect (GNOME_DIALOG(dialog-&gt;dialog),</div><div class='del'>-				     2 /* CLOSE */, addressbook_dialog_close, dialog);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_run (GNOME_DIALOG(dialog-&gt;dialog));</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-config.glade b/addressbook/gui/component/addressbook-config.glade<br/>deleted file mode 100644<br/>index 50241167c2..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-config.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-config.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,926 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;add_addressbook&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;Add Addressbook&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;default_width&gt;417&lt;/default_width&gt;</div><div class='del'>-  &lt;default_height&gt;332&lt;/default_height&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dialog-vbox1&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;dialog-action_area1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button1&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_OK&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button3&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkNotebook&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;notebook2&lt;/name&gt;</div><div class='del'>-      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-      &lt;show_tabs&gt;True&lt;/show_tabs&gt;</div><div class='del'>-      &lt;show_border&gt;True&lt;/show_border&gt;</div><div class='del'>-      &lt;tab_pos&gt;GTK_POS_TOP&lt;/tab_pos&gt;</div><div class='del'>-      &lt;scrollable&gt;False&lt;/scrollable&gt;</div><div class='del'>-      &lt;tab_hborder&gt;2&lt;/tab_hborder&gt;</div><div class='del'>-      &lt;tab_vborder&gt;2&lt;/tab_vborder&gt;</div><div class='del'>-      &lt;popup_enable&gt;False&lt;/popup_enable&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;vbox1&lt;/name&gt;</div><div class='del'>-	&lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;6&lt;/spacing&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label29&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;The information below is required in order to add an addressbook.  &lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;table1&lt;/name&gt;</div><div class='del'>-	  &lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	  &lt;rows&gt;3&lt;/rows&gt;</div><div class='del'>-	  &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-	  &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	  &lt;row_spacing&gt;3&lt;/row_spacing&gt;</div><div class='del'>-	  &lt;column_spacing&gt;3&lt;/column_spacing&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label15&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;_Account name:&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;default_focus_target&gt;account-name-entry&lt;/default_focus_target&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;account-name-entry&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	    &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	    &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label16&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;_Server name:&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;default_focus_target&gt;server-name-entry&lt;/default_focus_target&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;server-name-entry&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	    &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	    &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkCheckButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;auth-checkbutton&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;label&gt;_My server requires authentication&lt;/label&gt;</div><div class='del'>-	    &lt;active&gt;False&lt;/active&gt;</div><div class='del'>-	    &lt;draw_indicator&gt;True&lt;/draw_indicator&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hbox4&lt;/name&gt;</div><div class='del'>-	  &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	  &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;email-address-label&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Email Address:&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;email-address-entry&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	    &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	    &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkNotebook&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;basic-notebook&lt;/name&gt;</div><div class='del'>-	  &lt;show_tabs&gt;False&lt;/show_tabs&gt;</div><div class='del'>-	  &lt;show_border&gt;False&lt;/show_border&gt;</div><div class='del'>-	  &lt;tab_pos&gt;GTK_POS_TOP&lt;/tab_pos&gt;</div><div class='del'>-	  &lt;scrollable&gt;False&lt;/scrollable&gt;</div><div class='del'>-	  &lt;tab_hborder&gt;2&lt;/tab_hborder&gt;</div><div class='del'>-	  &lt;tab_vborder&gt;2&lt;/tab_vborder&gt;</div><div class='del'>-	  &lt;popup_enable&gt;False&lt;/popup_enable&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label28&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;This name will be used to identify your account. It is for display purposes only.&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label18&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;label18&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label31&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;This is the name of the server where your addressbook is located.&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label19&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;label19&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label48&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Evolution will use this email address to authenticate you with the server&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label47&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;label47&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	&lt;name&gt;label12&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;Basic&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;vbox2&lt;/name&gt;</div><div class='del'>-	&lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;3&lt;/spacing&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label30&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;This information is not required for most ldap servers. &lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;table2&lt;/name&gt;</div><div class='del'>-	  &lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	  &lt;rows&gt;3&lt;/rows&gt;</div><div class='del'>-	  &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-	  &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	  &lt;row_spacing&gt;3&lt;/row_spacing&gt;</div><div class='del'>-	  &lt;column_spacing&gt;3&lt;/column_spacing&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label22&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;_Port:&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;default_focus_target&gt;port-entry&lt;/default_focus_target&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;port-entry&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	    &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	    &lt;text&gt;389&lt;/text&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label23&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Search _base:&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;default_focus_target&gt;rootdn-entry&lt;/default_focus_target&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;rootdn-entry&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	    &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	    &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label24&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Search s_cope: &lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;alignment1&lt;/name&gt;</div><div class='del'>-	    &lt;xalign&gt;7.45058e-09&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;7.45058e-09&lt;/yalign&gt;</div><div class='del'>-	    &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	    &lt;yscale&gt;1&lt;/yscale&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkOptionMenu&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;scope-optionmenu&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;items&gt;One</div><div class='del'>-Base</div><div class='del'>-Sub</div><div class='del'>-&lt;/items&gt;</div><div class='del'>-	      &lt;initial_choice&gt;0&lt;/initial_choice&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkNotebook&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;advanced-notebook&lt;/name&gt;</div><div class='del'>-	  &lt;show_tabs&gt;False&lt;/show_tabs&gt;</div><div class='del'>-	  &lt;show_border&gt;False&lt;/show_border&gt;</div><div class='del'>-	  &lt;tab_pos&gt;GTK_POS_TOP&lt;/tab_pos&gt;</div><div class='del'>-	  &lt;scrollable&gt;False&lt;/scrollable&gt;</div><div class='del'>-	  &lt;tab_hborder&gt;2&lt;/tab_hborder&gt;</div><div class='del'>-	  &lt;tab_vborder&gt;2&lt;/tab_vborder&gt;</div><div class='del'>-	  &lt;popup_enable&gt;False&lt;/popup_enable&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label35&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;This is the port that your ldap server uses.&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label25&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;label18&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label36&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;This is the base node for all your searches on the ldap server. Contact your server administrator for more information.&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label26&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;label19&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label37&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;This information is used by your ldap server to specify which nodes are used in a search. Contact your server administrator for more information.&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;True&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label27&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;label20&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	&lt;name&gt;label13&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;Advanced&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;addressbook_sources&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;Addressbook Sources&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;default_width&gt;355&lt;/default_width&gt;</div><div class='del'>-  &lt;default_height&gt;285&lt;/default_height&gt;</div><div class='del'>-  &lt;allow_shrink&gt;True&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dialog-vbox2&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;dialog-action_area2&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button7&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_OK&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button8&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_APPLY&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button9&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CLOSE&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;hbox3&lt;/name&gt;</div><div class='del'>-      &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-      &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkScrolledWindow&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;scrolledwindow2&lt;/name&gt;</div><div class='del'>-	&lt;hscrollbar_policy&gt;GTK_POLICY_AUTOMATIC&lt;/hscrollbar_policy&gt;</div><div class='del'>-	&lt;vscrollbar_policy&gt;GTK_POLICY_AUTOMATIC&lt;/vscrollbar_policy&gt;</div><div class='del'>-	&lt;hupdate_policy&gt;GTK_UPDATE_CONTINUOUS&lt;/hupdate_policy&gt;</div><div class='del'>-	&lt;vupdate_policy&gt;GTK_UPDATE_CONTINUOUS&lt;/vupdate_policy&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	  &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	  &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkCList&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;clistSources&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-	  &lt;column_widths&gt;100,80&lt;/column_widths&gt;</div><div class='del'>-	  &lt;selection_mode&gt;GTK_SELECTION_SINGLE&lt;/selection_mode&gt;</div><div class='del'>-	  &lt;show_titles&gt;True&lt;/show_titles&gt;</div><div class='del'>-	  &lt;shadow_type&gt;GTK_SHADOW_IN&lt;/shadow_type&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;CList:title&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label43&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Account Name&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;CList:title&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label44&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Server Name&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;vbox4&lt;/name&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	  &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	  &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label45&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;</div><div class='del'>-&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkVButtonBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;vbuttonbox3&lt;/name&gt;</div><div class='del'>-	  &lt;layout_style&gt;GTK_BUTTONBOX_START&lt;/layout_style&gt;</div><div class='del'>-	  &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	  &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-	  &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-	  &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-	  &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;addSource&lt;/name&gt;</div><div class='del'>-	    &lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;label&gt;_Add&lt;/label&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;editSource&lt;/name&gt;</div><div class='del'>-	    &lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;label&gt;_Edit&lt;/label&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;deleteSource&lt;/name&gt;</div><div class='del'>-	    &lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;label&gt;De_lete&lt;/label&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-config.h b/addressbook/gui/component/addressbook-config.h<br/>deleted file mode 100644<br/>index 980fe2e5eb..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-config.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-config.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,32 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* addressbook-storage.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Chris Toshok</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __ADDRESSBOOK_CONFIG_H__</div><div class='del'>-#define __ADDRESSBOOK_CONFIG_H__</div><div class='del'>-</div><div class='del'>-#include "addressbook-storage.h"</div><div class='del'>-</div><div class='del'>-void         addressbook_config (GNOME_Evolution_Shell shell);</div><div class='del'>-void         addressbook_create_new_source (char *new_source, GtkWidget *parent);</div><div class='del'>-</div><div class='del'>-#endif /* __ADDRESSBOOK_CONFIG_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-factory.c b/addressbook/gui/component/addressbook-factory.c<br/>deleted file mode 100644<br/>index d0172be328..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-factory.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-factory.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,97 +0,0 @@</div><div class='del'>-/**</div><div class='del'>- * sample-control-factory.c</div><div class='del'>- *</div><div class='del'>- * Copyright 1999, Ximian, Inc.</div><div class='del'>- * </div><div class='del'>- * Author:</div><div class='del'>- *   Nat Friedman (nat@nat.org)</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-init.h&gt;</div><div class='del'>-#include &lt;liboaf/liboaf.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-main.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-cursors.h&gt;</div><div class='del'>-#include &lt;e-util/e-passwords.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;camel/camel.h&gt;</div><div class='del'>-</div><div class='del'>-#ifdef GTKHTML_HAVE_GCONF</div><div class='del'>-#include &lt;gconf/gconf.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "addressbook-component.h"</div><div class='del'>-#include "e-address-widget.h"</div><div class='del'>-#include "e-address-popup.h"</div><div class='del'>-#include "addressbook/gui/widgets/e-minicard-control.h"</div><div class='del'>-#include "select-names/e-select-names-factory.h"</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_corba (int *argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	gnome_init_with_popt_table ("evolution-addressbook", "0.0",</div><div class='del'>-				    *argc, argv, oaf_popt_options, 0, NULL);</div><div class='del'>-</div><div class='del'>-	oaf_init (*argc, argv);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_bonobo (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE)</div><div class='del'>-		g_error (_("Could not initialize Bonobo"));</div><div class='del'>-</div><div class='del'>-#ifdef GTKHTML_HAVE_GCONF</div><div class='del'>-	gconf_init (argc, argv, NULL);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	glade_gnome_init ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main (int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-	bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR);</div><div class='del'>-	textdomain (PACKAGE);</div><div class='del'>-	</div><div class='del'>-	init_corba (&amp;argc, argv);</div><div class='del'>-</div><div class='del'>-	init_bonobo (argc, argv);</div><div class='del'>-</div><div class='del'>-	/* FIXME: Messy names here.  This file should be `main.c'.  `addressbook.c' should</div><div class='del'>-           be `addressbook-control-factory.c' and the functions should be called</div><div class='del'>-           `addressbook_control_factory_something()'.  And `addressbook-component.c'</div><div class='del'>-           should be `addressbook-component-factory.c'.  */</div><div class='del'>-</div><div class='del'>-	addressbook_factory_init ();</div><div class='del'>-	addressbook_component_factory_init ();</div><div class='del'>-</div><div class='del'>-	e_select_names_factory_init ();</div><div class='del'>-	</div><div class='del'>-	e_minicard_control_factory_init ();</div><div class='del'>-</div><div class='del'>-	e_address_widget_factory_init ();</div><div class='del'>-	e_address_popup_factory_init ();</div><div class='del'>-</div><div class='del'>-	e_cursors_init();</div><div class='del'>-</div><div class='del'>-	e_passwords_init("Addressbook");</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-	g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	g_thread_init (NULL);</div><div class='del'>-	camel_type_init ();</div><div class='del'>-</div><div class='del'>-	bonobo_main ();</div><div class='del'>-</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-storage.c b/addressbook/gui/component/addressbook-storage.c<br/>deleted file mode 100644<br/>index eb2b2bc29a..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-storage.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-storage.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,603 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* e-ldap-storage.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Chris Toshok</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/* The addressbook-sources.xml file goes like this:</div><div class='del'>-</div><div class='del'>-   &lt;?xml version="1.0"?&gt;</div><div class='del'>-   &lt;addressbooks&gt;</div><div class='del'>-     &lt;contactserver&gt;</div><div class='del'>-           &lt;name&gt;LDAP Server&lt;/name&gt;</div><div class='del'>-	   &lt;host&gt;ldap.server.com&lt;/host&gt;</div><div class='del'>-	   &lt;port&gt;389&lt;/port&gt;</div><div class='del'>-	   &lt;rootdn&gt;&lt;/rootdn&gt;</div><div class='del'>-	   &lt;authmethod&gt;simple&lt;/authmethod&gt;</div><div class='del'>-	   &lt;emailaddr&gt;toshok@blubag.com&lt;/emailaddr&gt;</div><div class='del'>-	   &lt;rememberpass/&gt;</div><div class='del'>-     &lt;/contactserver&gt;</div><div class='del'>-   &lt;/addressbooks&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_CONFIG_H</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/fcntl.h&gt;</div><div class='del'>-#include &lt;sys/stat.h&gt;</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtk.h&gt;</div><div class='del'>-#include &lt;gnome-xml/parser.h&gt;</div><div class='del'>-#include &lt;gnome-xml/xmlmemory.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-util.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-#include &lt;gal/util/e-xml-utils.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-util/e-unicode-i18n.h"</div><div class='del'>-</div><div class='del'>-#include "evolution-shell-component.h"</div><div class='del'>-#include "evolution-storage.h"</div><div class='del'>-</div><div class='del'>-#include "addressbook-storage.h"</div><div class='del'>-</div><div class='del'>-#define ADDRESSBOOK_SOURCES_XML "addressbook-sources.xml"</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-static gboolean load_source_data (const char *file_path);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static gboolean save_source_data (const char *file_path);</div><div class='del'>-static void deregister_storage (void);</div><div class='del'>-</div><div class='del'>-static GList *sources;</div><div class='del'>-static EvolutionStorage *storage;</div><div class='del'>-static char *storage_path;</div><div class='del'>-static GNOME_Evolution_Shell corba_shell;</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_storage_setup (EvolutionShellComponent *shell_component,</div><div class='del'>-			   const char *evolution_homedir)</div><div class='del'>-{</div><div class='del'>-	EvolutionShellClient *shell_client;</div><div class='del'>-</div><div class='del'>-	shell_client = evolution_shell_component_get_owner (shell_component);</div><div class='del'>-	if (shell_client == CORBA_OBJECT_NIL) {</div><div class='del'>-		g_warning ("We have no shell!?");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	corba_shell = bonobo_object_corba_objref (BONOBO_OBJECT (shell_client));</div><div class='del'>-</div><div class='del'>-	sources = NULL;</div><div class='del'>-</div><div class='del'>-	if (storage_path)</div><div class='del'>-		g_free (storage_path);</div><div class='del'>-	storage_path = g_concat_dir_and_file (evolution_homedir, ADDRESSBOOK_SOURCES_XML);</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-	if (!load_source_data (storage_path))</div><div class='del'>-		deregister_storage ();</div><div class='del'>-#endif </div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-static void</div><div class='del'>-notify_listener (const Bonobo_Listener listener, </div><div class='del'>-		 GNOME_Evolution_Storage_Result corba_result)</div><div class='del'>-{</div><div class='del'>-	CORBA_any any;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	any._type = TC_GNOME_Evolution_Storage_Result;</div><div class='del'>-	any._value = &amp;corba_result;</div><div class='del'>-</div><div class='del'>-	Bonobo_Listener_event (listener, "result", &amp;any, &amp;ev);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_ldap_folder (EvolutionStorage *storage, const Bonobo_Listener listener,</div><div class='del'>-		    const CORBA_char *path, const CORBA_char *physical_uri,</div><div class='del'>-		    gpointer data)</div><div class='del'>-{</div><div class='del'>-	</div><div class='del'>-	addressbook_storage_remove_source (path + 1);</div><div class='del'>-	addressbook_storage_write_sources();</div><div class='del'>-</div><div class='del'>-	notify_listener (listener, GNOME_Evolution_Storage_OK);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-create_ldap_folder (EvolutionStorage *storage, const Bonobo_Listener listener,</div><div class='del'>-		    const CORBA_char *path, const CORBA_char *type,</div><div class='del'>-		    const CORBA_char *description, const CORBA_char *parent_physical_uri,</div><div class='del'>-		    gpointer data)</div><div class='del'>-{</div><div class='del'>-	if (strcmp (type, "ldap-contacts")) {</div><div class='del'>-		notify_listener (listener, GNOME_Evolution_Storage_UNSUPPORTED_TYPE);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (strcmp (parent_physical_uri, "")) {/* ldap servers can't have subfolders */</div><div class='del'>-		notify_listener (listener, GNOME_Evolution_Storage_INVALID_URI);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	addressbook_create_new_source (path + 1, NULL);</div><div class='del'>-</div><div class='del'>-	notify_listener (listener, GNOME_Evolution_Storage_OK);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-EvolutionStorage *</div><div class='del'>-addressbook_get_other_contact_storage (void) </div><div class='del'>-{</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-	EvolutionStorageResult result;</div><div class='del'>-</div><div class='del'>-	if (storage == NULL) {</div><div class='del'>-		storage = evolution_storage_new (U_("Other Contacts"), NULL, NULL);</div><div class='del'>-		gtk_signal_connect (GTK_OBJECT (storage),</div><div class='del'>-				    "remove_folder",</div><div class='del'>-				    GTK_SIGNAL_FUNC(remove_ldap_folder), NULL);</div><div class='del'>-		gtk_signal_connect (GTK_OBJECT (storage),</div><div class='del'>-				    "create_folder",</div><div class='del'>-				    GTK_SIGNAL_FUNC(create_ldap_folder), NULL);</div><div class='del'>-		result = evolution_storage_register_on_shell (storage, corba_shell);</div><div class='del'>-		switch (result) {</div><div class='del'>-		case EVOLUTION_STORAGE_OK:</div><div class='del'>-			break;</div><div class='del'>-		case EVOLUTION_STORAGE_ERROR_GENERIC : </div><div class='del'>-			g_warning("register_storage: generic error");</div><div class='del'>-			break;</div><div class='del'>-		case EVOLUTION_STORAGE_ERROR_CORBA : </div><div class='del'>-			g_warning("register_storage: corba error");</div><div class='del'>-			break;</div><div class='del'>-		case EVOLUTION_STORAGE_ERROR_ALREADYREGISTERED :</div><div class='del'>-			g_warning("register_storage: already registered error");</div><div class='del'>-			break;</div><div class='del'>-		case EVOLUTION_STORAGE_ERROR_EXISTS :</div><div class='del'>-			g_warning("register_storage: already exists error");</div><div class='del'>-			break;</div><div class='del'>-		default:</div><div class='del'>-			g_warning("register_storage: other error");</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	return storage;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void </div><div class='del'>-deregister_storage (void)</div><div class='del'>-{</div><div class='del'>-	if (evolution_storage_deregister_on_shell (storage, corba_shell) != </div><div class='del'>-	    EVOLUTION_STORAGE_OK) {</div><div class='del'>-		g_warning("couldn't deregister storage");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	storage = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-static char *</div><div class='del'>-get_string_value (xmlNode *node,</div><div class='del'>-		  const char *name)</div><div class='del'>-{</div><div class='del'>-	xmlNode *p;</div><div class='del'>-	xmlChar *xml_string;</div><div class='del'>-	char *retval;</div><div class='del'>-</div><div class='del'>-	p = e_xml_get_child_by_name (node, (xmlChar *) name);</div><div class='del'>-	if (p == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	p = e_xml_get_child_by_name (p, (xmlChar *) "text");</div><div class='del'>-	if (p == NULL) /* there's no text between the tags, return the empty string */</div><div class='del'>-		return g_strdup("");</div><div class='del'>-</div><div class='del'>-	xml_string = xmlNodeListGetString (node-&gt;doc, p, 1);</div><div class='del'>-	retval = g_strdup ((char *) xml_string);</div><div class='del'>-	xmlFree (xml_string);</div><div class='del'>-</div><div class='del'>-	return retval;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-ldap_unparse_auth (AddressbookLDAPAuthType auth_type)</div><div class='del'>-{</div><div class='del'>-	switch (auth_type) {</div><div class='del'>-	case ADDRESSBOOK_LDAP_AUTH_NONE:</div><div class='del'>-		return "none";</div><div class='del'>-	case ADDRESSBOOK_LDAP_AUTH_SIMPLE:</div><div class='del'>-		return "simple";</div><div class='del'>-	default:</div><div class='del'>-		g_assert(0);</div><div class='del'>-		return "none";</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-static AddressbookLDAPAuthType</div><div class='del'>-ldap_parse_auth (const char *auth)</div><div class='del'>-{</div><div class='del'>-	if (!auth)</div><div class='del'>-		return ADDRESSBOOK_LDAP_AUTH_NONE;</div><div class='del'>-</div><div class='del'>-	if (!strcmp (auth, "simple"))</div><div class='del'>-		return ADDRESSBOOK_LDAP_AUTH_SIMPLE;</div><div class='del'>-	else</div><div class='del'>-		return ADDRESSBOOK_LDAP_AUTH_NONE;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-ldap_unparse_scope (AddressbookLDAPScopeType scope_type)</div><div class='del'>-{</div><div class='del'>-	switch (scope_type) {</div><div class='del'>-	case ADDRESSBOOK_LDAP_SCOPE_BASE:</div><div class='del'>-		return "base";</div><div class='del'>-	case ADDRESSBOOK_LDAP_SCOPE_ONELEVEL:</div><div class='del'>-		return "one";</div><div class='del'>-	case ADDRESSBOOK_LDAP_SCOPE_SUBTREE:</div><div class='del'>-		return "sub";</div><div class='del'>-	default:</div><div class='del'>-		g_assert(0);</div><div class='del'>-		return "";</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-static AddressbookLDAPScopeType</div><div class='del'>-ldap_parse_scope (const char *scope)</div><div class='del'>-{</div><div class='del'>-	if (!scope)</div><div class='del'>-		return ADDRESSBOOK_LDAP_SCOPE_SUBTREE; /* XXX good default? */</div><div class='del'>-</div><div class='del'>-	if (!strcmp (scope, "base"))</div><div class='del'>-		return ADDRESSBOOK_LDAP_SCOPE_BASE;</div><div class='del'>-	else if (!strcmp (scope, "one"))</div><div class='del'>-		return ADDRESSBOOK_LDAP_SCOPE_ONELEVEL;</div><div class='del'>-	else</div><div class='del'>-		return ADDRESSBOOK_LDAP_SCOPE_SUBTREE;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_storage_init_source_uri (AddressbookSource *source)</div><div class='del'>-{</div><div class='del'>-	if (source-&gt;uri)</div><div class='del'>-		g_free (source-&gt;uri);</div><div class='del'>-</div><div class='del'>-	source-&gt;uri = g_strdup_printf  ("ldap://%s:%s/%s??%s",</div><div class='del'>-					source-&gt;host, source-&gt;port,</div><div class='del'>-					source-&gt;rootdn, ldap_unparse_scope(source-&gt;scope));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LDAP</div><div class='del'>-static gboolean</div><div class='del'>-load_source_data (const char *file_path)</div><div class='del'>-{</div><div class='del'>-	xmlDoc *doc;</div><div class='del'>-	xmlNode *root;</div><div class='del'>-	xmlNode *child;</div><div class='del'>-</div><div class='del'>-	addressbook_get_other_contact_storage();</div><div class='del'>-</div><div class='del'>- tryagain:</div><div class='del'>-	doc = xmlParseFile (file_path);</div><div class='del'>-	if (doc == NULL) {</div><div class='del'>-		/* Check to see if a addressbook-sources.xml.new file</div><div class='del'>-                   exists.  If it does, rename it and try loading it */</div><div class='del'>-		char *new_path = g_strdup_printf ("%s.new", file_path);</div><div class='del'>-		struct stat sb;</div><div class='del'>-</div><div class='del'>-		if (stat (new_path, &amp;sb) == 0) {</div><div class='del'>-			int rv;</div><div class='del'>-</div><div class='del'>-			rv = rename (new_path, file_path);</div><div class='del'>-			g_free (new_path);</div><div class='del'>-</div><div class='del'>-			if (rv &lt; 0) {</div><div class='del'>-				g_error ("Failed to rename %s: %s\n",</div><div class='del'>-					 ADDRESSBOOK_SOURCES_XML,</div><div class='del'>-					 strerror(errno));</div><div class='del'>-				return FALSE;</div><div class='del'>-			} else</div><div class='del'>-				goto tryagain;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		g_free (new_path);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	root = xmlDocGetRootElement (doc);</div><div class='del'>-	if (root == NULL || strcmp (root-&gt;name, "addressbooks") != 0) {</div><div class='del'>-		xmlFreeDoc (doc);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	for (child = root-&gt;childs; child; child = child-&gt;next) {</div><div class='del'>-		char *path;</div><div class='del'>-		AddressbookSource *source;</div><div class='del'>-</div><div class='del'>-		source = g_new0 (AddressbookSource, 1);</div><div class='del'>-</div><div class='del'>-		if (!strcmp (child-&gt;name, "contactserver")) {</div><div class='del'>-			source-&gt;type        = ADDRESSBOOK_SOURCE_LDAP;</div><div class='del'>-			source-&gt;port   = get_string_value (child, "port");</div><div class='del'>-			source-&gt;host   = get_string_value (child, "host");</div><div class='del'>-			source-&gt;rootdn = get_string_value (child, "rootdn");</div><div class='del'>-			source-&gt;scope  = ldap_parse_scope (get_string_value (child, "scope"));</div><div class='del'>-			source-&gt;auth   = ldap_parse_auth (get_string_value (child, "authmethod"));</div><div class='del'>-			source-&gt;email_addr = get_string_value (child, "emailaddr");</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			g_warning ("unknown node '%s' in %s", child-&gt;name, file_path);</div><div class='del'>-			g_free (source);</div><div class='del'>-			continue;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		addressbook_storage_init_source_uri (source);</div><div class='del'>-</div><div class='del'>-		source-&gt;name = get_string_value (child, "name");</div><div class='del'>-		source-&gt;description = get_string_value (child, "description");</div><div class='del'>-</div><div class='del'>-		path = g_strdup_printf ("/%s", source-&gt;name);</div><div class='del'>-		evolution_storage_new_folder (storage, path, source-&gt;name,</div><div class='del'>-					      "ldap-contacts", source-&gt;uri,</div><div class='del'>-					      source-&gt;description, 0);</div><div class='del'>-</div><div class='del'>-		sources = g_list_append (sources, source);</div><div class='del'>-</div><div class='del'>-		g_free (path);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (g_list_length (sources) == 0)</div><div class='del'>-		deregister_storage();</div><div class='del'>-</div><div class='del'>-	xmlFreeDoc (doc);</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ldap_source_foreach(AddressbookSource *source, xmlNode *root)</div><div class='del'>-{</div><div class='del'>-	xmlNode *source_root = xmlNewNode (NULL,</div><div class='del'>-					   (xmlChar *) "contactserver");</div><div class='del'>-</div><div class='del'>-	xmlAddChild (root, source_root);</div><div class='del'>-</div><div class='del'>-	xmlNewChild (source_root, NULL, (xmlChar *) "name",</div><div class='del'>-		     (xmlChar *) source-&gt;name);</div><div class='del'>-	xmlNewChild (source_root, NULL, (xmlChar *) "description",</div><div class='del'>-		     (xmlChar *) source-&gt;description);</div><div class='del'>-</div><div class='del'>-	xmlNewChild (source_root, NULL, (xmlChar *) "port",</div><div class='del'>-		     (xmlChar *) source-&gt;port);</div><div class='del'>-	xmlNewChild (source_root, NULL, (xmlChar *) "host",</div><div class='del'>-		     (xmlChar *) source-&gt;host);</div><div class='del'>-	xmlNewChild (source_root, NULL, (xmlChar *) "rootdn",</div><div class='del'>-		     (xmlChar *) source-&gt;rootdn);</div><div class='del'>-	xmlNewChild (source_root, NULL, (xmlChar *) "scope",</div><div class='del'>-		     (xmlChar *) ldap_unparse_scope(source-&gt;scope));</div><div class='del'>-	xmlNewChild (source_root, NULL, (xmlChar *) "authmethod",</div><div class='del'>-		     (xmlChar *) ldap_unparse_auth(source-&gt;auth));</div><div class='del'>-	if (source-&gt;auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE) {</div><div class='del'>-		xmlNewChild (source_root, NULL, (xmlChar *) "emailaddr",</div><div class='del'>-			     (xmlChar *) source-&gt;email_addr);</div><div class='del'>-		if (source-&gt;remember_passwd)</div><div class='del'>-			xmlNewChild (source_root, NULL, (xmlChar *) "rememberpass",</div><div class='del'>-				     NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-save_source_data (const char *file_path)</div><div class='del'>-{</div><div class='del'>-	xmlDoc *doc;</div><div class='del'>-	xmlNode *root;</div><div class='del'>-	int fd, rv;</div><div class='del'>-	xmlChar *buf;</div><div class='del'>-	int buf_size;</div><div class='del'>-	char *new_path = g_strdup_printf ("%s.new", file_path);</div><div class='del'>-</div><div class='del'>-	doc = xmlNewDoc ((xmlChar *) "1.0");</div><div class='del'>-	root = xmlNewDocNode (doc, NULL, (xmlChar *) "addressbooks", NULL);</div><div class='del'>-	xmlDocSetRootElement (doc, root);</div><div class='del'>-</div><div class='del'>-	g_list_foreach (sources, (GFunc)ldap_source_foreach, root);</div><div class='del'>-</div><div class='del'>-	fd = open (new_path, O_CREAT | O_TRUNC | O_WRONLY, 0600);</div><div class='del'>-	fchmod (fd, 0600);</div><div class='del'>-</div><div class='del'>-	xmlDocDumpMemory (doc, &amp;buf, &amp;buf_size);</div><div class='del'>-</div><div class='del'>-	if (buf == NULL) {</div><div class='del'>-		g_error ("Failed to write %s: xmlBufferCreate() == NULL", ADDRESSBOOK_SOURCES_XML);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	rv = write (fd, buf, buf_size);</div><div class='del'>-	xmlFree (buf);</div><div class='del'>-	close (fd);</div><div class='del'>-</div><div class='del'>-	if (0 &gt; rv) {</div><div class='del'>-		g_error ("Failed to write new %s: %s\n", ADDRESSBOOK_SOURCES_XML, strerror(errno));</div><div class='del'>-		unlink (new_path);</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		if (0 &gt; rename (new_path, file_path)) {</div><div class='del'>-			g_error ("Failed to rename %s: %s\n", ADDRESSBOOK_SOURCES_XML, strerror(errno));</div><div class='del'>-			unlink (new_path);</div><div class='del'>-			return FALSE;</div><div class='del'>-		}</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_storage_add_source (AddressbookSource *source)</div><div class='del'>-{</div><div class='del'>-	char *path;</div><div class='del'>-</div><div class='del'>-	sources = g_list_append (sources, source);</div><div class='del'>-</div><div class='del'>-	/* And then to the ui */</div><div class='del'>-	addressbook_get_other_contact_storage();</div><div class='del'>-	path = g_strdup_printf ("/%s", source-&gt;name);</div><div class='del'>-	evolution_storage_new_folder (storage, path, source-&gt;name, "ldap-contacts",</div><div class='del'>-				      source-&gt;uri, source-&gt;description, 0);</div><div class='del'>-</div><div class='del'>-	g_free (path);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_storage_remove_source (const char *name)</div><div class='del'>-{</div><div class='del'>-	char *path;</div><div class='del'>-	AddressbookSource *source = NULL;</div><div class='del'>-	GList *l;</div><div class='del'>-</div><div class='del'>-	/* remove it from our hashtable */</div><div class='del'>-	for (l = sources; l; l = l-&gt;next) {</div><div class='del'>-		AddressbookSource *s = l-&gt;data;</div><div class='del'>-		if (!strcmp (s-&gt;name, name)) {</div><div class='del'>-			source = s;</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!source)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	sources = g_list_remove_link (sources, l);</div><div class='del'>-	g_list_free_1 (l);</div><div class='del'>-</div><div class='del'>-	addressbook_source_free (source);</div><div class='del'>-</div><div class='del'>-	/* and then from the ui */</div><div class='del'>-	path = g_strdup_printf ("/%s", name);</div><div class='del'>-	evolution_storage_removed_folder (storage, path);</div><div class='del'>-</div><div class='del'>-	if (g_list_length (sources) == 0) </div><div class='del'>-		deregister_storage ();</div><div class='del'>-</div><div class='del'>-	g_free (path);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GList *</div><div class='del'>-addressbook_storage_get_sources ()</div><div class='del'>-{</div><div class='del'>-	return sources;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-AddressbookSource *</div><div class='del'>-addressbook_storage_get_source_by_uri (const char *uri)</div><div class='del'>-{</div><div class='del'>-	GList *l;</div><div class='del'>-</div><div class='del'>-	for (l = sources; l ; l = l-&gt;next) {</div><div class='del'>-		AddressbookSource *source = l-&gt;data;</div><div class='del'>-		if (!strcmp (uri, source-&gt;uri))</div><div class='del'>-			return source;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_source_free (AddressbookSource *source)</div><div class='del'>-{</div><div class='del'>-	g_free (source-&gt;name);</div><div class='del'>-	g_free (source-&gt;description);</div><div class='del'>-	g_free (source-&gt;uri);</div><div class='del'>-	g_free (source-&gt;host);</div><div class='del'>-	g_free (source-&gt;port);</div><div class='del'>-	g_free (source-&gt;rootdn);</div><div class='del'>-	g_free (source-&gt;email_addr);</div><div class='del'>-</div><div class='del'>-	g_free (source);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_source_foreach (AddressbookSource *source, gpointer data)</div><div class='del'>-{</div><div class='del'>-	char *path = g_strdup_printf ("/%s", source-&gt;name);</div><div class='del'>-</div><div class='del'>-	evolution_storage_removed_folder (storage, path);</div><div class='del'>-</div><div class='del'>-	g_free (path);</div><div class='del'>-</div><div class='del'>-	addressbook_source_free (source);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_storage_clear_sources (void)</div><div class='del'>-{</div><div class='del'>-	g_list_foreach (sources, (GFunc)addressbook_source_foreach, NULL);</div><div class='del'>-	g_list_free (sources);</div><div class='del'>-	deregister_storage ();</div><div class='del'>-	sources = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_storage_write_sources (void)</div><div class='del'>-{</div><div class='del'>-	save_source_data (storage_path);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-AddressbookSource *</div><div class='del'>-addressbook_source_copy (const AddressbookSource *source)</div><div class='del'>-{</div><div class='del'>-	AddressbookSource *copy;</div><div class='del'>-</div><div class='del'>-	copy = g_new0 (AddressbookSource, 1);</div><div class='del'>-	copy-&gt;name = g_strdup (source-&gt;name);</div><div class='del'>-	copy-&gt;description = g_strdup (source-&gt;description);</div><div class='del'>-	copy-&gt;type = source-&gt;type;</div><div class='del'>-	copy-&gt;uri = g_strdup (source-&gt;uri);</div><div class='del'>-</div><div class='del'>-	copy-&gt;host = g_strdup (source-&gt;host);</div><div class='del'>-	copy-&gt;port = g_strdup (source-&gt;port);</div><div class='del'>-	copy-&gt;rootdn = g_strdup (source-&gt;rootdn);</div><div class='del'>-	copy-&gt;scope = source-&gt;scope;</div><div class='del'>-	copy-&gt;auth = source-&gt;auth;</div><div class='del'>-	copy-&gt;email_addr = g_strdup (source-&gt;email_addr);</div><div class='del'>-	copy-&gt;remember_passwd = source-&gt;remember_passwd;</div><div class='del'>-</div><div class='del'>-	return copy;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/addressbook-storage.h b/addressbook/gui/component/addressbook-storage.h<br/>deleted file mode 100644<br/>index d4a918fe50..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook-storage.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-storage.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,78 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* addressbook-storage.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Chris Toshok</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __ADDRESSBOOK_STORAGE_H__</div><div class='del'>-#define __ADDRESSBOOK_STORAGE_H__</div><div class='del'>-</div><div class='del'>-#include "evolution-shell-component.h"</div><div class='del'>-#include "evolution-storage.h"</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	ADDRESSBOOK_SOURCE_LDAP,</div><div class='del'>-	ADDRESSBOOK_SOURCE_FILE,</div><div class='del'>-	ADDRESSBOOK_SOURCE_LAST</div><div class='del'>-} AddressbookSourceType;</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	ADDRESSBOOK_LDAP_AUTH_NONE,</div><div class='del'>-	ADDRESSBOOK_LDAP_AUTH_SIMPLE,</div><div class='del'>-	ADDRESSBOOK_LDAP_AUTH_LAST</div><div class='del'>-} AddressbookLDAPAuthType;</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-	ADDRESSBOOK_LDAP_SCOPE_ONELEVEL,</div><div class='del'>-	ADDRESSBOOK_LDAP_SCOPE_BASE,</div><div class='del'>-	ADDRESSBOOK_LDAP_SCOPE_SUBTREE,</div><div class='del'>-	ADDRESSBOOK_LDAP_SCOPE_LAST</div><div class='del'>-} AddressbookLDAPScopeType;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	AddressbookSourceType type;</div><div class='del'>-	char *name;</div><div class='del'>-	char *description;</div><div class='del'>-	char *host;</div><div class='del'>-	char *port;</div><div class='del'>-	char *rootdn;</div><div class='del'>-	AddressbookLDAPScopeType scope;</div><div class='del'>-	AddressbookLDAPAuthType auth;</div><div class='del'>-	char *email_addr;                   /* used in AUTH_SIMPLE */</div><div class='del'>-	gboolean remember_passwd;</div><div class='del'>-	char *uri; /* filled in from the above */</div><div class='del'>-} AddressbookSource;</div><div class='del'>-</div><div class='del'>-void addressbook_storage_setup (EvolutionShellComponent *shell_component,</div><div class='del'>-				const char *evolution_homedir);</div><div class='del'>-</div><div class='del'>-EvolutionStorage  *addressbook_get_other_contact_storage (void);</div><div class='del'>-GList             *addressbook_storage_get_sources (void);</div><div class='del'>-AddressbookSource *addressbook_storage_get_source_by_uri (const char *uri);</div><div class='del'>-void               addressbook_storage_clear_sources (void);</div><div class='del'>-void               addressbook_storage_write_sources (void);</div><div class='del'>-AddressbookSource *addressbook_source_copy (const AddressbookSource *source);</div><div class='del'>-void               addressbook_source_free (AddressbookSource *source);</div><div class='del'>-void               addressbook_storage_init_source_uri (AddressbookSource *source);</div><div class='del'>-</div><div class='del'>-void               addressbook_storage_add_source (AddressbookSource *source);</div><div class='del'>-void               addressbook_storage_remove_source (const char *name);</div><div class='del'>-</div><div class='del'>-#endif /* __ADDRESSBOOK_STORAGE_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c<br/>deleted file mode 100644<br/>index 804154fb88..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1049 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * addressbook.c: </div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Chris Lahey (clahey@ximian.com)</div><div class='del'>- *</div><div class='del'>- * (C) 2000 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-app.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-stock.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-uidefs.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-generic-factory.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-ui-util.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-exception.h&gt;</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-util/e-categories-master-list-wombat.h"</div><div class='del'>-#include "e-util/e-sexp.h"</div><div class='del'>-#include "e-util/e-passwords.h"</div><div class='del'>-#include "select-names/e-select-names.h"</div><div class='del'>-#include "select-names/e-select-names-manager.h"</div><div class='del'>-</div><div class='del'>-#include "evolution-shell-component-utils.h"</div><div class='del'>-#include "evolution-activity-client.h"</div><div class='del'>-#include "e-contact-editor.h"</div><div class='del'>-#include "e-contact-save-as.h"</div><div class='del'>-#include "addressbook-config.h"</div><div class='del'>-#include "addressbook.h"</div><div class='del'>-#include "addressbook-component.h"</div><div class='del'>-#include "addressbook/gui/search/e-addressbook-search-dialog.h"</div><div class='del'>-#include "addressbook/gui/widgets/e-addressbook-view.h"</div><div class='del'>-#include "addressbook/gui/widgets/e-addressbook-util.h"</div><div class='del'>-#include "addressbook/printing/e-contact-print.h"</div><div class='del'>-</div><div class='del'>-#include &lt;ebook/e-book.h&gt;</div><div class='del'>-#include &lt;widgets/misc/e-search-bar.h&gt;</div><div class='del'>-#include &lt;widgets/misc/e-filter-bar.h&gt;</div><div class='del'>-</div><div class='del'>-/* This is used for the addressbook status bar */</div><div class='del'>-#define EVOLUTION_CONTACTS_PROGRESS_IMAGE "evolution-contacts-mini.png"</div><div class='del'>-static GdkPixbuf *progress_icon[2] = { NULL, NULL };</div><div class='del'>-</div><div class='del'>-#define d(x)</div><div class='del'>-</div><div class='del'>-#define PROPERTY_FOLDER_URI          "folder_uri"</div><div class='del'>-</div><div class='del'>-#define PROPERTY_FOLDER_URI_IDX      1</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	gint refs;</div><div class='del'>-	EAddressbookView *view;</div><div class='del'>-	ESearchBar *search;</div><div class='del'>-	GtkWidget *vbox;</div><div class='del'>-	EvolutionActivityClient *activity;</div><div class='del'>-	BonoboControl *control;</div><div class='del'>-	BonoboPropertyBag *properties;</div><div class='del'>-	char *uri;</div><div class='del'>-	char *passwd;</div><div class='del'>-} AddressbookView;</div><div class='del'>-</div><div class='del'>-static void addressbook_view_ref (AddressbookView *);</div><div class='del'>-static void addressbook_view_unref (AddressbookView *);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-new_contact_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-</div><div class='del'>-	if (view-&gt;view) {</div><div class='del'>-		gtk_object_get(GTK_OBJECT(view-&gt;view),</div><div class='del'>-			       "book", &amp;book,</div><div class='del'>-			       NULL);</div><div class='del'>-</div><div class='del'>-		g_assert (E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-		e_addressbook_show_contact_editor (book, e_card_new(""), TRUE, e_addressbook_view_can_create(view-&gt;view));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-new_contact_list_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-</div><div class='del'>-	if (view-&gt;view) {</div><div class='del'>-		gtk_object_get(GTK_OBJECT(view-&gt;view),</div><div class='del'>-			       "book", &amp;book,</div><div class='del'>-			       NULL);</div><div class='del'>-</div><div class='del'>-		g_assert (E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-		e_addressbook_show_contact_list_editor (book, e_card_new(""), TRUE, e_addressbook_view_can_create(view-&gt;view));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-save_contact_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_save_as(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-config_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	addressbook_config (NULL /* XXX */);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-search_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		gtk_widget_show(e_addressbook_search_dialog_new(view-&gt;view));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-delete_contact_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_delete_selection(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-print_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_print(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-print_preview_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_print_preview(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-stop_loading_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_stop(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-cut_contacts_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_cut(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-copy_contacts_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_copy(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-paste_contacts_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_paste(view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-select_all_contacts_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_select_all (view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-send_contact_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_send (view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-send_contact_to_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = (AddressbookView *) user_data;</div><div class='del'>-	if (view-&gt;view)</div><div class='del'>-		e_addressbook_view_send_to (view-&gt;view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-forget_passwords_cb (BonoboUIComponent *uih, void *user_data, const char *path)</div><div class='del'>-{</div><div class='del'>-	e_passwords_forget_passwords();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-update_command_state (EAddressbookView *eav, AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	BonoboUIComponent *uic;</div><div class='del'>-</div><div class='del'>-	if (view-&gt;view == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	addressbook_view_ref (view);</div><div class='del'>-</div><div class='del'>-	uic = bonobo_control_get_ui_component (view-&gt;control);</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	/* New Contact */</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactNew",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_create (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactNewList",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_create (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsSaveAsVCard",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_save_as (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	/* Print Contact */</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsPrint",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_print (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	/* Print Contact */</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsPrintPreview",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_print (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	/* Delete Contact */</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactDelete",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_delete (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsCut",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_cut (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsCopy",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_copy (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsPaste",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_paste (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsSelectAll",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_select_all (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsSendContactToOther",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_send (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactsSendMessageToContact",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_send_to (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-	/* Stop */</div><div class='del'>-	bonobo_ui_component_set_prop (uic,</div><div class='del'>-				      "/commands/ContactStop",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      e_addressbook_view_can_stop (view-&gt;view) ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	addressbook_view_unref (view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-change_view_type (AddressbookView *view, EAddressbookViewType view_type)</div><div class='del'>-{</div><div class='del'>-	gtk_object_set (GTK_OBJECT (view-&gt;view), "type", view_type, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static BonoboUIVerb verbs [] = {</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsPrint", print_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsPrintPreview", print_preview_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsSaveAsVCard", save_contact_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ToolSearch", search_cb),</div><div class='del'>-</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("AddressbookConfig", config_cb),</div><div class='del'>-</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactNew", new_contact_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactNewList", new_contact_list_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactDelete", delete_contact_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactStop", stop_loading_cb),</div><div class='del'>-</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsCut", cut_contacts_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsCopy", copy_contacts_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsPaste", paste_contacts_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsSelectAll", select_all_contacts_cb),</div><div class='del'>-</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsSendContactToOther", send_contact_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsSendMessageToContact", send_contact_to_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactsForgetPasswords", forget_passwords_cb),</div><div class='del'>-</div><div class='del'>-	BONOBO_UI_VERB_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static EPixmap pixmaps [] = {</div><div class='del'>-	E_PIXMAP ("/menu/File/New/NewFirstItem/ContactNew", "evolution-contacts-mini.png"),</div><div class='del'>-	E_PIXMAP ("/menu/File/FileOps/ContactsSaveAsVCard", "save-as-16.png"),</div><div class='del'>-	E_PIXMAP ("/menu/File/Print/ContactsPrint", "print.xpm"),</div><div class='del'>-	E_PIXMAP ("/menu/File/Print/ContactsPrintPreview", "print-preview.xpm"),</div><div class='del'>-</div><div class='del'>-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsCut", "16_cut.png"),</div><div class='del'>-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsCopy", "16_copy.png"),</div><div class='del'>-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsPaste", "16_paste.png"),</div><div class='del'>-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactDelete", "evolution-trash-mini.png"),</div><div class='del'>-</div><div class='del'>-	E_PIXMAP ("/menu/Tools/ComponentPlaceholder/ToolSearch", "search-16.png"),</div><div class='del'>-	E_PIXMAP ("/menu/Tools/ComponentPlaceholder/AddressbookConfig", "configure_16_addressbook.xpm"),</div><div class='del'>-</div><div class='del'>-	E_PIXMAP ("/Toolbar/ContactNew", "new_contact.xpm"),</div><div class='del'>-	E_PIXMAP ("/Toolbar/ContactNewList", "all_contacts.xpm"),</div><div class='del'>-	E_PIXMAP ("/Toolbar/ContactsPrint", "buttons/print.png"),</div><div class='del'>-	E_PIXMAP ("/Toolbar/ContactDelete", "buttons/delete-message.png"),</div><div class='del'>-</div><div class='del'>-	E_PIXMAP_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-control_activate (BonoboControl     *control,</div><div class='del'>-		  BonoboUIComponent *uic,</div><div class='del'>-		  AddressbookView   *view)</div><div class='del'>-{</div><div class='del'>-	Bonobo_UIContainer remote_ui_container;</div><div class='del'>-</div><div class='del'>-	remote_ui_container = bonobo_control_get_remote_ui_container (control);</div><div class='del'>-	bonobo_ui_component_set_container (uic, remote_ui_container);</div><div class='del'>-	bonobo_object_release_unref (remote_ui_container, NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_add_verb_list_with_data (</div><div class='del'>-		uic, verbs, view);</div><div class='del'>-	</div><div class='del'>-	bonobo_ui_component_freeze (uic, NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_util_set_ui (uic, EVOLUTION_DATADIR,</div><div class='del'>-			       "evolution-addressbook.xml",</div><div class='del'>-			       "evolution-addressbook");</div><div class='del'>-</div><div class='del'>-	e_addressbook_view_setup_menus (view-&gt;view, uic);</div><div class='del'>-</div><div class='del'>-	e_pixmaps_update (uic, pixmaps);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_thaw (uic, NULL);</div><div class='del'>-</div><div class='del'>-	update_command_state (view-&gt;view, view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-control_activate_cb (BonoboControl *control, </div><div class='del'>-		     gboolean activate, </div><div class='del'>-		     AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	BonoboUIComponent *uic;</div><div class='del'>-</div><div class='del'>-	uic = bonobo_control_get_ui_component (control);</div><div class='del'>-	g_assert (uic != NULL);</div><div class='del'>-	</div><div class='del'>-	if (activate) {</div><div class='del'>-</div><div class='del'>-		control_activate (control, uic, view);</div><div class='del'>-		if (activate &amp;&amp; view-&gt;view &amp;&amp; view-&gt;view-&gt;model)</div><div class='del'>-			e_addressbook_model_force_folder_bar_message (view-&gt;view-&gt;model);</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-		bonobo_ui_component_unset_container (uic);</div><div class='del'>-		e_addressbook_view_discard_menus (view-&gt;view);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_view_ref (AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	g_assert (view-&gt;refs &gt; 0);</div><div class='del'>-	++view-&gt;refs;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_view_unref (AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	g_assert (view-&gt;refs &gt; 0);</div><div class='del'>-	--view-&gt;refs;</div><div class='del'>-	if (view-&gt;refs == 0)</div><div class='del'>-		g_free (view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_view_clear (AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-</div><div class='del'>-	if (view-&gt;uri &amp;&amp; view-&gt;view) {</div><div class='del'>-		gtk_object_get(GTK_OBJECT(view-&gt;view),</div><div class='del'>-			       "book", &amp;book,</div><div class='del'>-			       NULL);</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (view-&gt;properties) {</div><div class='del'>-		bonobo_object_unref (BONOBO_OBJECT(view-&gt;properties));</div><div class='del'>-		view-&gt;properties = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (view-&gt;view) {</div><div class='del'>-		gtk_widget_destroy (GTK_WIDGET (view-&gt;view));</div><div class='del'>-		view-&gt;view = NULL;</div><div class='del'>-	}</div><div class='del'>-		</div><div class='del'>-	g_free(view-&gt;passwd);</div><div class='del'>-	view-&gt;passwd = NULL;</div><div class='del'>-</div><div class='del'>-	g_free(view-&gt;uri);</div><div class='del'>-	view-&gt;uri = NULL;</div><div class='del'>-</div><div class='del'>-	if (view-&gt;refs == 0)</div><div class='del'>-		g_free(view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_open_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = closure;</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		gtk_object_set(GTK_OBJECT(view-&gt;view),</div><div class='del'>-			       "book", book,</div><div class='del'>-			       NULL);</div><div class='del'>-	} else {</div><div class='del'>-		AddressbookSource *source;</div><div class='del'>-		GtkWidget *warning_dialog, *label;</div><div class='del'>-</div><div class='del'>-        	warning_dialog = gnome_dialog_new (</div><div class='del'>-        		_("Unable to open addressbook"),</div><div class='del'>-			GNOME_STOCK_BUTTON_CLOSE,</div><div class='del'>-        		NULL);</div><div class='del'>-</div><div class='del'>-		source = addressbook_storage_get_source_by_uri (view-&gt;uri);</div><div class='del'>-</div><div class='del'>-		if (source &amp;&amp; source-&gt;type == ADDRESSBOOK_SOURCE_LDAP) {</div><div class='del'>-#if HAVE_LDAP</div><div class='del'>-			label = gtk_label_new (</div><div class='del'>-					       _("We were unable to open this addressbook.  This either\n"</div><div class='del'>-						 "means you have entered an incorrect URI, or the LDAP server\n"</div><div class='del'>-						 "is down"));</div><div class='del'>-#else</div><div class='del'>-			label = gtk_label_new (</div><div class='del'>-					       _("This version of Evolution does not have LDAP support\n"</div><div class='del'>-						 "compiled in to it.  If you want to use LDAP in Evolution\n"</div><div class='del'>-						 "you must compile the program from the CVS sources after\n"</div><div class='del'>-						 "retrieving OpenLDAP from the link below.\n"));</div><div class='del'>-#endif</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			label = gtk_label_new (</div><div class='del'>-					       _("We were unable to open this addressbook.  Please check that the\n"</div><div class='del'>-						 "path exists and that you have permission to access it."));</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		gtk_misc_set_alignment(GTK_MISC(label),</div><div class='del'>-				       0, .5);</div><div class='del'>-		gtk_label_set_justify(GTK_LABEL(label),</div><div class='del'>-				      GTK_JUSTIFY_LEFT);</div><div class='del'>-</div><div class='del'>-		gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (warning_dialog)-&gt;vbox), </div><div class='del'>-				    label, TRUE, TRUE, 0);</div><div class='del'>-		gtk_widget_show (label);</div><div class='del'>-</div><div class='del'>-#ifndef HAVE_LDAP</div><div class='del'>-		if (source &amp;&amp; source-&gt;type == ADDRESSBOOK_SOURCE_LDAP) {</div><div class='del'>-			GtkWidget *href;</div><div class='del'>-			href = gnome_href_new ("http://www.openldap.org/", "OpenLDAP at http://www.openldap.org/");</div><div class='del'>-			gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (warning_dialog)-&gt;vbox), </div><div class='del'>-					    href, FALSE, FALSE, 0);</div><div class='del'>-			gtk_widget_show (href);</div><div class='del'>-		}</div><div class='del'>-#endif</div><div class='del'>-		gnome_dialog_run (GNOME_DIALOG (warning_dialog));</div><div class='del'>-		</div><div class='del'>-		gtk_object_destroy (GTK_OBJECT (warning_dialog));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-destroy_callback(GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = data;</div><div class='del'>-	if (view-&gt;view &amp;&amp; view-&gt;view-&gt;model &amp;&amp; view-&gt;view-&gt;model-&gt;book_view)</div><div class='del'>-		e_book_view_stop (view-&gt;view-&gt;model-&gt;book_view);</div><div class='del'>-	addressbook_view_clear (view);</div><div class='del'>-	addressbook_view_unref (view);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_prop (BonoboPropertyBag *bag,</div><div class='del'>-	  BonoboArg         *arg,</div><div class='del'>-	  guint              arg_id,</div><div class='del'>-	  CORBA_Environment *ev,</div><div class='del'>-	  gpointer           user_data)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = user_data;</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-</div><div class='del'>-	case PROPERTY_FOLDER_URI_IDX:</div><div class='del'>-		if (view &amp;&amp; view-&gt;uri)</div><div class='del'>-			BONOBO_ARG_SET_STRING (arg, view-&gt;uri);</div><div class='del'>-		else</div><div class='del'>-			BONOBO_ARG_SET_STRING (arg, "");</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	default:</div><div class='del'>-		g_warning ("Unhandled arg %d\n", arg_id);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-addressbook_expand_uri (const char *uri)</div><div class='del'>-{</div><div class='del'>-	char *new_uri;</div><div class='del'>-</div><div class='del'>-	if (!strncmp (uri, "file:", 5)) {</div><div class='del'>-		if (strlen (uri + 7) &gt; 3</div><div class='del'>-		    &amp;&amp; !strcmp (uri + strlen(uri) - 3, ".db")) {</div><div class='del'>-			/* it's a .db file */</div><div class='del'>-			new_uri = g_strdup (uri);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			char *file_name;</div><div class='del'>-			/* we assume it's a dir and glom addressbook.db onto the end. */</div><div class='del'>-			file_name = g_concat_dir_and_file(uri + 7, "addressbook.db");</div><div class='del'>-			new_uri = g_strdup_printf("file://%s", file_name);</div><div class='del'>-			g_free(file_name);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		new_uri = g_strdup (uri);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return new_uri;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *uri;</div><div class='del'>-	EBookCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-} LoadUriData;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-load_uri_auth_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	LoadUriData *data = closure;</div><div class='del'>-</div><div class='del'>-	if (status != E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		/* pop up a nice dialog, or redo the authentication</div><div class='del'>-                   bit some number of times. */</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	data-&gt;cb (book, status, data-&gt;closure);</div><div class='del'>-</div><div class='del'>-	g_free (data-&gt;uri);</div><div class='del'>-	g_free (data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-load_uri_cb (EBook *book, EBookStatus status, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	AddressbookSource *source;</div><div class='del'>-	LoadUriData *load_uri_data = closure;</div><div class='del'>-</div><div class='del'>-	source = addressbook_storage_get_source_by_uri (load_uri_data-&gt;uri);</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		/* check if the addressbook needs authentication */</div><div class='del'>-</div><div class='del'>-		if (source &amp;&amp;</div><div class='del'>-		    source-&gt;type == ADDRESSBOOK_SOURCE_LDAP &amp;&amp;</div><div class='del'>-		    source-&gt;auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE) {</div><div class='del'>-			const char *password;</div><div class='del'>-			char *pass_dup = NULL;</div><div class='del'>-</div><div class='del'>-			password = e_passwords_get_password(load_uri_data-&gt;uri);</div><div class='del'>-</div><div class='del'>-			if (!password) {</div><div class='del'>-				char *prompt;</div><div class='del'>-				gboolean remember;</div><div class='del'>-</div><div class='del'>-				prompt = g_strdup_printf (_("Enter password for %s (user %s)"), source-&gt;name, source-&gt;email_addr);</div><div class='del'>-				remember = source-&gt;remember_passwd;</div><div class='del'>-				pass_dup = e_passwords_ask_password (</div><div class='del'>-								     prompt, load_uri_data-&gt;uri, prompt, TRUE,</div><div class='del'>-								     E_PASSWORDS_REMEMBER_FOREVER, &amp;remember,</div><div class='del'>-								     NULL);</div><div class='del'>-				if (remember != source-&gt;remember_passwd) {</div><div class='del'>-					source-&gt;remember_passwd = remember;</div><div class='del'>-					addressbook_storage_write_sources ();</div><div class='del'>-				}</div><div class='del'>-				g_free (prompt);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (password || pass_dup) {</div><div class='del'>-				e_book_authenticate_user (book, source-&gt;email_addr, password ? password : pass_dup,</div><div class='del'>-							  load_uri_auth_cb, closure);</div><div class='del'>-				g_free (pass_dup);</div><div class='del'>-				return;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	load_uri_data-&gt;cb (book, status, load_uri_data-&gt;closure);</div><div class='del'>-	g_free (load_uri_data-&gt;uri);</div><div class='del'>-	g_free (load_uri_data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-addressbook_load_uri (EBook *book, const char *uri,</div><div class='del'>-		      EBookCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	LoadUriData *load_uri_data = g_new (LoadUriData, 1);</div><div class='del'>-	gboolean rv;</div><div class='del'>-</div><div class='del'>-	load_uri_data-&gt;uri = g_strdup (uri);</div><div class='del'>-	load_uri_data-&gt;cb = cb;</div><div class='del'>-	load_uri_data-&gt;closure = closure;</div><div class='del'>-</div><div class='del'>-	rv = e_book_load_uri (book, uri, load_uri_cb, load_uri_data);</div><div class='del'>-</div><div class='del'>-	if (!rv) {</div><div class='del'>-		g_free (load_uri_data-&gt;uri);</div><div class='del'>-		g_free (load_uri_data);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return rv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_prop (BonoboPropertyBag *bag,</div><div class='del'>-	  const BonoboArg   *arg,</div><div class='del'>-	  guint              arg_id,</div><div class='del'>-	  CORBA_Environment *ev,</div><div class='del'>-	  gpointer           user_data)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view = user_data;</div><div class='del'>-</div><div class='del'>-	char *uri_data;</div><div class='del'>-	EBook *book;</div><div class='del'>-	</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-</div><div class='del'>-	case PROPERTY_FOLDER_URI_IDX:</div><div class='del'>-		gtk_object_get(GTK_OBJECT(view-&gt;view),</div><div class='del'>-			       "book", &amp;book,</div><div class='del'>-			       NULL);</div><div class='del'>-		if (view-&gt;uri) {</div><div class='del'>-			/* we've already had a uri set on this view, so unload it */</div><div class='del'>-			e_book_unload_uri (book);</div><div class='del'>-			g_free (view-&gt;uri);</div><div class='del'>-		} else {</div><div class='del'>-			book = e_book_new ();</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		view-&gt;uri = g_strdup(BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-		</div><div class='del'>-		uri_data = addressbook_expand_uri (view-&gt;uri);</div><div class='del'>-</div><div class='del'>-		if (! addressbook_load_uri (book, uri_data, book_open_cb, view))</div><div class='del'>-			printf ("error calling load_uri!\n");</div><div class='del'>-</div><div class='del'>-		g_free(uri_data);</div><div class='del'>-</div><div class='del'>-		break;</div><div class='del'>-		</div><div class='del'>-	default:</div><div class='del'>-		g_warning ("Unhandled arg %d\n", arg_id);</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ESearchBarItem addressbook_search_menu_items[] = {</div><div class='del'>-	E_FILTERBAR_RESET,</div><div class='del'>-	{ NULL, -1, NULL },</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	ESB_ANY,</div><div class='del'>-	ESB_FULL_NAME,</div><div class='del'>-	ESB_EMAIL,</div><div class='del'>-	ESB_CATEGORY,</div><div class='del'>-	ESB_ADVANCED</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static ESearchBarItem addressbook_search_option_items[] = {</div><div class='del'>-	{ N_("Any field contains"), ESB_ANY, NULL },</div><div class='del'>-	{ N_("Name contains"), ESB_FULL_NAME, NULL },</div><div class='del'>-	{ N_("Email contains"), ESB_EMAIL, NULL },</div><div class='del'>-	{ N_("Category is"), ESB_CATEGORY, NULL }, /* We attach subitems below */</div><div class='del'>-	{ N_("Advanced..."), ESB_ADVANCED, NULL },</div><div class='del'>-	{ NULL, -1, NULL }</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_menu_activated (ESearchBar *esb, int id, AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	switch (id) {</div><div class='del'>-	case E_FILTERBAR_RESET_ID:</div><div class='del'>-		/* e_addressbook_view_show_all(view-&gt;view); */</div><div class='del'>-</div><div class='del'>-		/* Fix option menu if we are using "Category is" */</div><div class='del'>-		if (e_search_bar_get_item_id (esb) == ESB_CATEGORY) {</div><div class='del'>-</div><div class='del'>-			e_search_bar_set_subitem_id (esb, G_MAXINT);</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-</div><div class='del'>-			e_search_bar_set_text (esb, "");</div><div class='del'>-</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECategoriesMasterList *</div><div class='del'>-get_master_list (void)</div><div class='del'>-{</div><div class='del'>-	static ECategoriesMasterList *category_list = NULL;</div><div class='del'>-</div><div class='del'>-	if (category_list == NULL)</div><div class='del'>-		category_list = e_categories_master_list_wombat_new ();</div><div class='del'>-	return category_list;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_query_changed (ESearchBar *esb, AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	ECategoriesMasterList *master_list;</div><div class='del'>-	char *search_word, *search_query;</div><div class='del'>-	const char *category_name;</div><div class='del'>-	int search_type, subid;</div><div class='del'>-</div><div class='del'>-	gtk_object_get(GTK_OBJECT(esb),</div><div class='del'>-		       "text", &amp;search_word,</div><div class='del'>-		       "item_id", &amp;search_type,</div><div class='del'>-		       NULL);</div><div class='del'>-</div><div class='del'>-	if (search_type == ESB_ADVANCED) {</div><div class='del'>-		gtk_widget_show(e_addressbook_search_dialog_new(view-&gt;view));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		if ((search_word &amp;&amp; strlen (search_word)) || search_type == ESB_CATEGORY) {</div><div class='del'>-			GString *s = g_string_new ("");</div><div class='del'>-			e_sexp_encode_string (s, search_word);</div><div class='del'>-			switch (search_type) {</div><div class='del'>-			case ESB_ANY:</div><div class='del'>-				search_query = g_strdup_printf ("(contains \"x-evolution-any-field\" %s)",</div><div class='del'>-								s-&gt;str);</div><div class='del'>-				break;</div><div class='del'>-			case ESB_FULL_NAME:</div><div class='del'>-				search_query = g_strdup_printf ("(contains \"full_name\" %s)",</div><div class='del'>-								s-&gt;str);</div><div class='del'>-				break;</div><div class='del'>-			case ESB_EMAIL:</div><div class='del'>-				search_query = g_strdup_printf ("(contains \"email\" %s)",</div><div class='del'>-								s-&gt;str);</div><div class='del'>-				break;</div><div class='del'>-			case ESB_CATEGORY:</div><div class='del'>-				subid = e_search_bar_get_subitem_id (esb);</div><div class='del'>-</div><div class='del'>-				if (subid &lt; 0 || subid == G_MAXINT) {</div><div class='del'>-					/* match everything */</div><div class='del'>-					search_query = g_strdup ("(contains \"x-evolution-any-field\" \"\")");</div><div class='del'>-				} else {</div><div class='del'>-					master_list = get_master_list ();</div><div class='del'>-					category_name = e_categories_master_list_nth (master_list, subid);</div><div class='del'>-					search_query = g_strdup_printf ("(contains \"category\" \"%s\")", category_name);</div><div class='del'>-				}</div><div class='del'>-				break;</div><div class='del'>-			default:</div><div class='del'>-				search_query = g_strdup ("(contains \"x-evolution-any-field\" \"\")");</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			g_string_free (s, TRUE);</div><div class='del'>-		} else</div><div class='del'>-			search_query = g_strdup ("(contains \"x-evolution-any-field\" \"\")");</div><div class='del'>-</div><div class='del'>-		if (search_query)</div><div class='del'>-			gtk_object_set (GTK_OBJECT(view-&gt;view),</div><div class='del'>-					"query", search_query,</div><div class='del'>-					NULL);</div><div class='del'>-</div><div class='del'>-		g_free (search_query);</div><div class='del'>-		g_free (search_word);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GNOME_Evolution_ShellView</div><div class='del'>-retrieve_shell_view_interface_from_control (BonoboControl *control)</div><div class='del'>-{</div><div class='del'>-	Bonobo_ControlFrame control_frame;</div><div class='del'>-	GNOME_Evolution_ShellView shell_view_interface;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	shell_view_interface = gtk_object_get_data (GTK_OBJECT (control),</div><div class='del'>-						    "shell_view_interface");</div><div class='del'>-</div><div class='del'>-	if (shell_view_interface)</div><div class='del'>-		return shell_view_interface;</div><div class='del'>-</div><div class='del'>-	control_frame = bonobo_control_get_control_frame (control);</div><div class='del'>-</div><div class='del'>-	if (control_frame == NULL)</div><div class='del'>-		return CORBA_OBJECT_NIL;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	shell_view_interface = Bonobo_Unknown_queryInterface (control_frame,</div><div class='del'>-							       "IDL:GNOME/Evolution/ShellView:1.0",</div><div class='del'>-							       &amp;ev);</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (shell_view_interface != CORBA_OBJECT_NIL)</div><div class='del'>-		gtk_object_set_data (GTK_OBJECT (control),</div><div class='del'>-				     "shell_view_interface",</div><div class='del'>-				     shell_view_interface);</div><div class='del'>-	else</div><div class='del'>-		g_warning ("Control frame doesn't have Evolution/ShellView.");</div><div class='del'>-</div><div class='del'>-	return shell_view_interface;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_status_message (EAddressbookView *eav, const char *message, AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-</div><div class='del'>-	if (!message || !*message) {</div><div class='del'>-		if (view-&gt;activity) {</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (view-&gt;activity));</div><div class='del'>-			view-&gt;activity = NULL;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	else if (!view-&gt;activity) {</div><div class='del'>-		int display;</div><div class='del'>-		char *clientid = g_strdup_printf ("%p", view);</div><div class='del'>-</div><div class='del'>-		if (progress_icon[0] == NULL)</div><div class='del'>-			progress_icon[0] = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" EVOLUTION_CONTACTS_PROGRESS_IMAGE);</div><div class='del'>-</div><div class='del'>-		view-&gt;activity = evolution_activity_client_new (addressbook_component_get_shell_client(), clientid,</div><div class='del'>-								progress_icon, message, TRUE, &amp;display);</div><div class='del'>-</div><div class='del'>-		g_free (clientid);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		evolution_activity_client_update (view-&gt;activity, message, -1.0);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_folder_bar_label (EAddressbookView *eav, const char *message, AddressbookView *view)</div><div class='del'>-{</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	GNOME_Evolution_ShellView shell_view_interface;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	shell_view_interface = retrieve_shell_view_interface_from_control (view-&gt;control);</div><div class='del'>-	if (!shell_view_interface) {</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	d(g_message("Updating via ShellView"));</div><div class='del'>-</div><div class='del'>-	if (message == NULL || message[0] == 0) {</div><div class='del'>-		GNOME_Evolution_ShellView_setFolderBarLabel (shell_view_interface,</div><div class='del'>-							     "",</div><div class='del'>-							     &amp;ev);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		GNOME_Evolution_ShellView_setFolderBarLabel (shell_view_interface,</div><div class='del'>-							     message,</div><div class='del'>-							     &amp;ev);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (BONOBO_EX (&amp;ev))</div><div class='del'>-		g_warning ("Exception in label update: %s",</div><div class='del'>-			   bonobo_exception_get_text (&amp;ev));</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-BonoboControl *</div><div class='del'>-addressbook_factory_new_control (void)</div><div class='del'>-{</div><div class='del'>-	AddressbookView *view;</div><div class='del'>-	GtkWidget *frame;</div><div class='del'>-</div><div class='del'>-	frame = gtk_frame_new (NULL);</div><div class='del'>-	gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);</div><div class='del'>-</div><div class='del'>-	view = g_new0 (AddressbookView, 1);</div><div class='del'>-	view-&gt;refs = 1;</div><div class='del'>-</div><div class='del'>-	view-&gt;vbox = gtk_vbox_new (FALSE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (view-&gt;vbox), "destroy",</div><div class='del'>-			    GTK_SIGNAL_FUNC (destroy_callback),</div><div class='del'>-			    (gpointer) view);</div><div class='del'>-</div><div class='del'>-	/* Create the control. */</div><div class='del'>-	view-&gt;control = bonobo_control_new (view-&gt;vbox);</div><div class='del'>-</div><div class='del'>-	/* We attach subitems to the "Category is" item, so that we get an option menu of categories. */</div><div class='del'>-	if (addressbook_search_option_items[ESB_CATEGORY].subitems == NULL) {</div><div class='del'>-		ESearchBarSubitem *subitems;</div><div class='del'>-		ECategoriesMasterList *master_list;</div><div class='del'>-		gint i, N;</div><div class='del'>-		</div><div class='del'>-		g_assert (addressbook_search_option_items[ESB_CATEGORY].id == ESB_CATEGORY); /* sanity check */</div><div class='del'>-</div><div class='del'>-		master_list = get_master_list ();</div><div class='del'>-		N = e_categories_master_list_count (master_list);</div><div class='del'>-		addressbook_search_option_items[ESB_CATEGORY].subitems = subitems = g_new (ESearchBarSubitem, N+2);</div><div class='del'>-</div><div class='del'>-		subitems[0].id = G_MAXINT;</div><div class='del'>-		subitems[0].text = g_strdup (_("Any Category"));</div><div class='del'>-		subitems[0].translate = FALSE;</div><div class='del'>-</div><div class='del'>-		for (i=0; i&lt;N; ++i) {</div><div class='del'>-			const char *category = e_categories_master_list_nth (master_list, i);</div><div class='del'>-</div><div class='del'>-			subitems[i+1].id = i;</div><div class='del'>-			subitems[i+1].text = e_utf8_to_locale_string (category);</div><div class='del'>-			subitems[i+1].translate = FALSE;</div><div class='del'>-		}</div><div class='del'>-		subitems[N+1].id = -1;</div><div class='del'>-		subitems[N+1].text = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	view-&gt;search = E_SEARCH_BAR(e_search_bar_new(addressbook_search_menu_items,</div><div class='del'>-						     addressbook_search_option_items));</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (view-&gt;vbox), GTK_WIDGET (view-&gt;search),</div><div class='del'>-			    FALSE, FALSE, 0);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (view-&gt;search), "query_changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (addressbook_query_changed), view);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (view-&gt;search), "menu_activated",</div><div class='del'>-			    GTK_SIGNAL_FUNC (addressbook_menu_activated), view);</div><div class='del'>-</div><div class='del'>-	view-&gt;view = E_ADDRESSBOOK_VIEW(e_addressbook_view_new());</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (frame), GTK_WIDGET (view-&gt;view));</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (view-&gt;vbox), frame,</div><div class='del'>-			    TRUE, TRUE, 0);</div><div class='del'>-</div><div class='del'>-	/* create the initial view */</div><div class='del'>-	change_view_type (view, E_ADDRESSBOOK_VIEW_MINICARD);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show (frame);</div><div class='del'>-	gtk_widget_show (view-&gt;vbox);</div><div class='del'>-	gtk_widget_show (GTK_WIDGET(view-&gt;view));</div><div class='del'>-	gtk_widget_show (GTK_WIDGET(view-&gt;search));</div><div class='del'>-</div><div class='del'>-	view-&gt;properties = bonobo_property_bag_new (get_prop, set_prop, view);</div><div class='del'>-</div><div class='del'>-	bonobo_property_bag_add (view-&gt;properties,</div><div class='del'>-				 PROPERTY_FOLDER_URI, PROPERTY_FOLDER_URI_IDX,</div><div class='del'>-				 BONOBO_ARG_STRING, NULL, _("The URI that the Folder Browser will display"), 0);</div><div class='del'>-</div><div class='del'>-	bonobo_control_set_properties (view-&gt;control,</div><div class='del'>-				       view-&gt;properties);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (view-&gt;view),</div><div class='del'>-			    "status_message",</div><div class='del'>-			    GTK_SIGNAL_FUNC(set_status_message),</div><div class='del'>-			    view);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (view-&gt;view),</div><div class='del'>-			    "folder_bar_message",</div><div class='del'>-			    GTK_SIGNAL_FUNC(set_folder_bar_label),</div><div class='del'>-			    view);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (view-&gt;view),</div><div class='del'>-			    "command_state_change",</div><div class='del'>-			    GTK_SIGNAL_FUNC(update_command_state),</div><div class='del'>-			    view);</div><div class='del'>-	</div><div class='del'>-	view-&gt;uri = NULL;</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (view-&gt;control), "activate",</div><div class='del'>-			    control_activate_cb, view);</div><div class='del'>-</div><div class='del'>-	return view-&gt;control;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static BonoboObject *</div><div class='del'>-addressbook_factory (BonoboGenericFactory *Factory, void *closure)</div><div class='del'>-{</div><div class='del'>-	return BONOBO_OBJECT (addressbook_factory_new_control ());</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-addressbook_factory_init (void)</div><div class='del'>-{</div><div class='del'>-	static BonoboGenericFactory *addressbook_control_factory = NULL;</div><div class='del'>-</div><div class='del'>-	if (addressbook_control_factory != NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	addressbook_control_factory = bonobo_generic_factory_new (</div><div class='del'>-		"OAFIID:GNOME_Evolution_Addressbook_ControlFactory",</div><div class='del'>-		addressbook_factory, NULL);</div><div class='del'>-</div><div class='del'>-	if (addressbook_control_factory == NULL) {</div><div class='del'>-		g_error ("I could not register a Addressbook factory.");</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/addressbook.h b/addressbook/gui/component/addressbook.h<br/>deleted file mode 100644<br/>index 5cf14dba12..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/addressbook.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,17 +0,0 @@</div><div class='del'>-#ifndef __ADDRESSBOOK_H__</div><div class='del'>-#define __ADDRESSBOOK_H__</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-control.h&gt;</div><div class='del'>-#include &lt;ebook/e-book.h&gt;</div><div class='del'>-</div><div class='del'>-/* expand file:///foo/foo/ to file:///foo/foo/addressbook.db */</div><div class='del'>-char *         addressbook_expand_uri           (const char *uri);</div><div class='del'>-</div><div class='del'>-/* use this instead of e_book_load_uri everywhere where you want the</div><div class='del'>-   authentication to be handled for you. */</div><div class='del'>-gboolean       addressbook_load_uri             (EBook *book, const char *uri, EBookCallback cb, gpointer closure);</div><div class='del'>-</div><div class='del'>-BonoboControl *addressbook_factory_new_control  (void);</div><div class='del'>-void           addressbook_factory_init         (void);</div><div class='del'>-</div><div class='del'>-#endif /* __ADDRESSBOOK_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/e-address-popup.c b/addressbook/gui/component/e-address-popup.c<br/>deleted file mode 100644<br/>index f9e54c4b9e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/e-address-popup.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/e-address-popup.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1217 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-address-popup.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This file is too big and this widget is too complicated.  Forgive me.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include "e-address-popup.h"</div><div class='del'>-#include &lt;bonobo/bonobo-control.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-property-bag.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-generic-factory.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-popup-menu.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-util.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/contact-editor/e-contact-editor.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/contact-editor/e-contact-quick-add.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/widgets/e-minicard-widget.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/widgets/e-addressbook-util.h&gt;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Some general scaffolding for our widgets.  Think of this as a really, really</div><div class='del'>- * lame implementation of a wizard (...which is still somewhat more general that</div><div class='del'>- * we really need it to be).</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct _MiniWizard MiniWizard;</div><div class='del'>-struct _MiniWizard {</div><div class='del'>-	GtkWidget *body;</div><div class='del'>-</div><div class='del'>-	GtkWidget *vbox;</div><div class='del'>-	GtkWidget *ok_button;</div><div class='del'>-	GtkWidget *cancel_button;</div><div class='del'>-</div><div class='del'>-	void (*ok_cb) (MiniWizard *, gpointer);</div><div class='del'>-	void (*cleanup_cb) (gpointer);</div><div class='del'>-	gpointer closure;</div><div class='del'>-</div><div class='del'>-	void (*destroy_cb) (MiniWizard *, gpointer);</div><div class='del'>-	gpointer destroy_closure;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-mini_wizard_container_add (MiniWizard *wiz, GtkWidget *w)</div><div class='del'>-{</div><div class='del'>-	GList *iter = gtk_container_children (GTK_CONTAINER (wiz-&gt;vbox));</div><div class='del'>-	while (iter != NULL) {</div><div class='del'>-		GtkWidget *oldw = (GtkWidget *) iter-&gt;data;</div><div class='del'>-		iter = g_list_next (iter);</div><div class='del'>-		gtk_container_remove (GTK_CONTAINER (wiz-&gt;vbox), oldw);</div><div class='del'>-		gtk_widget_destroy (oldw);</div><div class='del'>-	}</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (wiz-&gt;vbox), w);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-mini_wizard_destroy (MiniWizard *wiz)</div><div class='del'>-{</div><div class='del'>-	if (wiz-&gt;cleanup_cb)</div><div class='del'>-		wiz-&gt;cleanup_cb (wiz-&gt;closure);</div><div class='del'>-	wiz-&gt;cleanup_cb = NULL;</div><div class='del'>-</div><div class='del'>-	if (wiz-&gt;destroy_cb)</div><div class='del'>-		wiz-&gt;destroy_cb (wiz, wiz-&gt;destroy_closure);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-mini_wizard_ok_cb (GtkWidget *b, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MiniWizard *wiz = (MiniWizard *) closure;</div><div class='del'>-</div><div class='del'>-	gpointer old_closure = wiz-&gt;closure;</div><div class='del'>-	void (*old_cleanup) (gpointer) = wiz-&gt;cleanup_cb;</div><div class='del'>-</div><div class='del'>-	wiz-&gt;cleanup_cb = NULL;</div><div class='del'>-</div><div class='del'>-	if (wiz-&gt;ok_cb)</div><div class='del'>-		wiz-&gt;ok_cb (wiz, wiz-&gt;closure);</div><div class='del'>-</div><div class='del'>-	if (old_cleanup)</div><div class='del'>-		old_cleanup (old_closure);</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-mini_wizard_cancel_cb (GtkWidget *b, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	mini_wizard_destroy ((MiniWizard *) closure);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-mini_wizard_destroy_cb (GtkWidget *w, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MiniWizard *wiz = (MiniWizard *) closure;</div><div class='del'>-	if (wiz-&gt;cleanup_cb)</div><div class='del'>-		wiz-&gt;cleanup_cb (wiz-&gt;closure);</div><div class='del'>-	g_free (wiz);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static MiniWizard *</div><div class='del'>-mini_wizard_new (void)</div><div class='del'>-{</div><div class='del'>-	MiniWizard *wiz = g_new (MiniWizard, 1);</div><div class='del'>-	GtkWidget *hbox;</div><div class='del'>-</div><div class='del'>-	wiz-&gt;body          = gtk_vbox_new (FALSE, 2);</div><div class='del'>-	wiz-&gt;vbox          = gtk_vbox_new (FALSE, 2);</div><div class='del'>-	wiz-&gt;ok_button     = gnome_stock_button (GNOME_STOCK_BUTTON_OK);</div><div class='del'>-	wiz-&gt;cancel_button = gnome_stock_button (GNOME_STOCK_BUTTON_CANCEL);</div><div class='del'>-</div><div class='del'>-	wiz-&gt;ok_cb      = NULL;</div><div class='del'>-	wiz-&gt;cleanup_cb = NULL;</div><div class='del'>-	wiz-&gt;closure    = NULL;</div><div class='del'>-</div><div class='del'>-	wiz-&gt;destroy_cb      = NULL;</div><div class='del'>-	wiz-&gt;destroy_closure = NULL;</div><div class='del'>-</div><div class='del'>-	hbox = gtk_hbox_new (FALSE, 2);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (hbox), wiz-&gt;ok_button, TRUE, FALSE, 2);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (hbox), wiz-&gt;cancel_button, TRUE, FALSE, 2);</div><div class='del'>-</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (wiz-&gt;body), wiz-&gt;vbox, TRUE, TRUE, 2);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (wiz-&gt;body), gtk_hseparator_new (), FALSE, TRUE, 2);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (wiz-&gt;body), hbox, FALSE, TRUE, 2);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show_all (wiz-&gt;body);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (wiz-&gt;ok_button),</div><div class='del'>-			    "clicked",</div><div class='del'>-			    GTK_SIGNAL_FUNC (mini_wizard_ok_cb),</div><div class='del'>-			    wiz);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (wiz-&gt;cancel_button),</div><div class='del'>-			    "clicked",</div><div class='del'>-			    GTK_SIGNAL_FUNC (mini_wizard_cancel_cb),</div><div class='del'>-			    wiz);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (wiz-&gt;body),</div><div class='del'>-			    "destroy",</div><div class='del'>-			    GTK_SIGNAL_FUNC (mini_wizard_destroy_cb),</div><div class='del'>-			    wiz);</div><div class='del'>-</div><div class='del'>-	return wiz;</div><div class='del'>-	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This is the code for the UI thingie that lets you manipulate the e-mail</div><div class='del'>- * addresses (and *only* the e-mail addresses) associated with an existing</div><div class='del'>- * card.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define EMPTY_ENTRY N_("(none)")</div><div class='del'>-</div><div class='del'>-typedef struct _EMailMenu EMailMenu;</div><div class='del'>-struct _EMailMenu {</div><div class='del'>-	GtkWidget *option_menu;</div><div class='del'>-	GList *options;</div><div class='del'>-	gchar *current_selection;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_menu_free (EMailMenu *menu)</div><div class='del'>-{</div><div class='del'>-	if (menu == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	g_list_foreach (menu-&gt;options, (GFunc) g_free, NULL);</div><div class='del'>-	g_list_free (menu-&gt;options);</div><div class='del'>-	g_free (menu);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static EMailMenu *</div><div class='del'>-email_menu_new (void)</div><div class='del'>-{</div><div class='del'>-	EMailMenu *menu = g_new (EMailMenu, 1);</div><div class='del'>-</div><div class='del'>-	menu-&gt;option_menu = gtk_option_menu_new ();</div><div class='del'>-	menu-&gt;options = NULL;</div><div class='del'>-	menu-&gt;current_selection = NULL;</div><div class='del'>-</div><div class='del'>-	gtk_option_menu_set_menu (GTK_OPTION_MENU (menu-&gt;option_menu), gtk_menu_new ());</div><div class='del'>-</div><div class='del'>-	return menu;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-menu_activate_cb (GtkWidget *w, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EMailMenu *menu = (EMailMenu *) closure;</div><div class='del'>-	gchar *addr = (gchar *) gtk_object_get_data (GTK_OBJECT (w), "addr");</div><div class='del'>-</div><div class='del'>-	menu-&gt;current_selection = addr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_menu_add_option (EMailMenu *menu, const gchar *addr)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *menu_item;</div><div class='del'>-	gchar *addr_cpy;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (menu != NULL);</div><div class='del'>-	if (addr == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	addr_cpy = g_strdup (addr);</div><div class='del'>-	menu-&gt;options = g_list_append (menu-&gt;options, addr_cpy);</div><div class='del'>-</div><div class='del'>-	menu_item = gtk_menu_item_new_with_label (addr);</div><div class='del'>-	gtk_object_set_data (GTK_OBJECT (menu_item), "addr", addr_cpy);</div><div class='del'>-	gtk_widget_show_all (menu_item);</div><div class='del'>-	gtk_menu_append (GTK_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (menu-&gt;option_menu))), menu_item);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (menu_item),</div><div class='del'>-			    "activate",</div><div class='del'>-			    menu_activate_cb,</div><div class='del'>-			    menu);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_menu_add_options_from_card (EMailMenu *menu, ECard *card, const gchar *extra_addr)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>-	simple = e_card_simple_new (card);</div><div class='del'>-</div><div class='del'>-	/* If any of these three e-mail fields are NULL, email_menu_add_option will just</div><div class='del'>-	   return without doing anything. */</div><div class='del'>-	email_menu_add_option (menu, e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL));</div><div class='del'>-	email_menu_add_option (menu, e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL_2));</div><div class='del'>-	email_menu_add_option (menu, e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL_3));</div><div class='del'>-	email_menu_add_option (menu, extra_addr);</div><div class='del'>-	email_menu_add_option (menu, EMPTY_ENTRY);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_menu_set_option (EMailMenu *menu, const gchar *addr)</div><div class='del'>-{</div><div class='del'>-	guint count = 0;</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (menu != NULL);</div><div class='del'>-</div><div class='del'>-	if (addr == NULL) {</div><div class='del'>-		email_menu_set_option (menu, EMPTY_ENTRY);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	iter = menu-&gt;options;</div><div class='del'>-	while (iter &amp;&amp; strcmp (addr, (gchar *) iter-&gt;data)) {</div><div class='del'>-		++count;</div><div class='del'>-		iter = g_list_next (iter);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (iter) {</div><div class='del'>-		gtk_option_menu_set_history (GTK_OPTION_MENU (menu-&gt;option_menu), count);</div><div class='del'>-		menu-&gt;current_selection = (gchar *) iter-&gt;data;</div><div class='del'>-	} </div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef UNDEFINED_FUNCTIONS_SHOULD_PLEASE_BE_INCLUDED</div><div class='del'>-static void</div><div class='del'>-email_menu_unset_option (EMailMenu *menu, const gchar *addr)</div><div class='del'>-{</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (menu != NULL);</div><div class='del'>-	g_return_if_fail (addr != NULL);</div><div class='del'>-</div><div class='del'>-	if (menu-&gt;current_selection == NULL || strcmp (addr, menu-&gt;current_selection))</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	iter = menu-&gt;options;</div><div class='del'>-	while (iter &amp;&amp; strcmp (addr, (gchar *) iter-&gt;data)) {</div><div class='del'>-		iter = g_list_next (iter);</div><div class='del'>-	}</div><div class='del'>-	if (iter) {</div><div class='del'>-		iter = g_list_next (iter);</div><div class='del'>-		if (iter) {</div><div class='del'>-			email_menu_set_option (menu, (gchar *) iter-&gt;data);</div><div class='del'>-		} else {</div><div class='del'>-			email_menu_set_option (menu, EMPTY_ENTRY);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _EMailTable EMailTable;</div><div class='del'>-struct _EMailTable {</div><div class='del'>-	GtkWidget *table;</div><div class='del'>-	ECard *card;</div><div class='del'>-	EMailMenu *primary;</div><div class='del'>-	EMailMenu *email2;</div><div class='del'>-	EMailMenu *email3;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_table_cleanup_cb (gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EMailTable *et = (EMailTable *) closure;</div><div class='del'>-</div><div class='del'>-	if (et == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (et-&gt;card));</div><div class='del'>-	email_menu_free (et-&gt;primary);</div><div class='del'>-	email_menu_free (et-&gt;email2);</div><div class='del'>-	email_menu_free (et-&gt;email3);</div><div class='del'>-</div><div class='del'>-	g_free (et);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_table_from_card (EMailTable *et)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	</div><div class='del'>-	g_return_if_fail (et != NULL);</div><div class='del'>-</div><div class='del'>-	simple = e_card_simple_new (et-&gt;card);</div><div class='del'>-	email_menu_set_option (et-&gt;primary, e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL));</div><div class='del'>-	email_menu_set_option (et-&gt;email2,  e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL_2));</div><div class='del'>-	email_menu_set_option (et-&gt;email3,  e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL_3));</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_table_to_card (EMailTable *et)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	gchar *curr;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (et != NULL);</div><div class='del'>-</div><div class='del'>-	simple = e_card_simple_new (et-&gt;card);</div><div class='del'>-</div><div class='del'>-	curr = et-&gt;primary-&gt;current_selection;</div><div class='del'>-	if (curr &amp;&amp; !strcmp (curr, _(EMPTY_ENTRY)))</div><div class='del'>-		curr = NULL;</div><div class='del'>-	e_card_simple_set_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL, curr);</div><div class='del'>-</div><div class='del'>-	curr = et-&gt;email2-&gt;current_selection;</div><div class='del'>-	if (curr &amp;&amp; !strcmp (curr, _(EMPTY_ENTRY)))</div><div class='del'>-		curr = NULL;</div><div class='del'>-	e_card_simple_set_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL_2, curr);</div><div class='del'>-</div><div class='del'>-	curr = et-&gt;email3-&gt;current_selection;</div><div class='del'>-	if (curr &amp;&amp; !strcmp (curr, _(EMPTY_ENTRY)))</div><div class='del'>-		curr = NULL;</div><div class='del'>-	e_card_simple_set_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL_3, curr);</div><div class='del'>-</div><div class='del'>-	e_card_simple_sync_card (simple);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_table_save_card_cb (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ECard *card = E_CARD (closure);</div><div class='del'>-</div><div class='del'>-	if (book) {</div><div class='del'>-		e_book_commit_card (book, card, NULL, NULL);</div><div class='del'>-	}</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * We have to do this in an idle function because of what might be a</div><div class='del'>- * re-entrancy problems with EBook.</div><div class='del'>- */</div><div class='del'>-static gint</div><div class='del'>-add_card_idle_cb (gpointer closure)</div><div class='del'>-{</div><div class='del'>-	e_book_use_local_address_book (email_table_save_card_cb, closure);</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_table_ok_cb (MiniWizard *wiz, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EMailTable *et = (EMailTable *) closure;</div><div class='del'>-</div><div class='del'>-	email_table_to_card (et);</div><div class='del'>-</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (et-&gt;card));</div><div class='del'>-	gtk_idle_add (add_card_idle_cb, et-&gt;card);</div><div class='del'>-</div><div class='del'>-	mini_wizard_destroy (wiz);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_table_init (MiniWizard *wiz, ECard *card, const gchar *extra_address)</div><div class='del'>-{</div><div class='del'>-	EMailTable *et;</div><div class='del'>-</div><div class='del'>-	gchar *name_str;</div><div class='del'>-	gint xpad, ypad;</div><div class='del'>-	GtkAttachOptions label_x_opts, label_y_opts;</div><div class='del'>-	GtkAttachOptions menu_x_opts, menu_y_opts;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>-	et = g_new (EMailTable, 1);</div><div class='del'>-</div><div class='del'>-	et-&gt;card = card;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (et-&gt;card));</div><div class='del'>-</div><div class='del'>-	et-&gt;table = gtk_table_new (4, 2, FALSE);</div><div class='del'>-</div><div class='del'>-	et-&gt;primary = email_menu_new ();</div><div class='del'>-	et-&gt;email2  = email_menu_new ();</div><div class='del'>-	et-&gt;email3  = email_menu_new ();</div><div class='del'>-</div><div class='del'>-	email_menu_add_options_from_card (et-&gt;primary, et-&gt;card, extra_address);</div><div class='del'>-	email_menu_add_options_from_card (et-&gt;email2,  et-&gt;card, extra_address);</div><div class='del'>-	email_menu_add_options_from_card (et-&gt;email3,  et-&gt;card, extra_address);</div><div class='del'>-</div><div class='del'>-	email_table_from_card (et);</div><div class='del'>-</div><div class='del'>-	label_x_opts = GTK_FILL;</div><div class='del'>-	label_y_opts = GTK_FILL;</div><div class='del'>-	menu_x_opts = GTK_EXPAND | GTK_FILL;</div><div class='del'>-	menu_y_opts = GTK_EXPAND | GTK_FILL;</div><div class='del'>-	xpad = 3;</div><div class='del'>-	ypad = 3;</div><div class='del'>-</div><div class='del'>-	name_str = e_card_name_to_string (et-&gt;card-&gt;name);</div><div class='del'>-	gtk_table_attach (GTK_TABLE (et-&gt;table),</div><div class='del'>-			  gtk_label_new (name_str),</div><div class='del'>-			  0, 2, 0, 1, </div><div class='del'>-			  label_x_opts, label_y_opts, xpad, ypad);</div><div class='del'>-	g_free (name_str);</div><div class='del'>-</div><div class='del'>-	gtk_table_attach (GTK_TABLE (et-&gt;table),</div><div class='del'>-			  gtk_label_new (_("Primary Email")),</div><div class='del'>-			  0, 1, 1, 2, </div><div class='del'>-			  label_x_opts, label_y_opts, xpad, ypad);</div><div class='del'>-</div><div class='del'>-	gtk_table_attach (GTK_TABLE (et-&gt;table),</div><div class='del'>-			  et-&gt;primary-&gt;option_menu,</div><div class='del'>-			  1, 2, 1, 2, </div><div class='del'>-			  menu_x_opts, menu_y_opts, xpad, ypad);</div><div class='del'>-</div><div class='del'>-	gtk_table_attach (GTK_TABLE (et-&gt;table),</div><div class='del'>-			  gtk_label_new (_("Email 2")),</div><div class='del'>-			  0, 1, 2, 3,</div><div class='del'>-			  label_x_opts, label_y_opts, xpad, ypad);</div><div class='del'>-</div><div class='del'>-	gtk_table_attach (GTK_TABLE (et-&gt;table),</div><div class='del'>-			  et-&gt;email2-&gt;option_menu,</div><div class='del'>-			  1, 2, 2, 3,</div><div class='del'>-			  menu_x_opts, menu_y_opts, xpad, ypad);</div><div class='del'>-</div><div class='del'>-	gtk_table_attach (GTK_TABLE (et-&gt;table),</div><div class='del'>-			  gtk_label_new (_("Email 3")),</div><div class='del'>-			  0, 1, 3, 4,</div><div class='del'>-			  label_x_opts, label_y_opts, xpad, ypad);</div><div class='del'>-</div><div class='del'>-	gtk_table_attach (GTK_TABLE (et-&gt;table),</div><div class='del'>-			  et-&gt;email3-&gt;option_menu,</div><div class='del'>-			  1, 2, 3, 4,</div><div class='del'>-			  menu_x_opts, menu_y_opts, xpad, ypad);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show_all (et-&gt;primary-&gt;option_menu);</div><div class='del'>-	gtk_widget_show_all (et-&gt;email2-&gt;option_menu);</div><div class='del'>-	gtk_widget_show_all (et-&gt;email3-&gt;option_menu);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show_all (et-&gt;table);</div><div class='del'>-	mini_wizard_container_add (wiz, et-&gt;table);</div><div class='del'>-	wiz-&gt;ok_cb      = email_table_ok_cb;</div><div class='del'>-	wiz-&gt;cleanup_cb = email_table_cleanup_cb;</div><div class='del'>-	wiz-&gt;closure    = et;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This code is for the little UI thing that lets you pick from a set of cards</div><div class='del'>- * and decide which one you want to add the e-mail address to.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct _CardPicker CardPicker;</div><div class='del'>-struct _CardPicker {</div><div class='del'>-	GtkWidget *body;</div><div class='del'>-	GtkWidget *clist;</div><div class='del'>-	GList *cards;</div><div class='del'>-	gchar *new_name;</div><div class='del'>-	gchar *new_email;</div><div class='del'>-</div><div class='del'>-	gint current_row;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_picker_row_select_cb (GtkCList *clist, gint row, gint col, GdkEventButton *ev, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MiniWizard *wiz = (MiniWizard *) closure;</div><div class='del'>-	CardPicker *pick = (CardPicker *) wiz-&gt;closure;</div><div class='del'>-	pick-&gt;current_row = row;</div><div class='del'>-	gtk_widget_set_sensitive (wiz-&gt;ok_button, TRUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_picker_row_unselect_cb (GtkCList *clist, gint row, gint col, GdkEventButton *ev, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	MiniWizard *wiz = (MiniWizard *) closure;</div><div class='del'>-	CardPicker *pick = (CardPicker *) wiz-&gt;closure;</div><div class='del'>-	pick-&gt;current_row = -1;</div><div class='del'>-	gtk_widget_set_sensitive (wiz-&gt;ok_button, FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_picker_ok_cb (MiniWizard *wiz, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	CardPicker *pick = (CardPicker *) closure;</div><div class='del'>-	g_return_if_fail (pick-&gt;current_row &gt;= 0);</div><div class='del'>-</div><div class='del'>-	if (pick-&gt;current_row == 0) {</div><div class='del'>-		e_contact_quick_add (pick-&gt;new_name, pick-&gt;new_email, NULL, NULL);</div><div class='del'>-		mini_wizard_destroy (wiz);</div><div class='del'>-	} else {</div><div class='del'>-		ECard *card = (ECard *) g_list_nth_data (pick-&gt;cards, pick-&gt;current_row-1);</div><div class='del'>-		email_table_init (wiz, card, pick-&gt;new_email);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_picker_cleanup_cb (gpointer closure)</div><div class='del'>-{</div><div class='del'>-	CardPicker *pick = (CardPicker *) closure;</div><div class='del'>-</div><div class='del'>-	g_list_foreach (pick-&gt;cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (pick-&gt;cards);</div><div class='del'>-</div><div class='del'>-	g_free (pick-&gt;new_name);</div><div class='del'>-	g_free (pick-&gt;new_email);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_picker_init (MiniWizard *wiz, const GList *cards, const gchar *new_name, const gchar *new_email)</div><div class='del'>-{</div><div class='del'>-	CardPicker *pick;</div><div class='del'>-	gchar *str;</div><div class='del'>-	GtkWidget *w, *swin;</div><div class='del'>-</div><div class='del'>-	pick = g_new (CardPicker, 1);</div><div class='del'>-</div><div class='del'>-	pick-&gt;body  = gtk_vbox_new (FALSE, 2);</div><div class='del'>-</div><div class='del'>-	pick-&gt;clist = gtk_clist_new (1);</div><div class='del'>-	gtk_clist_set_column_title (GTK_CLIST (pick-&gt;clist), 0, _("Select an Action"));</div><div class='del'>-	gtk_clist_column_titles_show (GTK_CLIST (pick-&gt;clist));</div><div class='del'>-	gtk_clist_set_selection_mode (GTK_CLIST (pick-&gt;clist), GTK_SELECTION_SINGLE);</div><div class='del'>-</div><div class='del'>-	gtk_clist_freeze (GTK_CLIST (pick-&gt;clist));</div><div class='del'>-</div><div class='del'>-	str = g_strdup_printf (_("Create a new contact \"%s\""), new_name);</div><div class='del'>-	gtk_clist_append (GTK_CLIST (pick-&gt;clist), &amp;str);</div><div class='del'>-	g_free (str);</div><div class='del'>-</div><div class='del'>-	pick-&gt;cards = NULL;</div><div class='del'>-	while (cards) {</div><div class='del'>-		ECard *card = (ECard *) cards-&gt;data;</div><div class='del'>-		gchar *name_str = e_card_name_to_string (card-&gt;name);</div><div class='del'>-</div><div class='del'>-		pick-&gt;cards = g_list_append (pick-&gt;cards, card);</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (card));</div><div class='del'>-</div><div class='del'>-		str = g_strdup_printf (_("Add address to existing contact \"%s\""), name_str);</div><div class='del'>-		gtk_clist_append (GTK_CLIST (pick-&gt;clist), &amp;str);</div><div class='del'>-		g_free (name_str);</div><div class='del'>-		g_free (str);</div><div class='del'>-</div><div class='del'>-		cards = g_list_next (cards);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_clist_thaw (GTK_CLIST (pick-&gt;clist));</div><div class='del'>-</div><div class='del'>-	pick-&gt;new_name  = g_strdup (new_name);</div><div class='del'>-	pick-&gt;new_email = g_strdup (new_email);</div><div class='del'>-</div><div class='del'>-	pick-&gt;current_row = -1;</div><div class='del'>-	gtk_widget_set_sensitive (wiz-&gt;ok_button, FALSE);</div><div class='del'>-</div><div class='del'>-	/* Connect some signals &amp; callbacks */</div><div class='del'>-</div><div class='del'>-	wiz-&gt;ok_cb      = card_picker_ok_cb;</div><div class='del'>-	wiz-&gt;cleanup_cb = card_picker_cleanup_cb;</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (pick-&gt;clist),</div><div class='del'>-			    "select-row",</div><div class='del'>-			    GTK_SIGNAL_FUNC (card_picker_row_select_cb),</div><div class='del'>-			    wiz);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (pick-&gt;clist),</div><div class='del'>-			    "unselect-row",</div><div class='del'>-			    GTK_SIGNAL_FUNC (card_picker_row_unselect_cb),</div><div class='del'>-			    wiz);</div><div class='del'>-</div><div class='del'>-	/* Build our widget */</div><div class='del'>-</div><div class='del'>-	w = gtk_label_new (new_email);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (pick-&gt;body), w, FALSE, TRUE, 3);</div><div class='del'>-</div><div class='del'>-	swin = gtk_scrolled_window_new (NULL, NULL);</div><div class='del'>-	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swin),</div><div class='del'>-					GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);</div><div class='del'>-</div><div class='del'>-	gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (swin), pick-&gt;clist);</div><div class='del'>-	</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (pick-&gt;body), swin, TRUE, TRUE, 2);</div><div class='del'>-	gtk_widget_show_all (pick-&gt;body);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	/* Put it in our mini-wizard */</div><div class='del'>-</div><div class='del'>-	wiz-&gt;closure = pick;</div><div class='del'>-	mini_wizard_container_add (wiz, pick-&gt;body);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The code for the actual EAddressPopup widget begins here.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static GtkObjectClass *parent_class;</div><div class='del'>-</div><div class='del'>-static void e_address_popup_destroy (GtkObject *);</div><div class='del'>-static void e_address_popup_query   (EAddressPopup *);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_class_init (EAddressPopupClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-</div><div class='del'>-	parent_class = GTK_OBJECT_CLASS (gtk_type_class (gtk_event_box_get_type ()));</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_address_popup_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_init (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	pop-&gt;transitory = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_destroy (GtkObject *obj)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop = E_ADDRESS_POPUP (obj);</div><div class='del'>-</div><div class='del'>-	if (pop-&gt;card)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (pop-&gt;card));</div><div class='del'>-</div><div class='del'>-	if (pop-&gt;scheduled_refresh)</div><div class='del'>-		gtk_idle_remove (pop-&gt;scheduled_refresh);</div><div class='del'>-</div><div class='del'>-	g_free (pop-&gt;name);</div><div class='del'>-	g_free (pop-&gt;email);</div><div class='del'>-</div><div class='del'>-	if (GTK_OBJECT_CLASS (parent_class)-&gt;destroy)</div><div class='del'>-		GTK_OBJECT_CLASS (parent_class)-&gt;destroy (obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_address_popup_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType pop_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!pop_type) {</div><div class='del'>-		GtkTypeInfo pop_info = {</div><div class='del'>-			"EAddressPopup",</div><div class='del'>-			sizeof (EAddressPopup),</div><div class='del'>-			sizeof (EAddressPopupClass),</div><div class='del'>-			(GtkClassInitFunc) e_address_popup_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_address_popup_init,</div><div class='del'>-			NULL, NULL,</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		pop_type = gtk_type_unique (gtk_event_box_get_type (), &amp;pop_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return pop_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_refresh_names (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	if (pop-&gt;name_widget) {</div><div class='del'>-		if (pop-&gt;name &amp;&amp; *pop-&gt;name) {</div><div class='del'>-			gchar *s = e_utf8_to_gtk_string (pop-&gt;name_widget, pop-&gt;name);</div><div class='del'>-			gtk_label_set_text (GTK_LABEL (pop-&gt;name_widget), s);</div><div class='del'>-			g_free (s);</div><div class='del'>-			gtk_widget_show (pop-&gt;name_widget);</div><div class='del'>-		} else {</div><div class='del'>-			gtk_widget_hide (pop-&gt;name_widget);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (pop-&gt;email_widget) {</div><div class='del'>-		if (pop-&gt;email &amp;&amp; *pop-&gt;email) {</div><div class='del'>-			gchar *s = e_utf8_to_gtk_string (pop-&gt;email_widget, pop-&gt;email);</div><div class='del'>-			gtk_label_set_text (GTK_LABEL (pop-&gt;email_widget), s);</div><div class='del'>-			g_free (s);</div><div class='del'>-			gtk_widget_show (pop-&gt;email_widget);</div><div class='del'>-		} else {</div><div class='del'>-			gtk_widget_hide (pop-&gt;email_widget);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_address_popup_query (pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-refresh_idle_cb (gpointer ptr)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop = E_ADDRESS_POPUP (ptr);</div><div class='del'>-	e_address_popup_refresh_names (pop);</div><div class='del'>-	pop-&gt;scheduled_refresh = 0;</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_schedule_refresh (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	if (pop-&gt;scheduled_refresh == 0)</div><div class='del'>-		pop-&gt;scheduled_refresh = gtk_idle_add (refresh_idle_cb, pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* If we are handed something of the form "Foo &lt;bar@bar.com&gt;",</div><div class='del'>-   do the right thing. */</div><div class='del'>-static gboolean</div><div class='del'>-e_address_popup_set_free_form (EAddressPopup *pop, const gchar *txt)</div><div class='del'>-{</div><div class='del'>-	gchar *lt, *gt = NULL;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (pop &amp;&amp; E_IS_ADDRESS_POPUP (pop), FALSE);</div><div class='del'>-</div><div class='del'>-	if (txt == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	lt = strchr (txt, '&lt;');</div><div class='del'>-	if (lt)</div><div class='del'>-		gt = strchr (txt, '&gt;');</div><div class='del'>-</div><div class='del'>-	if (lt &amp;&amp; gt &amp;&amp; lt+1 &lt; gt) {</div><div class='del'>-		gchar *name  = g_strndup (txt,  lt-txt);</div><div class='del'>-		gchar *email = g_strndup (lt+1, gt-lt-1);</div><div class='del'>-		e_address_popup_set_name (pop, name);</div><div class='del'>-		e_address_popup_set_email (pop, email);</div><div class='del'>-</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_popup_set_name (EAddressPopup *pop, const gchar *name)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (pop &amp;&amp; E_IS_ADDRESS_POPUP (pop));</div><div class='del'>-</div><div class='del'>-	/* We only allow the name to be set once. */</div><div class='del'>-	if (pop-&gt;name)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (!e_address_popup_set_free_form (pop, name)) {</div><div class='del'>-		pop-&gt;name = g_strdup (name);</div><div class='del'>-		if (pop-&gt;name)</div><div class='del'>-			g_strstrip (pop-&gt;name);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_address_popup_schedule_refresh (pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_popup_set_email (EAddressPopup *pop, const gchar *email)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (pop &amp;&amp; E_IS_ADDRESS_POPUP (pop));</div><div class='del'>-</div><div class='del'>-	/* We only allow the e-mail to be set once. */</div><div class='del'>-	if (pop-&gt;email)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (!e_address_popup_set_free_form (pop, email)) {</div><div class='del'>-		pop-&gt;email = g_strdup (email);</div><div class='del'>-		if (pop-&gt;email)</div><div class='del'>-			g_strstrip (pop-&gt;email);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_address_popup_schedule_refresh (pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_popup_construct (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *vbox, *name_holder;</div><div class='del'>-	GdkColor color = { 0x0, 0xffff, 0xffff, 0xffff };</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (pop &amp;&amp; E_IS_ADDRESS_POPUP (pop));</div><div class='del'>-</div><div class='del'>-	pop-&gt;main_vbox = gtk_vbox_new (FALSE, 0);</div><div class='del'>-</div><div class='del'>-	/* Build Generic View */</div><div class='del'>-</div><div class='del'>-	name_holder = gtk_event_box_new ();</div><div class='del'>-	vbox = gtk_vbox_new (FALSE, 2);</div><div class='del'>-	pop-&gt;name_widget = gtk_label_new ("");</div><div class='del'>-	pop-&gt;email_widget = gtk_label_new ("");</div><div class='del'>-</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (vbox), pop-&gt;name_widget, TRUE, TRUE, 2);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (vbox), pop-&gt;email_widget, TRUE, TRUE, 2);</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (name_holder), GTK_WIDGET (vbox));</div><div class='del'>-</div><div class='del'>-	if (gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (name_holder)), &amp;color, FALSE, TRUE)) {</div><div class='del'>-		GtkStyle *style = gtk_style_copy (gtk_widget_get_style (GTK_WIDGET (name_holder)));</div><div class='del'>-		style-&gt;bg[0] = color;</div><div class='del'>-		gtk_widget_set_style (GTK_WIDGET (name_holder), style);</div><div class='del'>-		gtk_style_unref (style);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	pop-&gt;generic_view = gtk_frame_new (NULL);</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (pop-&gt;generic_view), name_holder);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (pop-&gt;main_vbox), pop-&gt;generic_view, TRUE, TRUE, 0);</div><div class='del'>-	gtk_widget_show_all (pop-&gt;generic_view);</div><div class='del'>-</div><div class='del'>-	pop-&gt;query_msg = gtk_label_new (_("Querying Addressbook..."));</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (pop-&gt;main_vbox), pop-&gt;query_msg, TRUE, TRUE, 0);</div><div class='del'>-	gtk_widget_show (pop-&gt;query_msg);</div><div class='del'>-</div><div class='del'>-	/* Build Minicard View */</div><div class='del'>-	pop-&gt;minicard_view = e_minicard_widget_new ();</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (pop-&gt;main_vbox), pop-&gt;minicard_view, TRUE, TRUE, 0);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	/* Final assembly */</div><div class='del'>-</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (pop), pop-&gt;main_vbox);</div><div class='del'>-	gtk_widget_show (pop-&gt;main_vbox);</div><div class='del'>-</div><div class='del'>-	gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);</div><div class='del'>-	gtk_container_set_border_width (GTK_CONTAINER (pop), 2);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_address_popup_new (void)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop = gtk_type_new (E_ADDRESS_POPUP_TYPE);</div><div class='del'>-	e_address_popup_construct (pop);</div><div class='del'>-	return GTK_WIDGET (pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-emit_event (EAddressPopup *pop, const char *event)</div><div class='del'>-{</div><div class='del'>-	if (pop-&gt;es) {</div><div class='del'>-		BonoboArg *arg;</div><div class='del'>-</div><div class='del'>-		arg = bonobo_arg_new (BONOBO_ARG_BOOLEAN);</div><div class='del'>-		BONOBO_ARG_SET_BOOLEAN (arg, TRUE);</div><div class='del'>-		bonobo_event_source_notify_listeners_full (pop-&gt;es,</div><div class='del'>-							   "GNOME/Evolution/Addressbook/AddressPopup",</div><div class='del'>-							   "Event",</div><div class='del'>-							   event,</div><div class='del'>-							   arg, NULL);</div><div class='del'>-		bonobo_arg_release (arg);</div><div class='del'>-	}	</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-contact_editor_cb (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop = E_ADDRESS_POPUP (closure);</div><div class='del'>-	EContactEditor *ce = e_addressbook_show_contact_editor (book, pop-&gt;card, FALSE, TRUE);</div><div class='del'>-	emit_event (pop, "Destroy");</div><div class='del'>-	e_contact_editor_raise (ce);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-edit_contact_info_cb (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	emit_event (pop, "Hide");</div><div class='del'>-	e_book_use_local_address_book (contact_editor_cb, pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_cardify (EAddressPopup *pop, ECard *card)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *b;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (pop &amp;&amp; E_IS_ADDRESS_POPUP (pop));</div><div class='del'>-	g_return_if_fail (card &amp;&amp; E_IS_CARD (card));</div><div class='del'>-	g_return_if_fail (pop-&gt;card == NULL);</div><div class='del'>-</div><div class='del'>-	pop-&gt;card = card;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (pop-&gt;card));</div><div class='del'>-</div><div class='del'>-	e_minicard_widget_set_card (E_MINICARD_WIDGET (pop-&gt;minicard_view), card);</div><div class='del'>-	gtk_widget_show (pop-&gt;minicard_view);</div><div class='del'>-	gtk_widget_hide (pop-&gt;generic_view);</div><div class='del'>-</div><div class='del'>-	b = gtk_button_new_with_label (_("Edit Contact Info"));</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (pop-&gt;main_vbox), b, TRUE, TRUE, 0);</div><div class='del'>-	gtk_signal_connect_object (GTK_OBJECT (b),</div><div class='del'>-				   "clicked",</div><div class='del'>-				   GTK_SIGNAL_FUNC (edit_contact_info_cb),</div><div class='del'>-				   GTK_OBJECT (pop));</div><div class='del'>-	gtk_widget_show (b);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_contacts_cb (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	if (pop-&gt;email &amp;&amp; *pop-&gt;email) {</div><div class='del'>-		if (pop-&gt;name &amp;&amp; *pop-&gt;name)</div><div class='del'>-			e_contact_quick_add (pop-&gt;name, pop-&gt;email, NULL, NULL);</div><div class='del'>-		else</div><div class='del'>-			e_contact_quick_add_free_form (pop-&gt;email, NULL, NULL);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-	emit_event (pop, "Destroy");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_no_matches (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *b;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (pop &amp;&amp; E_IS_ADDRESS_POPUP (pop));</div><div class='del'>-</div><div class='del'>-	b = gtk_button_new_with_label (_("Add to Contacts"));</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (pop-&gt;main_vbox), b, TRUE, TRUE, 0);</div><div class='del'>-	gtk_signal_connect_object (GTK_OBJECT (b),</div><div class='del'>-				   "clicked",</div><div class='del'>-				   GTK_SIGNAL_FUNC (add_contacts_cb),</div><div class='del'>-				   GTK_OBJECT (pop));</div><div class='del'>-	gtk_widget_show (b);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-wizard_destroy_cb (MiniWizard *wiz, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	gtk_widget_destroy (GTK_WIDGET (closure));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-popup_size_allocate_cb (GtkWidget *widget, GtkAllocation *alloc, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	gint x, y, w, h, xmax, ymax;</div><div class='del'>-</div><div class='del'>-	xmax = gdk_screen_width ();</div><div class='del'>-	ymax = gdk_screen_height ();</div><div class='del'>-</div><div class='del'>-	if (gtk_object_get_data (GTK_OBJECT (widget), "size_allocate") == NULL) {</div><div class='del'>-		gdk_window_get_pointer (NULL, &amp;x, &amp;y, NULL);</div><div class='del'>-		w = alloc-&gt;width;</div><div class='del'>-		h = alloc-&gt;height;</div><div class='del'>-		x = CLAMP (x - w/2, 0, xmax - w);</div><div class='del'>-		y = CLAMP (y - h/2, 0, ymax - h);</div><div class='del'>-		gtk_widget_set_uposition (widget, x, y);</div><div class='del'>-		gtk_object_set_data (GTK_OBJECT (widget), "size_allocate", widget);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_ambiguous_email_add (EAddressPopup *pop, const GList *cards)</div><div class='del'>-{</div><div class='del'>-	MiniWizard *wiz = mini_wizard_new ();</div><div class='del'>-	GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);</div><div class='del'>-	</div><div class='del'>-	wiz-&gt;destroy_cb      = wizard_destroy_cb;</div><div class='del'>-	wiz-&gt;destroy_closure = win;</div><div class='del'>-</div><div class='del'>-	gtk_window_set_title (GTK_WINDOW (win),  _("Merge E-Mail Address"));</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (win),</div><div class='del'>-			    "size_allocate",</div><div class='del'>-			    GTK_SIGNAL_FUNC (popup_size_allocate_cb),</div><div class='del'>-			    NULL);</div><div class='del'>-</div><div class='del'>-	/* FIXME: This hard-wired size is evil. */</div><div class='del'>-	gtk_widget_set_usize (win, 275, 170);</div><div class='del'>-		</div><div class='del'>-	card_picker_init (wiz, cards, pop-&gt;name, pop-&gt;email);</div><div class='del'>-</div><div class='del'>-	emit_event (pop, "Destroy");</div><div class='del'>-</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (win), wiz-&gt;body);</div><div class='del'>-	gtk_widget_show_all (win);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_multiple_matches (EAddressPopup *pop, const GList *cards)</div><div class='del'>-{</div><div class='del'>-	pop-&gt;multiple_matches = TRUE;</div><div class='del'>-</div><div class='del'>-	e_address_popup_ambiguous_email_add (pop, cards);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  Addressbook Query Fun</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-name_only_query_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop;</div><div class='del'>-</div><div class='del'>-	if (status != E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	pop = E_ADDRESS_POPUP (closure);</div><div class='del'>-</div><div class='del'>-	pop-&gt;query_tag = 0;</div><div class='del'>-</div><div class='del'>-	if (cards == NULL) {</div><div class='del'>-		e_address_popup_no_matches (pop);</div><div class='del'>-	} else {</div><div class='del'>-		e_address_popup_ambiguous_email_add (pop, cards);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-query_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop;</div><div class='del'>-</div><div class='del'>-	if (status != E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	pop = E_ADDRESS_POPUP (closure);</div><div class='del'>-</div><div class='del'>-	pop-&gt;query_tag = 0;</div><div class='del'>-	gtk_widget_hide (pop-&gt;query_msg);</div><div class='del'>-</div><div class='del'>-	if (cards == NULL) {</div><div class='del'>-		</div><div class='del'>-		/* Do a name-only query if:</div><div class='del'>-		   (1) The name is non-empty.</div><div class='del'>-		   (2) The e-mail is also non-empty (so that the query we just did wasn't actually a name-only query.</div><div class='del'>-		*/</div><div class='del'>-		if (pop-&gt;name &amp;&amp; *pop-&gt;name &amp;&amp; pop-&gt;email &amp;&amp; *pop-&gt;email) {</div><div class='del'>-			pop-&gt;query_tag = e_book_name_and_email_query (book, pop-&gt;name, NULL, name_only_query_cb, pop);</div><div class='del'>-		} else {</div><div class='del'>-			e_address_popup_no_matches (pop);</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-	} else {</div><div class='del'>-		if (g_list_length ((GList *) cards) == 1)</div><div class='del'>-			e_address_popup_cardify (pop, E_CARD (cards-&gt;data));</div><div class='del'>-		else</div><div class='del'>-			e_address_popup_multiple_matches (pop, cards);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-start_query (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop = E_ADDRESS_POPUP (closure);</div><div class='del'>-</div><div class='del'>-	if (pop-&gt;query_tag)</div><div class='del'>-		e_book_simple_query_cancel (book, pop-&gt;query_tag);</div><div class='del'>-</div><div class='del'>-	pop-&gt;query_tag = e_book_name_and_email_query (book, pop-&gt;name, pop-&gt;email, query_cb, pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_popup_query (EAddressPopup *pop)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (pop &amp;&amp; E_IS_ADDRESS_POPUP (pop));</div><div class='del'>-</div><div class='del'>-	e_book_use_local_address_book (start_query, pop);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	PROPERTY_NAME,</div><div class='del'>-	PROPERTY_EMAIL,</div><div class='del'>-	PROPERTY_TRANSITORY</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_prop (BonoboPropertyBag *bag, const BonoboArg *arg, guint arg_id, CORBA_Environment *ev, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop = E_ADDRESS_POPUP (user_data);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-</div><div class='del'>-	case PROPERTY_NAME:</div><div class='del'>-		e_address_popup_set_name (pop, BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case PROPERTY_EMAIL:</div><div class='del'>-		e_address_popup_set_email (pop, BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	default:</div><div class='del'>-		g_assert_not_reached ();</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_prop (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id, CORBA_Environment *ev, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EAddressPopup *pop = E_ADDRESS_POPUP (user_data);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-</div><div class='del'>-	case PROPERTY_NAME:</div><div class='del'>-		BONOBO_ARG_SET_STRING (arg, pop-&gt;name);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case PROPERTY_EMAIL:</div><div class='del'>-		BONOBO_ARG_SET_STRING (arg, pop-&gt;email);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case PROPERTY_TRANSITORY:</div><div class='del'>-		BONOBO_ARG_SET_BOOLEAN (arg, pop-&gt;transitory);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	default:</div><div class='del'>-		g_assert_not_reached ();</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static BonoboControl *</div><div class='del'>-e_address_popup_factory_new_control (void)</div><div class='del'>-{</div><div class='del'>-        BonoboControl *control;</div><div class='del'>-        BonoboPropertyBag *bag;</div><div class='del'>-	EAddressPopup *addy;</div><div class='del'>-	GtkWidget *w;</div><div class='del'>-</div><div class='del'>-	w = e_address_popup_new ();</div><div class='del'>-	addy = E_ADDRESS_POPUP (w);</div><div class='del'>-</div><div class='del'>-	control = bonobo_control_new (w);</div><div class='del'>-	gtk_widget_show (w);</div><div class='del'>-</div><div class='del'>-        bag = bonobo_property_bag_new (get_prop, set_prop, w);</div><div class='del'>-        bonobo_property_bag_add (bag, "name", PROPERTY_NAME,</div><div class='del'>-                                 BONOBO_ARG_STRING, NULL, NULL,</div><div class='del'>-                                 BONOBO_PROPERTY_WRITEABLE | BONOBO_PROPERTY_READABLE);</div><div class='del'>-</div><div class='del'>-        bonobo_property_bag_add (bag, "email", PROPERTY_EMAIL,</div><div class='del'>-                                 BONOBO_ARG_STRING, NULL, NULL,</div><div class='del'>-                                 BONOBO_PROPERTY_WRITEABLE | BONOBO_PROPERTY_READABLE);</div><div class='del'>-</div><div class='del'>-	bonobo_property_bag_add (bag, "transitory", PROPERTY_TRANSITORY,</div><div class='del'>-				 BONOBO_ARG_BOOLEAN, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_READABLE);</div><div class='del'>-</div><div class='del'>-        bonobo_control_set_properties (control, bag);</div><div class='del'>-        bonobo_object_unref (BONOBO_OBJECT (bag));</div><div class='del'>-</div><div class='del'>-	addy-&gt;es = bonobo_event_source_new ();</div><div class='del'>-	bonobo_object_add_interface (BONOBO_OBJECT (control),</div><div class='del'>-				     BONOBO_OBJECT (addy-&gt;es));</div><div class='del'>-</div><div class='del'>-        return control;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static BonoboObject *</div><div class='del'>-e_address_popup_factory (BonoboGenericFactory *factory, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	return BONOBO_OBJECT (e_address_popup_factory_new_control ());</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_popup_factory_init (void)</div><div class='del'>-{</div><div class='del'>-	static BonoboGenericFactory *factory = NULL;</div><div class='del'>-</div><div class='del'>-	if (factory != NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	factory = bonobo_generic_factory_new ("OAFIID:GNOME_Evolution_Addressbook_AddressPopupFactory",</div><div class='del'>-					      e_address_popup_factory, NULL);</div><div class='del'>-	</div><div class='del'>-	if (factory == NULL)</div><div class='del'>-		g_error ("I could not register an AddressPopup factory.");</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/e-address-popup.h b/addressbook/gui/component/e-address-popup.h<br/>deleted file mode 100644<br/>index ef51437551..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/e-address-popup.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/e-address-popup.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,88 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-address-popup.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_ADDRESS_POPUP_H__</div><div class='del'>-#define __E_ADDRESS_POPUP_H__</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtk.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-event-source.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#define E_ADDRESS_POPUP_TYPE        (e_address_popup_get_type ())</div><div class='del'>-#define E_ADDRESS_POPUP(o)          (GTK_CHECK_CAST ((o), E_ADDRESS_POPUP_TYPE, EAddressPopup))</div><div class='del'>-#define E_ADDRESS_POPUP_CLASS(k)    (GTK_CHECK_CLASS_CAST ((k), E_ADDRESS_POPUP_TYPE, EAddressPopupClass))</div><div class='del'>-#define E_IS_ADDRESS_POPUP(o)       (GTK_CHECK_TYPE ((o), E_ADDRESS_POPUP_TYPE))</div><div class='del'>-#define E_IS_ADDRESS_POPUP_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_ADDRESS_POPUP_TYPE))</div><div class='del'>-</div><div class='del'>-typedef struct _EAddressPopup EAddressPopup;</div><div class='del'>-typedef struct _EAddressPopupClass EAddressPopupClass;</div><div class='del'>-</div><div class='del'>-struct _EAddressPopup {</div><div class='del'>-	GtkEventBox parent;</div><div class='del'>-</div><div class='del'>-	gchar *name;</div><div class='del'>-	gchar *email;</div><div class='del'>-</div><div class='del'>-	GtkWidget *name_widget;</div><div class='del'>-	GtkWidget *email_widget;</div><div class='del'>-	GtkWidget *query_msg;</div><div class='del'>-	</div><div class='del'>-	GtkWidget *main_vbox;</div><div class='del'>-	GtkWidget *generic_view;</div><div class='del'>-	GtkWidget *minicard_view;</div><div class='del'>-</div><div class='del'>-	gboolean transitory;</div><div class='del'>-</div><div class='del'>-	guint scheduled_refresh;</div><div class='del'>-	guint query_tag;</div><div class='del'>-	gboolean multiple_matches;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	BonoboEventSource *es;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EAddressPopupClass {</div><div class='del'>-	GtkEventBoxClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType e_address_popup_get_type (void);</div><div class='del'>-</div><div class='del'>-void e_address_popup_set_name  (EAddressPopup *, const gchar *name);</div><div class='del'>-void e_address_popup_set_email (EAddressPopup *, const gchar *email);</div><div class='del'>-</div><div class='del'>-void e_address_popup_construct (EAddressPopup *);</div><div class='del'>-GtkWidget *e_address_popup_new (void);</div><div class='del'>-</div><div class='del'>-void e_address_popup_factory_init (void);</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* __E_ADDRESS_POPUP_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/e-address-widget.c b/addressbook/gui/component/e-address-widget.c<br/>deleted file mode 100644<br/>index 2f81c70b36..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/e-address-widget.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/e-address-widget.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,577 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-address-widget.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-control.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-property-bag.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-generic-factory.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/contact-editor/e-contact-quick-add.h&gt;</div><div class='del'>-#include "e-address-widget.h"</div><div class='del'>-</div><div class='del'>-static void e_address_widget_class_init (EAddressWidgetClass *klass);</div><div class='del'>-static void e_address_widget_init       (EAddressWidget *obj);</div><div class='del'>-static void e_address_widget_destroy    (GtkObject *obj);</div><div class='del'>-</div><div class='del'>-static gint e_address_widget_button_press_handler (GtkWidget *w, GdkEventButton *ev);</div><div class='del'>-static void e_address_widget_popup (EAddressWidget *, GdkEventButton *ev);</div><div class='del'>-static void e_address_widget_schedule_query (EAddressWidget *);</div><div class='del'>-</div><div class='del'>-static GtkObjectClass *parent_class;</div><div class='del'>-</div><div class='del'>-static EBook *common_book = NULL; /* sort of lame */</div><div class='del'>-</div><div class='del'>-static gboolean doing_queries = FALSE;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_class_init (EAddressWidgetClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = (GtkObjectClass *) klass;</div><div class='del'>-	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);</div><div class='del'>-</div><div class='del'>-	parent_class = GTK_OBJECT_CLASS (gtk_type_class (gtk_event_box_get_type ()));</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_address_widget_destroy;</div><div class='del'>-</div><div class='del'>-	widget_class-&gt;button_press_event = e_address_widget_button_press_handler;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_init (EAddressWidget *addr)</div><div class='del'>-{</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_destroy (GtkObject *obj)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = E_ADDRESS_WIDGET (obj);</div><div class='del'>-</div><div class='del'>-	g_free (addr-&gt;name);</div><div class='del'>-	g_free (addr-&gt;email);</div><div class='del'>-</div><div class='del'>-	if (addr-&gt;query_tag)</div><div class='del'>-		e_book_simple_query_cancel (common_book, addr-&gt;query_tag);</div><div class='del'>-</div><div class='del'>-	if (addr-&gt;query_idle_tag)</div><div class='del'>-		gtk_idle_remove (addr-&gt;query_idle_tag);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-e_address_widget_button_press_handler (GtkWidget *w, GdkEventButton *ev)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = E_ADDRESS_WIDGET (w);</div><div class='del'>-	if (ev-&gt;button == 3 &amp;&amp; ev-&gt;state == 0) {</div><div class='del'>-		e_address_widget_popup (addr, ev);</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_address_widget_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType aw_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!aw_type) {</div><div class='del'>-		GtkTypeInfo aw_info = {</div><div class='del'>-			"EAddressWidget",</div><div class='del'>-			sizeof (EAddressWidget),</div><div class='del'>-			sizeof (EAddressWidgetClass),</div><div class='del'>-			(GtkClassInitFunc) e_address_widget_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_address_widget_init,</div><div class='del'>-			NULL, NULL, /* reserved... but for what sinister purpose? */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		aw_type = gtk_type_unique (gtk_event_box_get_type (), &amp;aw_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return aw_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-gtk_widget_visible (GtkWidget *w, gboolean x)</div><div class='del'>-{</div><div class='del'>-	if (x)</div><div class='del'>-		gtk_widget_show (w);</div><div class='del'>-	else</div><div class='del'>-		gtk_widget_hide (w);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_refresh (EAddressWidget *addr)</div><div class='del'>-{</div><div class='del'>-	gchar *str;</div><div class='del'>-	gboolean have_name, have_email;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (addr &amp;&amp; E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>-	have_name = addr-&gt;name &amp;&amp; *addr-&gt;name;</div><div class='del'>-	have_email = addr-&gt;email &amp;&amp; *addr-&gt;email &amp;&amp; (addr-&gt;card == NULL || !addr-&gt;known_email);</div><div class='del'>-</div><div class='del'>-	gtk_label_set_text (GTK_LABEL (addr-&gt;name_widget), have_name ? addr-&gt;name : "");</div><div class='del'>-	gtk_widget_visible (addr-&gt;name_widget, have_name);</div><div class='del'>-	if (addr-&gt;card) {</div><div class='del'>-		gint i, N = strlen (addr-&gt;name);</div><div class='del'>-		gchar *pattern = g_malloc (N+1);</div><div class='del'>-		for (i=0; i&lt;N; ++i)</div><div class='del'>-			pattern[i] = '_';</div><div class='del'>-		pattern[i] = '\0';</div><div class='del'>-		gtk_label_set_pattern (GTK_LABEL (addr-&gt;name_widget), pattern);</div><div class='del'>-		g_free (pattern);</div><div class='del'>-	} else {</div><div class='del'>-		gtk_label_set_pattern (GTK_LABEL (addr-&gt;name_widget), "");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (have_email) {</div><div class='del'>-		str = g_strdup_printf (have_name ? "&lt;%s&gt;" : "%s", addr-&gt;email);</div><div class='del'>-		gtk_label_set_text (GTK_LABEL (addr-&gt;email_widget), str);</div><div class='del'>-		g_free (str);</div><div class='del'>-	} else {</div><div class='del'>-		gtk_label_set_text (GTK_LABEL (addr-&gt;email_widget), "");</div><div class='del'>-	}</div><div class='del'>-	gtk_widget_visible (addr-&gt;email_widget, have_email);</div><div class='del'>-</div><div class='del'>-	gtk_widget_visible (addr-&gt;spacer, have_name &amp;&amp; have_email);</div><div class='del'>-</div><div class='del'>-	/* Launch a query to find the appropriate card, if necessary. */</div><div class='del'>-	if (addr-&gt;card == NULL) </div><div class='del'>-		e_address_widget_schedule_query (addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_widget_set_name (EAddressWidget *addr, const gchar *name)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (addr &amp;&amp; E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>-	g_free (addr-&gt;name);</div><div class='del'>-	addr-&gt;name = g_strdup (name);</div><div class='del'>-</div><div class='del'>-	e_address_widget_refresh (addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_widget_set_email (EAddressWidget *addr, const gchar *email)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (addr &amp;&amp; E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>-	g_free (addr-&gt;email);</div><div class='del'>-	addr-&gt;email = g_strdup (email);</div><div class='del'>-</div><div class='del'>-	e_address_widget_refresh (addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_widget_set_text (EAddressWidget *addr, const gchar *text)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (addr &amp;&amp; E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-	</div><div class='del'>-	e_address_widget_set_email (addr, text); /* CRAP */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_widget_construct (EAddressWidget *addr)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *box;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (addr &amp;&amp; E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>-	box = gtk_hbox_new (FALSE, 2);</div><div class='del'>-	</div><div class='del'>-	addr-&gt;name_widget = gtk_label_new ("");</div><div class='del'>-	addr-&gt;spacer = gtk_label_new (" ");</div><div class='del'>-	addr-&gt;email_widget = gtk_label_new ("");</div><div class='del'>-	</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (box), addr-&gt;name_widget, FALSE, FALSE, 0);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (box), addr-&gt;spacer, FALSE, FALSE, 0);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (box), addr-&gt;email_widget, FALSE, FALSE, 0);</div><div class='del'>-</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (addr), box);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show (box);</div><div class='del'>-	gtk_widget_show (addr-&gt;name_widget);</div><div class='del'>-	gtk_widget_show (addr-&gt;email_widget);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_address_widget_new (void)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = gtk_type_new (e_address_widget_get_type ());</div><div class='del'>-	e_address_widget_construct (addr);</div><div class='del'>-	return GTK_WIDGET (addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Cardification</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_cardify (EAddressWidget *addr, ECard *card, gboolean known_email)</div><div class='del'>-{</div><div class='del'>-	if (addr-&gt;card != card || addr-&gt;known_email != known_email) {</div><div class='del'>-</div><div class='del'>-		if (addr-&gt;card != card) {</div><div class='del'>-			if (addr-&gt;card)</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (addr-&gt;card));</div><div class='del'>-			addr-&gt;card = card;</div><div class='del'>-			gtk_object_ref (GTK_OBJECT (addr-&gt;card));</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		addr-&gt;known_email = known_email;</div><div class='del'>-</div><div class='del'>-		if (!(addr-&gt;name &amp;&amp; *addr-&gt;name)) {</div><div class='del'>-			gchar *s = e_card_name_to_string (card-&gt;name);</div><div class='del'>-			e_address_widget_set_name (addr, s);</div><div class='del'>-			g_free (s);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		e_address_widget_refresh (addr);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-query_results_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = user_data;</div><div class='del'>-</div><div class='del'>-	if (g_list_length ((GList *) cards) == 1) {</div><div class='del'>-		ECard *card = E_CARD (cards-&gt;data);</div><div class='del'>-		e_address_widget_cardify (addr, card, TRUE);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	addr-&gt;query_tag = 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_do_query (EAddressWidget *addr)</div><div class='del'>-{</div><div class='del'>-	e_book_name_and_email_query (common_book, addr-&gt;name, addr-&gt;email, query_results_cb, addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_ready_cb (EBook *book, EBookStatus status, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = E_ADDRESS_WIDGET (user_data);</div><div class='del'>-</div><div class='del'>-	if (common_book == NULL) {</div><div class='del'>-		common_book = book;</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (common_book));</div><div class='del'>-	} else</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-</div><div class='del'>-	e_address_widget_do_query (addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-query_idle_fn (gpointer ptr)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = E_ADDRESS_WIDGET (ptr);</div><div class='del'>-</div><div class='del'>-	if (common_book) {</div><div class='del'>-		e_address_widget_do_query (addr);</div><div class='del'>-	} else {</div><div class='del'>-		e_book_load_local_address_book (e_book_new (), book_ready_cb, addr);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	addr-&gt;query_idle_tag = 0;</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_schedule_query (EAddressWidget *addr)</div><div class='del'>-{</div><div class='del'>-	if (addr-&gt;query_idle_tag || !doing_queries)</div><div class='del'>-		return;</div><div class='del'>-	addr-&gt;query_idle_tag = gtk_idle_add (query_idle_fn, addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Popup Menu</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define ARBITRARY_UIINFO_LIMIT 64</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-popup_add_name_and_address (EAddressWidget *addr, GnomeUIInfo *uiinfo, gint i)</div><div class='del'>-{</div><div class='del'>-	gboolean flag = FALSE;</div><div class='del'>-</div><div class='del'>-	if (addr-&gt;name &amp;&amp; *addr-&gt;name) {</div><div class='del'>-		uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-		uiinfo[i].label = addr-&gt;name;</div><div class='del'>-		++i;</div><div class='del'>-		flag = TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (addr-&gt;email &amp;&amp; *addr-&gt;email) {</div><div class='del'>-		uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-		uiinfo[i].label = addr-&gt;email;</div><div class='del'>-		++i;</div><div class='del'>-		flag = TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (flag) {</div><div class='del'>-		uiinfo[i].type = GNOME_APP_UI_SEPARATOR;</div><div class='del'>-		++i;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return i;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-flip_queries_flag_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	doing_queries = !doing_queries;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-popup_add_query_change (EAddressWidget *addr, GnomeUIInfo *uiinfo, gint i)</div><div class='del'>-{</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_SEPARATOR;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = doing_queries ? _("Disable Queries") : _("Enable Queries (Dangerous!)");</div><div class='del'>-	uiinfo[i].moreinfo = flip_queries_flag_cb;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	return i;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static GtkWidget *</div><div class='del'>-popup_menu_card (EAddressWidget *addr)</div><div class='del'>-{</div><div class='del'>-	GnomeUIInfo uiinfo[ARBITRARY_UIINFO_LIMIT];</div><div class='del'>-	GtkWidget *pop;</div><div class='del'>-	gint i=0;</div><div class='del'>-	ECard *card = E_CARD (addr-&gt;card);</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (card != NULL, NULL);</div><div class='del'>-</div><div class='del'>-	memset (uiinfo, 0, sizeof (uiinfo));</div><div class='del'>-</div><div class='del'>-	i = popup_add_name_and_address (addr, uiinfo, i);</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = _("Edit Contact Info");</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	i = popup_add_query_change (addr, uiinfo, i);</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ENDOFINFO;</div><div class='del'>-	pop = gnome_popup_menu_new (uiinfo);</div><div class='del'>-	return pop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-post_quick_add_cb (ECard *card, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	e_address_widget_cardify (E_ADDRESS_WIDGET (user_data), card, TRUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_contacts_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = E_ADDRESS_WIDGET (user_data);</div><div class='del'>-</div><div class='del'>-	e_contact_quick_add (addr-&gt;name, addr-&gt;email, post_quick_add_cb, addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GtkWidget *</div><div class='del'>-popup_menu_nocard (EAddressWidget *addr)</div><div class='del'>-{</div><div class='del'>-	GnomeUIInfo uiinfo[ARBITRARY_UIINFO_LIMIT];</div><div class='del'>-	GtkWidget *pop;</div><div class='del'>-	gint i=0;</div><div class='del'>-</div><div class='del'>-	memset (uiinfo, 0, sizeof (uiinfo));</div><div class='del'>-</div><div class='del'>-	i = popup_add_name_and_address (addr, uiinfo, i);</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = _("Add to Contacts");</div><div class='del'>-	uiinfo[i].moreinfo = add_contacts_cb;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	i = popup_add_query_change (addr, uiinfo, i);</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ENDOFINFO;</div><div class='del'>-	pop = gnome_popup_menu_new (uiinfo);</div><div class='del'>-	return pop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_address_widget_popup (EAddressWidget *addr, GdkEventButton *ev)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *pop;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (addr &amp;&amp; E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>-	pop = addr-&gt;card ? popup_menu_card (addr) : popup_menu_nocard (addr);</div><div class='del'>-</div><div class='del'>-	if (pop)</div><div class='del'>-		gnome_popup_menu_do_popup (pop, NULL, NULL, ev, addr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Bonobo Control Magic</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	ADDRESS_PROPERTY_NAME,</div><div class='del'>-	ADDRESS_PROPERTY_EMAIL,</div><div class='del'>-	ADDRESS_PROPERTY_TEXT,</div><div class='del'>-	ADDRESS_PROPERTY_BACKGROUND_RGB</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-get_prop (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id, CORBA_Environment *ev, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = E_ADDRESS_WIDGET (user_data);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-</div><div class='del'>-	case ADDRESS_PROPERTY_NAME:</div><div class='del'>-		BONOBO_ARG_SET_STRING (arg, addr-&gt;name ? addr-&gt;name :"");</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ADDRESS_PROPERTY_EMAIL:</div><div class='del'>-		BONOBO_ARG_SET_STRING (arg, addr-&gt;email ? addr-&gt;email : "");</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ADDRESS_PROPERTY_TEXT:</div><div class='del'>-		BONOBO_ARG_SET_STRING (arg, "?");</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_prop (BonoboPropertyBag *bag, const BonoboArg *arg, guint arg_id, CORBA_Environment *ev, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EAddressWidget *addr = E_ADDRESS_WIDGET (user_data);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ADDRESS_PROPERTY_NAME:</div><div class='del'>-		e_address_widget_set_name (addr, BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ADDRESS_PROPERTY_EMAIL:</div><div class='del'>-		e_address_widget_set_email (addr, BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ADDRESS_PROPERTY_TEXT:</div><div class='del'>-		e_address_widget_set_text (addr, BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-		</div><div class='del'>-	case ADDRESS_PROPERTY_BACKGROUND_RGB:</div><div class='del'>-		{</div><div class='del'>-			gint bg = BONOBO_ARG_GET_INT (arg);</div><div class='del'>-			GdkColor color;</div><div class='del'>-</div><div class='del'>-			color.red   = (bg &amp; 0xff0000) &gt;&gt; 8;</div><div class='del'>-			color.green = (bg &amp; 0x00ff00);</div><div class='del'>-			color.blue  = (bg &amp; 0x0000ff) &lt;&lt; 8;</div><div class='del'>-</div><div class='del'>-			if (gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (addr)), &amp;color, FALSE, TRUE)) {</div><div class='del'>-				GtkStyle *style = gtk_style_copy (gtk_widget_get_style (GTK_WIDGET (addr)));</div><div class='del'>-				style-&gt;bg[0] = color;</div><div class='del'>-				gtk_widget_set_style (GTK_WIDGET (addr), style);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static BonoboControl *</div><div class='del'>-e_address_widget_factory_new_control (void)</div><div class='del'>-{</div><div class='del'>-	BonoboControl *control;</div><div class='del'>-	BonoboPropertyBag *bag;</div><div class='del'>-	GtkWidget *w;</div><div class='del'>-</div><div class='del'>-	w = e_address_widget_new ();</div><div class='del'>-	gtk_widget_show (w);</div><div class='del'>-</div><div class='del'>-	control = bonobo_control_new (w);</div><div class='del'>-</div><div class='del'>-	bag = bonobo_property_bag_new (get_prop, set_prop, w);</div><div class='del'>-	bonobo_property_bag_add (bag, "name", ADDRESS_PROPERTY_NAME,</div><div class='del'>-				 BONOBO_ARG_STRING, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-</div><div class='del'>-	bonobo_property_bag_add (bag, "email", ADDRESS_PROPERTY_EMAIL,</div><div class='del'>-				 BONOBO_ARG_STRING, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-</div><div class='del'>-	bonobo_property_bag_add (bag, "text", ADDRESS_PROPERTY_TEXT,</div><div class='del'>-				 BONOBO_ARG_STRING, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-</div><div class='del'>-	bonobo_property_bag_add (bag, "background_rgb", ADDRESS_PROPERTY_BACKGROUND_RGB,</div><div class='del'>-				 BONOBO_ARG_INT, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-</div><div class='del'>-	bonobo_control_set_properties (control, bag);</div><div class='del'>-	bonobo_object_unref (BONOBO_OBJECT (bag));</div><div class='del'>-</div><div class='del'>-	return control;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static BonoboObject *</div><div class='del'>-e_address_widget_factory (BonoboGenericFactory *factory, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	return BONOBO_OBJECT (e_address_widget_factory_new_control ());</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_address_widget_factory_init (void)</div><div class='del'>-{</div><div class='del'>-	static BonoboGenericFactory *factory = NULL;</div><div class='del'>-</div><div class='del'>-	if (factory != NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	factory = bonobo_generic_factory_new ("OAFIID:GNOME_Evolution_Addressbook_AddressWidgetFactory",</div><div class='del'>-					      e_address_widget_factory, NULL);</div><div class='del'>-</div><div class='del'>-	if (factory == NULL)</div><div class='del'>-		g_error ("I could not register an AddressWidget factory.");</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/e-address-widget.h b/addressbook/gui/component/e-address-widget.h<br/>deleted file mode 100644<br/>index 8cf425d5c9..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/e-address-widget.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/e-address-widget.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,103 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-address-widget.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_ADDRESS_WIDGET_H__</div><div class='del'>-#define __E_ADDRESS_WIDGET_H__</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtkeventbox.h&gt;</div><div class='del'>-#include &lt;gtk/gtkhbox.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;gtk/gtkwidget.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-util.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#define E_ADDRESS_WIDGET_TYPE        (e_address_widget_get_type ())</div><div class='del'>-#define E_ADDRESS_WIDGET(o)          (GTK_CHECK_CAST ((o), E_ADDRESS_WIDGET_TYPE, EAddressWidget))</div><div class='del'>-#define E_ADDRESS_WIDGET_CLASS(k)    (GTK_CHECK_CLASS_CAST ((k), E_ADDRESS_WIDGET_TYPE, EAddressWidgetClass))</div><div class='del'>-#define E_IS_ADDRESS_WIDGET(o)       (GTK_CHECK_TYPE ((o), E_ADDRESS_WIDGET_TYPE))</div><div class='del'>-#define E_IS_ADDRESS_WIDGET_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_ADDRESS_WIDGET_TYPE))</div><div class='del'>-</div><div class='del'>-typedef struct _EAddressWidget EAddressWidget;</div><div class='del'>-typedef struct _EAddressWidgetClass EAddressWidgetClass;</div><div class='del'>-</div><div class='del'>-struct _EAddressWidget {</div><div class='del'>-	GtkEventBox parent;</div><div class='del'>-	</div><div class='del'>-	gchar *name;</div><div class='del'>-	gchar *email;</div><div class='del'>-	</div><div class='del'>-	GtkWidget *name_widget;</div><div class='del'>-	GtkWidget *email_widget;</div><div class='del'>-	GtkWidget *spacer;</div><div class='del'>-</div><div class='del'>-	guint query_idle_tag;</div><div class='del'>-	guint query_tag;</div><div class='del'>-</div><div class='del'>-	ECard *card;</div><div class='del'>-	gboolean known_email;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EAddressWidgetClass {</div><div class='del'>-	GtkEventBoxClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType e_address_widget_get_type (void);</div><div class='del'>-</div><div class='del'>-void e_address_widget_set_name  (EAddressWidget *, const gchar *name);</div><div class='del'>-void e_address_widget_set_email (EAddressWidget *, const gchar *email);</div><div class='del'>-void e_address_widget_set_text  (EAddressWidget *, const gchar *text);</div><div class='del'>-</div><div class='del'>-void e_address_widget_construct (EAddressWidget *);</div><div class='del'>-GtkWidget *e_address_widget_new (void);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-void e_address_widget_factory_init (void);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* __E_ADDRESS_WIDGET_H__ */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/e-cardlist-model.c b/addressbook/gui/component/e-cardlist-model.c<br/>deleted file mode 100644<br/>index dfdafeda58..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/e-cardlist-model.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/e-cardlist-model.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,226 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Author:</div><div class='del'>- *   Christopher James Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * (C) 1999 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;gnome-xml/tree.h&gt;</div><div class='del'>-#include &lt;gnome-xml/parser.h&gt;</div><div class='del'>-#include &lt;gnome-xml/xmlmemory.h&gt;</div><div class='del'>-#include "e-cardlist-model.h"</div><div class='del'>-</div><div class='del'>-#define PARENT_TYPE e_table_model_get_type()</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_cardlist_model_destroy(GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ECardlistModel *model = E_CARDLIST_MODEL(object);</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for ( i = 0; i &lt; model-&gt;data_count; i++ ) {</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(model-&gt;data[i]));</div><div class='del'>-	}</div><div class='del'>-	g_free(model-&gt;data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the number of columns in our ETableModel. */</div><div class='del'>-static int</div><div class='del'>-e_cardlist_model_col_count (ETableModel *etc)</div><div class='del'>-{</div><div class='del'>-	return E_CARD_SIMPLE_FIELD_LAST;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the number of rows in our ETableModel. */</div><div class='del'>-static int</div><div class='del'>-e_cardlist_model_row_count (ETableModel *etc)</div><div class='del'>-{</div><div class='del'>-	ECardlistModel *e_cardlist_model = E_CARDLIST_MODEL(etc);</div><div class='del'>-	return e_cardlist_model-&gt;data_count;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the value at a particular point in our ETableModel. */</div><div class='del'>-static void *</div><div class='del'>-e_cardlist_model_value_at (ETableModel *etc, int col, int row)</div><div class='del'>-{</div><div class='del'>-	ECardlistModel *e_cardlist_model = E_CARDLIST_MODEL(etc);</div><div class='del'>-	const char *value;</div><div class='del'>-	if ( col &gt;= E_CARD_SIMPLE_FIELD_LAST - 1|| row &gt;= e_cardlist_model-&gt;data_count )</div><div class='del'>-		return NULL;</div><div class='del'>-	value = e_card_simple_get_const(e_cardlist_model-&gt;data[row], </div><div class='del'>-					col + 1);</div><div class='del'>-	return (void *)(value ? value : "");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function sets the value at a particular point in our ETableModel. */</div><div class='del'>-static void</div><div class='del'>-e_cardlist_model_set_value_at (ETableModel *etc, int col, int row, const void *val)</div><div class='del'>-{</div><div class='del'>-	ECardlistModel *e_cardlist_model = E_CARDLIST_MODEL(etc);</div><div class='del'>-	ECard *card;</div><div class='del'>-	if ( col &gt;= E_CARD_SIMPLE_FIELD_LAST - 1|| row &gt;= e_cardlist_model-&gt;data_count )</div><div class='del'>-		return;</div><div class='del'>-	e_card_simple_set(e_cardlist_model-&gt;data[row],</div><div class='del'>-			  col + 1,</div><div class='del'>-			  val);</div><div class='del'>-	gtk_object_get(GTK_OBJECT(e_cardlist_model-&gt;data[row]),</div><div class='del'>-		       "card", &amp;card,</div><div class='del'>-		       NULL);</div><div class='del'>-</div><div class='del'>-	e_table_model_cell_changed(etc, col, row);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns whether a particular cell is editable. */</div><div class='del'>-static gboolean</div><div class='del'>-e_cardlist_model_is_cell_editable (ETableModel *etc, int col, int row)</div><div class='del'>-{</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function duplicates the value passed to it. */</div><div class='del'>-static void *</div><div class='del'>-e_cardlist_model_duplicate_value (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return g_strdup(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function frees the value passed to it. */</div><div class='del'>-static void</div><div class='del'>-e_cardlist_model_free_value (ETableModel *etc, int col, void *value)</div><div class='del'>-{</div><div class='del'>-	g_free(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-e_cardlist_model_initialize_value (ETableModel *etc, int col)</div><div class='del'>-{</div><div class='del'>-	return g_strdup("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_cardlist_model_value_is_empty (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return !(value &amp;&amp; *(char *)value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-e_cardlist_model_value_to_string (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return g_strdup(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_cardlist_model_add(ECardlistModel *model,</div><div class='del'>-		     ECard **cards,</div><div class='del'>-		     int count)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	model-&gt;data = g_realloc(model-&gt;data, model-&gt;data_count + count * sizeof(ECard *));</div><div class='del'>-	for (i = 0; i &lt; count; i++) {</div><div class='del'>-		gboolean found = FALSE;</div><div class='del'>-		const gchar *id = e_card_get_id(cards[i]);</div><div class='del'>-		for ( i = 0; i &lt; model-&gt;data_count; i++) {</div><div class='del'>-			if ( !strcmp(e_card_simple_get_id(model-&gt;data[i]), id) ) {</div><div class='del'>-				found = TRUE;</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		if (!found) {</div><div class='del'>-			gtk_object_ref(GTK_OBJECT(cards[i]));</div><div class='del'>-			model-&gt;data[model-&gt;data_count++] = e_card_simple_new (cards[i]);</div><div class='del'>-			e_table_model_row_inserted(E_TABLE_MODEL(model), model-&gt;data_count - 1);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_cardlist_model_remove(ECardlistModel *model,</div><div class='del'>-			const char *id)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	for ( i = 0; i &lt; model-&gt;data_count; i++) {</div><div class='del'>-		if ( !strcmp(e_card_simple_get_id(model-&gt;data[i]), id) ) {</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(model-&gt;data[i]));</div><div class='del'>-			memmove(model-&gt;data + i, model-&gt;data + i + 1, (model-&gt;data_count - i - 1) * sizeof (ECard *));</div><div class='del'>-			e_table_model_row_deleted(E_TABLE_MODEL(model), i);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_cardlist_model_class_init (GtkObjectClass *object_class)</div><div class='del'>-{</div><div class='del'>-	ETableModelClass *model_class = (ETableModelClass *) object_class;</div><div class='del'>-	</div><div class='del'>-	object_class-&gt;destroy = e_cardlist_model_destroy;</div><div class='del'>-</div><div class='del'>-	model_class-&gt;column_count = e_cardlist_model_col_count;</div><div class='del'>-	model_class-&gt;row_count = e_cardlist_model_row_count;</div><div class='del'>-	model_class-&gt;value_at = e_cardlist_model_value_at;</div><div class='del'>-	model_class-&gt;set_value_at = e_cardlist_model_set_value_at;</div><div class='del'>-	model_class-&gt;is_cell_editable = e_cardlist_model_is_cell_editable;</div><div class='del'>-	model_class-&gt;duplicate_value = e_cardlist_model_duplicate_value;</div><div class='del'>-	model_class-&gt;free_value = e_cardlist_model_free_value;</div><div class='del'>-	model_class-&gt;initialize_value = e_cardlist_model_initialize_value;</div><div class='del'>-	model_class-&gt;value_is_empty = e_cardlist_model_value_is_empty;</div><div class='del'>-	model_class-&gt;value_to_string = e_cardlist_model_value_to_string;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_cardlist_model_init (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ECardlistModel *model = E_CARDLIST_MODEL(object);</div><div class='del'>-	model-&gt;data = NULL;</div><div class='del'>-	model-&gt;data_count = 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECard *</div><div class='del'>-e_cardlist_model_get(ECardlistModel *model,</div><div class='del'>-		     int                row)</div><div class='del'>-{</div><div class='del'>-	if (model-&gt;data &amp;&amp; row &lt; model-&gt;data_count) {</div><div class='del'>-		ECard *card;</div><div class='del'>-		gtk_object_get(GTK_OBJECT(model-&gt;data[row]),</div><div class='del'>-			       "card", &amp;card,</div><div class='del'>-			       NULL);</div><div class='del'>-		gtk_object_ref(GTK_OBJECT(card));</div><div class='del'>-		return card;</div><div class='del'>-	}</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_cardlist_model_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (!type){</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"ECardlistModel",</div><div class='del'>-			sizeof (ECardlistModel),</div><div class='del'>-			sizeof (ECardlistModelClass),</div><div class='del'>-			(GtkClassInitFunc) e_cardlist_model_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_cardlist_model_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (PARENT_TYPE, &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ETableModel *</div><div class='del'>-e_cardlist_model_new (void)</div><div class='del'>-{</div><div class='del'>-	ECardlistModel *et;</div><div class='del'>-</div><div class='del'>-	et = gtk_type_new (e_cardlist_model_get_type ());</div><div class='del'>-	</div><div class='del'>-	return E_TABLE_MODEL(et);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/e-cardlist-model.h b/addressbook/gui/component/e-cardlist-model.h<br/>deleted file mode 100644<br/>index 0b9a7a2265..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/e-cardlist-model.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/e-cardlist-model.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,42 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-#ifndef _E_CARDLIST_MODEL_H_</div><div class='del'>-#define _E_CARDLIST_MODEL_H_</div><div class='del'>-</div><div class='del'>-#include &lt;gal/e-table/e-table-model.h&gt;</div><div class='del'>-#include &lt;ebook/e-book.h&gt;</div><div class='del'>-#include &lt;ebook/e-book-view.h&gt;</div><div class='del'>-#include &lt;ebook/e-card-simple.h&gt;</div><div class='del'>-</div><div class='del'>-#define E_CARDLIST_MODEL_TYPE        (e_cardlist_model_get_type ())</div><div class='del'>-#define E_CARDLIST_MODEL(o)          (GTK_CHECK_CAST ((o), E_CARDLIST_MODEL_TYPE, ECardlistModel))</div><div class='del'>-#define E_CARDLIST_MODEL_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_CARDLIST_MODEL_TYPE, ECardlistModelClass))</div><div class='del'>-#define E_IS_CARDLIST_MODEL(o)       (GTK_CHECK_TYPE ((o), E_CARDLIST_MODEL_TYPE))</div><div class='del'>-#define E_IS_CARDLIST_MODEL_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_CARDLIST_MODEL_TYPE))</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	ETableModel parent;</div><div class='del'>-</div><div class='del'>-	/* item specific fields */</div><div class='del'>-	ECardSimple **data;</div><div class='del'>-	int data_count;</div><div class='del'>-} ECardlistModel;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	ETableModelClass parent_class;</div><div class='del'>-} ECardlistModelClass;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GtkType e_cardlist_model_get_type (void);</div><div class='del'>-ETableModel *e_cardlist_model_new (void);</div><div class='del'>-</div><div class='del'>-/* Returns object with an extra ref count. */</div><div class='del'>-ECard *e_cardlist_model_get  (ECardlistModel  *model,</div><div class='del'>-			      int              row);</div><div class='del'>-void e_cardlist_model_add    (ECardlistModel  *model,</div><div class='del'>-			      ECard          **card,</div><div class='del'>-			      int              count);</div><div class='del'>-void e_cardlist_model_remove (ECardlistModel  *model,</div><div class='del'>-			      const char      *id);</div><div class='del'>-</div><div class='del'>-#endif /* _E_CARDLIST_MODEL_H_ */</div><div class='head'>diff --git a/addressbook/gui/component/select-names/.cvsignore b/addressbook/gui/component/select-names/.cvsignore<br/>deleted file mode 100644<br/>index cd669499fa..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,12 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-.pure</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='del'>-Evolution-Addressbook-SelectNames-stubs.c</div><div class='del'>-Evolution-Addressbook-SelectNames-skels.c</div><div class='del'>-Evolution-Addressbook-SelectNames-common.c</div><div class='del'>-Evolution-Addressbook-SelectNames.h</div><div class='del'>-GNOME_Evolution_Addressbook_SelectNames.oaf</div><div class='head'>diff --git a/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl b/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl<br/>deleted file mode 100644<br/>index 244799deb2..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,42 +0,0 @@</div><div class='del'>-/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * CORBA interface for the SelectNames dialog.</div><div class='del'>- *</div><div class='del'>- * Authors:</div><div class='del'>- *   Ettore Perazzoli &lt;ettore@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;Bonobo.idl&gt;</div><div class='del'>-</div><div class='del'>-module GNOME {</div><div class='del'>-module Evolution {</div><div class='del'>-module Addressbook {</div><div class='del'>-</div><div class='del'>-	interface SelectNames : Bonobo::Unknown {</div><div class='del'>-		struct Section {</div><div class='del'>-			string id;</div><div class='del'>-			string title;</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		typedef sequence&lt;Section&gt; SectionList;</div><div class='del'>-</div><div class='del'>-		exception DuplicateID {};</div><div class='del'>-		exception SectionNotFound {};</div><div class='del'>-</div><div class='del'>-		void addSection (in string id, in string title)</div><div class='del'>-			raises (DuplicateID);</div><div class='del'>-		void addSectionWithLimit (in string id, in string title, in short limit)</div><div class='del'>-			raises (DuplicateID);</div><div class='del'>-</div><div class='del'>-		Bonobo::Control getEntryBySection (in string section_id)</div><div class='del'>-			raises (SectionNotFound);</div><div class='del'>-</div><div class='del'>-		void activateDialog (in string section_id);</div><div class='del'>-	};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-};</div><div class='del'>-};</div><div class='del'>-};</div><div class='head'>diff --git a/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in b/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in<br/>deleted file mode 100644<br/>index 7f26e2aaed..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,29 +0,0 @@</div><div class='del'>-&lt;oaf_info&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_SelectNamesFactory"</div><div class='del'>-            type="exe"</div><div class='del'>-            location="evolution-addressbook"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/ObjectFactory:1.0"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-                       _value="Factory for the Addressbook's name selection interface"/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_SelectNames"</div><div class='del'>-            type="factory"</div><div class='del'>-            location="OAFIID:GNOME_Evolution_Addressbook_SelectNamesFactory"&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="repo_ids" type="stringv"&gt;</div><div class='del'>-		&lt;item value="IDL:GNOME/Evolution/Addressbook/SelectNames"/&gt;</div><div class='del'>-	&lt;/oaf_attribute&gt;</div><div class='del'>-</div><div class='del'>-	&lt;oaf_attribute name="description" type="string"</div><div class='del'>-                       _value="Evolution's addressbook name selection interface."/&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_server&gt;</div><div class='del'>-</div><div class='del'>-&lt;/oaf_info&gt;
\ No newline at end of file</div><div class='head'>diff --git a/addressbook/gui/component/select-names/Makefile.am b/addressbook/gui/component/select-names/Makefile.am<br/>deleted file mode 100644<br/>index 6c3ed1674e..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,85 +0,0 @@</div><div class='del'>-# CORBA stuff</div><div class='del'>-</div><div class='del'>-IDLS = \</div><div class='del'>-	Evolution-Addressbook-SelectNames.idl</div><div class='del'>-</div><div class='del'>-IDL_GENERATED = \</div><div class='del'>-	Evolution-Addressbook-SelectNames.h		\</div><div class='del'>-	Evolution-Addressbook-SelectNames-common.c	\</div><div class='del'>-	Evolution-Addressbook-SelectNames-skels.c	\</div><div class='del'>-	Evolution-Addressbook-SelectNames-stubs.c</div><div class='del'>-</div><div class='del'>-Evolution-Addressbook-SelectNames-impl.o: Evolution-Addressbook-SelectNames.h</div><div class='del'>-</div><div class='del'>-$(IDL_GENERATED): $(IDLS)</div><div class='del'>-	$(ORBIT_IDL) -I $(srcdir) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl`	\</div><div class='del'>-		$(srcdir)/Evolution-Addressbook-SelectNames.idl</div><div class='del'>-</div><div class='del'>-oafdir = $(datadir)/oaf</div><div class='del'>-</div><div class='del'>-oaf_in_files = GNOME_Evolution_Addressbook_SelectNames.oaf.in</div><div class='del'>-oaf_DATA = $(oaf_in_files:.oaf.in=.oaf)</div><div class='del'>-</div><div class='del'>-@XML_I18N_MERGE_OAF_RULE@</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-INCLUDES =						\</div><div class='del'>-	-DG_LOG_DOMAIN=\"evolution-addressbook\"	\</div><div class='del'>-	$(EXTRA_GNOME_CFLAGS)				\</div><div class='del'>-	$(GNOME_INCLUDEDIR)				\</div><div class='del'>-	-I$(top_srcdir)					\</div><div class='del'>-	-I$(top_builddir)				\</div><div class='del'>-	-I$(top_srcdir)/shell				\</div><div class='del'>-	-I$(top_builddir)/shell				\</div><div class='del'>-	-I$(top_srcdir)/widgets/e-text			\</div><div class='del'>-	-I$(top_srcdir)/widgets/e-table			\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/minicard	\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/widgets		\</div><div class='del'>-	-I$(top_srcdir)/addressbook/contact-editor	\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend		\</div><div class='del'>-	-I$(top_builddir)/addressbook/backend		\</div><div class='del'>-	$(BONOBO_HTML_GNOME_CFLAGS)			\</div><div class='del'>-	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"		\</div><div class='del'>-	-DEVOLUTION_ICONSDIR=\""$(iconsdir)"\"		\</div><div class='del'>-	-DEVOLUTION_LOCALEDIR=\""$(localedir)"\"	\</div><div class='del'>-	-DCAMEL_PROVIDERDIR=\""$(providerdir)"\"</div><div class='del'>-</div><div class='del'>-lib_LTLIBRARIES = libeselectnames.la</div><div class='del'>-</div><div class='del'>-libeselectnames_la_SOURCES = 			\</div><div class='del'>-	$(IDL_GENERATED)			\</div><div class='del'>-	e-select-names-bonobo.c			\</div><div class='del'>-	e-select-names-bonobo.h			\</div><div class='del'>-	e-select-names-completion.c		\</div><div class='del'>-	e-select-names-completion.h		\</div><div class='del'>-	e-select-names-factory.c		\</div><div class='del'>-	e-select-names-factory.h		\</div><div class='del'>-	e-select-names-manager.c		\</div><div class='del'>-	e-select-names-manager.h		\</div><div class='del'>-	e-select-names-model.c			\</div><div class='del'>-	e-select-names-model.h			\</div><div class='del'>-	e-select-names-popup.c			\</div><div class='del'>-	e-select-names-popup.h			\</div><div class='del'>-	e-select-names-table-model.c		\</div><div class='del'>-	e-select-names-table-model.h		\</div><div class='del'>-	e-select-names-text-model.c		\</div><div class='del'>-	e-select-names-text-model.h		\</div><div class='del'>-	e-select-names.c			\</div><div class='del'>-	e-select-names.h</div><div class='del'>-</div><div class='del'>-gladedir   = $(datadir)/evolution/glade</div><div class='del'>-glade_DATA = select-names.glade</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = 			\</div><div class='del'>-	$(glade_DATA)		\</div><div class='del'>-	$(oaf_in_files)		\</div><div class='del'>-	$(oaf_DATA)		\</div><div class='del'>-	$(IDLS)</div><div class='del'>-</div><div class='del'>-BUILT_SOURCES = $(IDL_GENERATED)</div><div class='del'>-CLEANFILES = $(BUILT_SOURCES)</div><div class='del'>-</div><div class='del'>-dist-hook:</div><div class='del'>-	cd $(distdir); rm -f $(BUILT_SOURCES)</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.c b/addressbook/gui/component/select-names/e-select-names-bonobo.c<br/>deleted file mode 100644<br/>index 3130d1c9c9..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-bonobo.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-bonobo.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,439 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* e-select-names-bonobo.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Ettore Perazzoli</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_CONFIG_H</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include "e-select-names-bonobo.h"</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-property-bag.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-control.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-event-source.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-#include &lt;gal/e-text/e-entry.h&gt;</div><div class='del'>-</div><div class='del'>-#include "Evolution-Addressbook-SelectNames.h"</div><div class='del'>-</div><div class='del'>-#include "e-select-names-manager.h"</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-#include "e-select-names-text-model.h"</div><div class='del'>-#include "e-select-names-completion.h"</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#define PARENT_TYPE bonobo_object_get_type ()</div><div class='del'>-static BonoboObjectClass *parent_class = NULL;</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesBonoboPrivate {</div><div class='del'>-	ESelectNamesManager *manager;</div><div class='del'>-	BonoboEventSource *event_source;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum _EntryPropertyID {</div><div class='del'>-	ENTRY_PROPERTY_ID_TEXT,</div><div class='del'>-	ENTRY_PROPERTY_ID_DESTINATIONS,</div><div class='del'>-	ENTRY_PROPERTY_ID_ALLOW_CONTACT_LISTS,</div><div class='del'>-	ENTRY_PROPERTY_ID_ENTRY_CHANGED</div><div class='del'>-};</div><div class='del'>-typedef enum _EntryPropertyID EntryPropertyID;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* PropertyBag implementation for the entry widgets.  */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-entry_get_property_fn (BonoboPropertyBag *bag,</div><div class='del'>-		       BonoboArg *arg,</div><div class='del'>-		       unsigned int arg_id,</div><div class='del'>-		       CORBA_Environment *ev,</div><div class='del'>-		       void *user_data)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *w;</div><div class='del'>-</div><div class='del'>-	w = GTK_WIDGET (user_data);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ENTRY_PROPERTY_ID_TEXT:</div><div class='del'>-		{</div><div class='del'>-			ESelectNamesModel *model;</div><div class='del'>-			model = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (w), "select_names_model"));</div><div class='del'>-			g_assert (model != NULL);</div><div class='del'>-			</div><div class='del'>-			BONOBO_ARG_SET_STRING (arg, e_select_names_model_get_textification (model));</div><div class='del'>-		break;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	case ENTRY_PROPERTY_ID_DESTINATIONS:</div><div class='del'>-		{</div><div class='del'>-			ESelectNamesModel *model;</div><div class='del'>-			char *text;</div><div class='del'>-</div><div class='del'>-			model = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (w), "select_names_model"));</div><div class='del'>-			g_assert (model != NULL);</div><div class='del'>-</div><div class='del'>-			text = e_select_names_model_export_destinationv (model);</div><div class='del'>-			BONOBO_ARG_SET_STRING (arg, text);</div><div class='del'>-			g_free (text);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ENTRY_PROPERTY_ID_ALLOW_CONTACT_LISTS:</div><div class='del'>-		{</div><div class='del'>-			ESelectNamesCompletion *comp;</div><div class='del'>-			comp = E_SELECT_NAMES_COMPLETION (gtk_object_get_data (GTK_OBJECT (w), "completion_handler"));</div><div class='del'>-			g_assert (comp != NULL);</div><div class='del'>-</div><div class='del'>-			BONOBO_ARG_SET_BOOLEAN (arg, e_select_names_completion_get_match_contact_lists (comp));</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	case ENTRY_PROPERTY_ID_ENTRY_CHANGED:</div><div class='del'>-		/* This is a read-only property. */</div><div class='del'>-		g_assert_not_reached ();</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	default:</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-entry_set_property_fn (BonoboPropertyBag *bag,</div><div class='del'>-		       const BonoboArg *arg,</div><div class='del'>-		       guint arg_id,</div><div class='del'>-		       CORBA_Environment *ev,</div><div class='del'>-		       gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *w;</div><div class='del'>-</div><div class='del'>-	w = GTK_WIDGET (user_data);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-</div><div class='del'>-	case ENTRY_PROPERTY_ID_TEXT:</div><div class='del'>-		{</div><div class='del'>-			ESelectNamesModel *model;</div><div class='del'>-			model = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (w), "select_names_model"));</div><div class='del'>-			g_assert (model != NULL);</div><div class='del'>-			</div><div class='del'>-			e_entry_set_text (E_ENTRY (w), BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-			e_select_names_model_cardify_all (model, NULL, 0);</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	case ENTRY_PROPERTY_ID_DESTINATIONS:</div><div class='del'>-		{</div><div class='del'>-			ESelectNamesModel *model;</div><div class='del'>-			model = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (w), "select_names_model"));</div><div class='del'>-			g_assert (model != NULL);</div><div class='del'>-</div><div class='del'>-			e_select_names_model_import_destinationv (model, BONOBO_ARG_GET_STRING (arg));</div><div class='del'>-			e_select_names_model_cardify_all (model, NULL, 0);</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	case ENTRY_PROPERTY_ID_ALLOW_CONTACT_LISTS:</div><div class='del'>-		{</div><div class='del'>-			ESelectNamesCompletion *comp;</div><div class='del'>-			comp = E_SELECT_NAMES_COMPLETION (gtk_object_get_data (GTK_OBJECT (w), "completion_handler"));</div><div class='del'>-			g_assert (comp != NULL);</div><div class='del'>-</div><div class='del'>-			e_select_names_completion_set_match_contact_lists (comp, BONOBO_ARG_GET_BOOLEAN (arg));</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-	case ENTRY_PROPERTY_ID_ENTRY_CHANGED:</div><div class='del'>-		gtk_object_set_data (GTK_OBJECT (w), "entry_property_id_changed", GUINT_TO_POINTER (1));</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	default:</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* CORBA interface implementation.  */</div><div class='del'>-</div><div class='del'>-static POA_GNOME_Evolution_Addressbook_SelectNames__vepv SelectNames_vepv;</div><div class='del'>-</div><div class='del'>-static POA_GNOME_Evolution_Addressbook_SelectNames *</div><div class='del'>-create_servant (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_SelectNames *servant;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>-	servant = (POA_GNOME_Evolution_Addressbook_SelectNames *) g_new0 (BonoboObjectServant, 1);</div><div class='del'>-	servant-&gt;vepv = &amp;SelectNames_vepv;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_SelectNames__init ((PortableServer_Servant) servant, &amp;ev);</div><div class='del'>-	if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_free (servant);</div><div class='del'>-		CORBA_exception_free (&amp;ev);</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return servant;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_SelectNames_add_section (PortableServer_Servant servant,</div><div class='del'>-			      const CORBA_char *id,</div><div class='del'>-			      const CORBA_char *title,</div><div class='del'>-			      CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	BonoboObject *bonobo_object;</div><div class='del'>-	ESelectNamesBonobo *select_names;</div><div class='del'>-	ESelectNamesBonoboPrivate *priv;</div><div class='del'>-</div><div class='del'>-	bonobo_object = bonobo_object_from_servant (servant);</div><div class='del'>-	select_names = E_SELECT_NAMES_BONOBO (bonobo_object);</div><div class='del'>-	priv = select_names-&gt;priv;</div><div class='del'>-</div><div class='del'>-	e_select_names_manager_add_section (priv-&gt;manager, id, title);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_SelectNames_add_section_with_limit (PortableServer_Servant servant,</div><div class='del'>-					 const CORBA_char *id,</div><div class='del'>-					 const CORBA_char *title,</div><div class='del'>-					 CORBA_short limit,</div><div class='del'>-					 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	BonoboObject *bonobo_object;</div><div class='del'>-	ESelectNamesBonobo *select_names;</div><div class='del'>-	ESelectNamesBonoboPrivate *priv;</div><div class='del'>-</div><div class='del'>-	bonobo_object = bonobo_object_from_servant (servant);</div><div class='del'>-	select_names = E_SELECT_NAMES_BONOBO (bonobo_object);</div><div class='del'>-	priv = select_names-&gt;priv;</div><div class='del'>-</div><div class='del'>-	e_select_names_manager_add_section_with_limit (priv-&gt;manager, id, title, limit);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-entry_changed (GtkWidget *widget, BonoboControl *control)</div><div class='del'>-{</div><div class='del'>-	gboolean changed = GPOINTER_TO_UINT (gtk_object_get_data (GTK_OBJECT (widget), "entry_property_id_changed"));</div><div class='del'>-</div><div class='del'>-	if (!changed)</div><div class='del'>-		bonobo_control_set_property (control, "entry_changed", TRUE, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static Bonobo_Control</div><div class='del'>-impl_SelectNames_get_entry_for_section (PortableServer_Servant servant,</div><div class='del'>-					const CORBA_char *section_id,</div><div class='del'>-					CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	BonoboObject *bonobo_object;</div><div class='del'>-	ESelectNamesBonobo *select_names;</div><div class='del'>-	ESelectNamesBonoboPrivate *priv;</div><div class='del'>-	GtkWidget *entry_widget;</div><div class='del'>-	BonoboControl *control;</div><div class='del'>-	BonoboPropertyBag *property_bag;</div><div class='del'>-</div><div class='del'>-	bonobo_object = bonobo_object_from_servant (servant);</div><div class='del'>-	select_names = E_SELECT_NAMES_BONOBO (bonobo_object);</div><div class='del'>-	priv = select_names-&gt;priv;</div><div class='del'>-</div><div class='del'>-	entry_widget = e_select_names_manager_create_entry (priv-&gt;manager, section_id);</div><div class='del'>-	gtk_widget_show (entry_widget);</div><div class='del'>-	</div><div class='del'>-	if (entry_widget == NULL) {</div><div class='del'>-		CORBA_exception_set (ev,</div><div class='del'>-				     CORBA_USER_EXCEPTION,</div><div class='del'>-				     ex_GNOME_Evolution_Addressbook_SelectNames_SectionNotFound,</div><div class='del'>-				     NULL);</div><div class='del'>-		return CORBA_OBJECT_NIL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	control = bonobo_control_new (entry_widget);</div><div class='del'>-</div><div class='del'>-	property_bag = bonobo_property_bag_new (entry_get_property_fn, entry_set_property_fn, entry_widget);</div><div class='del'>-	bonobo_property_bag_add (property_bag, "text", ENTRY_PROPERTY_ID_TEXT,</div><div class='del'>-				 BONOBO_ARG_STRING, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-	bonobo_property_bag_add (property_bag, "destinations", ENTRY_PROPERTY_ID_DESTINATIONS,</div><div class='del'>-				 BONOBO_ARG_STRING, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-	bonobo_property_bag_add (property_bag, "allow_contact_lists", ENTRY_PROPERTY_ID_ALLOW_CONTACT_LISTS,</div><div class='del'>-				 BONOBO_ARG_BOOLEAN, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-	bonobo_property_bag_add (property_bag, "entry_changed", ENTRY_PROPERTY_ID_ENTRY_CHANGED,</div><div class='del'>-				 BONOBO_ARG_BOOLEAN, NULL, NULL,</div><div class='del'>-				 BONOBO_PROPERTY_WRITEABLE);</div><div class='del'>-</div><div class='del'>-	bonobo_control_set_properties (control, property_bag);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (entry_widget), "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (entry_changed), control);</div><div class='del'>-</div><div class='del'>-	return CORBA_Object_duplicate (bonobo_object_corba_objref (BONOBO_OBJECT (control)), ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_SelectNames_activate_dialog (PortableServer_Servant servant,</div><div class='del'>-				  const CORBA_char *section_id,</div><div class='del'>-				  CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	BonoboObject *bonobo_object;</div><div class='del'>-	ESelectNamesBonobo *select_names;</div><div class='del'>-	ESelectNamesBonoboPrivate *priv;</div><div class='del'>-</div><div class='del'>-	bonobo_object = bonobo_object_from_servant (servant);</div><div class='del'>-	select_names = E_SELECT_NAMES_BONOBO (bonobo_object);</div><div class='del'>-	priv = select_names-&gt;priv;</div><div class='del'>-</div><div class='del'>-	e_select_names_manager_activate_dialog (priv-&gt;manager, section_id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* GtkObject methods.  */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-impl_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesBonobo *select_names;</div><div class='del'>-	ESelectNamesBonoboPrivate *priv;</div><div class='del'>-</div><div class='del'>-	select_names = E_SELECT_NAMES_BONOBO (object);</div><div class='del'>-	priv = select_names-&gt;priv;</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (priv-&gt;manager));</div><div class='del'>-</div><div class='del'>-	g_free (priv);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-corba_class_init ()</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_SelectNames__vepv *vepv;</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_SelectNames__epv *epv;</div><div class='del'>-	PortableServer_ServantBase__epv *base_epv;</div><div class='del'>-</div><div class='del'>-	base_epv = g_new0 (PortableServer_ServantBase__epv, 1);</div><div class='del'>-	base_epv-&gt;_private    = NULL;</div><div class='del'>-	base_epv-&gt;finalize    = NULL;</div><div class='del'>-	base_epv-&gt;default_POA = NULL;</div><div class='del'>-</div><div class='del'>-	epv = g_new0 (POA_GNOME_Evolution_Addressbook_SelectNames__epv, 1);</div><div class='del'>-	epv-&gt;addSection          = impl_SelectNames_add_section;</div><div class='del'>-	epv-&gt;addSectionWithLimit = impl_SelectNames_add_section_with_limit;</div><div class='del'>-	epv-&gt;getEntryBySection   = impl_SelectNames_get_entry_for_section;</div><div class='del'>-	epv-&gt;activateDialog      = impl_SelectNames_activate_dialog;</div><div class='del'>-</div><div class='del'>-	vepv = &amp;SelectNames_vepv;</div><div class='del'>-	vepv-&gt;Bonobo_Unknown_epv                    = bonobo_object_get_epv ();</div><div class='del'>-	vepv-&gt;GNOME_Evolution_Addressbook_SelectNames_epv = epv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-class_init (ESelectNamesBonoboClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-	object_class = GTK_OBJECT_CLASS (klass);</div><div class='del'>-	parent_class = gtk_type_class (bonobo_object_get_type ());</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = impl_destroy;</div><div class='del'>-</div><div class='del'>-	corba_class_init ();</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-manager_changed_cb (ESelectNamesManager *manager, const gchar *section_id, gint changed_working_copy, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesBonobo *select_names = E_SELECT_NAMES_BONOBO (closure);</div><div class='del'>-	BonoboArg *arg;</div><div class='del'>-</div><div class='del'>-	arg = bonobo_arg_new (BONOBO_ARG_STRING);</div><div class='del'>-	BONOBO_ARG_SET_STRING (arg, section_id);</div><div class='del'>-</div><div class='del'>-	bonobo_event_source_notify_listeners_full (select_names-&gt;priv-&gt;event_source,</div><div class='del'>-						   "GNOME/Evolution",</div><div class='del'>-						   "changed",</div><div class='del'>-						   changed_working_copy ? "working_copy" : "model",</div><div class='del'>-						   arg, NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_arg_release (arg);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init (ESelectNamesBonobo *select_names)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesBonoboPrivate *priv;</div><div class='del'>-</div><div class='del'>-	priv = g_new (ESelectNamesBonoboPrivate, 1);</div><div class='del'>-</div><div class='del'>-	priv-&gt;manager = e_select_names_manager_new ();</div><div class='del'>-	priv-&gt;event_source = NULL;</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (priv-&gt;manager),</div><div class='del'>-			    "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (manager_changed_cb),</div><div class='del'>-			    select_names);</div><div class='del'>-</div><div class='del'>-	select_names-&gt;priv = priv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_bonobo_construct (ESelectNamesBonobo *select_names,</div><div class='del'>-				 GNOME_Evolution_Addressbook_SelectNames corba_object)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (select_names != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_BONOBO (select_names));</div><div class='del'>-</div><div class='del'>-	bonobo_object_construct (BONOBO_OBJECT (select_names), corba_object);</div><div class='del'>-</div><div class='del'>-	g_assert (select_names-&gt;priv-&gt;event_source == NULL);</div><div class='del'>-	select_names-&gt;priv-&gt;event_source = bonobo_event_source_new ();</div><div class='del'>-	bonobo_object_add_interface (BONOBO_OBJECT (select_names), BONOBO_OBJECT (select_names-&gt;priv-&gt;event_source));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ESelectNamesBonobo *</div><div class='del'>-e_select_names_bonobo_new (void)</div><div class='del'>-{</div><div class='del'>-	POA_GNOME_Evolution_Addressbook_SelectNames *servant;</div><div class='del'>-	GNOME_Evolution_Addressbook_SelectNames corba_object;</div><div class='del'>-	ESelectNamesBonobo *select_names;</div><div class='del'>-</div><div class='del'>-	servant = create_servant ();</div><div class='del'>-	if (servant == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	select_names = gtk_type_new (e_select_names_bonobo_get_type ());</div><div class='del'>-</div><div class='del'>-	corba_object = bonobo_object_activate_servant (BONOBO_OBJECT (select_names), servant);</div><div class='del'>-	e_select_names_bonobo_construct (select_names, corba_object);</div><div class='del'>-</div><div class='del'>-	return select_names;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-E_MAKE_TYPE (e_select_names_bonobo, "ESelectNamesBonobo", ESelectNamesBonobo, class_init, init, PARENT_TYPE)</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.h b/addressbook/gui/component/select-names/e-select-names-bonobo.h<br/>deleted file mode 100644<br/>index c06e8fa0e0..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-bonobo.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-bonobo.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,67 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* e-select-names-bonobo.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Ettore Perazzoli</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_SELECT_NAMES_BONOBO_H__</div><div class='del'>-#define __E_SELECT_NAMES_BONOBO_H__</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-</div><div class='del'>-#include "Evolution-Addressbook-SelectNames.h"</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#pragma }</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-#define E_TYPE_SELECT_NAMES_BONOBO			(e_select_names_bonobo_get_type ())</div><div class='del'>-#define E_SELECT_NAMES_BONOBO(obj)			(GTK_CHECK_CAST ((obj), E_TYPE_SELECT_NAMES_BONOBO, ESelectNamesBonobo))</div><div class='del'>-#define E_SELECT_NAMES_BONOBO_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SELECT_NAMES_BONOBO, ESelectNamesBonoboClass))</div><div class='del'>-#define E_IS_SELECT_NAMES_BONOBO(obj)			(GTK_CHECK_TYPE ((obj), E_TYPE_SELECT_NAMES_BONOBO))</div><div class='del'>-#define E_IS_SELECT_NAMES_BONOBO_CLASS(klass)		(GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_SELECT_NAMES_BONOBO))</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _ESelectNamesBonobo        ESelectNamesBonobo;</div><div class='del'>-typedef struct _ESelectNamesBonoboPrivate ESelectNamesBonoboPrivate;</div><div class='del'>-typedef struct _ESelectNamesBonoboClass   ESelectNamesBonoboClass;</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesBonobo {</div><div class='del'>-	BonoboObject parent;</div><div class='del'>-</div><div class='del'>-	ESelectNamesBonoboPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesBonoboClass {</div><div class='del'>-	BonoboObjectClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GtkType             e_select_names_bonobo_get_type   (void);</div><div class='del'>-void                e_select_names_bonobo_construct  (ESelectNamesBonobo *select_names,</div><div class='del'>-						      GNOME_Evolution_Addressbook_SelectNames corba_object);</div><div class='del'>-ESelectNamesBonobo *e_select_names_bonobo_new        (void);</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-#endif /* __E_SELECT_NAMES_BONOBO_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-completion.c b/addressbook/gui/component/select-names/e-select-names-completion.c<br/>deleted file mode 100644<br/>index 9650551f57..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-completion.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-completion.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1225 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-select-names-completion.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include "e-select-names-completion.h"</div><div class='del'>-</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;math.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-util.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gal/unicode/gunicode.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-util.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-destination.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card-simple.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card-compare.h&gt;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesCompletionPrivate {</div><div class='del'>-</div><div class='del'>-	ESelectNamesModel *model;</div><div class='del'>-</div><div class='del'>-	EBook *book;</div><div class='del'>-	gboolean book_ready;</div><div class='del'>-</div><div class='del'>-	guint book_view_tag;</div><div class='del'>-	EBookView *book_view;</div><div class='del'>-	guint card_added_tag;</div><div class='del'>-	guint seq_complete_tag;</div><div class='del'>-</div><div class='del'>-	gchar *waiting_query;</div><div class='del'>-	gint waiting_pos, waiting_limit;</div><div class='del'>-	gchar *query_text;</div><div class='del'>-</div><div class='del'>-	gchar *cached_query_text;</div><div class='del'>-	GList *cached_cards;</div><div class='del'>-</div><div class='del'>-	gboolean match_contact_lists;</div><div class='del'>-	gboolean primary_only;</div><div class='del'>-</div><div class='del'>-	gboolean can_fail_due_to_too_many_hits; /* like LDAP, for example... */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void e_select_names_completion_class_init (ESelectNamesCompletionClass *);</div><div class='del'>-static void e_select_names_completion_init (ESelectNamesCompletion *);</div><div class='del'>-static void e_select_names_completion_destroy (GtkObject *object);</div><div class='del'>-</div><div class='del'>-static void e_select_names_completion_got_book_view_cb (EBook *book, EBookStatus status, EBookView *view, gpointer user_data);</div><div class='del'>-static void e_select_names_completion_card_added_cb    (EBookView *, const GList *cards, gpointer user_data);</div><div class='del'>-static void e_select_names_completion_seq_complete_cb  (EBookView *, gpointer user_data);</div><div class='del'>-</div><div class='del'>-static void e_select_names_completion_do_query (ESelectNamesCompletion *, const gchar *query_text, gint pos, gint limit);</div><div class='del'>-</div><div class='del'>-static void e_select_names_completion_handle_request  (ECompletion *, const gchar *txt, gint pos, gint limit);</div><div class='del'>-static void e_select_names_completion_end    (ECompletion *);</div><div class='del'>-</div><div class='del'>-static GtkObjectClass *parent_class;</div><div class='del'>-</div><div class='del'>-static FILE *out;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Query builders</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef gchar *(*BookQuerySExp) (ESelectNamesCompletion *);</div><div class='del'>-typedef ECompletionMatch *(*BookQueryMatchTester) (ESelectNamesCompletion *, EDestination *);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-our_match_destroy (ECompletionMatch *match)</div><div class='del'>-{</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (match-&gt;user_data));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECompletionMatch *</div><div class='del'>-make_match (EDestination *dest, const gchar *menu_form, double score)</div><div class='del'>-{</div><div class='del'>-	ECompletionMatch *match;</div><div class='del'>-	ECard *card = e_destination_get_card (dest);</div><div class='del'>-</div><div class='del'>-	match = e_completion_match_new (e_destination_get_name (dest), menu_form, score);</div><div class='del'>-</div><div class='del'>-	e_completion_match_set_text (match, e_destination_get_name (dest), menu_form);</div><div class='del'>-	match-&gt;sort_major = card ? floor (e_card_get_use_score (card)) : 0;</div><div class='del'>-	match-&gt;sort_minor = e_destination_get_email_num (dest);</div><div class='del'>-</div><div class='del'>-	match-&gt;user_data = dest;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	match-&gt;destroy = our_match_destroy;</div><div class='del'>-</div><div class='del'>-	return match;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Nickname query</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-sexp_nickname (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	gchar *query = g_strdup_printf ("(beginswith \"nickname\" \"%s\")", comp-&gt;priv-&gt;query_text);</div><div class='del'>-</div><div class='del'>-	return query;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECompletionMatch *</div><div class='del'>-match_nickname (ESelectNamesCompletion *comp, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	ECompletionMatch *match = NULL;</div><div class='del'>-	gint len;</div><div class='del'>-	ECard *card = e_destination_get_card (dest);</div><div class='del'>-	double score;</div><div class='del'>-</div><div class='del'>-	if (card-&gt;nickname == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	len = g_utf8_strlen (comp-&gt;priv-&gt;query_text, -1);</div><div class='del'>-	if (card-&gt;nickname &amp;&amp; !g_utf8_strncasecmp (comp-&gt;priv-&gt;query_text, card-&gt;nickname, len)) {</div><div class='del'>-		const gchar *name;</div><div class='del'>-		gchar *str;</div><div class='del'>-</div><div class='del'>-		score = len * 2; /* nickname gives 2 points per matching character */</div><div class='del'>-</div><div class='del'>-		if (len == g_utf8_strlen (card-&gt;nickname, -1)) /* boost score on an exact match */</div><div class='del'>-		    score *= 10;</div><div class='del'>-</div><div class='del'>-		name = e_destination_get_name (dest);</div><div class='del'>-		if (name &amp;&amp; *name)</div><div class='del'>-			str = g_strdup_printf ("'%s' %s &lt;%s&gt;", card-&gt;nickname, name, e_destination_get_email (dest));</div><div class='del'>-		else</div><div class='del'>-			str = g_strdup_printf ("'%s' &lt;%s&gt;", card-&gt;nickname, e_destination_get_email (dest));</div><div class='del'>-</div><div class='del'>-		match = make_match (dest, str, score);</div><div class='del'>-		g_free (str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return match;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * E-Mail Query</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-sexp_email (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	return g_strdup_printf ("(beginswith \"email\" \"%s\")", comp-&gt;priv-&gt;query_text);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECompletionMatch *</div><div class='del'>-match_email (ESelectNamesCompletion *comp, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	ECompletionMatch *match;</div><div class='del'>-	gint len = strlen (comp-&gt;priv-&gt;query_text);</div><div class='del'>-	const gchar *name = e_destination_get_name (dest);</div><div class='del'>-	const gchar *email = e_destination_get_email (dest);</div><div class='del'>-	double score;</div><div class='del'>-	</div><div class='del'>-	if (email</div><div class='del'>-	    &amp;&amp; !g_utf8_strncasecmp (comp-&gt;priv-&gt;query_text, email, len)</div><div class='del'>-	    &amp;&amp; !e_destination_is_evolution_list (dest)) {</div><div class='del'>-		</div><div class='del'>-		gchar *str;</div><div class='del'>-		</div><div class='del'>-		score = len * 2; /* 2 points for each matching character */</div><div class='del'>-</div><div class='del'>-		if (name &amp;&amp; *name)</div><div class='del'>-			str = g_strdup_printf ("&lt;%s&gt; %s", email, name);</div><div class='del'>-		else</div><div class='del'>-			str = g_strdup (email);</div><div class='del'>-</div><div class='del'>-		match = make_match (dest, str, score);</div><div class='del'>-</div><div class='del'>-		g_free (str);</div><div class='del'>-</div><div class='del'>-		return match;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Name Query</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-name_style_query (ESelectNamesCompletion *comp, const gchar *field)</div><div class='del'>-{</div><div class='del'>-	if (comp &amp;&amp; comp-&gt;priv-&gt;query_text &amp;&amp; *comp-&gt;priv-&gt;query_text) {</div><div class='del'>-		gchar *cpy = g_strdup (comp-&gt;priv-&gt;query_text), *c;</div><div class='del'>-		gchar **strv;</div><div class='del'>-		gchar *query;</div><div class='del'>-		gint i, count=0;</div><div class='del'>-</div><div class='del'>-		for (c = cpy; *c; ++c) {</div><div class='del'>-			if (*c == ',')</div><div class='del'>-				*c = ' ';</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		strv = g_strsplit (cpy, " ", 0);</div><div class='del'>-		for (i=0; strv[i]; ++i) {</div><div class='del'>-			gchar *old;</div><div class='del'>-			++count;</div><div class='del'>-			g_strstrip (strv[i]);</div><div class='del'>-			old = strv[i];</div><div class='del'>-			strv[i] = g_strdup_printf ("(contains \"%s\" \"%s\")", field, old);</div><div class='del'>-			g_free (old);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (count == 1) {</div><div class='del'>-			query = strv[0];</div><div class='del'>-			strv[0] = NULL;</div><div class='del'>-		} else {</div><div class='del'>-			gchar *joined = g_strjoinv (" ", strv);</div><div class='del'>-			query = g_strdup_printf ("(and %s)", joined);</div><div class='del'>-			g_free (joined);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		g_free (cpy);</div><div class='del'>-		g_strfreev (strv);</div><div class='del'>-</div><div class='del'>-		return query;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-sexp_name (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	return name_style_query (comp, "full_name");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECompletionMatch *</div><div class='del'>-match_name (ESelectNamesCompletion *comp, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	ECompletionMatch *final_match = NULL;</div><div class='del'>-	gchar *menu_text = NULL;</div><div class='del'>-	ECard *card;</div><div class='del'>-	const gchar *email;</div><div class='del'>-	gint match_len = 0;</div><div class='del'>-	ECardMatchType match;</div><div class='del'>-	ECardMatchPart first_match;</div><div class='del'>-	double score = 0;</div><div class='del'>-	gboolean have_given, have_additional, have_family;</div><div class='del'>-</div><div class='del'>-	card = e_destination_get_card (dest);</div><div class='del'>-	</div><div class='del'>-	if (card-&gt;name == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	email = e_destination_get_email (dest);</div><div class='del'>-</div><div class='del'>-	match = e_card_compare_name_to_string_full (card, comp-&gt;priv-&gt;query_text, TRUE /* yes, allow partial matches */,</div><div class='del'>-						    NULL, &amp;first_match, &amp;match_len);</div><div class='del'>-</div><div class='del'>-	if (match &lt;= E_CARD_MATCH_NONE)</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	score = match_len * 3; /* three points per match character */</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-	if (card-&gt;nickname) {</div><div class='del'>-		/* We massively boost the score if the nickname exists and is the same as one of the "real" names.  This keeps the</div><div class='del'>-		   nickname from matching ahead of the real name for this card. */</div><div class='del'>-		len = strlen (card-&gt;nickname);</div><div class='del'>-		if ((card-&gt;name-&gt;given &amp;&amp; !g_utf8_strncasecmp (card-&gt;name-&gt;given, card-&gt;nickname, MIN (strlen (card-&gt;name-&gt;given), len)))</div><div class='del'>-		    || (card-&gt;name-&gt;family &amp;&amp; !g_utf8_strncasecmp (card-&gt;name-&gt;family, card-&gt;nickname, MIN (strlen (card-&gt;name-&gt;family), len)))</div><div class='del'>-		    || (card-&gt;name-&gt;additional &amp;&amp; !g_utf8_strncasecmp (card-&gt;name-&gt;additional, card-&gt;nickname, MIN (strlen (card-&gt;name-&gt;additional), len))))</div><div class='del'>-			score *= 100;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	have_given       = card-&gt;name-&gt;given &amp;&amp; *card-&gt;name-&gt;given;</div><div class='del'>-	have_additional  = card-&gt;name-&gt;additional &amp;&amp; *card-&gt;name-&gt;additional;</div><div class='del'>-	have_family      = card-&gt;name-&gt;family &amp;&amp; *card-&gt;name-&gt;family;</div><div class='del'>-</div><div class='del'>-	if (e_card_evolution_list (card)) {</div><div class='del'>-</div><div class='del'>-		menu_text = e_card_name_to_string (card-&gt;name);</div><div class='del'>-</div><div class='del'>-	} else if (first_match == E_CARD_MATCH_PART_GIVEN_NAME) {</div><div class='del'>-</div><div class='del'>-		if (have_family)</div><div class='del'>-			menu_text = g_strdup_printf ("%s %s &lt;%s&gt;", card-&gt;name-&gt;given, card-&gt;name-&gt;family, email);</div><div class='del'>-		else</div><div class='del'>-			menu_text = g_strdup_printf ("%s &lt;%s&gt;", card-&gt;name-&gt;given, email);</div><div class='del'>-</div><div class='del'>-	} else if (first_match == E_CARD_MATCH_PART_ADDITIONAL_NAME) {</div><div class='del'>-</div><div class='del'>-		if (have_given) {</div><div class='del'>-</div><div class='del'>-			menu_text = g_strdup_printf ("%s%s%s, %s &lt;%s&gt;",</div><div class='del'>-						     card-&gt;name-&gt;additional,</div><div class='del'>-						     have_family ? " " : "",</div><div class='del'>-						     have_family ? card-&gt;name-&gt;family : "",</div><div class='del'>-						     card-&gt;name-&gt;given,</div><div class='del'>-						     email);</div><div class='del'>-		} else {</div><div class='del'>-</div><div class='del'>-			menu_text = g_strdup_printf ("%s%s%s &lt;%s&gt;",</div><div class='del'>-						     card-&gt;name-&gt;additional,</div><div class='del'>-						     have_family ? " " : "",</div><div class='del'>-						     have_family ? card-&gt;name-&gt;family : "",</div><div class='del'>-						     email);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	} else if (first_match == E_CARD_MATCH_PART_FAMILY_NAME) { </div><div class='del'>-</div><div class='del'>-		if (have_given)</div><div class='del'>-			menu_text = g_strdup_printf ("%s, %s%s%s &lt;%s&gt;",</div><div class='del'>-						     card-&gt;name-&gt;family,</div><div class='del'>-						     card-&gt;name-&gt;given,</div><div class='del'>-						     have_additional ? " " : "",</div><div class='del'>-						     have_additional ? card-&gt;name-&gt;additional : "",</div><div class='del'>-						     email);</div><div class='del'>-		else</div><div class='del'>-			menu_text = g_strdup_printf ("%s &lt;%s&gt;", card-&gt;name-&gt;family, email);</div><div class='del'>-</div><div class='del'>-	} else { /* something funny happened */</div><div class='del'>-</div><div class='del'>-		menu_text = g_strdup_printf ("&lt;%s&gt; ???", email);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (menu_text) {</div><div class='del'>-		g_strstrip (menu_text);</div><div class='del'>-		final_match = make_match (dest, menu_text, score);</div><div class='del'>-		g_free (menu_text);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	return final_match;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * File As Query</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-sexp_file_as (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	return name_style_query (comp, "file_as");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECompletionMatch *</div><div class='del'>-match_file_as (ESelectNamesCompletion *comp, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	const gchar *name;</div><div class='del'>-	const gchar *email;</div><div class='del'>-	gchar *cpy, **strv, *menu_text;</div><div class='del'>-	gint i, len;</div><div class='del'>-	double score = 0.00001;</div><div class='del'>-	ECompletionMatch *match;</div><div class='del'>-</div><div class='del'>-	name = e_destination_get_name (dest);</div><div class='del'>-	email = e_destination_get_email (dest);</div><div class='del'>-</div><div class='del'>-	if (!(name &amp;&amp; *name))</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	cpy = g_strdup (comp-&gt;priv-&gt;query_text);</div><div class='del'>-	strv = g_strsplit (cpy, " ", 0);</div><div class='del'>-</div><div class='del'>-	for (i=0; strv[i] &amp;&amp; score &gt; 0; ++i) {</div><div class='del'>-		len = g_utf8_strlen (strv[i], -1);</div><div class='del'>-		if (!g_utf8_strncasecmp (name, strv[i], len))</div><div class='del'>-			score += len; /* one point per character of the match */</div><div class='del'>-		else</div><div class='del'>-			score = 0;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	g_free (cpy);</div><div class='del'>-	g_strfreev (strv);</div><div class='del'>-</div><div class='del'>-	if (score &lt;= 0)</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	menu_text = g_strdup_printf ("%s &lt;%s&gt;", name, email);</div><div class='del'>-	g_strstrip (menu_text);</div><div class='del'>-	match = make_match (dest, menu_text, score);</div><div class='del'>-	g_free (menu_text);</div><div class='del'>-</div><div class='del'>-	return match;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Initials Query</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-sexp_initials (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static ECompletionMatch *</div><div class='del'>-match_initials (ESelectNamesCompletion *comp, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _BookQuery BookQuery;</div><div class='del'>-struct _BookQuery {</div><div class='del'>-	gboolean primary;</div><div class='del'>-	BookQuerySExp builder;</div><div class='del'>-	BookQueryMatchTester tester;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static BookQuery book_queries[] = {</div><div class='del'>-	{ TRUE,  sexp_nickname, match_nickname},</div><div class='del'>-	{ TRUE,  sexp_email,    match_email },</div><div class='del'>-	{ TRUE,  sexp_name,     match_name },</div><div class='del'>-	{ TRUE,  sexp_file_as,  match_file_as },</div><div class='del'>-	{ FALSE, sexp_initials, match_initials }</div><div class='del'>-};</div><div class='del'>-static gint book_query_count = sizeof (book_queries) / sizeof (BookQuery);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Build up a big compound sexp corresponding to all of our queries.</div><div class='del'>- */</div><div class='del'>-static gchar *</div><div class='del'>-book_query_sexp (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	gint i, j, count = 0;</div><div class='del'>-	gchar **queryv, *query;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (comp &amp;&amp; E_IS_SELECT_NAMES_COMPLETION (comp), NULL);</div><div class='del'>-</div><div class='del'>-	if (! (comp-&gt;priv-&gt;query_text &amp;&amp; *comp-&gt;priv-&gt;query_text))</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;primary_only) {</div><div class='del'>-		for (i=0; i&lt;book_query_count; ++i)</div><div class='del'>-			if (book_queries[i].primary)</div><div class='del'>-				++count;</div><div class='del'>-	} else {</div><div class='del'>-		count = book_query_count;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	queryv = g_new0 (gchar *, count+1);</div><div class='del'>-	for (i=0, j=0; i&lt;count; ++i) {</div><div class='del'>-		queryv[j] = book_queries[i].builder (comp);</div><div class='del'>-		if (queryv[j])</div><div class='del'>-			++j;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (j == 0) {</div><div class='del'>-		query = NULL;</div><div class='del'>-	} else if (j == 1) {</div><div class='del'>-		query = queryv[0];</div><div class='del'>-		queryv[0] = NULL;</div><div class='del'>-	} else {</div><div class='del'>-		gchar *tmp = g_strjoinv (" ", queryv);</div><div class='del'>-		query = g_strdup_printf ("(or %s)", tmp);</div><div class='del'>-		g_free (tmp);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	for (i=0; i&lt;count; ++i)</div><div class='del'>-		g_free (queryv[i]);</div><div class='del'>-	g_free (queryv);</div><div class='del'>-</div><div class='del'>-	return query;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Sweep across all of our query rules and find the best score/match</div><div class='del'>- * string that applies to a given destination.</div><div class='del'>- */</div><div class='del'>-static ECompletionMatch *</div><div class='del'>-book_query_score (ESelectNamesCompletion *comp, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	ECompletionMatch *best_match = NULL;</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_COMPLETION (comp), NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>-	if (! (comp-&gt;priv-&gt;query_text &amp;&amp; *comp-&gt;priv-&gt;query_text))</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	for (i=0; i&lt;book_query_count; ++i) {</div><div class='del'>-</div><div class='del'>-		ECompletionMatch *this_match = NULL;</div><div class='del'>-</div><div class='del'>-		if (book_queries[i].primary || !comp-&gt;priv-&gt;primary_only) {</div><div class='del'>-			if (book_queries[i].tester &amp;&amp; e_destination_get_card (dest)) {</div><div class='del'>-				this_match = book_queries[i].tester (comp, dest);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (this_match) {</div><div class='del'>-				if (best_match == NULL || this_match-&gt;score &gt; best_match-&gt;score) {</div><div class='del'>-					e_completion_match_unref (best_match);</div><div class='del'>-					best_match = this_match;</div><div class='del'>-				} else {</div><div class='del'>-					e_completion_match_unref (this_match);</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return best_match;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-book_query_process_card_list (ESelectNamesCompletion *comp, const GList *cards)</div><div class='del'>-{</div><div class='del'>-	while (cards) {</div><div class='del'>-		ECard *card = E_CARD (cards-&gt;data);</div><div class='del'>-</div><div class='del'>-		if (e_card_evolution_list (card)) {</div><div class='del'>-</div><div class='del'>-			if (comp-&gt;priv-&gt;match_contact_lists) {</div><div class='del'>-</div><div class='del'>-				EDestination *dest = e_destination_new ();</div><div class='del'>-				ECompletionMatch *match;</div><div class='del'>-				e_destination_set_card (dest, card, 0);</div><div class='del'>-				match = book_query_score (comp, dest);</div><div class='del'>-				if (match &amp;&amp; match-&gt;score &gt; 0) {</div><div class='del'>-					e_completion_found_match (E_COMPLETION (comp), match);</div><div class='del'>-				} else {</div><div class='del'>-					e_completion_match_unref (match);</div><div class='del'>-				}</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-		} else if (card-&gt;email) {</div><div class='del'>-			gint i;</div><div class='del'>-			for (i=0; i&lt;e_list_length (card-&gt;email); ++i) {</div><div class='del'>-				EDestination *dest = e_destination_new ();</div><div class='del'>-				const gchar *email;</div><div class='del'>-				ECompletionMatch *match;</div><div class='del'>-				</div><div class='del'>-				e_destination_set_card (dest, card, i);</div><div class='del'>-				email = e_destination_get_email (dest);</div><div class='del'>-</div><div class='del'>-				if (email &amp;&amp; *email) {</div><div class='del'>-				</div><div class='del'>-					match = book_query_score (comp, dest);</div><div class='del'>-					if (match &amp;&amp; match-&gt;score &gt; 0) {</div><div class='del'>-						e_completion_found_match (E_COMPLETION (comp), match);</div><div class='del'>-					} else {</div><div class='del'>-						e_completion_match_unref (match);</div><div class='del'>-					}</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		cards = g_list_next (cards);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-static gchar *</div><div class='del'>-initials_query_match_cb (QueryInfo *qi, ECard *card, double *score)</div><div class='del'>-{</div><div class='del'>-	gint len;</div><div class='del'>-	gchar f='\0', m='\0', l='\0'; /* initials */</div><div class='del'>-	gchar cf, cm, cl;</div><div class='del'>-</div><div class='del'>-	len = strlen (qi-&gt;comp-&gt;priv-&gt;query_text);</div><div class='del'>-	</div><div class='del'>-	if (len == 2) {</div><div class='del'>-		</div><div class='del'>-		f = qi-&gt;comp-&gt;priv-&gt;query_text[0];</div><div class='del'>-		m = '\0';</div><div class='del'>-		l = qi-&gt;comp-&gt;priv-&gt;query_text[1];</div><div class='del'>-</div><div class='del'>-	} else if (len == 3) {</div><div class='del'>-</div><div class='del'>-		f = qi-&gt;comp-&gt;priv-&gt;query_text[0];</div><div class='del'>-		m = qi-&gt;comp-&gt;priv-&gt;query_text[1];</div><div class='del'>-		l = qi-&gt;comp-&gt;priv-&gt;query_text[2];</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-		return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	cf = card-&gt;name-&gt;given ? *card-&gt;name-&gt;given : '\0';</div><div class='del'>-	cm = card-&gt;name-&gt;additional ? *card-&gt;name-&gt;additional : '\0';</div><div class='del'>-	cl = card-&gt;name-&gt;family ? *card-&gt;name-&gt;family : '\0';</div><div class='del'>-</div><div class='del'>-	if (f &amp;&amp; isupper ((gint) f))</div><div class='del'>-		f = tolower ((gint) f);</div><div class='del'>-	if (m &amp;&amp; isupper ((gint) m))</div><div class='del'>-		m = tolower ((gint) m);</div><div class='del'>-	if (l &amp;&amp; isupper ((gint) l))</div><div class='del'>-		l = tolower ((gint) l);</div><div class='del'>-</div><div class='del'>-	if (cf &amp;&amp; isupper ((gint) cf))</div><div class='del'>-		cf = tolower ((gint) cf);</div><div class='del'>-	if (cm &amp;&amp; isupper ((gint) cm))</div><div class='del'>-		cm = tolower ((gint) cm);</div><div class='del'>-	if (cl &amp;&amp; isupper ((gint) cl))</div><div class='del'>-		cl = tolower ((gint) cl);</div><div class='del'>-</div><div class='del'>-	if ((f == '\0' || (f == cf)) &amp;&amp; (m == '\0' || (m == cm)) &amp;&amp; (l == '\0' || (l == cl))) {</div><div class='del'>-		if (score)</div><div class='del'>-			*score = 3;</div><div class='del'>-		if (m)</div><div class='del'>-			return g_strdup_printf ("%s %s %s", card-&gt;name-&gt;given, card-&gt;name-&gt;additional, card-&gt;name-&gt;family);</div><div class='del'>-		else</div><div class='del'>-			return g_strdup_printf ("%s %s", card-&gt;name-&gt;given, card-&gt;name-&gt;family);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-start_initials_query (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	gint len;</div><div class='del'>-	gchar *query;</div><div class='del'>-</div><div class='del'>-	if (comp &amp;&amp; comp-&gt;priv-&gt;query_text &amp;&amp; *(comp-&gt;priv-&gt;query_text)) {</div><div class='del'>-		</div><div class='del'>-		len = strlen (comp-&gt;priv-&gt;query_text);</div><div class='del'>-		if (len &lt; 2 || len &gt; 3)</div><div class='del'>-			return FALSE;</div><div class='del'>-</div><div class='del'>-		query = g_strdup_printf ("(contains \"x-evolution-any-field\" \"%c\")", *(comp-&gt;priv-&gt;query_text));</div><div class='del'>-		query_info_start (comp, comp-&gt;priv-&gt;query_text, query, initials_query_match_cb);</div><div class='del'>-		g_free (query);</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * ESelectNamesCompletion code</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_select_names_completion_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType select_names_complete_type = 0;</div><div class='del'>-  </div><div class='del'>-	if (!select_names_complete_type) {</div><div class='del'>-		GtkTypeInfo select_names_complete_info = {</div><div class='del'>-			"ESelectNamesCompletion",</div><div class='del'>-			sizeof (ESelectNamesCompletion),</div><div class='del'>-			sizeof (ESelectNamesCompletionClass),</div><div class='del'>-			(GtkClassInitFunc) e_select_names_completion_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_select_names_completion_init,</div><div class='del'>-			NULL, NULL, /* reserved */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		select_names_complete_type = gtk_type_unique (e_completion_get_type (), &amp;select_names_complete_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return select_names_complete_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_class_init (ESelectNamesCompletionClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);</div><div class='del'>-	ECompletionClass *completion_class = E_COMPLETION_CLASS (klass);</div><div class='del'>-</div><div class='del'>-	parent_class = GTK_OBJECT_CLASS (gtk_type_class (e_completion_get_type ()));</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_select_names_completion_destroy;</div><div class='del'>-</div><div class='del'>-	completion_class-&gt;request_completion = e_select_names_completion_handle_request;</div><div class='del'>-	completion_class-&gt;end_completion = e_select_names_completion_end;</div><div class='del'>-</div><div class='del'>-	if (getenv ("EVO_DEBUG_SELECT_NAMES_COMPLETION")) {</div><div class='del'>-		out = fopen ("/tmp/evo-debug-select-names-completion", "w");</div><div class='del'>-		if (out)</div><div class='del'>-			setvbuf (out, NULL, _IONBF, 0);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_init (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	comp-&gt;priv = g_new0 (struct _ESelectNamesCompletionPrivate, 1);</div><div class='del'>-	comp-&gt;priv-&gt;match_contact_lists = TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesCompletion *comp = E_SELECT_NAMES_COMPLETION (object);</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;model)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (comp-&gt;priv-&gt;model));</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;book)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (comp-&gt;priv-&gt;book));</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;card_added_tag) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (comp-&gt;priv-&gt;book_view), comp-&gt;priv-&gt;card_added_tag);</div><div class='del'>-		comp-&gt;priv-&gt;card_added_tag = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;seq_complete_tag) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (comp-&gt;priv-&gt;book_view), comp-&gt;priv-&gt;seq_complete_tag);</div><div class='del'>-		comp-&gt;priv-&gt;seq_complete_tag = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;book_view)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (comp-&gt;priv-&gt;book_view));</div><div class='del'>-	</div><div class='del'>-	g_free (comp-&gt;priv-&gt;waiting_query);</div><div class='del'>-	g_free (comp-&gt;priv-&gt;query_text);</div><div class='del'>-</div><div class='del'>-	g_free (comp-&gt;priv-&gt;cached_query_text);</div><div class='del'>-	g_list_foreach (comp-&gt;priv-&gt;cached_cards, (GFunc)gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (comp-&gt;priv-&gt;cached_cards);</div><div class='del'>-</div><div class='del'>-	g_free (comp-&gt;priv);</div><div class='del'>-</div><div class='del'>-	if (parent_class-&gt;destroy)</div><div class='del'>-		parent_class-&gt;destroy (object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- *  EBook/EBookView Callbacks &amp; Query Stuff</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static gchar *</div><div class='del'>-clean_query_text (const gchar *s)</div><div class='del'>-{</div><div class='del'>-	gchar *q = g_new (gchar, strlen(s)+1), *t;</div><div class='del'>-</div><div class='del'>-	t = q;</div><div class='del'>-	while (*s) {</div><div class='del'>-		if (*s != ',' &amp;&amp; *s != '"') {</div><div class='del'>-			*t = *s;</div><div class='del'>-			++t;</div><div class='del'>-		}</div><div class='del'>-		++s;</div><div class='del'>-	}</div><div class='del'>-	*t = '\0';</div><div class='del'>-</div><div class='del'>-	g_strstrip (q);</div><div class='del'>-</div><div class='del'>-	return q;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_clear_cache (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	g_free (comp-&gt;priv-&gt;cached_query_text);</div><div class='del'>-	comp-&gt;priv-&gt;cached_query_text = NULL;</div><div class='del'>-</div><div class='del'>-	g_list_foreach (comp-&gt;priv-&gt;cached_cards, (GFunc)gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (comp-&gt;priv-&gt;cached_cards);</div><div class='del'>-	comp-&gt;priv-&gt;cached_cards = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_got_book_view_cb (EBook *book, EBookStatus status, EBookView *view, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesCompletion *comp;</div><div class='del'>-</div><div class='del'>-	if (status != E_BOOK_STATUS_SUCCESS)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	comp = E_SELECT_NAMES_COMPLETION (user_data);</div><div class='del'>-</div><div class='del'>-	comp-&gt;priv-&gt;book_view_tag = 0;</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;card_added_tag) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (comp-&gt;priv-&gt;book_view), comp-&gt;priv-&gt;card_added_tag);</div><div class='del'>-		comp-&gt;priv-&gt;card_added_tag = 0;</div><div class='del'>-	}</div><div class='del'>-	if (comp-&gt;priv-&gt;seq_complete_tag) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (comp-&gt;priv-&gt;book_view), comp-&gt;priv-&gt;seq_complete_tag);</div><div class='del'>-		comp-&gt;priv-&gt;seq_complete_tag = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (view));</div><div class='del'>-	if (comp-&gt;priv-&gt;book_view)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (comp-&gt;priv-&gt;book_view));</div><div class='del'>-	comp-&gt;priv-&gt;book_view = view;</div><div class='del'>-</div><div class='del'>-	comp-&gt;priv-&gt;card_added_tag = </div><div class='del'>-		gtk_signal_connect (GTK_OBJECT (view),</div><div class='del'>-				    "card_added",</div><div class='del'>-				    GTK_SIGNAL_FUNC (e_select_names_completion_card_added_cb),</div><div class='del'>-				    comp);</div><div class='del'>-</div><div class='del'>-	comp-&gt;priv-&gt;seq_complete_tag =</div><div class='del'>-		gtk_signal_connect (GTK_OBJECT (view),</div><div class='del'>-				    "sequence_complete",</div><div class='del'>-				    GTK_SIGNAL_FUNC (e_select_names_completion_seq_complete_cb),</div><div class='del'>-				    comp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_card_added_cb (EBookView *book_view, const GList *cards, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesCompletion *comp = E_SELECT_NAMES_COMPLETION (user_data);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	if (e_completion_searching (E_COMPLETION (comp))) {</div><div class='del'>-		book_query_process_card_list (comp, cards);</div><div class='del'>-</div><div class='del'>-		/* Save the list of matching cards. */</div><div class='del'>-		while (cards) {</div><div class='del'>-			comp-&gt;priv-&gt;cached_cards = g_list_prepend (comp-&gt;priv-&gt;cached_cards, cards-&gt;data);</div><div class='del'>-			gtk_object_ref (GTK_OBJECT (cards-&gt;data));</div><div class='del'>-			cards = g_list_next (cards);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_seq_complete_cb (EBookView *book_view, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesCompletion *comp = E_SELECT_NAMES_COMPLETION (user_data);</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * We aren't searching, but the addressbook has changed -- clear our card cache so that</div><div class='del'>-	 * future completion requests will take the changes into account.</div><div class='del'>-	 */</div><div class='del'>-	if (! e_completion_searching (E_COMPLETION (comp))) {</div><div class='del'>-		e_select_names_completion_clear_cache (comp);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (comp-&gt;priv-&gt;query_text);</div><div class='del'>-	comp-&gt;priv-&gt;query_text = NULL;</div><div class='del'>-</div><div class='del'>-	if (out)</div><div class='del'>-		fprintf (out, "ending search\n");</div><div class='del'>-</div><div class='del'>-	e_completion_end_search (E_COMPLETION (comp)); /* That's all folks! */</div><div class='del'>-</div><div class='del'>-	/* Need to launch a new completion if another one is pending. */</div><div class='del'>-	if (comp-&gt;priv-&gt;waiting_query) {</div><div class='del'>-		gchar *s = comp-&gt;priv-&gt;waiting_query;</div><div class='del'>-		comp-&gt;priv-&gt;waiting_query = NULL;</div><div class='del'>-		e_completion_begin_search (E_COMPLETION (comp), s, comp-&gt;priv-&gt;waiting_pos, comp-&gt;priv-&gt;waiting_limit);</div><div class='del'>-		g_free (s);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_stop_query (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (comp &amp;&amp; E_IS_SELECT_NAMES_COMPLETION (comp));</div><div class='del'>-</div><div class='del'>-	if (out)</div><div class='del'>-		fprintf (out, "stopping query\n");</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;waiting_query) {</div><div class='del'>-		if (out)</div><div class='del'>-			fprintf (out, "stopped waiting query\n");</div><div class='del'>-		g_free (comp-&gt;priv-&gt;waiting_query);</div><div class='del'>-		comp-&gt;priv-&gt;waiting_query = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free (comp-&gt;priv-&gt;query_text);</div><div class='del'>-	comp-&gt;priv-&gt;query_text = NULL;</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;book_view_tag) {</div><div class='del'>-		if (out)</div><div class='del'>-			fprintf (out, "cancelled book view creation\n");</div><div class='del'>-		e_book_cancel (comp-&gt;priv-&gt;book, comp-&gt;priv-&gt;book_view_tag);</div><div class='del'>-		comp-&gt;priv-&gt;book_view_tag = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;book_view) {</div><div class='del'>-</div><div class='del'>-		if (out)</div><div class='del'>-			fprintf (out, "disconnecting book view signals\n");</div><div class='del'>-</div><div class='del'>-		if (comp-&gt;priv-&gt;card_added_tag) {</div><div class='del'>-			gtk_signal_disconnect (GTK_OBJECT (comp-&gt;priv-&gt;book_view), comp-&gt;priv-&gt;card_added_tag);</div><div class='del'>-			comp-&gt;priv-&gt;card_added_tag = 0;</div><div class='del'>-		}</div><div class='del'>-		if (comp-&gt;priv-&gt;seq_complete_tag) {</div><div class='del'>-			gtk_signal_disconnect (GTK_OBJECT (comp-&gt;priv-&gt;book_view), comp-&gt;priv-&gt;seq_complete_tag);</div><div class='del'>-			comp-&gt;priv-&gt;seq_complete_tag = 0;</div><div class='del'>-		}</div><div class='del'>-	</div><div class='del'>-		if (out)</div><div class='del'>-			fprintf (out, "unrefed book view\n");</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (comp-&gt;priv-&gt;book_view));</div><div class='del'>-		comp-&gt;priv-&gt;book_view = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Clear the cache, which may contain partial results. */</div><div class='del'>-	e_select_names_completion_clear_cache (comp);</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_start_query (ESelectNamesCompletion *comp, const gchar *query_text)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (comp &amp;&amp; E_IS_SELECT_NAMES_COMPLETION (comp));</div><div class='del'>-	g_return_if_fail (query_text);</div><div class='del'>-</div><div class='del'>-	e_select_names_completion_stop_query (comp);  /* Stop any prior queries. */</div><div class='del'>-</div><div class='del'>-	if (comp-&gt;priv-&gt;book_ready) {</div><div class='del'>-		gchar *sexp;</div><div class='del'>-	</div><div class='del'>-		g_free (comp-&gt;priv-&gt;query_text);</div><div class='del'>-		comp-&gt;priv-&gt;query_text = g_strdup (query_text);</div><div class='del'>-</div><div class='del'>-		g_free (comp-&gt;priv-&gt;cached_query_text);</div><div class='del'>-		comp-&gt;priv-&gt;cached_query_text = g_strdup (query_text);</div><div class='del'>-</div><div class='del'>-		sexp = book_query_sexp (comp);</div><div class='del'>-		if (sexp &amp;&amp; *sexp) {</div><div class='del'>-</div><div class='del'>-			if (out)</div><div class='del'>-				fprintf (out, "\n\n**** starting query: \"%s\"\n", comp-&gt;priv-&gt;query_text);</div><div class='del'>-</div><div class='del'>-			comp-&gt;priv-&gt;book_view_tag = e_book_get_book_view (comp-&gt;priv-&gt;book, sexp, </div><div class='del'>-									  e_select_names_completion_got_book_view_cb, comp);</div><div class='del'>-</div><div class='del'>-			if (! comp-&gt;priv-&gt;book_view_tag)</div><div class='del'>-				g_warning ("Exception calling e_book_get_book_view");</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-			g_free (comp-&gt;priv-&gt;query_text);</div><div class='del'>-			comp-&gt;priv-&gt;query_text = NULL;</div><div class='del'>-		}</div><div class='del'>-		g_free (sexp);</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-</div><div class='del'>-		comp-&gt;priv-&gt;waiting_query = g_strdup (query_text);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_do_query (ESelectNamesCompletion *comp, const gchar *query_text, gint pos, gint limit)</div><div class='del'>-{</div><div class='del'>-	gchar *clean;</div><div class='del'>-	gboolean query_is_still_running, can_reuse_cached_cards;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (comp != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_COMPLETION (comp));</div><div class='del'>-</div><div class='del'>-	clean = clean_query_text (query_text);</div><div class='del'>-	if (! (clean &amp;&amp; *clean)) {</div><div class='del'>-		g_free (clean);</div><div class='del'>-		e_completion_end_search (E_COMPLETION (comp));</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	query_is_still_running = comp-&gt;priv-&gt;book_view_tag;</div><div class='del'>-</div><div class='del'>-	if (out) {</div><div class='del'>-		fprintf (out, "do_query: %s =&gt; %s\n", query_text, clean);</div><div class='del'>-		if (query_is_still_running)</div><div class='del'>-			fprintf (out, "a query is still running!\n");</div><div class='del'>-	}</div><div class='del'>-	if (comp-&gt;priv-&gt;cached_query_text &amp;&amp; out)</div><div class='del'>-		fprintf (out, "cached: %s\n", comp-&gt;priv-&gt;cached_query_text);</div><div class='del'>-</div><div class='del'>-	can_reuse_cached_cards = (comp-&gt;priv-&gt;cached_query_text</div><div class='del'>-				  &amp;&amp; (!comp-&gt;priv-&gt;can_fail_due_to_too_many_hits || comp-&gt;priv-&gt;cached_cards != NULL)</div><div class='del'>-				  &amp;&amp; (strlen (comp-&gt;priv-&gt;cached_query_text) &lt;= strlen (clean))</div><div class='del'>-				  &amp;&amp; !g_utf8_strncasecmp (comp-&gt;priv-&gt;cached_query_text, clean, strlen (comp-&gt;priv-&gt;cached_query_text)));</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	if (can_reuse_cached_cards) {</div><div class='del'>-</div><div class='del'>-		if (out)</div><div class='del'>-			fprintf (out, "can reuse cached card!\n");</div><div class='del'>-</div><div class='del'>-		if (query_is_still_running) {</div><div class='del'>-			g_free (comp-&gt;priv-&gt;waiting_query);</div><div class='del'>-			comp-&gt;priv-&gt;waiting_query = clean;</div><div class='del'>-			comp-&gt;priv-&gt;waiting_pos = pos;</div><div class='del'>-			comp-&gt;priv-&gt;waiting_limit = limit;</div><div class='del'>-			if (out)</div><div class='del'>-				fprintf (out, "waiting for running query to complete: %s\n", comp-&gt;priv-&gt;waiting_query);</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		g_free (comp-&gt;priv-&gt;query_text);</div><div class='del'>-		comp-&gt;priv-&gt;query_text = clean;</div><div class='del'>-		if (out)</div><div class='del'>-			fprintf (out, "using existing query info: %s (vs %s)\n", comp-&gt;priv-&gt;query_text, comp-&gt;priv-&gt;cached_query_text);</div><div class='del'>-		book_query_process_card_list (comp, comp-&gt;priv-&gt;cached_cards);</div><div class='del'>-		e_completion_end_search (E_COMPLETION (comp));</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	e_select_names_completion_start_query (comp, clean);</div><div class='del'>-	g_free (clean);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- *  Completion Search Override - a Framework for Christian-Resurrection-Holiday Edible-Chicken-Ova</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct _SearchOverride SearchOverride;</div><div class='del'>-struct _SearchOverride {</div><div class='del'>-	const gchar *trigger;</div><div class='del'>-	const gchar *text[4];</div><div class='del'>-};</div><div class='del'>-static SearchOverride override[] = { </div><div class='del'>-	{ "why?", { "\"I must create a system, or be enslaved by another man's.\"",</div><div class='del'>-		    "            -- Wiliam Blake, \"Jerusalem\"",</div><div class='del'>-		    NULL } },</div><div class='del'>-	{ "easter-egg?", { "What were you expecting, a flight simulator?", NULL } },</div><div class='del'>-	{ NULL, { NULL } } };</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-search_override_check (SearchOverride *over, const gchar *text)</div><div class='del'>-{</div><div class='del'>-	/* The g_utf8_validate is needed because as of 2001-06-11,</div><div class='del'>-	 * EText doesn't translate from locale-&gt;UTF8 when you paste</div><div class='del'>-	 * into it.</div><div class='del'>-	 */</div><div class='del'>-	if (over == NULL || text == NULL || !g_utf8_validate (text, -1, NULL))</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	return !g_utf8_strcasecmp (over-&gt;trigger, text);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- *  Completion Callbacks</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_handle_request (ECompletion *comp, const gchar *text, gint pos, gint limit)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesCompletion *selcomp = E_SELECT_NAMES_COMPLETION (comp);</div><div class='del'>-	const gchar *str;</div><div class='del'>-	gint index, j;</div><div class='del'>-	</div><div class='del'>-	g_return_if_fail (comp != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_COMPLETION (comp));</div><div class='del'>-	g_return_if_fail (text != NULL);</div><div class='del'>-	</div><div class='del'>-	if (out) {</div><div class='del'>-		fprintf (out, "\n\n**** requesting completion\n");</div><div class='del'>-		fprintf (out, "text=\"%s\" pos=%d limit=%d\n", text, pos, limit);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_select_names_model_text_pos (selcomp-&gt;priv-&gt;model, pos, &amp;index, NULL, NULL);</div><div class='del'>-	str = index &gt;= 0 ? e_select_names_model_get_string (selcomp-&gt;priv-&gt;model, index) : NULL;</div><div class='del'>-</div><div class='del'>-	if (out)</div><div class='del'>-		fprintf (out, "index=%d str=\"%s\"\n", index, str);</div><div class='del'>-</div><div class='del'>-	if (str == NULL || *str == '\0') {</div><div class='del'>-		if (out)</div><div class='del'>-			fprintf (out, "aborting empty query\n");</div><div class='del'>-		e_completion_end_search (comp);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	for (j=0; override[j].trigger; ++j) {</div><div class='del'>-		if (search_override_check (&amp;(override[j]), str)) {</div><div class='del'>-			gint k;</div><div class='del'>-</div><div class='del'>-			for (k=0; override[j].text[k]; ++k) {</div><div class='del'>-				ECompletionMatch *match = g_new (ECompletionMatch, 1);</div><div class='del'>-				e_completion_match_construct (match);</div><div class='del'>-				e_completion_match_set_text (match, text, override[j].text[k]);</div><div class='del'>-				match-&gt;score = 1 / (double) (k + 1);</div><div class='del'>-				e_completion_found_match (comp, match);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			e_completion_end_search (comp);</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_select_names_completion_do_query (selcomp, str, pos, limit);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_end (ECompletion *comp)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (comp != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_COMPLETION (comp));</div><div class='del'>-</div><div class='del'>-	if (out)</div><div class='del'>-		fprintf (out, "completion ended\n");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-check_capabilities (ESelectNamesCompletion *comp, EBook *book)</div><div class='del'>-{</div><div class='del'>-	gchar *cap = e_book_get_static_capabilities (book);</div><div class='del'>-	comp-&gt;priv-&gt;can_fail_due_to_too_many_hits = !strcmp (cap, "net");</div><div class='del'>-	if (comp-&gt;priv-&gt;can_fail_due_to_too_many_hits) {</div><div class='del'>-		g_message ("using LDAP source for completion!");</div><div class='del'>-	}</div><div class='del'>-	g_free (cap);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_completion_book_ready (EBook *book, EBookStatus status, ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	comp-&gt;priv-&gt;book_ready = TRUE;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_BOOK (book));</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_COMPLETION (comp));</div><div class='del'>-</div><div class='del'>-	check_capabilities (comp, book);</div><div class='del'>-</div><div class='del'>-	/* If waiting_query is non-NULL, someone tried to start a query before the book was ready.</div><div class='del'>-	   Now that it is, get started. */</div><div class='del'>-	if (comp-&gt;priv-&gt;waiting_query) {</div><div class='del'>-		e_select_names_completion_start_query (comp, comp-&gt;priv-&gt;waiting_query);</div><div class='del'>-		g_free (comp-&gt;priv-&gt;waiting_query);</div><div class='del'>-		comp-&gt;priv-&gt;waiting_query = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (comp)); /* post-async unref */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- *  Our Pseudo-Constructor</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-ECompletion *</div><div class='del'>-e_select_names_completion_new (EBook *book, ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesCompletion *comp;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (book == NULL || E_IS_BOOK (book), NULL);</div><div class='del'>-	g_return_val_if_fail (model, NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-</div><div class='del'>-	comp = (ESelectNamesCompletion *) gtk_type_new (e_select_names_completion_get_type ());</div><div class='del'>-</div><div class='del'>-	if (book == NULL) {</div><div class='del'>-</div><div class='del'>-		comp-&gt;priv-&gt;book = e_book_new ();</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (comp-&gt;priv-&gt;book));</div><div class='del'>-		gtk_object_sink (GTK_OBJECT (comp-&gt;priv-&gt;book));</div><div class='del'>-</div><div class='del'>-		comp-&gt;priv-&gt;book_ready = FALSE;</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (comp)); /* ref ourself before our async call */</div><div class='del'>-		e_book_load_local_address_book (comp-&gt;priv-&gt;book, (EBookCallback) e_select_names_completion_book_ready, comp);</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-</div><div class='del'>-		comp-&gt;priv-&gt;book = book;</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (comp-&gt;priv-&gt;book));</div><div class='del'>-		comp-&gt;priv-&gt;book_ready = TRUE;</div><div class='del'>-</div><div class='del'>-		check_capabilities (comp, book);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-		</div><div class='del'>-	comp-&gt;priv-&gt;model = model;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (model));</div><div class='del'>-</div><div class='del'>-	return E_COMPLETION (comp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_select_names_completion_get_match_contact_lists (ESelectNamesCompletion *comp)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_COMPLETION (comp), FALSE);</div><div class='del'>-	return comp-&gt;priv-&gt;match_contact_lists;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_completion_set_match_contact_lists (ESelectNamesCompletion *comp, gboolean x)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_COMPLETION (comp));</div><div class='del'>-	comp-&gt;priv-&gt;match_contact_lists = x;</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-completion.h b/addressbook/gui/component/select-names/e-select-names-completion.h<br/>deleted file mode 100644<br/>index cfa496ca69..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-completion.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-completion.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,68 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-select-names-completion.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef E_SELECT_NAMES_COMPLETION_H</div><div class='del'>-#define E_SELECT_NAMES_COMPLETION_H</div><div class='del'>-</div><div class='del'>-#include &lt;gal/e-text/e-completion.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book.h&gt;</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-</div><div class='del'>-BEGIN_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#define E_SELECT_NAMES_COMPLETION_TYPE        (e_select_names_completion_get_type ())</div><div class='del'>-#define E_SELECT_NAMES_COMPLETION(o)          (GTK_CHECK_CAST ((o), E_SELECT_NAMES_COMPLETION_TYPE, ESelectNamesCompletion))</div><div class='del'>-#define E_SELECT_NAMES_COMPLETION_CLASS(k)    (GTK_CHECK_CLASS_CAST ((k), E_SELECT_NAMES_COMPLETION_TYPE, ESelectNamesCompletionClass))</div><div class='del'>-#define E_IS_SELECT_NAMES_COMPLETION(o)       (GTK_CHECK_TYPE ((o), E_SELECT_NAMES_COMPLETION_TYPE))</div><div class='del'>-#define E_IS_SELECT_NAMES_COMPLETION_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_SELECT_NAMES_COMPLETION_TYPE))</div><div class='del'>-</div><div class='del'>-typedef struct _ESelectNamesCompletion ESelectNamesCompletion;</div><div class='del'>-typedef struct _ESelectNamesCompletionClass ESelectNamesCompletionClass;</div><div class='del'>-struct _ESelectNamesCompletionPrivate;</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesCompletion {</div><div class='del'>-	ECompletion parent;</div><div class='del'>-</div><div class='del'>-	struct _ESelectNamesCompletionPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesCompletionClass {</div><div class='del'>-	ECompletionClass parent_class;</div><div class='del'>-</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType e_select_names_completion_get_type (void);</div><div class='del'>-</div><div class='del'>-ECompletion *e_select_names_completion_new (EBook *, ESelectNamesModel *);</div><div class='del'>-</div><div class='del'>-gboolean e_select_names_completion_get_match_contact_lists (ESelectNamesCompletion *);</div><div class='del'>-void     e_select_names_completion_set_match_contact_lists (ESelectNamesCompletion *, gboolean);</div><div class='del'>-</div><div class='del'>-END_GNOME_DECLS</div><div class='del'>-</div><div class='del'>-#endif /* E_SELECT_NAMES_COMPLETION_H */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-factory.c b/addressbook/gui/component/select-names/e-select-names-factory.c<br/>deleted file mode 100644<br/>index 7f65110c2a..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-factory.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-factory.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,59 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* e-select-names-factory.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Ettore Perazzoli</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_CONFIG_H</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-generic-factory.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-select-names-bonobo.h"</div><div class='del'>-#include "e-select-names-factory.h"</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#define COMPONENT_FACTORY_ID "OAFIID:GNOME_Evolution_Addressbook_SelectNamesFactory"</div><div class='del'>-</div><div class='del'>-static BonoboGenericFactory *factory = NULL;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static BonoboObject *</div><div class='del'>-factory_fn (BonoboGenericFactory *factory,</div><div class='del'>-	    void *closure)</div><div class='del'>-{</div><div class='del'>-	return BONOBO_OBJECT (e_select_names_bonobo_new ());</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_select_names_factory_init (void)</div><div class='del'>-{</div><div class='del'>-	if (factory != NULL)</div><div class='del'>-		return TRUE;</div><div class='del'>-</div><div class='del'>-	factory = bonobo_generic_factory_new (COMPONENT_FACTORY_ID, factory_fn, NULL);</div><div class='del'>-</div><div class='del'>-	if (factory == NULL)</div><div class='del'>-		return FALSE;</div><div class='del'>-</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-factory.h b/addressbook/gui/component/select-names/e-select-names-factory.h<br/>deleted file mode 100644<br/>index dbdec8a182..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-factory.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-factory.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,31 +0,0 @@</div><div class='del'>-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */</div><div class='del'>-/* e-select-names-factory.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this program; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- *</div><div class='del'>- * Author: Ettore Perazzoli</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef _E_SECELT_NAMES_FACTORY_H</div><div class='del'>-#define _E_SECELT_NAMES_FACTORY_H</div><div class='del'>-</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-</div><div class='del'>-gboolean e_select_names_factory_init (void);</div><div class='del'>-</div><div class='del'>-#endif</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-manager.c b/addressbook/gui/component/select-names/e-select-names-manager.c<br/>deleted file mode 100644<br/>index d422265c02..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-manager.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-manager.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,583 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors: </div><div class='del'>- *   Chris Lahey     &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gal/e-text/e-entry.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-select-names-manager.h"</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-#include "e-select-names-text-model.h"</div><div class='del'>-#include "e-select-names.h"</div><div class='del'>-#include "e-select-names-completion.h"</div><div class='del'>-#include "e-select-names-popup.h"</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-destination.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/component/addressbook.h&gt;</div><div class='del'>-#include &lt;bonobo-conf/bonobo-config-database.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-object.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-moniker-util.h&gt;</div><div class='del'>-</div><div class='del'>-/* Object argument IDs */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_CARD,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	CHANGED,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint e_select_names_manager_signals[LAST_SIGNAL] = { 0 };</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *id;</div><div class='del'>-	char *title;</div><div class='del'>-	ESelectNamesModel *model;</div><div class='del'>-	ESelectNamesModel *original_model;</div><div class='del'>-	ESelectNamesManager *manager;</div><div class='del'>-	guint changed_handler;</div><div class='del'>-} ESelectNamesManagerSection;</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *id;</div><div class='del'>-	EEntry *entry;</div><div class='del'>-} ESelectNamesManagerEntry;</div><div class='del'>-</div><div class='del'>-static void e_select_names_manager_init (ESelectNamesManager *manager);</div><div class='del'>-static void e_select_names_manager_class_init (ESelectNamesManagerClass *klass);</div><div class='del'>-</div><div class='del'>-static void e_select_names_manager_destroy (GtkObject *object);</div><div class='del'>-static void e_select_names_manager_set_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_select_names_manager_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_manager_get_type:</div><div class='del'>- * @void: </div><div class='del'>- * </div><div class='del'>- * Registers the &amp;ESelectNamesManager class if necessary, and returns the type ID</div><div class='del'>- * associated to it.</div><div class='del'>- * </div><div class='del'>- * Return value: The type ID of the &amp;ESelectNamesManager class.</div><div class='del'>- **/</div><div class='del'>-GtkType</div><div class='del'>-e_select_names_manager_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType manager_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!manager_type) {</div><div class='del'>-		GtkTypeInfo manager_info = {</div><div class='del'>-			"ESelectNamesManager",</div><div class='del'>-			sizeof (ESelectNamesManager),</div><div class='del'>-			sizeof (ESelectNamesManagerClass),</div><div class='del'>-			(GtkClassInitFunc) e_select_names_manager_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_select_names_manager_init,</div><div class='del'>-			NULL, /* reserved_1 */</div><div class='del'>-			NULL, /* reserved_2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		manager_type = gtk_type_unique (gtk_object_get_type (), &amp;manager_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return manager_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-open_book_cb (EBook *book, EBookStatus status, ESelectNamesManager *manager)</div><div class='del'>-{</div><div class='del'>-	if (status != E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (book));</div><div class='del'>-		manager-&gt;completion_book = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (manager)); /* unref ourself (matches ref before the load_uri call below) */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_manager_new:</div><div class='del'>- * @VCard: a string in vCard format</div><div class='del'>- *</div><div class='del'>- * Returns: a new #ESelectNamesManager that wraps the @VCard.</div><div class='del'>- */</div><div class='del'>-ESelectNamesManager *</div><div class='del'>-e_select_names_manager_new (void)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManager *manager = E_SELECT_NAMES_MANAGER(gtk_type_new(e_select_names_manager_get_type()));</div><div class='del'>-	Bonobo_ConfigDatabase db;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	char *val;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-</div><div class='del'>-	db = bonobo_get_object ("wombat:", "Bonobo/ConfigDatabase", &amp;ev);</div><div class='del'>-</div><div class='del'>-	val = bonobo_config_get_string (db, "/Addressbook/Completion/uri", &amp;ev);</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	if (val) {</div><div class='del'>-		manager-&gt;completion_book = e_book_new ();</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (manager)); /* ref ourself before our async call */</div><div class='del'>-		addressbook_load_uri (manager-&gt;completion_book, val, (EBookCallback)open_book_cb, manager);</div><div class='del'>-		g_free (val);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='del'>-		manager-&gt;completion_book = NULL;</div><div class='del'>-</div><div class='del'>-	CORBA_exception_init (&amp;ev);</div><div class='del'>-	bonobo_object_release_unref (db, &amp;ev);</div><div class='del'>-	CORBA_exception_free (&amp;ev);</div><div class='del'>-</div><div class='del'>-	return manager;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_manager_class_init (ESelectNamesManagerClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-	object_class = GTK_OBJECT_CLASS(klass);</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("ESelectNamesManager::card",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_CARD);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_select_names_manager_destroy;</div><div class='del'>-	object_class-&gt;get_arg = e_select_names_manager_get_arg;</div><div class='del'>-	object_class-&gt;set_arg = e_select_names_manager_set_arg;</div><div class='del'>-</div><div class='del'>-	e_select_names_manager_signals[CHANGED] = </div><div class='del'>-		gtk_signal_new ("changed",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (ESelectNamesManagerClass, changed),</div><div class='del'>-				gtk_marshal_NONE__POINTER_INT,</div><div class='del'>-				GTK_TYPE_NONE, 2,</div><div class='del'>-				GTK_TYPE_POINTER,</div><div class='del'>-				GTK_TYPE_INT);</div><div class='del'>-	gtk_object_class_add_signals (object_class, e_select_names_manager_signals, LAST_SIGNAL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * ESelectNamesManager lifecycle management and vcard loading/saving.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_manager_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManager *manager;</div><div class='del'>-	</div><div class='del'>-	manager = E_SELECT_NAMES_MANAGER (object);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(manager-&gt;sections));</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(manager-&gt;entries));</div><div class='del'>-</div><div class='del'>-	if (manager-&gt;names) {</div><div class='del'>-		gtk_widget_destroy (GTK_WIDGET (manager-&gt;names));</div><div class='del'>-		manager-&gt;names = NULL;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Set_arg handler for the manager */</div><div class='del'>-static void</div><div class='del'>-e_select_names_manager_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManager *manager;</div><div class='del'>-	</div><div class='del'>-	manager = E_SELECT_NAMES_MANAGER (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Get_arg handler for the manager */</div><div class='del'>-static void</div><div class='del'>-e_select_names_manager_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManager *manager;</div><div class='del'>-</div><div class='del'>-	manager = E_SELECT_NAMES_MANAGER (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-section_copy(const void *sec, void *data)</div><div class='del'>-{</div><div class='del'>-	const ESelectNamesManagerSection *section = sec;</div><div class='del'>-	ESelectNamesManagerSection *newsec;</div><div class='del'>-</div><div class='del'>-	static void section_model_changed_cb (ESelectNamesModel *, gpointer);</div><div class='del'>-</div><div class='del'>-	newsec = g_new(ESelectNamesManagerSection, 1);</div><div class='del'>-	newsec-&gt;id = g_strdup(section-&gt;id);</div><div class='del'>-	newsec-&gt;title = g_strdup(section-&gt;title);</div><div class='del'>-	newsec-&gt;model = section-&gt;model;</div><div class='del'>-	newsec-&gt;original_model = section-&gt;original_model;</div><div class='del'>-	newsec-&gt;manager = section-&gt;manager;</div><div class='del'>-	newsec-&gt;changed_handler = gtk_signal_connect (GTK_OBJECT (newsec-&gt;model),</div><div class='del'>-						      "changed",</div><div class='del'>-						      GTK_SIGNAL_FUNC (section_model_changed_cb),</div><div class='del'>-						      newsec);</div><div class='del'>-</div><div class='del'>-	if (newsec-&gt;model)</div><div class='del'>-		gtk_object_ref(GTK_OBJECT(newsec-&gt;model));</div><div class='del'>-	if (newsec-&gt;original_model)</div><div class='del'>-		gtk_object_ref(GTK_OBJECT(newsec-&gt;original_model));</div><div class='del'>-	</div><div class='del'>-	return newsec;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-section_free(void *sec, void *data)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManagerSection *section = sec;</div><div class='del'>-	if (section-&gt;manager &amp;&amp; section-&gt;changed_handler) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (section-&gt;model), section-&gt;changed_handler);</div><div class='del'>-	}</div><div class='del'>-	g_free(section-&gt;id);</div><div class='del'>-	g_free(section-&gt;title);</div><div class='del'>-	if (section-&gt;model)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT(section-&gt;model));</div><div class='del'>-	if (section-&gt;original_model)</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (section-&gt;original_model));</div><div class='del'>-</div><div class='del'>-	g_free(section);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-entry_copy(const void *ent, void *data)</div><div class='del'>-{</div><div class='del'>-	const ESelectNamesManagerEntry *entry = ent;</div><div class='del'>-	ESelectNamesManagerEntry *newent;</div><div class='del'>-	</div><div class='del'>-	newent = g_new(ESelectNamesManagerEntry, 1);</div><div class='del'>-	newent-&gt;id = g_strdup(entry-&gt;id);</div><div class='del'>-	newent-&gt;entry = entry-&gt;entry;</div><div class='del'>-	if (newent-&gt;entry)</div><div class='del'>-		gtk_object_ref(GTK_OBJECT(newent-&gt;entry));</div><div class='del'>-	return newent;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-entry_free(void *ent, void *data)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManagerEntry *entry = ent;</div><div class='del'>-	g_free(entry-&gt;id);</div><div class='del'>-	if (entry-&gt;entry)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(entry-&gt;entry));</div><div class='del'>-	g_free(entry);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_manager_init:</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_select_names_manager_init (ESelectNamesManager *manager)</div><div class='del'>-{</div><div class='del'>-	manager-&gt;sections = e_list_new(section_copy, section_free, manager);</div><div class='del'>-	manager-&gt;entries  = e_list_new(entry_copy, entry_free, manager);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-section_model_changed_cb (ESelectNamesModel *model, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManagerSection *section = closure;</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (section-&gt;manager),</div><div class='del'>-			 e_select_names_manager_signals[CHANGED],</div><div class='del'>-			 section-&gt;id,</div><div class='del'>-			 FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-section_model_working_copy_changed_cb (ESelectNamesModel *model, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManagerSection *section = closure;</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (section-&gt;manager),</div><div class='del'>-			 e_select_names_manager_signals[CHANGED],</div><div class='del'>-			 section-&gt;id,</div><div class='del'>-			 TRUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_manager_add_section (ESelectNamesManager *manager,</div><div class='del'>-				    const char *id,</div><div class='del'>-				    const char *title)</div><div class='del'>-{</div><div class='del'>-	e_select_names_manager_add_section_with_limit (manager, id, title, -1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_manager_add_section_with_limit (ESelectNamesManager *manager,</div><div class='del'>-					       const char *id,</div><div class='del'>-					       const char *title,</div><div class='del'>-					       gint limit)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesManagerSection *section;</div><div class='del'>-	</div><div class='del'>-	section = g_new(ESelectNamesManagerSection, 1);</div><div class='del'>-	section-&gt;id = g_strdup(id);</div><div class='del'>-	section-&gt;title = g_strdup(title);</div><div class='del'>-</div><div class='del'>-	section-&gt;model = e_select_names_model_new();</div><div class='del'>-	e_select_names_model_set_limit (section-&gt;model, limit);</div><div class='del'>-</div><div class='del'>-	section-&gt;original_model = NULL;</div><div class='del'>-</div><div class='del'>-	section-&gt;manager = manager;</div><div class='del'>-</div><div class='del'>-	section-&gt;changed_handler = gtk_signal_connect (GTK_OBJECT (section-&gt;model),</div><div class='del'>-						       "changed",</div><div class='del'>-						       GTK_SIGNAL_FUNC (section_model_changed_cb),</div><div class='del'>-						       section);</div><div class='del'>-</div><div class='del'>-	e_list_append(manager-&gt;sections, section);</div><div class='del'>-	section_free(section, manager);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ESelectNamesModel *</div><div class='del'>-e_select_names_manager_get_source (ESelectNamesManager *manager, const char *id)</div><div class='del'>-{</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (manager &amp;&amp; E_IS_SELECT_NAMES_MANAGER (manager), NULL);</div><div class='del'>-	g_return_val_if_fail (id, NULL);</div><div class='del'>-</div><div class='del'>-	iterator = e_list_get_iterator (manager-&gt;sections);</div><div class='del'>-	for (e_iterator_reset (iterator); e_iterator_is_valid (iterator); e_iterator_next (iterator)) {</div><div class='del'>-		const ESelectNamesManagerSection *section = e_iterator_get (iterator);</div><div class='del'>-		if (!strcmp (section-&gt;id, id)) {</div><div class='del'>-			return section-&gt;model;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-entry_destroyed(EEntry *entry, ESelectNamesManager *manager)</div><div class='del'>-{</div><div class='del'>-	if(!GTK_OBJECT_DESTROYED(manager)) {</div><div class='del'>-		EIterator *iterator = e_list_get_iterator(manager-&gt;entries);</div><div class='del'>-		for (e_iterator_reset(iterator); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			const ESelectNamesManagerEntry *this_entry = e_iterator_get(iterator);</div><div class='del'>-			if(entry == this_entry-&gt;entry) {</div><div class='del'>-				e_iterator_delete(iterator);</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(manager));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-completion_handler (EEntry *entry, ECompletionMatch *match)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *snm;</div><div class='del'>-	EDestination *dest;</div><div class='del'>-	gint i, pos, start_pos, len;</div><div class='del'>-</div><div class='del'>-	if (match == NULL || match-&gt;user_data == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	snm = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (entry), "select_names_model"));</div><div class='del'>-	dest = E_DESTINATION (match-&gt;user_data);</div><div class='del'>-</div><div class='del'>-	/* Sometimes I really long for garbage collection.  Reference</div><div class='del'>-           counting makes you feel 31337, but sometimes it is just a</div><div class='del'>-           bitch. */</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	pos = e_entry_get_position (entry);</div><div class='del'>-	e_select_names_model_text_pos (snm, pos, &amp;i, NULL, NULL);</div><div class='del'>-	e_select_names_model_replace (snm, i, dest);</div><div class='del'>-	e_select_names_model_name_pos (snm, i, &amp;start_pos, &amp;len);</div><div class='del'>-	e_entry_set_position (entry, start_pos+len);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-popup_cb (EEntry *entry, GdkEventButton *ev, gint pos, ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	e_select_names_popup (model, ev, pos);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-focus_in_cb (GtkWidget *w, GdkEventFocus *ev, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EEntry *entry = E_ENTRY (user_data);</div><div class='del'>-	ESelectNamesModel *model = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (entry), "select_names_model"));</div><div class='del'>-</div><div class='del'>-	e_select_names_model_cancel_cardify_all (model);</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-focus_out_cb (GtkWidget *w, GdkEventFocus *ev, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	EEntry *entry = E_ENTRY (user_data);</div><div class='del'>-	ESelectNamesModel *model = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (entry), "select_names_model"));</div><div class='del'>-	ESelectNamesManager *manager = E_SELECT_NAMES_MANAGER (gtk_object_get_data (GTK_OBJECT (entry), "select_names_manager"));</div><div class='del'>-</div><div class='del'>-	if (!e_entry_completion_popup_is_visible (entry))</div><div class='del'>-		e_select_names_model_cardify_all (model, manager-&gt;completion_book, 100);</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-completion_popup_cb (EEntry *entry, gint visible, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model = E_SELECT_NAMES_MODEL (gtk_object_get_data (GTK_OBJECT (entry), "select_names_model"));</div><div class='del'>-	ESelectNamesManager *manager = E_SELECT_NAMES_MANAGER (gtk_object_get_data (GTK_OBJECT (entry), "select_names_manager"));</div><div class='del'>-</div><div class='del'>-	if (!visible &amp;&amp; !GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (entry-&gt;canvas)))</div><div class='del'>-		e_select_names_model_cardify_all (model, manager-&gt;completion_book, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_select_names_manager_create_entry (ESelectNamesManager *manager, const char *id)</div><div class='del'>-{</div><div class='del'>-	ETextModel *model;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-	iterator = e_list_get_iterator(manager-&gt;sections);</div><div class='del'>-	for (e_iterator_reset(iterator); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-		const ESelectNamesManagerSection *section = e_iterator_get(iterator);</div><div class='del'>-		if (!strcmp(section-&gt;id, id)) {</div><div class='del'>-			ESelectNamesManagerEntry *entry;</div><div class='del'>-			EEntry *eentry;</div><div class='del'>-			ECompletion *comp;</div><div class='del'>-</div><div class='del'>-			eentry = E_ENTRY (e_entry_new ());</div><div class='del'>-			gtk_object_set_data (GTK_OBJECT (eentry), "select_names_model", section-&gt;model);</div><div class='del'>-			gtk_object_set_data (GTK_OBJECT (eentry), "select_names_manager", manager);</div><div class='del'>-</div><div class='del'>-			gtk_signal_connect (GTK_OBJECT (eentry),</div><div class='del'>-					    "popup",</div><div class='del'>-					    GTK_SIGNAL_FUNC (popup_cb),</div><div class='del'>-					    section-&gt;model);</div><div class='del'>-			</div><div class='del'>-			gtk_signal_connect (GTK_OBJECT (eentry-&gt;canvas),</div><div class='del'>-					    "focus_in_event",</div><div class='del'>-					    GTK_SIGNAL_FUNC (focus_in_cb),</div><div class='del'>-					    eentry);</div><div class='del'>-			gtk_signal_connect (GTK_OBJECT (eentry-&gt;canvas),</div><div class='del'>-					    "focus_out_event",</div><div class='del'>-					    GTK_SIGNAL_FUNC (focus_out_cb),</div><div class='del'>-					    eentry);</div><div class='del'>-			gtk_signal_connect (GTK_OBJECT (eentry),</div><div class='del'>-					    "completion_popup",</div><div class='del'>-					    GTK_SIGNAL_FUNC (completion_popup_cb),</div><div class='del'>-					    NULL);</div><div class='del'>-</div><div class='del'>-			entry = g_new (ESelectNamesManagerEntry, 1);</div><div class='del'>-			entry-&gt;entry = eentry;</div><div class='del'>-			entry-&gt;id = (char *)id;</div><div class='del'>-</div><div class='del'>-			model = e_select_names_text_model_new (section-&gt;model);</div><div class='del'>-			e_list_append (manager-&gt;entries, entry);</div><div class='del'>-			g_free(entry);</div><div class='del'>-</div><div class='del'>-			comp = e_select_names_completion_new (manager-&gt;completion_book, section-&gt;model);</div><div class='del'>-			e_entry_enable_completion_full (eentry, comp, 50, completion_handler);</div><div class='del'>-</div><div class='del'>-			gtk_object_set_data (GTK_OBJECT (eentry), "completion_handler", comp);</div><div class='del'>-</div><div class='del'>-			gtk_object_set(GTK_OBJECT(eentry),</div><div class='del'>-				       "model", model,</div><div class='del'>-				       "editable", TRUE,</div><div class='del'>-				       "use_ellipsis", TRUE,</div><div class='del'>-				       "allow_newlines", FALSE,</div><div class='del'>-				       NULL);</div><div class='del'>-			gtk_signal_connect(GTK_OBJECT(eentry), "destroy",</div><div class='del'>-					   GTK_SIGNAL_FUNC(entry_destroyed), manager);</div><div class='del'>-			gtk_object_ref(GTK_OBJECT(manager));</div><div class='del'>-			return GTK_WIDGET(eentry);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_clicked(ESelectNames *dialog, gint button, ESelectNamesManager *manager)</div><div class='del'>-{</div><div class='del'>-	gnome_dialog_close(GNOME_DIALOG(dialog));</div><div class='del'>-</div><div class='del'>-	switch(button) {</div><div class='del'>-	case 0:</div><div class='del'>-		/* We don't need to do anything if they click on OK */</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case 1: {</div><div class='del'>-		EList *list = manager-&gt;sections;</div><div class='del'>-		EIterator *iterator = e_list_get_iterator(list);</div><div class='del'>-</div><div class='del'>-		for (e_iterator_reset(iterator); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			ESelectNamesManagerSection *section = (void *) e_iterator_get(iterator);</div><div class='del'>-			e_select_names_model_overwrite_copy (section-&gt;model, section-&gt;original_model);</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(iterator));</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_manager_activate_dialog (ESelectNamesManager *manager,</div><div class='del'>-					const char *id)</div><div class='del'>-{</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-	</div><div class='del'>-	if (manager-&gt;names) {</div><div class='del'>-		g_assert (GTK_WIDGET_REALIZED (GTK_WIDGET (manager-&gt;names)));</div><div class='del'>-		e_select_names_set_default(manager-&gt;names, id);</div><div class='del'>-		gdk_window_show (GTK_WIDGET (manager-&gt;names)-&gt;window);</div><div class='del'>-		gdk_window_raise (GTK_WIDGET (manager-&gt;names)-&gt;window);</div><div class='del'>-	} else {</div><div class='del'>-		manager-&gt;names = E_SELECT_NAMES (e_select_names_new ());</div><div class='del'>-</div><div class='del'>-		iterator = e_list_get_iterator(manager-&gt;sections);</div><div class='del'>-		for (e_iterator_reset(iterator); e_iterator_is_valid(iterator); e_iterator_next(iterator)) {</div><div class='del'>-			ESelectNamesManagerSection *section = (ESelectNamesManagerSection *) e_iterator_get(iterator);</div><div class='del'>-			if (section-&gt;original_model != NULL)</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (section-&gt;original_model));</div><div class='del'>-			section-&gt;original_model = e_select_names_model_duplicate (section-&gt;model);</div><div class='del'>-			e_select_names_add_section (manager-&gt;names, section-&gt;id, section-&gt;title, section-&gt;model);</div><div class='del'>-			gtk_signal_connect (GTK_OBJECT (section-&gt;model),</div><div class='del'>-					    "changed",</div><div class='del'>-					    GTK_SIGNAL_FUNC (section_model_working_copy_changed_cb),</div><div class='del'>-					    (gpointer)section); /* casting out const to avoid compiler warning */</div><div class='del'>-		}</div><div class='del'>-		e_select_names_set_default(manager-&gt;names, id);</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(manager-&gt;names), "clicked",</div><div class='del'>-				   GTK_SIGNAL_FUNC(e_select_names_clicked), manager);</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(manager-&gt;names), "destroy",</div><div class='del'>-				   GTK_SIGNAL_FUNC(gtk_widget_destroyed), </div><div class='del'>-				   &amp;manager-&gt;names);</div><div class='del'>-		gtk_widget_show(GTK_WIDGET(manager-&gt;names));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-manager.h b/addressbook/gui/component/select-names/e-select-names-manager.h<br/>deleted file mode 100644<br/>index 99f01cb818..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-manager.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-manager.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,62 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors:</div><div class='del'>- *   Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_SELECT_NAMES_MANAGER_H__</div><div class='del'>-#define __E_SELECT_NAMES_MANAGER_H__</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;e-util/e-list.h&gt;</div><div class='del'>-#include "e-select-names.h"</div><div class='del'>-</div><div class='del'>-#define E_TYPE_SELECT_NAMES_MANAGER            (e_select_names_manager_get_type ())</div><div class='del'>-#define E_SELECT_NAMES_MANAGER(obj)            (GTK_CHECK_CAST ((obj), E_TYPE_SELECT_NAMES_MANAGER, ESelectNamesManager))</div><div class='del'>-#define E_SELECT_NAMES_MANAGER_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SELECT_NAMES_MANAGER, ESelectNamesManagerClass))</div><div class='del'>-#define E_IS_SELECT_NAMES_MANAGER(obj)         (GTK_CHECK_TYPE ((obj), E_TYPE_SELECT_NAMES_MANAGER))</div><div class='del'>-#define E_IS_SELECT_NAMES_MANAGER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_SELECT_NAMES_MANAGER))</div><div class='del'>-</div><div class='del'>-typedef struct _ESelectNamesManager ESelectNamesManager;</div><div class='del'>-typedef struct _ESelectNamesManagerClass ESelectNamesManagerClass;</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesManager {</div><div class='del'>-	GtkObject object;</div><div class='del'>-	</div><div class='del'>-	EList *sections;</div><div class='del'>-	EList *entries;</div><div class='del'>-</div><div class='del'>-	ESelectNames *names;</div><div class='del'>-</div><div class='del'>-	EBook *completion_book;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesManagerClass {</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	void (*changed) (ESelectNamesManager *, const gchar *section_id, gint changed_working_copy);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-ESelectNamesManager *e_select_names_manager_new                    (void);</div><div class='del'>-void                 e_select_names_manager_add_section            (ESelectNamesManager *manager,</div><div class='del'>-							            const char *id,</div><div class='del'>-							            const char *title);</div><div class='del'>-void                 e_select_names_manager_add_section_with_limit (ESelectNamesManager *manager,</div><div class='del'>-								    const char *id,</div><div class='del'>-								    const char *title,</div><div class='del'>-								    gint limit);</div><div class='del'>-ESelectNamesModel   *e_select_names_manager_get_source             (ESelectNamesManager *manager,</div><div class='del'>-							            const char *id);</div><div class='del'>-GtkWidget           *e_select_names_manager_create_entry           (ESelectNamesManager *manager,</div><div class='del'>-							            const char *id);</div><div class='del'>-void                 e_select_names_manager_activate_dialog        (ESelectNamesManager *manager,</div><div class='del'>-							            const char *id);</div><div class='del'>-</div><div class='del'>-/* Standard Gtk function */			      </div><div class='del'>-GtkType              e_select_names_manager_get_type               (void);</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_SELECT_NAMES_MANAGER_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-model.c b/addressbook/gui/component/select-names/e-select-names-model.c<br/>deleted file mode 100644<br/>index 138b0d73ad..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-model.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-model.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,897 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors: </div><div class='del'>- *   Chris Lahey     &lt;clahey@ximian.com&gt;</div><div class='del'>- *   Jon Trowbidge   &lt;trow@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000, 2001 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmarshal.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card-simple.h"</div><div class='del'>-</div><div class='del'>-#define SEPARATOR ", "</div><div class='del'>-#define SEPLEN    (strlen(SEPARATOR))</div><div class='del'>-</div><div class='del'>-#define MAX_LENGTH 2047</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	E_SELECT_NAMES_MODEL_CHANGED,</div><div class='del'>-	E_SELECT_NAMES_MODEL_RESIZED,</div><div class='del'>-	E_SELECT_NAMES_MODEL_LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static guint e_select_names_model_signals[E_SELECT_NAMES_MODEL_LAST_SIGNAL] = { 0 };</div><div class='del'>-</div><div class='del'>-/* Object argument IDs */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_CARD,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	NAME_DATA_BLANK,</div><div class='del'>-	NAME_DATA_CARD,</div><div class='del'>-	NAME_DATA_STRING</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	NAME_FORMAT_GIVEN_FIRST,</div><div class='del'>-	NAME_FORMAT_FAMILY_FIRST</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesModelPrivate {</div><div class='del'>-	gchar *id;</div><div class='del'>-	gchar *title;</div><div class='del'>-</div><div class='del'>-	GList *data;  /* of EDestination */</div><div class='del'>-	gchar *text;</div><div class='del'>-	gchar *addr_text;</div><div class='del'>-</div><div class='del'>-	gint limit;</div><div class='del'>-</div><div class='del'>-	gint freeze_count;</div><div class='del'>-	gboolean pending_changed;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void e_select_names_model_init (ESelectNamesModel *model);</div><div class='del'>-static void e_select_names_model_class_init (ESelectNamesModelClass *klass);</div><div class='del'>-</div><div class='del'>-static void e_select_names_model_destroy (GtkObject *object);</div><div class='del'>-static void e_select_names_model_set_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_select_names_model_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_select_names_model_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType model_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!model_type) {</div><div class='del'>-		GtkTypeInfo model_info = {</div><div class='del'>-			"ESelectNamesModel",</div><div class='del'>-			sizeof (ESelectNamesModel),</div><div class='del'>-			sizeof (ESelectNamesModelClass),</div><div class='del'>-			(GtkClassInitFunc) e_select_names_model_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_select_names_model_init,</div><div class='del'>-			NULL, /* reserved_1 */</div><div class='del'>-			NULL, /* reserved_2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		model_type = gtk_type_unique (gtk_object_get_type (), &amp;model_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return model_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef void (*GtkSignal_NONE__INT_INT_INT) (GtkObject *object, gint arg1, gint arg2, gint arg3, gpointer user_data);</div><div class='del'>-static void</div><div class='del'>-local_gtk_marshal_NONE__INT_INT_INT (GtkObject    *object, </div><div class='del'>-				     GtkSignalFunc func, </div><div class='del'>-				     gpointer      func_data, </div><div class='del'>-				     GtkArg       *args)</div><div class='del'>-{</div><div class='del'>-	GtkSignal_NONE__INT_INT_INT rfunc;</div><div class='del'>-	rfunc = (GtkSignal_NONE__INT_INT_INT) func;</div><div class='del'>-	(* rfunc) (object,</div><div class='del'>-		   GTK_VALUE_INT(args[0]),</div><div class='del'>-		   GTK_VALUE_INT(args[1]),</div><div class='del'>-		   GTK_VALUE_INT(args[2]),</div><div class='del'>-		   func_data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_model_class_init (ESelectNamesModelClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-	object_class = GTK_OBJECT_CLASS(klass);</div><div class='del'>-</div><div class='del'>-	e_select_names_model_signals[E_SELECT_NAMES_MODEL_CHANGED] =</div><div class='del'>-		gtk_signal_new ("changed",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (ESelectNamesModelClass, changed),</div><div class='del'>-				gtk_marshal_NONE__NONE,</div><div class='del'>-				GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-	e_select_names_model_signals[E_SELECT_NAMES_MODEL_RESIZED] =</div><div class='del'>-		gtk_signal_new ("resized",</div><div class='del'>-				GTK_RUN_LAST,</div><div class='del'>-				object_class-&gt;type,</div><div class='del'>-				GTK_SIGNAL_OFFSET (ESelectNamesModelClass, resized),</div><div class='del'>-				local_gtk_marshal_NONE__INT_INT_INT,</div><div class='del'>-				GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);</div><div class='del'>-</div><div class='del'>-	gtk_object_class_add_signals (object_class, e_select_names_model_signals, E_SELECT_NAMES_MODEL_LAST_SIGNAL);</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("ESelectNamesModel::card",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_CARD);</div><div class='del'>-</div><div class='del'>-	klass-&gt;changed = NULL;</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_select_names_model_destroy;</div><div class='del'>-	object_class-&gt;get_arg = e_select_names_model_get_arg;</div><div class='del'>-	object_class-&gt;set_arg = e_select_names_model_set_arg;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_model_init:</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_select_names_model_init (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	model-&gt;priv = g_new0 (struct _ESelectNamesModelPrivate, 1);</div><div class='del'>-</div><div class='del'>-	model-&gt;priv-&gt;limit = -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_model_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model = E_SELECT_NAMES_MODEL (object);</div><div class='del'>-	</div><div class='del'>-	g_free (model-&gt;priv-&gt;title);</div><div class='del'>-	g_free (model-&gt;priv-&gt;id);</div><div class='del'>-</div><div class='del'>-	g_list_foreach (model-&gt;priv-&gt;data, (GFunc) gtk_object_unref, NULL);</div><div class='del'>-	g_list_free (model-&gt;priv-&gt;data);</div><div class='del'>-</div><div class='del'>-	g_free (model-&gt;priv-&gt;text);</div><div class='del'>-	g_free (model-&gt;priv-&gt;addr_text);</div><div class='del'>-</div><div class='del'>-	g_free (model-&gt;priv);</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* Set_arg handler for the model */</div><div class='del'>-static void</div><div class='del'>-e_select_names_model_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model;</div><div class='del'>-	</div><div class='del'>-	model = E_SELECT_NAMES_MODEL (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Get_arg handler for the model */</div><div class='del'>-static void</div><div class='del'>-e_select_names_model_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model;</div><div class='del'>-</div><div class='del'>-	model = E_SELECT_NAMES_MODEL (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_model_changed (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_free (model-&gt;priv-&gt;text);</div><div class='del'>-	model-&gt;priv-&gt;text = NULL;</div><div class='del'>-	</div><div class='del'>-	g_free (model-&gt;priv-&gt;addr_text);</div><div class='del'>-	model-&gt;priv-&gt;addr_text = NULL;</div><div class='del'>-</div><div class='del'>-	if (model-&gt;priv-&gt;freeze_count &gt; 0) {</div><div class='del'>-		model-&gt;priv-&gt;pending_changed = TRUE;</div><div class='del'>-	} else {</div><div class='del'>-		gtk_signal_emit (GTK_OBJECT(model), e_select_names_model_signals[E_SELECT_NAMES_MODEL_CHANGED]);</div><div class='del'>-		model-&gt;priv-&gt;pending_changed = FALSE;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-destination_changed_proxy (EDestination *dest, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	e_select_names_model_changed (E_SELECT_NAMES_MODEL (closure));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/</div><div class='del'>-</div><div class='del'>-ESelectNamesModel *</div><div class='del'>-e_select_names_model_new (void)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model;</div><div class='del'>-	model = E_SELECT_NAMES_MODEL (gtk_type_new (e_select_names_model_get_type ()));</div><div class='del'>-	return model;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ESelectNamesModel *</div><div class='del'>-e_select_names_model_duplicate (ESelectNamesModel *old)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model = E_SELECT_NAMES_MODEL(gtk_type_new(e_select_names_model_get_type()));</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	model-&gt;priv-&gt;id = g_strdup (old-&gt;priv-&gt;id);</div><div class='del'>-	model-&gt;priv-&gt;title = g_strdup (old-&gt;priv-&gt;title);</div><div class='del'>-	</div><div class='del'>-	for (iter = old-&gt;priv-&gt;data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>-		EDestination *dup = e_destination_copy (E_DESTINATION (iter-&gt;data));</div><div class='del'>-		e_select_names_model_append (model, dup);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	model-&gt;priv-&gt;limit = old-&gt;priv-&gt;limit;</div><div class='del'>-</div><div class='del'>-	return model;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_select_names_model_get_textification (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (model != NULL, NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-</div><div class='del'>-	if (model-&gt;priv-&gt;text == NULL) {</div><div class='del'>-</div><div class='del'>-		if (model-&gt;priv-&gt;data == NULL) {</div><div class='del'>-			</div><div class='del'>-			model-&gt;priv-&gt;text = g_strdup ("");</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-			gchar **strv = g_new0 (gchar *, g_list_length (model-&gt;priv-&gt;data)+1);</div><div class='del'>-			gint i = 0;</div><div class='del'>-			GList *iter = model-&gt;priv-&gt;data;</div><div class='del'>-			</div><div class='del'>-			while (iter) {</div><div class='del'>-				EDestination *dest = E_DESTINATION (iter-&gt;data);</div><div class='del'>-				strv[i] = (gchar *) e_destination_get_textrep (dest);</div><div class='del'>-				++i;</div><div class='del'>-				iter = g_list_next (iter);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			model-&gt;priv-&gt;text = g_strjoinv (SEPARATOR, strv);</div><div class='del'>-</div><div class='del'>-			if (strlen(model-&gt;priv-&gt;text) &gt; MAX_LENGTH) {</div><div class='del'>-				model-&gt;priv-&gt;text[MAX_LENGTH] = 0;</div><div class='del'>-				g_realloc (model-&gt;priv-&gt;text, MAX_LENGTH + 1);</div><div class='del'>-			}</div><div class='del'>-			</div><div class='del'>-			g_free (strv);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return model-&gt;priv-&gt;text;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_select_names_model_get_address_text (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (model != NULL, NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-</div><div class='del'>-	if (model-&gt;priv-&gt;addr_text == NULL) {</div><div class='del'>-</div><div class='del'>-		if (model-&gt;priv-&gt;data == NULL) {</div><div class='del'>-</div><div class='del'>-			model-&gt;priv-&gt;addr_text = g_strdup ("");</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-			gchar **strv = g_new0 (gchar *, g_list_length (model-&gt;priv-&gt;data)+1);</div><div class='del'>-			gint i = 0;</div><div class='del'>-			GList *iter = model-&gt;priv-&gt;data;</div><div class='del'>-</div><div class='del'>-			while (iter) {</div><div class='del'>-				EDestination *dest = E_DESTINATION (iter-&gt;data);</div><div class='del'>-				strv[i] = (gchar *) e_destination_get_address (dest);</div><div class='del'>-				if (strv[i])</div><div class='del'>-					++i;</div><div class='del'>-				iter = g_list_next (iter);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			model-&gt;priv-&gt;addr_text = g_strjoinv (SEPARATOR, strv);</div><div class='del'>-</div><div class='del'>-			g_free (strv);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return model-&gt;priv-&gt;addr_text;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gint</div><div class='del'>-e_select_names_model_count (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (model != NULL, 0);</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), 0);</div><div class='del'>-</div><div class='del'>-	return g_list_length (model-&gt;priv-&gt;data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gint</div><div class='del'>-e_select_names_model_get_limit (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (model != NULL, 0);</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), 0);</div><div class='del'>-</div><div class='del'>-	return model-&gt;priv-&gt;limit;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_set_limit (ESelectNamesModel *model, gint limit)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (model != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>-	model-&gt;priv-&gt;limit = MAX (limit, -1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_select_names_model_at_limit (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (model != NULL, TRUE);</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), TRUE);</div><div class='del'>-</div><div class='del'>-	return model-&gt;priv-&gt;limit &gt;= 0 &amp;&amp; g_list_length (model-&gt;priv-&gt;data) &gt;= model-&gt;priv-&gt;limit;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const EDestination *</div><div class='del'>-e_select_names_model_get_destination (ESelectNamesModel *model, gint index)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (model &amp;&amp; E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-	g_return_val_if_fail (0 &lt;= index, NULL);</div><div class='del'>-	g_return_val_if_fail (index &lt; g_list_length (model-&gt;priv-&gt;data), NULL);</div><div class='del'>-</div><div class='del'>-	return E_DESTINATION (g_list_nth_data (model-&gt;priv-&gt;data, index));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gchar *</div><div class='del'>-e_select_names_model_export_destinationv (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	EDestination **destv;</div><div class='del'>-	gchar *str;</div><div class='del'>-	gint i, len = 0;</div><div class='del'>-	GList *j;</div><div class='del'>-	g_return_val_if_fail (model &amp;&amp; E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-</div><div class='del'>-	len = g_list_length (model-&gt;priv-&gt;data);</div><div class='del'>-	destv = g_new0 (EDestination *, len+1);</div><div class='del'>-	</div><div class='del'>-	for (i=0, j = model-&gt;priv-&gt;data; j != NULL; j = g_list_next (j)) {</div><div class='del'>-		EDestination *dest = E_DESTINATION (j-&gt;data);</div><div class='del'>-</div><div class='del'>-		if (dest)</div><div class='del'>-			destv[i++] = dest;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	str = e_destination_exportv (destv);</div><div class='del'>-	g_free (destv);</div><div class='del'>-</div><div class='del'>-	return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static</div><div class='del'>-void send_changed (EDestination *dest, ECard *card, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model = closure;</div><div class='del'>-	e_select_names_model_changed (model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_import_destinationv (ESelectNamesModel *model,</div><div class='del'>-					  gchar *destinationv)</div><div class='del'>-{</div><div class='del'>-	EDestination **destv;</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model &amp;&amp; E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>-	destv = e_destination_importv (destinationv);</div><div class='del'>-</div><div class='del'>-	e_select_names_model_delete_all (model);</div><div class='del'>-</div><div class='del'>-	if (destv == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	for (i = 0; destv[i]; i++) {</div><div class='del'>-		e_destination_use_card (destv[i], send_changed, model);</div><div class='del'>-		e_select_names_model_append (model, destv[i]);</div><div class='del'>-	}</div><div class='del'>-	g_free (destv);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ECard *</div><div class='del'>-e_select_names_model_get_card (ESelectNamesModel *model, gint index)</div><div class='del'>-{</div><div class='del'>-	const EDestination *dest;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (model &amp;&amp; E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-	g_return_val_if_fail (0 &lt;= index, NULL);</div><div class='del'>-	g_return_val_if_fail (index &lt; g_list_length (model-&gt;priv-&gt;data), NULL);</div><div class='del'>-</div><div class='del'>-	dest = e_select_names_model_get_destination (model, index);</div><div class='del'>-	return dest ? e_destination_get_card (dest) : NULL;</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-const gchar *</div><div class='del'>-e_select_names_model_get_string (ESelectNamesModel *model, gint index)</div><div class='del'>-{</div><div class='del'>-	const EDestination *dest;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (model &amp;&amp; E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-	g_return_val_if_fail (0 &lt;= index, NULL);</div><div class='del'>-	g_return_val_if_fail (index &lt; g_list_length (model-&gt;priv-&gt;data), NULL);</div><div class='del'>-</div><div class='del'>-	dest = e_select_names_model_get_destination (model, index);</div><div class='del'>-	</div><div class='del'>-	return dest ? e_destination_get_textrep (dest) : "";</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-connect_destination (ESelectNamesModel *model, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dest),</div><div class='del'>-			    "changed",</div><div class='del'>-			    destination_changed_proxy,</div><div class='del'>-			    model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-disconnect_destination (ESelectNamesModel *model, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_disconnect_by_func (GTK_OBJECT (dest), destination_changed_proxy, model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_select_names_model_contains (ESelectNamesModel *model, const EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), FALSE);</div><div class='del'>-	g_return_val_if_fail (E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>-	for (iter = model-&gt;priv-&gt;data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>-		if (iter-&gt;data != NULL &amp;&amp; e_destination_equal (dest, E_DESTINATION (iter-&gt;data)))</div><div class='del'>-			return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_insert (ESelectNamesModel *model, gint index, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (model != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (0 &lt;= index &amp;&amp; index &lt;= g_list_length (model-&gt;priv-&gt;data));</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	if (e_select_names_model_at_limit (model)) {</div><div class='del'>-		/* FIXME: This is bad. */</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	connect_destination (model, dest);</div><div class='del'>-</div><div class='del'>-	model-&gt;priv-&gt;data = g_list_insert (model-&gt;priv-&gt;data, dest, index);</div><div class='del'>-	</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-	gtk_object_sink (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	e_select_names_model_changed (model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_append (ESelectNamesModel *model, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (model &amp;&amp; E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	if (e_select_names_model_at_limit (model)) {</div><div class='del'>-		/* FIXME: This is bad. */</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	connect_destination (model, dest);</div><div class='del'>-</div><div class='del'>-	model-&gt;priv-&gt;data = g_list_append (model-&gt;priv-&gt;data, dest);</div><div class='del'>-</div><div class='del'>-	gtk_object_ref  (GTK_OBJECT (dest));</div><div class='del'>-	gtk_object_sink (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	e_select_names_model_changed (model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_replace (ESelectNamesModel *model, gint index, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	GList *node;</div><div class='del'>-	const gchar *new_str, *old_str;</div><div class='del'>-	gint old_strlen=0, new_strlen=0;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (model-&gt;priv-&gt;data == NULL || (0 &lt;= index &amp;&amp; index &lt; g_list_length (model-&gt;priv-&gt;data)));</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_DESTINATION (dest));</div><div class='del'>-	</div><div class='del'>-	new_str = e_destination_get_textrep (dest);</div><div class='del'>-	new_strlen = new_str ? strlen (new_str) : 0;</div><div class='del'>-</div><div class='del'>-	if (model-&gt;priv-&gt;data == NULL) {</div><div class='del'>-</div><div class='del'>-		connect_destination (model, dest);</div><div class='del'>-</div><div class='del'>-		model-&gt;priv-&gt;data = g_list_append (model-&gt;priv-&gt;data, dest);</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-		gtk_object_sink (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-		</div><div class='del'>-		node = g_list_nth (model-&gt;priv-&gt;data, index);</div><div class='del'>-</div><div class='del'>-		if (node-&gt;data != dest) {</div><div class='del'>-</div><div class='del'>-			disconnect_destination (model, E_DESTINATION (node-&gt;data));</div><div class='del'>-			connect_destination (model, dest);</div><div class='del'>-</div><div class='del'>-			old_str = e_destination_get_textrep (E_DESTINATION (node-&gt;data));</div><div class='del'>-			old_strlen = old_str ? strlen (old_str) : 0;</div><div class='del'>-</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (node-&gt;data));</div><div class='del'>-</div><div class='del'>-			node-&gt;data = dest;</div><div class='del'>-			gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-			gtk_object_sink (GTK_OBJECT (dest));</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_select_names_model_changed (model);</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (model), e_select_names_model_signals[E_SELECT_NAMES_MODEL_RESIZED],</div><div class='del'>-			 index, old_strlen, new_strlen);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_delete (ESelectNamesModel *model, gint index)</div><div class='del'>-{</div><div class='del'>-	GList *node;</div><div class='del'>-	EDestination *dest;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (0 &lt;= index &amp;&amp; index &lt; g_list_length (model-&gt;priv-&gt;data));</div><div class='del'>-	</div><div class='del'>-	node = g_list_nth (model-&gt;priv-&gt;data, index);</div><div class='del'>-	dest = E_DESTINATION (node-&gt;data);</div><div class='del'>-</div><div class='del'>-	disconnect_destination (model, dest);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	model-&gt;priv-&gt;data = g_list_remove_link (model-&gt;priv-&gt;data, node);</div><div class='del'>-	g_list_free_1 (node);</div><div class='del'>-</div><div class='del'>-	e_select_names_model_changed (model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_clean (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	GList *iter, *next;</div><div class='del'>-	gboolean changed = FALSE;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model != NULL &amp;&amp; E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>-	iter = model-&gt;priv-&gt;data;</div><div class='del'>-</div><div class='del'>-	while (iter) {</div><div class='del'>-		EDestination *dest;</div><div class='del'>-</div><div class='del'>-		next = g_list_next (iter);</div><div class='del'>-		dest = iter-&gt;data ? E_DESTINATION (iter-&gt;data) : NULL;</div><div class='del'>-</div><div class='del'>-		if (dest == NULL || e_destination_is_empty (dest)) {</div><div class='del'>-			if (dest) {</div><div class='del'>-				disconnect_destination (model, dest);</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-			}</div><div class='del'>-			model-&gt;priv-&gt;data = g_list_remove_link (model-&gt;priv-&gt;data, iter);</div><div class='del'>-			g_list_free_1 (iter);</div><div class='del'>-			changed = TRUE;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		iter = next;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (changed)</div><div class='del'>-		e_select_names_model_changed (model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-delete_all_iter (gpointer data, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	disconnect_destination (E_SELECT_NAMES_MODEL (closure), E_DESTINATION (data));</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (data));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_delete_all (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (model != NULL &amp;&amp; E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>-	g_list_foreach (model-&gt;priv-&gt;data, delete_all_iter, model);</div><div class='del'>-	g_list_free (model-&gt;priv-&gt;data);</div><div class='del'>-	model-&gt;priv-&gt;data = NULL;</div><div class='del'>-</div><div class='del'>-	e_select_names_model_changed (model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_overwrite_copy (ESelectNamesModel *dest, ESelectNamesModel *src)</div><div class='del'>-{</div><div class='del'>-	gint i, len;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (dest &amp;&amp; E_IS_SELECT_NAMES_MODEL (dest));</div><div class='del'>-	g_return_if_fail (src &amp;&amp; E_IS_SELECT_NAMES_MODEL (src));</div><div class='del'>-</div><div class='del'>-	if (src == dest)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	e_select_names_model_delete_all (dest);</div><div class='del'>-	len = e_select_names_model_count (src);</div><div class='del'>-	for (i = 0; i &lt; len; ++i) {</div><div class='del'>-		const EDestination *d = e_select_names_model_get_destination (src, i);</div><div class='del'>-		if (d)</div><div class='del'>-			e_select_names_model_append (dest, e_destination_copy (d));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_merge (ESelectNamesModel *dest, ESelectNamesModel *src)</div><div class='del'>-{</div><div class='del'>-	gint i, len;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (dest));</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (src));</div><div class='del'>-</div><div class='del'>-	if (src == dest)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	len = e_select_names_model_count (src);</div><div class='del'>-	for (i = 0; i &lt; len; ++i) {</div><div class='del'>-		const EDestination *d = e_select_names_model_get_destination (src, i);</div><div class='del'>-		if (d &amp;&amp; !e_select_names_model_contains (dest, d))</div><div class='del'>-			e_select_names_model_append (dest, e_destination_copy (d));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_name_pos (ESelectNamesModel *model, gint index, gint *pos, gint *length)</div><div class='del'>-{</div><div class='del'>-	gint rp = 0, i, len = 0;</div><div class='del'>-	GList *iter;</div><div class='del'>-	const gchar *str;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>-	i = 0;</div><div class='del'>-	iter = model-&gt;priv-&gt;data;</div><div class='del'>-	while (iter &amp;&amp; i &lt;= index) {</div><div class='del'>-		rp += len + (i &gt; 0 ? SEPLEN : 0);</div><div class='del'>-		str = e_destination_get_textrep (E_DESTINATION (iter-&gt;data));</div><div class='del'>-		len = str ? strlen (str) : 0;</div><div class='del'>-		++i;</div><div class='del'>-		iter = g_list_next (iter);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (i &lt;= index) {</div><div class='del'>-		rp = -1;</div><div class='del'>-		len = 0;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (pos)</div><div class='del'>-		*pos = rp;</div><div class='del'>-	if (length)</div><div class='del'>-		*length = len;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_text_pos (ESelectNamesModel *model, gint pos, gint *index, gint *start_pos, gint *length)</div><div class='del'>-{</div><div class='del'>-	GList *iter;</div><div class='del'>-	const gchar *str;</div><div class='del'>-	gint len = 0, i = 0, sp = 0, adj = 0;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>-	iter = model-&gt;priv-&gt;data;</div><div class='del'>-</div><div class='del'>-	while (iter != NULL) {</div><div class='del'>-		str = e_destination_get_textrep (E_DESTINATION (iter-&gt;data));</div><div class='del'>-		len = str ? strlen (str) : 0;</div><div class='del'>-</div><div class='del'>-		if (sp &lt;= pos &amp;&amp; pos &lt;= sp + len + adj) {</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		sp += len + adj + 1;</div><div class='del'>-		adj = 1;</div><div class='del'>-		++i;</div><div class='del'>-</div><div class='del'>-		iter = g_list_next (iter);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (i != 0)</div><div class='del'>-		++sp; /* skip past "magic space" */</div><div class='del'>-</div><div class='del'>-	if (iter == NULL) {</div><div class='del'>-#if 0</div><div class='del'>-		g_print ("text_pos ended NULL\n");</div><div class='del'>-#endif</div><div class='del'>-		i = -1;</div><div class='del'>-		sp = -1;</div><div class='del'>-		len = 0;</div><div class='del'>-	} else {</div><div class='del'>-#if 0</div><div class='del'>-		g_print ("text_pos got index %d\n", i);</div><div class='del'>-#endif</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (index)</div><div class='del'>-		*index = i;</div><div class='del'>-	if (start_pos)</div><div class='del'>-		*start_pos = sp;</div><div class='del'>-	if (length)</div><div class='del'>-		*length = len;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_cardify (ESelectNamesModel *model, EBook *book, gint index, gint delay)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (book == NULL || E_IS_BOOK (book));</div><div class='del'>-	g_return_if_fail (0 &lt;= index &amp;&amp; index &lt; g_list_length (model-&gt;priv-&gt;data));</div><div class='del'>-</div><div class='del'>-	dest = E_DESTINATION (g_list_nth_data (model-&gt;priv-&gt;data, index));</div><div class='del'>-</div><div class='del'>-	if (!e_destination_is_empty (dest)) {</div><div class='del'>-</div><div class='del'>-		if (delay &gt; 0)</div><div class='del'>-			e_destination_cardify_delayed (dest, book, delay);</div><div class='del'>-		else</div><div class='del'>-			e_destination_cardify (dest, book);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_select_names_model_uncardify (ESelectNamesModel *model, gint index)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest;</div><div class='del'>-	gboolean rv = FALSE;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_SELECT_NAMES_MODEL (model), FALSE);</div><div class='del'>-	g_return_val_if_fail (0 &lt;= index &amp;&amp; index &lt; g_list_length (model-&gt;priv-&gt;data), FALSE);</div><div class='del'>-</div><div class='del'>-	dest = E_DESTINATION (g_list_nth_data (model-&gt;priv-&gt;data, index));</div><div class='del'>-</div><div class='del'>-	if (!e_destination_is_empty (dest)) {</div><div class='del'>-		EDestination *cpy_dest = e_destination_copy (dest);</div><div class='del'>-</div><div class='del'>-		rv = e_destination_uncardify (cpy_dest);</div><div class='del'>-</div><div class='del'>-		if (rv) {</div><div class='del'>-			e_select_names_model_replace (model, index, cpy_dest);</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return rv;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_cancel_cardify (ESelectNamesModel *model, gint index)</div><div class='del'>-{</div><div class='del'>-	EDestination *dest;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (0 &lt;= index &amp;&amp; index &lt; g_list_length (model-&gt;priv-&gt;data));</div><div class='del'>-</div><div class='del'>-	dest = E_DESTINATION (g_list_nth_data (model-&gt;priv-&gt;data, index));</div><div class='del'>-	</div><div class='del'>-	e_destination_cancel_cardify (dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_cardify_all (ESelectNamesModel *model, EBook *book, gint delay)</div><div class='del'>-{</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (book == NULL || E_IS_BOOK (book));</div><div class='del'>-</div><div class='del'>-	for (iter = model-&gt;priv-&gt;data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>-		EDestination *dest = E_DESTINATION (iter-&gt;data);</div><div class='del'>-		if (!e_destination_is_empty (dest)) {</div><div class='del'>-</div><div class='del'>-			if (delay &gt; 0)</div><div class='del'>-				e_destination_cardify_delayed (dest, book, delay);</div><div class='del'>-			else</div><div class='del'>-				e_destination_cardify (dest, book);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_cancel_cardify_all (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	GList *iter;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>-	for (iter = model-&gt;priv-&gt;data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>-		EDestination *dest = E_DESTINATION (iter-&gt;data);</div><div class='del'>-		e_destination_cancel_cardify (dest);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_freeze (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	</div><div class='del'>-	++model-&gt;priv-&gt;freeze_count;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_model_thaw (ESelectNamesModel *model)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (model-&gt;priv-&gt;freeze_count &gt; 0);</div><div class='del'>-</div><div class='del'>-	--model-&gt;priv-&gt;freeze_count;</div><div class='del'>-	if (model-&gt;priv-&gt;pending_changed)</div><div class='del'>-		e_select_names_model_changed (model);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-model.h b/addressbook/gui/component/select-names/e-select-names-model.h<br/>deleted file mode 100644<br/>index b7fa04d6cd..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-model.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-model.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,91 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Authors:</div><div class='del'>- *   Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *   Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000, 2001 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_SELECT_NAMES_MODEL_H__</div><div class='del'>-#define __E_SELECT_NAMES_MODEL_H__</div><div class='del'>-</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;e-util/e-list.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-destination.h&gt;</div><div class='del'>-</div><div class='del'>-#define E_TYPE_SELECT_NAMES_MODEL            (e_select_names_model_get_type ())</div><div class='del'>-#define E_SELECT_NAMES_MODEL(obj)            (GTK_CHECK_CAST ((obj), E_TYPE_SELECT_NAMES_MODEL, ESelectNamesModel))</div><div class='del'>-#define E_SELECT_NAMES_MODEL_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SELECT_NAMES_MODEL, ESelectNamesModelClass))</div><div class='del'>-#define E_IS_SELECT_NAMES_MODEL(obj)         (GTK_CHECK_TYPE ((obj), E_TYPE_SELECT_NAMES_MODEL))</div><div class='del'>-#define E_IS_SELECT_NAMES_MODEL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_SELECT_NAMES_MODEL))</div><div class='del'>-</div><div class='del'>-typedef struct _ESelectNamesModel ESelectNamesModel;</div><div class='del'>-typedef struct _ESelectNamesModelClass ESelectNamesModelClass;</div><div class='del'>-struct _ESelectNamesModelPrivate;</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesModel {</div><div class='del'>-	GtkObject object;</div><div class='del'>-	</div><div class='del'>-	struct _ESelectNamesModelPrivate *priv;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesModelClass {</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	void (*changed) (ESelectNamesModel *model);</div><div class='del'>-	void (*resized) (ESelectNamesModel *model, gint index, gint old_len, gint new_len);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType e_select_names_model_get_type  (void);</div><div class='del'>-</div><div class='del'>-ESelectNamesModel *e_select_names_model_new       (void);</div><div class='del'>-ESelectNamesModel *e_select_names_model_duplicate (ESelectNamesModel *old);</div><div class='del'>-</div><div class='del'>-const gchar  *e_select_names_model_get_textification (ESelectNamesModel *model);</div><div class='del'>-const gchar  *e_select_names_model_get_address_text  (ESelectNamesModel *model);</div><div class='del'>-</div><div class='del'>-gint                e_select_names_model_count               (ESelectNamesModel *model);</div><div class='del'>-gint                e_select_names_model_get_limit           (ESelectNamesModel *model);</div><div class='del'>-void                e_select_names_model_set_limit           (ESelectNamesModel *model, gint limit);</div><div class='del'>-gboolean            e_select_names_model_at_limit            (ESelectNamesModel *model);</div><div class='del'>-</div><div class='del'>-const EDestination *e_select_names_model_get_destination     (ESelectNamesModel *model, gint index);</div><div class='del'>-gchar              *e_select_names_model_export_destinationv (ESelectNamesModel *model);</div><div class='del'>-void                e_select_names_model_import_destinationv (ESelectNamesModel *model,</div><div class='del'>-							      gchar *destinationv);</div><div class='del'>-ECard              *e_select_names_model_get_card            (ESelectNamesModel *model, gint index);</div><div class='del'>-const gchar        *e_select_names_model_get_string          (ESelectNamesModel *model, gint index);</div><div class='del'>-</div><div class='del'>-gboolean      e_select_names_model_contains       (ESelectNamesModel *model, const EDestination *dest);</div><div class='del'>-</div><div class='del'>-void          e_select_names_model_insert         (ESelectNamesModel *model, gint index, EDestination *dest);</div><div class='del'>-void          e_select_names_model_append         (ESelectNamesModel *model, EDestination *dest);</div><div class='del'>-void          e_select_names_model_replace        (ESelectNamesModel *model, gint index, EDestination *dest);</div><div class='del'>-void          e_select_names_model_delete         (ESelectNamesModel *model, gint index);</div><div class='del'>-void          e_select_names_model_delete_all     (ESelectNamesModel *model);</div><div class='del'>-void          e_select_names_model_overwrite_copy (ESelectNamesModel *dest, ESelectNamesModel *src);</div><div class='del'>-void          e_select_names_model_merge          (ESelectNamesModel *dest, ESelectNamesModel *src);</div><div class='del'>-</div><div class='del'>-void          e_select_names_model_clean      (ESelectNamesModel *model);</div><div class='del'>-</div><div class='del'>-void          e_select_names_model_name_pos (ESelectNamesModel *model, gint index, gint *pos, gint *length);</div><div class='del'>-void          e_select_names_model_text_pos (ESelectNamesModel *model, gint pos, gint *index, gint *start_pos, gint *length);</div><div class='del'>-</div><div class='del'>-void          e_select_names_model_cardify            (ESelectNamesModel *model, EBook *book, gint index, gint delay);</div><div class='del'>-gboolean      e_select_names_model_uncardify          (ESelectNamesModel *model, gint index);</div><div class='del'>-void          e_select_names_model_cancel_cardify     (ESelectNamesModel *model, gint index);</div><div class='del'>-void          e_select_names_model_cardify_all        (ESelectNamesModel *model, EBook *book, gint delay);</div><div class='del'>-void          e_select_names_model_cancel_cardify_all (ESelectNamesModel *model);</div><div class='del'>-</div><div class='del'>-/* This is a mildly annoying freeze/thaw pair, in that it only applies to the 'changed'</div><div class='del'>-   signal and not to 'resized'.  This could cause unexpected results in some cases. */</div><div class='del'>-void          e_select_names_model_freeze (ESelectNamesModel *model);</div><div class='del'>-void          e_select_names_model_thaw   (ESelectNamesModel *model);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_SELECT_NAMES_MODEL_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-popup.c b/addressbook/gui/component/select-names/e-select-names-popup.c<br/>deleted file mode 100644<br/>index 4b34ff2d01..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-popup.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-popup.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,562 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-select-names-popup.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkcheckmenuitem.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-app.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-app-helper.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-popup-menu.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-util.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/contact-editor/e-contact-editor.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/contact-editor/e-contact-quick-add.h&gt;</div><div class='del'>-#include "e-addressbook-util.h"</div><div class='del'>-#include "e-select-names-popup.h"</div><div class='del'>-</div><div class='del'>-typedef struct _PopupInfo PopupInfo;</div><div class='del'>-struct _PopupInfo {</div><div class='del'>-	ESelectNamesModel *model;</div><div class='del'>-	const EDestination *dest;</div><div class='del'>-	gint pos;</div><div class='del'>-	gint index;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static PopupInfo *</div><div class='del'>-popup_info_new (ESelectNamesModel *model, const EDestination *dest, gint pos, gint index)</div><div class='del'>-{</div><div class='del'>-	PopupInfo *info = g_new0 (PopupInfo, 1);</div><div class='del'>-	info-&gt;model = model;</div><div class='del'>-	info-&gt;dest = dest;</div><div class='del'>-	info-&gt;pos = pos;</div><div class='del'>-	info-&gt;index = index;</div><div class='del'>-</div><div class='del'>-	if (model)</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (model));</div><div class='del'>-</div><div class='del'>-	if (dest)</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	return info;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-popup_info_free (PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	if (info) {</div><div class='del'>-		</div><div class='del'>-		if (info-&gt;model)</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (info-&gt;model));</div><div class='del'>-</div><div class='del'>-		if (info-&gt;dest)</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (info-&gt;dest));</div><div class='del'>-</div><div class='del'>-		g_free (info);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-popup_info_cleanup (GtkWidget *w, gpointer info)</div><div class='del'>-{</div><div class='del'>-	popup_info_free ((PopupInfo *) info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* You are in a maze of twisty little callbacks, all alike... */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-make_contact_editor_cb (EBook *book, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	if (book) {</div><div class='del'>-		EDestination *dest = E_DESTINATION (user_data);</div><div class='del'>-		ECard *card;</div><div class='del'>-</div><div class='del'>-		card = (ECard *) e_destination_get_card (dest);</div><div class='del'>-		if (e_card_evolution_list (card)) {</div><div class='del'>-			EContactListEditor *ce;</div><div class='del'>-			ce = e_addressbook_show_contact_list_editor (book, card, FALSE, TRUE);</div><div class='del'>-			e_contact_list_editor_raise (ce);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			EContactEditor *ce;</div><div class='del'>-			ce = e_addressbook_show_contact_editor (book, card, FALSE, TRUE);</div><div class='del'>-			e_contact_editor_raise (ce);</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (dest));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-edit_contact_info_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	PopupInfo *info = (PopupInfo *) user_data;</div><div class='del'>-	if (info == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (info-&gt;dest));</div><div class='del'>-	e_book_use_local_address_book (make_contact_editor_cb, (gpointer) info-&gt;dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-change_email_num_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	PopupInfo *info = (PopupInfo *) user_data;</div><div class='del'>-	gint n;</div><div class='del'>-	EDestination *dest;</div><div class='del'>-	</div><div class='del'>-	if (info == NULL) </div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (! GTK_CHECK_MENU_ITEM (w)-&gt;active)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	n = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (w), "number"));</div><div class='del'>-</div><div class='del'>-	if (n != e_destination_get_email_num (info-&gt;dest)) {</div><div class='del'>-		dest = e_destination_new ();</div><div class='del'>-		e_destination_set_card (dest, e_destination_get_card (info-&gt;dest), n);</div><div class='del'>-		e_select_names_model_replace (info-&gt;model, info-&gt;index, dest);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_recipient_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	PopupInfo *info = (PopupInfo *) user_data;</div><div class='del'>-	e_select_names_model_delete (info-&gt;model, info-&gt;index);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_remove_recipient (GnomeUIInfo *uiinfo, PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	uiinfo-&gt;type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo-&gt;label = _("Remove");</div><div class='del'>-	uiinfo-&gt;moreinfo = remove_recipient_cb;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_all_recipients_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	PopupInfo *info = (PopupInfo *) user_data;</div><div class='del'>-	e_select_names_model_delete_all (info-&gt;model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_remove_all_recipients (GnomeUIInfo *uiinfo, PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	uiinfo-&gt;type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo-&gt;label = _("Remove All");</div><div class='del'>-	uiinfo-&gt;moreinfo = remove_all_recipients_cb;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-toggle_html_mail_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	PopupInfo *info = (PopupInfo *) user_data;</div><div class='del'>-	GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM (w);</div><div class='del'>-	const EDestination *dest;</div><div class='del'>-</div><div class='del'>-	if (info == NULL)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	dest = info-&gt;dest;</div><div class='del'>-</div><div class='del'>-	item = GTK_CHECK_MENU_ITEM (item);</div><div class='del'>-	e_destination_set_html_mail_pref ((EDestination *) dest, item-&gt;active);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_html_mail (GnomeUIInfo *uiinfo, PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	uiinfo-&gt;type = GNOME_APP_UI_TOGGLEITEM;</div><div class='del'>-	uiinfo-&gt;label = _("Send HTML Mail?");</div><div class='del'>-	uiinfo-&gt;moreinfo = toggle_html_mail_cb;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-init_html_mail (GnomeUIInfo *uiinfo, PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (uiinfo-&gt;widget),</div><div class='del'>-					e_destination_get_html_mail_pref (info-&gt;dest));</div><div class='del'>-	gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (uiinfo-&gt;widget), TRUE);</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_uiinfo_label (GnomeUIInfo *uiinfo, const gchar *str)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *label;</div><div class='del'>-	gchar *label_txt;</div><div class='del'>-	GList *item_children;</div><div class='del'>-	</div><div class='del'>-	label_txt = e_utf8_to_locale_string (str);</div><div class='del'>-	item_children = gtk_container_children (GTK_CONTAINER (uiinfo-&gt;widget));</div><div class='del'>-	label = item_children-&gt;data;</div><div class='del'>-	g_list_free (item_children);</div><div class='del'>-	gtk_label_set_text (GTK_LABEL (label), label_txt);</div><div class='del'>-	g_free (label_txt);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define ARBITRARY_UIINFO_LIMIT 64</div><div class='del'>-static GtkWidget *</div><div class='del'>-popup_menu_card (PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	GnomeUIInfo uiinfo[ARBITRARY_UIINFO_LIMIT];</div><div class='del'>-	GnomeUIInfo radioinfo[ARBITRARY_UIINFO_LIMIT];</div><div class='del'>-	gboolean using_radio = FALSE;</div><div class='del'>-	ECard *card;</div><div class='del'>-	gint i=0;</div><div class='del'>-	GtkWidget *pop;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-	gint html_toggle;</div><div class='del'>-	gint mail_label = -1;</div><div class='del'>-	const gchar *mail_label_str = NULL;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Build up our GnomeUIInfo array.</div><div class='del'>-	 */</div><div class='del'>-</div><div class='del'>-	memset (uiinfo, 0, sizeof (uiinfo));</div><div class='del'>-	memset (radioinfo, 0, sizeof (radioinfo));</div><div class='del'>-</div><div class='del'>-	card = e_destination_get_card (info-&gt;dest);</div><div class='del'>-</div><div class='del'>-	/* Use an empty label for now, we'll fill it later.</div><div class='del'>-	   If we set uiinfo label to contact name here, gnome_popup_menu_new</div><div class='del'>-	   could screw it up trying make a "translation". */</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = "";</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_SEPARATOR;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	if (card-&gt;email) {</div><div class='del'>-		</div><div class='del'>-		if (e_list_length (card-&gt;email) &gt; 1) {</div><div class='del'>-			gint j = 0;</div><div class='del'>-</div><div class='del'>-			using_radio = TRUE;</div><div class='del'>-</div><div class='del'>-			iterator = e_list_get_iterator (card-&gt;email);</div><div class='del'>-			for (e_iterator_reset (iterator); e_iterator_is_valid (iterator); e_iterator_next (iterator)) {</div><div class='del'>-				gchar *label = (gchar *)e_iterator_get (iterator);</div><div class='del'>-				if (label &amp;&amp; *label) {</div><div class='del'>-					radioinfo[j].label = "";</div><div class='del'>-					radioinfo[j].type = GNOME_APP_UI_ITEM;</div><div class='del'>-					radioinfo[j].moreinfo = change_email_num_cb;</div><div class='del'>-					++j;</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (iterator));</div><div class='del'>-			</div><div class='del'>-			radioinfo[j].type = GNOME_APP_UI_ENDOFINFO;</div><div class='del'>-			</div><div class='del'>-			uiinfo[i].type = GNOME_APP_UI_RADIOITEMS;</div><div class='del'>-			uiinfo[i].moreinfo = radioinfo;</div><div class='del'>-			++i;</div><div class='del'>-			</div><div class='del'>-		} else {</div><div class='del'>-			uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-			uiinfo[i].label = "";</div><div class='del'>-			mail_label_str = e_destination_get_email (info-&gt;dest);</div><div class='del'>-			mail_label = i;</div><div class='del'>-			++i;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		uiinfo[i].type = GNOME_APP_UI_SEPARATOR;</div><div class='del'>-		++i;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	add_html_mail (&amp;(uiinfo[i]), info);</div><div class='del'>-	html_toggle = i;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = N_("Edit Contact Info");</div><div class='del'>-	uiinfo[i].moreinfo = edit_contact_info_cb;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	add_remove_recipient (&amp;(uiinfo[i]), info);</div><div class='del'>-	++i;</div><div class='del'>-	</div><div class='del'>-	add_remove_all_recipients (&amp;(uiinfo[i]), info);</div><div class='del'>-	++i;</div><div class='del'>-		</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ENDOFINFO;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Now do something with it...</div><div class='del'>-	 */</div><div class='del'>-</div><div class='del'>-	pop = gnome_popup_menu_new (uiinfo);</div><div class='del'>-</div><div class='del'>-	init_html_mail (&amp;(uiinfo[html_toggle]), info);</div><div class='del'>-</div><div class='del'>-	/* Properly handle the names &amp; e-mail addresses so that they don't get leaked and so that</div><div class='del'>-	   underscores are interpreted as key accelerators.  This sucks. */</div><div class='del'>-</div><div class='del'>-	set_uiinfo_label (&amp;(uiinfo[0]), e_destination_get_name (info-&gt;dest));</div><div class='del'>-	</div><div class='del'>-	if (mail_label &gt;= 0) {</div><div class='del'>-		set_uiinfo_label (&amp;(uiinfo[mail_label]), e_destination_get_email (info-&gt;dest));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (using_radio) {</div><div class='del'>-		gint n = e_destination_get_email_num (info-&gt;dest);</div><div class='del'>-		gint j = 0;</div><div class='del'>-		iterator = e_list_get_iterator (card-&gt;email);</div><div class='del'>-		for (e_iterator_reset (iterator); e_iterator_is_valid (iterator); e_iterator_next (iterator)) {</div><div class='del'>-			gchar *label = (gchar *)e_iterator_get (iterator);</div><div class='del'>-			if (label &amp;&amp; *label) {</div><div class='del'>-				set_uiinfo_label (&amp;(radioinfo[j]), label);</div><div class='del'>-				</div><div class='del'>-				gtk_object_set_data (GTK_OBJECT (radioinfo[j].widget), "number", GINT_TO_POINTER (j));</div><div class='del'>-</div><div class='del'>-				if (j == n) </div><div class='del'>-					gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (radioinfo[n].widget), TRUE);</div><div class='del'>-				</div><div class='del'>-				++j;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (iterator));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return pop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GtkWidget *</div><div class='del'>-popup_menu_list (PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	GnomeUIInfo uiinfo[ARBITRARY_UIINFO_LIMIT];</div><div class='del'>-	GtkWidget *pop;</div><div class='del'>-	const gchar *str;</div><div class='del'>-	gchar *gs;</div><div class='del'>-	gint i = 0, subcount = 0, max_subcount = 10;</div><div class='del'>-	ECard *card;</div><div class='del'>-	EIterator *iterator;</div><div class='del'>-</div><div class='del'>-	memset (uiinfo, 0, sizeof (uiinfo));</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = "";</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_SEPARATOR;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	card = e_destination_get_card (info-&gt;dest);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;email) {</div><div class='del'>-		</div><div class='del'>-		iterator = e_list_get_iterator (card-&gt;email);</div><div class='del'>-		for (e_iterator_reset (iterator); e_iterator_is_valid (iterator) &amp;&amp; subcount &lt; max_subcount; e_iterator_next (iterator)) {</div><div class='del'>-			gchar *label = (gchar *) e_iterator_get (iterator);</div><div class='del'>-			if (label &amp;&amp; *label) {</div><div class='del'>-				uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-				uiinfo[i].label = "";</div><div class='del'>-				++i;</div><div class='del'>-				++subcount;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		if (e_iterator_is_valid (iterator)) {</div><div class='del'>-			uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-			uiinfo[i].label = "";</div><div class='del'>-			++i;</div><div class='del'>-		}</div><div class='del'>-		</div><div class='del'>-		uiinfo[i].type = GNOME_APP_UI_SEPARATOR;</div><div class='del'>-		++i;</div><div class='del'>-</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (iterator));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = N_("Edit Contact List");</div><div class='del'>-	uiinfo[i].moreinfo = edit_contact_info_cb;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	add_remove_recipient (&amp;(uiinfo[i]), info);</div><div class='del'>-	++i;</div><div class='del'>-	</div><div class='del'>-	add_remove_all_recipients (&amp;(uiinfo[i]), info);</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ENDOFINFO;</div><div class='del'>-</div><div class='del'>-	pop = gnome_popup_menu_new (uiinfo);</div><div class='del'>-</div><div class='del'>-	/* Now set labels properly. */</div><div class='del'>-	</div><div class='del'>-	str = e_destination_get_name (info-&gt;dest);</div><div class='del'>-	if (!(str &amp;&amp; *str))</div><div class='del'>-		str = _("Unnamed Contact List");</div><div class='del'>-	set_uiinfo_label (&amp;(uiinfo[0]), str);</div><div class='del'>-</div><div class='del'>-	if (card-&gt;email) {</div><div class='del'>-		</div><div class='del'>-		iterator = e_list_get_iterator (card-&gt;email);</div><div class='del'>-		i = 2;</div><div class='del'>-		for (e_iterator_reset (iterator); e_iterator_is_valid (iterator) &amp;&amp; subcount &lt; max_subcount; e_iterator_next (iterator)) {</div><div class='del'>-			gchar *label = (gchar *) e_iterator_get (iterator);</div><div class='del'>-			if (label &amp;&amp; *label) {</div><div class='del'>-				EDestination *subdest = e_destination_import (label);</div><div class='del'>-				set_uiinfo_label (&amp;(uiinfo[i]), e_destination_get_address (subdest));</div><div class='del'>-				++i;</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (subdest));</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		if (e_iterator_is_valid (iterator)) {</div><div class='del'>-			gs = g_strdup_printf (N_("(%d not shown)"), e_list_length (card-&gt;email) - max_subcount);</div><div class='del'>-			set_uiinfo_label (&amp;(uiinfo[i]), gs);</div><div class='del'>-			g_free (gs);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (iterator));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	return pop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-quick_add_cb (GtkWidget *w, gpointer user_data)</div><div class='del'>-{</div><div class='del'>-	PopupInfo *info = (PopupInfo *) user_data;</div><div class='del'>-	e_contact_quick_add_free_form (e_destination_get_address (info-&gt;dest), NULL, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GtkWidget *</div><div class='del'>-popup_menu_nocard (PopupInfo *info)</div><div class='del'>-{</div><div class='del'>-	GnomeUIInfo uiinfo[ARBITRARY_UIINFO_LIMIT];</div><div class='del'>-	gint i=0;</div><div class='del'>-	GtkWidget *pop;</div><div class='del'>-	const gchar *str;</div><div class='del'>-	gint html_toggle;</div><div class='del'>-</div><div class='del'>-	memset (uiinfo, 0, sizeof (uiinfo));</div><div class='del'>-</div><div class='del'>-	/* Use an empty label for now, we'll fill it later.</div><div class='del'>-	   If we set uiinfo label to contact name here, gnome_popup_menu_new</div><div class='del'>-	   could screw it up trying make a "translation". */</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = "";</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_SEPARATOR;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	add_html_mail (&amp;(uiinfo[i]), info);</div><div class='del'>-	html_toggle = i;</div><div class='del'>-	++i;</div><div class='del'>-	</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>-	uiinfo[i].label = _("Add to Contacts");</div><div class='del'>-	uiinfo[i].moreinfo = quick_add_cb;</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	add_remove_recipient (&amp;(uiinfo[i]), info);</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	add_remove_all_recipients (&amp;(uiinfo[i]), info);</div><div class='del'>-	++i;</div><div class='del'>-</div><div class='del'>-	uiinfo[i].type = GNOME_APP_UI_ENDOFINFO;</div><div class='del'>-</div><div class='del'>-	pop = gnome_popup_menu_new (uiinfo);</div><div class='del'>-</div><div class='del'>-	init_html_mail (&amp;(uiinfo[html_toggle]), info);</div><div class='del'>-</div><div class='del'>-	/* Now set label of the first item to contact name */</div><div class='del'>-	str = e_destination_get_name (info-&gt;dest);</div><div class='del'>-	if (! (str &amp;&amp; *str))</div><div class='del'>-		str = e_destination_get_email (info-&gt;dest);</div><div class='del'>-	if (! (str &amp;&amp; *str))</div><div class='del'>-		str = _("Unnamed Contact");</div><div class='del'>-	</div><div class='del'>-	set_uiinfo_label (&amp;(uiinfo[0]), str);</div><div class='del'>-	</div><div class='del'>-	return pop;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_popup (ESelectNamesModel *model, GdkEventButton *ev, gint pos)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *popup;</div><div class='del'>-	PopupInfo *info;</div><div class='del'>-	const EDestination *dest;</div><div class='del'>-	ECard *card;</div><div class='del'>-	gint index;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model &amp;&amp; E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-	g_return_if_fail (ev);</div><div class='del'>-	g_return_if_fail (0 &lt;= pos);</div><div class='del'>-</div><div class='del'>-	e_select_names_model_text_pos (model, pos, &amp;index, NULL, NULL);</div><div class='del'>-	if (index &lt; 0 || index &gt;= e_select_names_model_count (model))</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	dest = e_select_names_model_get_destination (model, index);</div><div class='del'>-	if (e_destination_is_empty (dest))</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	card = e_destination_get_card (dest);</div><div class='del'>-</div><div class='del'>-	info = popup_info_new (model, dest, pos, index);</div><div class='del'>-	</div><div class='del'>-	if (e_destination_contains_card (dest)) {</div><div class='del'>-		if (e_destination_is_evolution_list (dest))</div><div class='del'>-			popup = popup_menu_list (info);</div><div class='del'>-		else</div><div class='del'>-			popup = popup_menu_card (info);</div><div class='del'>-	} else {</div><div class='del'>-		popup = popup_menu_nocard (info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (popup) {</div><div class='del'>-		/* Clean up our info item after we've made our selection. */</div><div class='del'>-		gtk_signal_connect (GTK_OBJECT (popup),</div><div class='del'>-				    "selection-done",</div><div class='del'>-				    GTK_SIGNAL_FUNC (popup_info_cleanup),</div><div class='del'>-				    info);</div><div class='del'>-</div><div class='del'>-		gnome_popup_menu_do_popup (popup, NULL, NULL, ev, info);</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-</div><div class='del'>-		popup_info_free (info);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-popup.h b/addressbook/gui/component/select-names/e-select-names-popup.h<br/>deleted file mode 100644<br/>index cc93534181..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-popup.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-popup.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,36 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-select-names-popup.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_SELECT_NAMES_POPUP_H__</div><div class='del'>-#define __E_SELECT_NAMES_POPUP_H__</div><div class='del'>-</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-</div><div class='del'>-void e_select_names_popup (ESelectNamesModel *model, GdkEventButton *ev, gint pos);</div><div class='del'>-</div><div class='del'>-#endif /* __E_SELECT_NAMES_POPUP_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-table-model.c b/addressbook/gui/component/select-names/e-select-names-table-model.c<br/>deleted file mode 100644<br/>index 84c7754020..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-table-model.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-table-model.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,347 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors: </div><div class='del'>- *   Chris Lahey     &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-select-names-table-model.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card-simple.h"</div><div class='del'>-</div><div class='del'>-/* Object argument IDs */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_SOURCE,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void e_select_names_table_model_init       (ESelectNamesTableModel *model);</div><div class='del'>-static void e_select_names_table_model_class_init (ESelectNamesTableModelClass *klass);</div><div class='del'>-</div><div class='del'>-static void e_select_names_table_model_destroy    (GtkObject *object);</div><div class='del'>-static void e_select_names_table_model_set_arg    (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_select_names_table_model_get_arg    (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-</div><div class='del'>-static void e_select_names_table_model_model_changed (ESelectNamesModel *source,</div><div class='del'>-						      ESelectNamesTableModel *model);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_add_source (ESelectNamesTableModel *model,</div><div class='del'>-				       ESelectNamesModel     *source)</div><div class='del'>-{</div><div class='del'>-	model-&gt;source = source;</div><div class='del'>-	if (model-&gt;source)</div><div class='del'>-		gtk_object_ref(GTK_OBJECT(model-&gt;source));</div><div class='del'>-	model-&gt;source_changed_id = gtk_signal_connect(GTK_OBJECT(model-&gt;source), "changed",</div><div class='del'>-						      GTK_SIGNAL_FUNC(e_select_names_table_model_model_changed),</div><div class='del'>-						      model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_drop_source (ESelectNamesTableModel *model)</div><div class='del'>-{</div><div class='del'>-	if (model-&gt;source_changed_id)</div><div class='del'>-		gtk_signal_disconnect(GTK_OBJECT(model-&gt;source), model-&gt;source_changed_id);</div><div class='del'>-	if (model-&gt;source)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(model-&gt;source));</div><div class='del'>-	model-&gt;source = NULL;</div><div class='del'>-	model-&gt;source_changed_id = 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_table_model_get_type:</div><div class='del'>- * @void: </div><div class='del'>- * </div><div class='del'>- * Registers the &amp;ESelectNamesTableModel class if necessary, and returns the type ID</div><div class='del'>- * associated to it.</div><div class='del'>- * </div><div class='del'>- * Return value: The type ID of the &amp;ESelectNamesTableModel class.</div><div class='del'>- **/</div><div class='del'>-GtkType</div><div class='del'>-e_select_names_table_model_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType model_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!model_type) {</div><div class='del'>-		GtkTypeInfo model_info = {</div><div class='del'>-			"ESelectNamesTableModel",</div><div class='del'>-			sizeof (ESelectNamesTableModel),</div><div class='del'>-			sizeof (ESelectNamesTableModelClass),</div><div class='del'>-			(GtkClassInitFunc) e_select_names_table_model_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_select_names_table_model_init,</div><div class='del'>-			NULL, /* reserved_1 */</div><div class='del'>-			NULL, /* reserved_2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		model_type = gtk_type_unique (e_table_model_get_type (), &amp;model_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return model_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_table_model_new:</div><div class='del'>- * @VCard: a string in vCard format</div><div class='del'>- *</div><div class='del'>- * Returns: a new #ESelectNamesTableModel that wraps the @VCard.</div><div class='del'>- */</div><div class='del'>-ETableModel *</div><div class='del'>-e_select_names_table_model_new (ESelectNamesModel *source)</div><div class='del'>-{</div><div class='del'>-	ETableModel *model = E_TABLE_MODEL(gtk_type_new(e_select_names_table_model_get_type()));</div><div class='del'>-	gtk_object_set(GTK_OBJECT(model),</div><div class='del'>-		       "source", source,</div><div class='del'>-		       NULL);</div><div class='del'>-	return model;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_info (ESelectNamesTableModel *model)</div><div class='del'>-{</div><div class='del'>-	if (model-&gt;source) {</div><div class='del'>-		int count = e_select_names_model_count (model-&gt;source);</div><div class='del'>-		gint i;</div><div class='del'>-</div><div class='del'>-		model-&gt;count = count;</div><div class='del'>-		model-&gt;data = g_new(ESelectNamesTableModelData, count);</div><div class='del'>-</div><div class='del'>-		for (i = 0; i &lt; count; ++i) {</div><div class='del'>-			const EDestination *dest = e_select_names_model_get_destination (model-&gt;source, i);</div><div class='del'>-			ECard *card = dest ? e_destination_get_card (dest) : NULL;</div><div class='del'>-</div><div class='del'>-			if (card) {</div><div class='del'>-				ECardSimple *simple = e_card_simple_new(card);</div><div class='del'>-				model-&gt;data[i].name =  e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_NAME_OR_ORG);</div><div class='del'>-				if (model-&gt;data[i].name == 0)</div><div class='del'>-					model-&gt;data[i].name = g_strdup("");</div><div class='del'>-				model-&gt;data[i].email = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_EMAIL);</div><div class='del'>-				if (model-&gt;data[i].email == 0)</div><div class='del'>-					model-&gt;data[i].email = g_strdup("");</div><div class='del'>-				gtk_object_unref(GTK_OBJECT(simple));</div><div class='del'>-			} else {</div><div class='del'>-				const gchar *name = e_destination_get_name (dest);</div><div class='del'>-				const gchar *email = e_destination_get_email (dest);</div><div class='del'>-</div><div class='del'>-				model-&gt;data[i].name =  g_strdup (name &amp;&amp; *name ? name : email);</div><div class='del'>-				model-&gt;data[i].email = g_strdup (email);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	} else {</div><div class='del'>-		model-&gt;count = 0;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-clear_info (ESelectNamesTableModel *model)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	for (i = 0; i &lt; model-&gt;count; i++) {</div><div class='del'>-		g_free(model-&gt;data[i].name);</div><div class='del'>-		g_free(model-&gt;data[i].email);</div><div class='del'>-	}</div><div class='del'>-	g_free(model-&gt;data);</div><div class='del'>-	model-&gt;data = NULL;</div><div class='del'>-	model-&gt;count = -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * ESelectNamesTableModel lifecycle management and vcard loading/saving.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTableModel *model;</div><div class='del'>-	</div><div class='del'>-	model = E_SELECT_NAMES_TABLE_MODEL (object);</div><div class='del'>-</div><div class='del'>-	e_select_names_table_model_drop_source (model);</div><div class='del'>-	clear_info(model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the number of columns in our ETableModel. */</div><div class='del'>-static int</div><div class='del'>-e_select_names_table_model_col_count (ETableModel *etc)</div><div class='del'>-{</div><div class='del'>-	return 2;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the number of rows in our ETableModel. */</div><div class='del'>-static int</div><div class='del'>-e_select_names_table_model_row_count (ETableModel *etc)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTableModel *e_select_names_table_model = E_SELECT_NAMES_TABLE_MODEL(etc);</div><div class='del'>-	if (e_select_names_table_model-&gt;count == -1) {</div><div class='del'>-		if (e_select_names_table_model-&gt;source) {</div><div class='del'>-			fill_in_info(e_select_names_table_model);</div><div class='del'>-		} else {</div><div class='del'>-			return 0;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	return e_select_names_table_model-&gt;count;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the value at a particular point in our ETableModel. */</div><div class='del'>-static void *</div><div class='del'>-e_select_names_table_model_value_at (ETableModel *etc, int col, int row)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTableModel *e_select_names_table_model = E_SELECT_NAMES_TABLE_MODEL(etc);</div><div class='del'>-	if (e_select_names_table_model-&gt;data == NULL) {</div><div class='del'>-		fill_in_info(e_select_names_table_model);</div><div class='del'>-	}</div><div class='del'>-	switch (col) {</div><div class='del'>-	case 0:</div><div class='del'>-		if (e_select_names_table_model-&gt;data[row].name == NULL) {</div><div class='del'>-			fill_in_info(e_select_names_table_model);</div><div class='del'>-		}</div><div class='del'>-		return e_select_names_table_model-&gt;data[row].name;</div><div class='del'>-		break;</div><div class='del'>-	case 1:</div><div class='del'>-		if (e_select_names_table_model-&gt;data[row].email == NULL) {</div><div class='del'>-			fill_in_info(e_select_names_table_model);</div><div class='del'>-		}</div><div class='del'>-		return e_select_names_table_model-&gt;data[row].email;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-	return "";</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function sets the value at a particular point in our ETableModel. */</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_set_value_at (ETableModel *etc, int col, int row, const void *val)</div><div class='del'>-{</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns whether a particular cell is editable. */</div><div class='del'>-static gboolean</div><div class='del'>-e_select_names_table_model_is_cell_editable (ETableModel *etc, int col, int row)</div><div class='del'>-{</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function duplicates the value passed to it. */</div><div class='del'>-static void *</div><div class='del'>-e_select_names_table_model_duplicate_value (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return g_strdup(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function frees the value passed to it. */</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_free_value (ETableModel *etc, int col, void *value)</div><div class='del'>-{</div><div class='del'>-	g_free(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-e_select_names_table_model_initialize_value (ETableModel *etc, int col)</div><div class='del'>-{</div><div class='del'>-	return g_strdup("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-e_select_names_table_model_value_is_empty (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return !(value &amp;&amp; *(char *)value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-e_select_names_table_model_value_to_string (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return g_strdup(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_model_changed (ESelectNamesModel     *source,</div><div class='del'>-					  ESelectNamesTableModel *model)</div><div class='del'>-{</div><div class='del'>-	clear_info(model);</div><div class='del'>-	e_table_model_changed(E_TABLE_MODEL(model));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Set_arg handler for the model */</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTableModel *model;</div><div class='del'>-	</div><div class='del'>-	model = E_SELECT_NAMES_TABLE_MODEL (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_SOURCE:</div><div class='del'>-		e_select_names_table_model_drop_source (model);</div><div class='del'>-		e_select_names_table_model_add_source (model, E_SELECT_NAMES_MODEL(GTK_VALUE_OBJECT (*arg)));</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Get_arg handler for the model */</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTableModel *model;</div><div class='del'>-</div><div class='del'>-	model = E_SELECT_NAMES_TABLE_MODEL (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_SOURCE:</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(model-&gt;source);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_table_model_init:</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_init (ESelectNamesTableModel *model)</div><div class='del'>-{</div><div class='del'>-	model-&gt;source = NULL;</div><div class='del'>-	model-&gt;source_changed_id = 0;</div><div class='del'>-</div><div class='del'>-	model-&gt;count = -1;</div><div class='del'>-	model-&gt;data = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_table_model_class_init (ESelectNamesTableModelClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-	ETableModelClass *table_model_class;</div><div class='del'>-</div><div class='del'>-	object_class = GTK_OBJECT_CLASS(klass);</div><div class='del'>-	table_model_class = E_TABLE_MODEL_CLASS(klass);</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("ESelectNamesTableModel::source",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_SOURCE);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_select_names_table_model_destroy;</div><div class='del'>-	object_class-&gt;get_arg = e_select_names_table_model_get_arg;</div><div class='del'>-	object_class-&gt;set_arg = e_select_names_table_model_set_arg;</div><div class='del'>-</div><div class='del'>-	table_model_class-&gt;column_count = e_select_names_table_model_col_count;</div><div class='del'>-	table_model_class-&gt;row_count = e_select_names_table_model_row_count;</div><div class='del'>-	table_model_class-&gt;value_at = e_select_names_table_model_value_at;</div><div class='del'>-	table_model_class-&gt;set_value_at = e_select_names_table_model_set_value_at;</div><div class='del'>-	table_model_class-&gt;is_cell_editable = e_select_names_table_model_is_cell_editable;</div><div class='del'>-	table_model_class-&gt;duplicate_value = e_select_names_table_model_duplicate_value;</div><div class='del'>-	table_model_class-&gt;free_value = e_select_names_table_model_free_value;</div><div class='del'>-	table_model_class-&gt;initialize_value = e_select_names_table_model_initialize_value;</div><div class='del'>-	table_model_class-&gt;value_is_empty = e_select_names_table_model_value_is_empty;</div><div class='del'>-	table_model_class-&gt;value_to_string = e_select_names_table_model_value_to_string;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-table-model.h b/addressbook/gui/component/select-names/e-select-names-table-model.h<br/>deleted file mode 100644<br/>index f917ff17d8..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-table-model.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-table-model.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,51 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors:</div><div class='del'>- *   Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_SELECT_NAMES_TABLE_MODEL_H__</div><div class='del'>-#define __E_SELECT_NAMES_TABLE_MODEL_H__</div><div class='del'>-</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;gal/e-table/e-table-model.h&gt;</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-</div><div class='del'>-#define E_TYPE_SELECT_NAMES_TABLE_MODEL            (e_select_names_table_model_get_type ())</div><div class='del'>-#define E_SELECT_NAMES_TABLE_MODEL(obj)            (GTK_CHECK_CAST ((obj), E_TYPE_SELECT_NAMES_TABLE_MODEL, ESelectNamesTableModel))</div><div class='del'>-#define E_SELECT_NAMES_TABLE_MODEL_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SELECT_NAMES_TABLE_MODEL, ESelectNamesTableModelClass))</div><div class='del'>-#define E_IS_SELECT_NAMES_TABLE_MODEL(obj)         (GTK_CHECK_TYPE ((obj), E_TYPE_SELECT_NAMES_TABLE_MODEL))</div><div class='del'>-#define E_IS_SELECT_NAMES_TABLE_MODEL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_SELECT_NAMES_TABLE_MODEL))</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *name;</div><div class='del'>-	char *email;</div><div class='del'>-} ESelectNamesTableModelData;</div><div class='del'>-</div><div class='del'>-typedef struct _ESelectNamesTableModel ESelectNamesTableModel;</div><div class='del'>-typedef struct _ESelectNamesTableModelClass ESelectNamesTableModelClass;</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesTableModel {</div><div class='del'>-	ETableModel parent;</div><div class='del'>-</div><div class='del'>-	ESelectNamesModel *source;</div><div class='del'>-	int source_changed_id;</div><div class='del'>-</div><div class='del'>-	int count;</div><div class='del'>-	ESelectNamesTableModelData *data; /* This is used as an array. */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesTableModelClass {</div><div class='del'>-	ETableModelClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-ETableModel *e_select_names_table_model_new  (ESelectNamesModel *source);</div><div class='del'>-</div><div class='del'>-/* Standard Gtk function */			      </div><div class='del'>-GtkType     e_select_names_table_model_get_type (void);</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_SELECT_NAMES_TABLE_MODEL_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-text-model.c b/addressbook/gui/component/select-names/e-select-names-text-model.c<br/>deleted file mode 100644<br/>index d2e77d6316..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-text-model.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-text-model.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,739 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors: </div><div class='del'>- *   Chris Lahey    &lt;clahey@ximian.com&gt;</div><div class='del'>- *   Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000, 2001 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gal/e-text/e-text-model-repos.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/gui/contact-editor/e-contact-editor.h&gt;</div><div class='del'>-#include "e-select-names-text-model.h"</div><div class='del'>-#include "e-addressbook-util.h"</div><div class='del'>-</div><div class='del'>-static FILE *out = NULL; /* stream for debugging spew */</div><div class='del'>-</div><div class='del'>-#define SEPLEN 2</div><div class='del'>-</div><div class='del'>-/* Object argument IDs */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_SOURCE,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void e_select_names_text_model_class_init (ESelectNamesTextModelClass *klass);</div><div class='del'>-static void e_select_names_text_model_init       (ESelectNamesTextModel *model);</div><div class='del'>-static void e_select_names_text_model_destroy    (GtkObject *object);</div><div class='del'>-static void e_select_names_text_model_set_arg    (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_select_names_text_model_get_arg    (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-</div><div class='del'>-static void e_select_names_text_model_set_source (ESelectNamesTextModel *model, ESelectNamesModel *source);</div><div class='del'>-</div><div class='del'>-static const gchar *e_select_names_text_model_get_text      (ETextModel *model);</div><div class='del'>-static void         e_select_names_text_model_set_text      (ETextModel *model, const gchar *text);</div><div class='del'>-static void         e_select_names_text_model_insert        (ETextModel *model, gint position, const gchar *text);</div><div class='del'>-static void         e_select_names_text_model_insert_length (ETextModel *model, gint position, const gchar *text, gint length);</div><div class='del'>-static void         e_select_names_text_model_delete        (ETextModel *model, gint position, gint length);</div><div class='del'>-</div><div class='del'>-static gint         e_select_names_text_model_obj_count   (ETextModel *model);</div><div class='del'>-static const gchar *e_select_names_text_model_get_nth_obj (ETextModel *model, gint n, gint *len);</div><div class='del'>-static void         e_select_names_text_model_activate_obj (ETextModel *model, gint n);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-ETextModelClass *parent_class;</div><div class='del'>-#define PARENT_TYPE e_text_model_get_type()</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_select_names_text_model_get_type:</div><div class='del'>- * @void: </div><div class='del'>- * </div><div class='del'>- * Registers the &amp;ESelectNamesTextModel class if necessary, and returns the type ID</div><div class='del'>- * associated to it.</div><div class='del'>- * </div><div class='del'>- * Return value: The type ID of the &amp;ESelectNamesTextModel class.</div><div class='del'>- **/</div><div class='del'>-GtkType</div><div class='del'>-e_select_names_text_model_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType model_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!model_type) {</div><div class='del'>-		GtkTypeInfo model_info = {</div><div class='del'>-			"ESelectNamesTextModel",</div><div class='del'>-			sizeof (ESelectNamesTextModel),</div><div class='del'>-			sizeof (ESelectNamesTextModelClass),</div><div class='del'>-			(GtkClassInitFunc) e_select_names_text_model_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_select_names_text_model_init,</div><div class='del'>-			NULL, /* reserved_1 */</div><div class='del'>-			NULL, /* reserved_2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		model_type = gtk_type_unique (PARENT_TYPE, &amp;model_info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return model_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_class_init (ESelectNamesTextModelClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-	ETextModelClass *text_model_class;</div><div class='del'>-</div><div class='del'>-	object_class = GTK_OBJECT_CLASS(klass);</div><div class='del'>-	text_model_class = E_TEXT_MODEL_CLASS(klass);</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class(PARENT_TYPE);</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("ESelectNamesTextModel::source",</div><div class='del'>-				 GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_SOURCE);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = e_select_names_text_model_destroy;</div><div class='del'>-	object_class-&gt;get_arg = e_select_names_text_model_get_arg;</div><div class='del'>-	object_class-&gt;set_arg = e_select_names_text_model_set_arg;</div><div class='del'>-</div><div class='del'>-	text_model_class-&gt;get_text      = e_select_names_text_model_get_text;</div><div class='del'>-	text_model_class-&gt;set_text      = e_select_names_text_model_set_text;</div><div class='del'>-	text_model_class-&gt;insert        = e_select_names_text_model_insert;</div><div class='del'>-	text_model_class-&gt;insert_length = e_select_names_text_model_insert_length;</div><div class='del'>-	text_model_class-&gt;delete        = e_select_names_text_model_delete;</div><div class='del'>-</div><div class='del'>-	text_model_class-&gt;obj_count     = e_select_names_text_model_obj_count;</div><div class='del'>-	text_model_class-&gt;get_nth_obj   = e_select_names_text_model_get_nth_obj;</div><div class='del'>-	text_model_class-&gt;object_activated = e_select_names_text_model_activate_obj;</div><div class='del'>-</div><div class='del'>-	if (getenv ("EVO_DEBUG_SELECT_NAMES_TEXT_MODEL")) {</div><div class='del'>-		out = fopen ("/tmp/evo-debug-select-names-text-model", "w");</div><div class='del'>-		if (out)</div><div class='del'>-			setvbuf (out, NULL, _IONBF, 0);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-dump_model (ESelectNamesTextModel *text_model)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *model = text_model-&gt;source;</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	if (out == NULL)</div><div class='del'>-		return;</div><div class='del'>-	</div><div class='del'>-	fprintf (out, "\n*** Model State: count=%d\n", e_select_names_model_count (model));</div><div class='del'>-</div><div class='del'>-	for (i=0; i&lt;e_select_names_model_count (model); ++i)</div><div class='del'>-		fprintf (out, "[%d] \"%s\" %s\n", i,</div><div class='del'>-			 e_select_names_model_get_string (model, i),</div><div class='del'>-			 e_select_names_model_get_card (model, i) ? "&lt;card&gt;" : "");</div><div class='del'>-	fprintf (out, "\n");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_init (ESelectNamesTextModel *model)</div><div class='del'>-{</div><div class='del'>-	model-&gt;last_magic_comma_pos = -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTextModel *model;</div><div class='del'>-	</div><div class='del'>-	model = E_SELECT_NAMES_TEXT_MODEL (object);</div><div class='del'>-	</div><div class='del'>-	e_select_names_text_model_set_source (model, NULL);</div><div class='del'>-	</div><div class='del'>-	if (GTK_OBJECT_CLASS(parent_class)-&gt;destroy)</div><div class='del'>-		GTK_OBJECT_CLASS(parent_class)-&gt;destroy(object);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTextModel *model;</div><div class='del'>-	</div><div class='del'>-	model = E_SELECT_NAMES_TEXT_MODEL (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_SOURCE:</div><div class='del'>-		e_select_names_text_model_set_source(model, E_SELECT_NAMES_MODEL (GTK_VALUE_OBJECT (*arg)));</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTextModel *model;</div><div class='del'>-</div><div class='del'>-	model = E_SELECT_NAMES_TEXT_MODEL (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_SOURCE:</div><div class='del'>-		GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(model-&gt;source);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-resize_cb (ESelectNamesModel *source, gint index, gint old_len, gint new_len, ETextModel *model)</div><div class='del'>-{</div><div class='del'>-	EReposDeleteShift repos_del;</div><div class='del'>-	EReposInsertShift repos_ins;</div><div class='del'>-	gint pos;</div><div class='del'>-</div><div class='del'>-	e_select_names_model_name_pos (source, index, &amp;pos, NULL);</div><div class='del'>-</div><div class='del'>-	if (new_len &lt; old_len) {</div><div class='del'>-</div><div class='del'>-		repos_del.model = model;</div><div class='del'>-		repos_del.pos = pos;</div><div class='del'>-		repos_del.len = old_len - new_len;</div><div class='del'>-		e_text_model_reposition (model, e_repos_delete_shift, &amp;repos_del);</div><div class='del'>-</div><div class='del'>-	} else if (old_len &lt; new_len) {</div><div class='del'>-</div><div class='del'>-		repos_ins.model = model;</div><div class='del'>-		repos_ins.pos = pos;</div><div class='del'>-		repos_ins.len = new_len - old_len;</div><div class='del'>-		e_text_model_reposition (model, e_repos_insert_shift, &amp;repos_ins);</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_set_source (ESelectNamesTextModel *model,</div><div class='del'>-				      ESelectNamesModel     *source)</div><div class='del'>-{</div><div class='del'>-	if (source == model-&gt;source)</div><div class='del'>-		return;</div><div class='del'>-	</div><div class='del'>-	if (model-&gt;source) {</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (model-&gt;source), model-&gt;source_changed_id);</div><div class='del'>-		gtk_signal_disconnect (GTK_OBJECT (model-&gt;source), model-&gt;source_resize_id);</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (model-&gt;source));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	model-&gt;source = source;</div><div class='del'>-</div><div class='del'>-	if (model-&gt;source) {</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (model-&gt;source));</div><div class='del'>-		model-&gt;source_changed_id = gtk_signal_connect_object (GTK_OBJECT(model-&gt;source),</div><div class='del'>-								      "changed",</div><div class='del'>-								      GTK_SIGNAL_FUNC (e_text_model_changed),</div><div class='del'>-								      GTK_OBJECT (model));</div><div class='del'>-		model-&gt;source_resize_id = gtk_signal_connect (GTK_OBJECT(model-&gt;source),</div><div class='del'>-							      "resized",</div><div class='del'>-							      GTK_SIGNAL_FUNC (resize_cb),</div><div class='del'>-							      model);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ETextModel *</div><div class='del'>-e_select_names_text_model_new (ESelectNamesModel *source)</div><div class='del'>-{</div><div class='del'>-	ETextModel *model = E_TEXT_MODEL (gtk_type_new (e_select_names_text_model_get_type()));</div><div class='del'>-	e_select_names_text_model_set_source (E_SELECT_NAMES_TEXT_MODEL (model), source);</div><div class='del'>-	return model;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const gchar *</div><div class='del'>-e_select_names_text_model_get_text (ETextModel *model)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTextModel *snm = E_SELECT_NAMES_TEXT_MODEL(model);</div><div class='del'>-</div><div class='del'>-	return snm ? e_select_names_model_get_textification (snm-&gt;source) : "";</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_set_text (ETextModel *model, const gchar *text)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesTextModel *snm = E_SELECT_NAMES_TEXT_MODEL(model);</div><div class='del'>-</div><div class='del'>-	e_select_names_model_delete_all (snm-&gt;source);</div><div class='del'>-	e_select_names_text_model_insert (model, 0, text);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_insert (ETextModel *model, gint position, const gchar *text)</div><div class='del'>-{</div><div class='del'>-	e_select_names_text_model_insert_length (model, position, text, strlen (text));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_insert_length (ETextModel *model, gint pos, const gchar *text, gint length)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *source = E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source;</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (model != NULL);</div><div class='del'>-	g_return_if_fail (E_IS_SELECT_NAMES_TEXT_MODEL (model));</div><div class='del'>-</div><div class='del'>-	if (out) {</div><div class='del'>-		gchar *tmp = g_strndup (text, length);</div><div class='del'>-		fprintf (out, "&gt;&gt; insert  \"%s\" (len=%d) at %d\n", tmp, length, pos);</div><div class='del'>-		g_free (tmp);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	pos = CLAMP (pos, 0, strlen (e_select_names_model_get_textification (source)));</div><div class='del'>-</div><div class='del'>-	/* We want to control all cursor motions ourselves, rather than taking hints</div><div class='del'>-	   from the ESelectNamesModel. */</div><div class='del'>-	gtk_signal_handler_block (GTK_OBJECT (source), E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source_resize_id);</div><div class='del'>-</div><div class='del'>-	/* We handle this one character at a time. */</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; length &amp;&amp; text[i]; ++i) {</div><div class='del'>-		gint index, start_pos, text_len;</div><div class='del'>-		gboolean inside_quote = FALSE;</div><div class='del'>-</div><div class='del'>-		E_SELECT_NAMES_TEXT_MODEL (model)-&gt;last_magic_comma_pos = -1;</div><div class='del'>-</div><div class='del'>-		if (out) </div><div class='del'>-			fprintf (out, "processing [%c]\n", text[i]);</div><div class='del'>-</div><div class='del'>-		e_select_names_model_text_pos (source, pos, &amp;index, &amp;start_pos, &amp;text_len);</div><div class='del'>-</div><div class='del'>-		if (out) </div><div class='del'>-			fprintf (out, "index=%d start_pos=%d text_len=%d\n", index, start_pos, text_len);</div><div class='del'>-</div><div class='del'>-		if (text[i] == ',' &amp;&amp; index &gt;= 0) { /* Is this a quoted or an unquoted comma we are dealing with? */</div><div class='del'>-			const EDestination *dest = e_select_names_model_get_destination (source, index);</div><div class='del'>-			if (dest) {</div><div class='del'>-				const gchar *str = e_destination_get_textrep (dest);</div><div class='del'>-				gint j;</div><div class='del'>-				if (out)</div><div class='del'>-					fprintf (out, "str=%s pos=%d\n", str, pos);</div><div class='del'>-				for (j=0; j&lt;pos-start_pos &amp;&amp; str[j]; ++j)</div><div class='del'>-					if (str[j] == '"') {</div><div class='del'>-						inside_quote = !inside_quote;</div><div class='del'>-						if (out)</div><div class='del'>-							fprintf (out, "flip to %d at %d\n", start_pos+j, inside_quote);</div><div class='del'>-					}</div><div class='del'>-			}</div><div class='del'>-			if (out)</div><div class='del'>-				fprintf (out, inside_quote ? "inside quote\n" : "not inside quote\n");</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-		if (text[i] == ',' &amp;&amp; !inside_quote) {</div><div class='del'>-</div><div class='del'>-			/* This is the case of hitting , first thing in an empty entry */</div><div class='del'>-			if (index == -1) {</div><div class='del'>-				EReposAbsolute repos;</div><div class='del'>-				</div><div class='del'>-				e_select_names_model_insert (source, 0, e_destination_new ());</div><div class='del'>-				e_select_names_model_insert (source, 0, e_destination_new ());</div><div class='del'>-</div><div class='del'>-				repos.model = model;</div><div class='del'>-				repos.pos = -1; /* At end */</div><div class='del'>-				e_text_model_reposition (model, e_repos_absolute, &amp;repos);</div><div class='del'>-				</div><div class='del'>-</div><div class='del'>-			} else if (pos &lt;= start_pos || pos == start_pos + text_len) {</div><div class='del'>-				EReposInsertShift repos;</div><div class='del'>-				gint ins_point = index;</div><div class='del'>-</div><div class='del'>-				if (text_len != 0 &amp;&amp; pos == start_pos + text_len)</div><div class='del'>-					++ins_point;</div><div class='del'>-				</div><div class='del'>-				/* Block adjacent blank cards. */</div><div class='del'>-				if (! ((ins_point &lt; e_select_names_model_count (source) &amp;&amp;</div><div class='del'>-					(e_select_names_model_get_string (source, ins_point) == NULL)) </div><div class='del'>-				       || (ins_point &gt; 0 &amp;&amp; (e_select_names_model_get_string (source, ins_point-1) == NULL)))) {</div><div class='del'>-</div><div class='del'>-					e_select_names_model_insert (source, ins_point, e_destination_new ());</div><div class='del'>-</div><div class='del'>-					repos.model = model;</div><div class='del'>-					repos.pos = pos;</div><div class='del'>-					repos.len = SEPLEN;</div><div class='del'>-					e_text_model_reposition (model, e_repos_insert_shift, &amp;repos);</div><div class='del'>-					pos += SEPLEN;</div><div class='del'>-				} </div><div class='del'>-</div><div class='del'>-			} else {</div><div class='del'>-				EReposInsertShift repos;</div><div class='del'>-				gint offset = MAX (pos - start_pos, 0);</div><div class='del'>-				const gchar *str = e_select_names_model_get_string (source, index);</div><div class='del'>-				gchar *str1 = g_strndup (str, offset);</div><div class='del'>-				gchar *str2 = g_strdup (str+offset);</div><div class='del'>-				EDestination *d1 = e_destination_new (), *d2 = e_destination_new ();</div><div class='del'>-</div><div class='del'>-				e_destination_set_raw (d1, str1);</div><div class='del'>-				e_destination_set_raw (d2, str2);</div><div class='del'>-</div><div class='del'>-				e_select_names_model_replace (source, index, d1);</div><div class='del'>-				e_select_names_model_insert (source, index+1, d2);</div><div class='del'>-</div><div class='del'>-				g_free (str1);</div><div class='del'>-				g_free (str2);</div><div class='del'>-</div><div class='del'>-				repos.model = model;</div><div class='del'>-				repos.pos = pos;</div><div class='del'>-				repos.len = SEPLEN;</div><div class='del'>-				e_text_model_reposition (model, e_repos_insert_shift, &amp;repos);</div><div class='del'>-				pos += SEPLEN;</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			E_SELECT_NAMES_TEXT_MODEL (model)-&gt;last_magic_comma_pos = pos;</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-			EReposInsertShift repos;</div><div class='del'>-			gint offset = MAX (pos - start_pos, 0);</div><div class='del'>-			const gchar *str;</div><div class='del'>-			gchar *new_str = NULL;</div><div class='del'>-			gint this_length = 1;</div><div class='del'>-			gboolean whitespace = isspace ((gint) text[i]);</div><div class='del'>-</div><div class='del'>-			str = index &gt;= 0 ? e_select_names_model_get_string (source, index) : NULL;</div><div class='del'>-			if (str &amp;&amp; *str) {</div><div class='del'>-				if (pos &lt;= start_pos) {</div><div class='del'>-					if (whitespace) {</div><div class='del'>-						/* swallow leading whitespace */</div><div class='del'>-						this_length = 0;</div><div class='del'>-					} else {</div><div class='del'>-						/* Adjust for our "magic white space" */</div><div class='del'>-						new_str = g_strdup_printf("%c%s%s", text[i], pos &lt; start_pos ? " " : "", str);</div><div class='del'>-						if (pos &lt; start_pos)</div><div class='del'>-							++this_length;</div><div class='del'>-					}</div><div class='del'>-				} else {</div><div class='del'>-					new_str = g_strdup_printf ("%.*s%c%s", offset, str, text[i], str + offset);</div><div class='del'>-				}</div><div class='del'>-			} else {</div><div class='del'>-				if (whitespace) {</div><div class='del'>-					/* swallow leading whitespace */</div><div class='del'>-					this_length = 0;</div><div class='del'>-				} else {</div><div class='del'>-					new_str = g_strdup_printf ("%c", text[i]);</div><div class='del'>-				}</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (new_str) {</div><div class='del'>-</div><div class='del'>-				EDestination *dest;</div><div class='del'>-				dest = index &gt;= 0 ? e_destination_copy (e_select_names_model_get_destination (source, index)) : e_destination_new ();</div><div class='del'>-				e_destination_set_raw (dest, new_str);</div><div class='del'>-				e_select_names_model_replace (source, index, dest);</div><div class='del'>-				</div><div class='del'>-				/* e_select_names_model_replace (source, index, dest); */</div><div class='del'>-</div><div class='del'>-				if (this_length &gt; 0) {</div><div class='del'>-					repos.model = model;</div><div class='del'>-					repos.pos = pos;</div><div class='del'>-					repos.len = this_length;</div><div class='del'>-					e_text_model_reposition (model, e_repos_insert_shift, &amp;repos);</div><div class='del'>-</div><div class='del'>-					pos += this_length;</div><div class='del'>-				}</div><div class='del'>-</div><div class='del'>-				g_free (new_str);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	dump_model (E_SELECT_NAMES_TEXT_MODEL (model));</div><div class='del'>-</div><div class='del'>-	gtk_signal_handler_unblock (GTK_OBJECT (source), E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source_resize_id);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_delete (ETextModel *model, gint pos, gint length)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *source = E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source;</div><div class='del'>-	gint index, start_pos, text_len, offset;</div><div class='del'>-		</div><div class='del'>-	if (out) {</div><div class='del'>-		const gchar *str = e_select_names_model_get_textification (source);</div><div class='del'>-		gint i, len;</div><div class='del'>-</div><div class='del'>-		fprintf (out, "&gt;&gt; delete %d at pos %d\n", length, pos);</div><div class='del'>-</div><div class='del'>-		len = strlen (str);</div><div class='del'>-		for (i=0; i&lt;pos &amp;&amp; i&lt;len; ++i)</div><div class='del'>-			fprintf (out, "%c", str[i]);</div><div class='del'>-		fprintf (out, "[");</div><div class='del'>-		for (i=pos; i&lt;pos+length &amp;&amp; i&lt;len; ++i)</div><div class='del'>-			fprintf (out, "%c", str[i]);</div><div class='del'>-		fprintf (out, "]");</div><div class='del'>-		for (i=pos+length; i&lt;len; ++i)</div><div class='del'>-			fprintf (out, "%c", str[i]);</div><div class='del'>-		fprintf (out, "\n");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (length &lt; 0)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (E_SELECT_NAMES_TEXT_MODEL (model)-&gt;last_magic_comma_pos == pos+1</div><div class='del'>-	    &amp;&amp; length == 1) {</div><div class='del'>-		--pos;</div><div class='del'>-		if (pos &gt;= 0)</div><div class='del'>-			++length;</div><div class='del'>-		E_SELECT_NAMES_TEXT_MODEL (model)-&gt;last_magic_comma_pos = -1;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	e_select_names_model_text_pos (source, pos, &amp;index, &amp;start_pos, &amp;text_len);</div><div class='del'>-</div><div class='del'>-	if (out) </div><div class='del'>-		fprintf (out, "index=%d, start_pos=%d, text_len=%d\n", index, start_pos, text_len);</div><div class='del'>-</div><div class='del'>-	/* We want to control all cursor motions ourselves, rather than taking hints</div><div class='del'>-	   from the ESelectNamesModel. */</div><div class='del'>-	gtk_signal_handler_block (GTK_OBJECT (source), E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source_resize_id);</div><div class='del'>-</div><div class='del'>-	/* First, we handle a few tricky cases. */</div><div class='del'>-</div><div class='del'>-	if (pos &lt; start_pos) {</div><div class='del'>-		EReposAbsolute repos;</div><div class='del'>-</div><div class='del'>-		repos.model = model;</div><div class='del'>-		repos.pos = pos;</div><div class='del'>-		e_text_model_reposition (model, e_repos_absolute, &amp;repos);</div><div class='del'>-</div><div class='del'>-		length -= start_pos - pos;</div><div class='del'>-</div><div class='del'>-		if (length &gt; 0)</div><div class='del'>-			e_select_names_text_model_delete (model, start_pos, length);</div><div class='del'>-		goto finished;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (pos == start_pos + text_len) {</div><div class='del'>-		/* We are positioned right at the end of an entry, possibly right in front of a comma. */</div><div class='del'>-</div><div class='del'>-		if (index+1 &lt; e_select_names_model_count (source)) {</div><div class='del'>-			EReposDeleteShift repos;</div><div class='del'>-			EDestination *new_dest;</div><div class='del'>-			const gchar *str1 = e_select_names_model_get_string (source, index);</div><div class='del'>-			const gchar *str2 = e_select_names_model_get_string (source, index+1);</div><div class='del'>-			gchar *new_str;</div><div class='del'>-</div><div class='del'>-			while (str1 &amp;&amp; *str1 &amp;&amp; isspace ((gint) *str1))</div><div class='del'>-				++str1;</div><div class='del'>-			while (str2 &amp;&amp; *str2 &amp;&amp; isspace ((gint) *str2))</div><div class='del'>-				++str2;</div><div class='del'>-			</div><div class='del'>-			if (str1 &amp;&amp; str2)</div><div class='del'>-				new_str = g_strdup_printf ("%s %s", str1, str2);</div><div class='del'>-			else if (str1)</div><div class='del'>-				new_str = g_strdup (str1);</div><div class='del'>-			else if (str2)</div><div class='del'>-				new_str = g_strdup (str2);</div><div class='del'>-			else</div><div class='del'>-				new_str = g_strdup ("");</div><div class='del'>-</div><div class='del'>-			if (out)</div><div class='del'>-				fprintf (out, "joining \"%s\" and \"%s\" to \"%s\"\n", str1, str2, new_str);</div><div class='del'>-</div><div class='del'>-			e_select_names_model_delete (source, index+1);</div><div class='del'>-</div><div class='del'>-			new_dest = e_destination_new ();</div><div class='del'>-			e_destination_set_raw (new_dest, new_str);</div><div class='del'>-			e_select_names_model_replace (source, index, new_dest);</div><div class='del'>-			g_free (new_str);</div><div class='del'>-</div><div class='del'>-			repos.model = model;</div><div class='del'>-			repos.pos = pos;</div><div class='del'>-			repos.len = SEPLEN - 1;</div><div class='del'>-</div><div class='del'>-			e_text_model_reposition (model, e_repos_delete_shift, &amp;repos);</div><div class='del'>-</div><div class='del'>-			if (length &gt; 1)</div><div class='del'>-				e_select_names_text_model_delete (model, pos, length-1);</div><div class='del'>-		} else {</div><div class='del'>-			/* If we are at the end of the last entry (which we must be if we end up in this block),</div><div class='del'>-			   we can just do nothing.  So this else-block is here just to give us a place to</div><div class='del'>-			   put this comment. */</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		goto finished;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (pos + length &gt; start_pos + text_len) {</div><div class='del'>-		/* Uh oh... our changes straddle two objects. */</div><div class='del'>-</div><div class='del'>-		if (pos == start_pos) { /* Delete the whole thing */</div><div class='del'>-			EReposDeleteShift repos;</div><div class='del'>-		</div><div class='del'>-			e_select_names_model_delete (source, index);</div><div class='del'>-</div><div class='del'>-			if (out) </div><div class='del'>-				fprintf (out, "deleted all of %d\n", index);</div><div class='del'>-</div><div class='del'>-			repos.model = model;</div><div class='del'>-			repos.pos = pos;</div><div class='del'>-			repos.len = text_len + SEPLEN;</div><div class='del'>-		</div><div class='del'>-			e_text_model_reposition (model, e_repos_delete_shift, &amp;repos);</div><div class='del'>-</div><div class='del'>-			length -= text_len + SEPLEN;</div><div class='del'>-			if (length &gt; 0)</div><div class='del'>-				e_select_names_text_model_delete (model, pos, length);</div><div class='del'>-</div><div class='del'>-		} else {</div><div class='del'>-			/* Delete right up to the end, and then call e_select_names_text_model_delete again</div><div class='del'>-			   to finish the job. */</div><div class='del'>-			gint len1, len2;</div><div class='del'>-			</div><div class='del'>-			len1 = text_len - (pos - start_pos);</div><div class='del'>-			len2 = length - len1;</div><div class='del'>-</div><div class='del'>-			if (out) </div><div class='del'>-				fprintf (out, "two-stage delete: %d, %d\n", len1, len2);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-			e_select_names_text_model_delete (model, pos, len1);</div><div class='del'>-			e_select_names_text_model_delete (model, pos, len2);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		goto finished;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Our changes are confined to just one entry. */</div><div class='del'>-	if (length &gt; 0) {</div><div class='del'>-		const gchar *str;</div><div class='del'>-		gchar *new_str;</div><div class='del'>-		</div><div class='del'>-		offset = pos - start_pos;</div><div class='del'>-		</div><div class='del'>-		str = e_select_names_model_get_string (source, index);</div><div class='del'>-		new_str = str ? g_strdup_printf ("%.*s%s", offset, str, str + offset + length) : NULL;</div><div class='del'>-		</div><div class='del'>-		if (new_str) {</div><div class='del'>-			EReposDeleteShift repos;</div><div class='del'>-			EDestination *dest;</div><div class='del'>-</div><div class='del'>-			dest = index &gt;= 0 ? e_destination_copy (e_select_names_model_get_destination (source, index)) : e_destination_new ();</div><div class='del'>-			e_destination_set_raw (dest, new_str);</div><div class='del'>-			e_select_names_model_replace (source, index, dest);</div><div class='del'>-			</div><div class='del'>-			if (out)</div><div class='del'>-				fprintf (out, "new_str: \"%s\"\n", new_str);</div><div class='del'>-</div><div class='del'>-			g_free (new_str);</div><div class='del'>-			</div><div class='del'>-			repos.model = model;</div><div class='del'>-			repos.pos = pos;</div><div class='del'>-			repos.len = length;</div><div class='del'>-			</div><div class='del'>-			e_text_model_reposition (model, e_repos_delete_shift, &amp;repos);</div><div class='del'>-			</div><div class='del'>-		} else {</div><div class='del'>-			EReposDeleteShift repos;</div><div class='del'>-			</div><div class='del'>-			e_select_names_model_delete (source, index);</div><div class='del'>-			</div><div class='del'>-			if (out)</div><div class='del'>-				fprintf (out, "deleted %d\n", index);</div><div class='del'>-</div><div class='del'>-			</div><div class='del'>-			repos.model = model;</div><div class='del'>-			repos.pos = pos;</div><div class='del'>-			repos.len = SEPLEN;</div><div class='del'>-			</div><div class='del'>-			e_text_model_reposition (model, e_repos_delete_shift, &amp;repos);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>- finished:</div><div class='del'>-	E_SELECT_NAMES_TEXT_MODEL (model)-&gt;last_magic_comma_pos = -1;</div><div class='del'>-	gtk_signal_handler_unblock (GTK_OBJECT (source), E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source_resize_id);</div><div class='del'>-	dump_model (E_SELECT_NAMES_TEXT_MODEL (model));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-e_select_names_text_model_obj_count (ETextModel *model)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *source = E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source;</div><div class='del'>-	gint i, count;</div><div class='del'>-</div><div class='del'>-	count = i = e_select_names_model_count (source);</div><div class='del'>-	while (i &gt; 0) {</div><div class='del'>-		const EDestination *dest;</div><div class='del'>-		--i;</div><div class='del'>-		dest = e_select_names_model_get_destination (source, i);</div><div class='del'>-		if (e_destination_get_card (dest) == NULL)</div><div class='del'>-			--count;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return count;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-nth_obj_index (ESelectNamesModel *source, gint n)</div><div class='del'>-{</div><div class='del'>-	gint i, N;</div><div class='del'>-</div><div class='del'>-	i = 0;</div><div class='del'>-	N = e_select_names_model_count (source);</div><div class='del'>-	</div><div class='del'>-	do {</div><div class='del'>-		const EDestination *dest = e_select_names_model_get_destination (source, i);</div><div class='del'>-		if (e_destination_get_card (dest))</div><div class='del'>-			--n;</div><div class='del'>-		++i;</div><div class='del'>-	} while (n &gt;= 0 &amp;&amp; i &lt; N);</div><div class='del'>-</div><div class='del'>-	if (i &lt;= N)</div><div class='del'>-		--i;</div><div class='del'>-	else</div><div class='del'>-		i = -1;</div><div class='del'>-</div><div class='del'>-	return i;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const gchar *</div><div class='del'>-e_select_names_text_model_get_nth_obj (ETextModel *model, gint n, gint *len)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *source = E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source;</div><div class='del'>-	const gchar *txt;</div><div class='del'>-	gint i, pos;</div><div class='del'>-</div><div class='del'>-	i = nth_obj_index (source, n);</div><div class='del'>-	if (i &lt; 0)</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	e_select_names_model_name_pos (source, i, &amp;pos,  len);</div><div class='del'>-	if (pos &lt; 0)</div><div class='del'>-		return NULL;</div><div class='del'>-	</div><div class='del'>-	txt = e_select_names_model_get_textification (source);</div><div class='del'>-	return txt + pos;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_text_model_activate_obj (ETextModel *model, gint n)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesModel *source = E_SELECT_NAMES_TEXT_MODEL (model)-&gt;source;</div><div class='del'>-	EContactEditor *contact_editor;</div><div class='del'>-	ECard *card;</div><div class='del'>-	gint i;</div><div class='del'>-</div><div class='del'>-	i = nth_obj_index (source, n);</div><div class='del'>-	g_return_if_fail (i &gt;= 0);</div><div class='del'>-</div><div class='del'>-	card = e_select_names_model_get_card (source, i);</div><div class='del'>-	g_return_if_fail (card != NULL);</div><div class='del'>-	</div><div class='del'>-	/* present read-only contact editor when someone double clicks from here */</div><div class='del'>-	contact_editor = e_addressbook_show_contact_editor (e_card_get_book (card), card, FALSE, FALSE);</div><div class='del'>-	e_contact_editor_raise (contact_editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names-text-model.h b/addressbook/gui/component/select-names/e-select-names-text-model.h<br/>deleted file mode 100644<br/>index fa6ab11a63..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names-text-model.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names-text-model.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,47 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * Authors:</div><div class='del'>- *   Chris Lahey    &lt;clahey@ximian.com&gt;</div><div class='del'>- *   Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2000, 2001 Ximian, Inc.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_SELECT_NAMES_TEXT_MODEL_H__</div><div class='del'>-#define __E_SELECT_NAMES_TEXT_MODEL_H__</div><div class='del'>-</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;gtk/gtkobject.h&gt;</div><div class='del'>-#include &lt;gal/e-text/e-text-model.h&gt;</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-</div><div class='del'>-#define E_TYPE_SELECT_NAMES_TEXT_MODEL            (e_select_names_text_model_get_type ())</div><div class='del'>-#define E_SELECT_NAMES_TEXT_MODEL(obj)            (GTK_CHECK_CAST ((obj), E_TYPE_SELECT_NAMES_TEXT_MODEL, ESelectNamesTextModel))</div><div class='del'>-#define E_SELECT_NAMES_TEXT_MODEL_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SELECT_NAMES_TEXT_MODEL, ESelectNamesTextModelClass))</div><div class='del'>-#define E_IS_SELECT_NAMES_TEXT_MODEL(obj)         (GTK_CHECK_TYPE ((obj), E_TYPE_SELECT_NAMES_TEXT_MODEL))</div><div class='del'>-#define E_IS_SELECT_NAMES_TEXT_MODEL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_SELECT_NAMES_TEXT_MODEL))</div><div class='del'>-</div><div class='del'>-typedef struct _ESelectNamesTextModel ESelectNamesTextModel;</div><div class='del'>-typedef struct _ESelectNamesTextModelClass ESelectNamesTextModelClass;</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesTextModel {</div><div class='del'>-	ETextModel parent;</div><div class='del'>-</div><div class='del'>-	ESelectNamesModel *source;</div><div class='del'>-	gint source_changed_id;</div><div class='del'>-	gint source_resize_id;</div><div class='del'>-</div><div class='del'>-	gint last_magic_comma_pos;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesTextModelClass {</div><div class='del'>-	ETextModelClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-ETextModel *e_select_names_text_model_new  (ESelectNamesModel *source);</div><div class='del'>-</div><div class='del'>-/* Standard Gtk function */			      </div><div class='del'>-GtkType     e_select_names_text_model_get_type (void);</div><div class='del'>-</div><div class='del'>-#endif /* ! __E_SELECT_NAMES_TEXT_MODEL_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names.c b/addressbook/gui/component/select-names/e-select-names.c<br/>deleted file mode 100644<br/>index 726f9bda5f..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,944 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-select-names.c</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-stock.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog-util.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;gal/e-table/e-table-simple.h&gt;</div><div class='del'>-#include &lt;gal/e-table/e-table-without.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-font.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-popup-menu.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/gui/widgets/e-addressbook-model.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/widgets/e-addressbook-table-adapter.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/component/e-cardlist-model.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/component/addressbook-component.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/component/addressbook-storage.h&gt;</div><div class='del'>-#include &lt;addressbook/gui/component/addressbook.h&gt;</div><div class='del'>-#include &lt;shell/evolution-shell-client.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-select-names.h"</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card-simple.h&gt;</div><div class='del'>-#include "e-select-names-table-model.h"</div><div class='del'>-#include &lt;gal/widgets/e-categories-master-list-combo.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include &lt;gal/e-text/e-entry.h&gt;</div><div class='del'>-#include &lt;e-util/e-categories-master-list-wombat.h&gt;</div><div class='del'>-</div><div class='del'>-static void e_select_names_init		(ESelectNames		 *card);</div><div class='del'>-static void e_select_names_class_init	(ESelectNamesClass	 *klass);</div><div class='del'>-static void e_select_names_set_arg (GtkObject *o, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_select_names_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_select_names_destroy (GtkObject *object);</div><div class='del'>-</div><div class='del'>-static GnomeDialogClass *parent_class = NULL;</div><div class='del'>-#define PARENT_TYPE gnome_dialog_get_type()</div><div class='del'>-</div><div class='del'>-/* The arguments we take */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char              *title;</div><div class='del'>-	ETableModel       *model;</div><div class='del'>-	ESelectNamesModel *source;</div><div class='del'>-	ESelectNames      *names;</div><div class='del'>-	GtkWidget         *label;</div><div class='del'>-} ESelectNamesChild;</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_select_names_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (!type) {</div><div class='del'>-		static const GtkTypeInfo info =</div><div class='del'>-		{</div><div class='del'>-			"ESelectNames",</div><div class='del'>-			sizeof (ESelectNames),</div><div class='del'>-			sizeof (ESelectNamesClass),</div><div class='del'>-			(GtkClassInitFunc) e_select_names_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_select_names_init,</div><div class='del'>-				/* reserved_1 */ NULL,</div><div class='del'>-				/* reserved_2 */ NULL,</div><div class='del'>-			(GtkClassInitFunc) NULL,</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (PARENT_TYPE, &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_class_init (ESelectNamesClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-	object_class = (GtkObjectClass*) klass;</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class (PARENT_TYPE);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;set_arg = e_select_names_set_arg;</div><div class='del'>-	object_class-&gt;get_arg = e_select_names_get_arg;</div><div class='del'>-	object_class-&gt;destroy = e_select_names_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define SPEC "&lt;ETableSpecification no-headers=\"true\" cursor-mode=\"line\"&gt; \</div><div class='del'>-  &lt;ETableColumn model_col= \"%d\" _title=\"Name\"          expansion=\"1.0\" minimum_width=\"20\" resizable=\"true\" cell=\"string\"       compare=\"string\"/&gt; \</div><div class='del'>-	&lt;ETableState&gt;                   			       \</div><div class='del'>-		&lt;column source=\"0\"/&gt;     			       \</div><div class='del'>-	        &lt;grouping&gt; &lt;leaf column=\"0\" ascending=\"true\"/&gt; &lt;/grouping&gt; \</div><div class='del'>-	&lt;/ETableState&gt;                  			       \</div><div class='del'>-&lt;/ETableSpecification&gt;"</div><div class='del'>-</div><div class='del'>-#define SPEC2 "&lt;ETableSpecification no-headers=\"true\" cursor-mode=\"line\"&gt; \</div><div class='del'>-  &lt;ETableColumn model_col= \"0\" _title=\"Name\"          expansion=\"1.0\" minimum_width=\"20\" resizable=\"true\" cell=\"string\"       compare=\"string\"/&gt; \</div><div class='del'>-	&lt;ETableState&gt;                   			       \</div><div class='del'>-		&lt;column source=\"0\"/&gt;     			       \</div><div class='del'>-        	&lt;grouping&gt; &lt;leaf column=\"0\" ascending=\"true\"/&gt; &lt;/grouping&gt; \</div><div class='del'>-	&lt;/ETableState&gt;                  			       \</div><div class='del'>-&lt;/ETableSpecification&gt;"</div><div class='del'>-</div><div class='del'>-GtkWidget *e_addressbook_create_ebook_table(char *name, char *string1, char *string2, int num1, int num2);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_book(EBook *book, EBookStatus status, EAddressbookModel *model)</div><div class='del'>-{</div><div class='del'>-	gtk_object_set(GTK_OBJECT(model),</div><div class='del'>-		       "book", book,</div><div class='del'>-		       NULL);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(book));</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(model));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-addressbook_model_set_uri(EAddressbookModel *model, char *uri)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-</div><div class='del'>-	/* If uri == the current uri, then we don't have to do anything */</div><div class='del'>-	book = e_addressbook_model_get_ebook (model);</div><div class='del'>-	if (book) {</div><div class='del'>-		const gchar *current_uri = e_book_get_uri (book);</div><div class='del'>-		if (uri &amp;&amp; current_uri &amp;&amp; !strcmp (uri, current_uri))</div><div class='del'>-			return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	book = e_book_new();</div><div class='del'>-	gtk_object_ref(GTK_OBJECT(model));</div><div class='del'>-	addressbook_load_uri(book, uri, (EBookCallback) set_book, model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-card_key (ECard *card)</div><div class='del'>-{</div><div class='del'>-	EBook *book;</div><div class='del'>-	const gchar *book_uri;</div><div class='del'>-	</div><div class='del'>-	if (card == NULL)</div><div class='del'>-		return NULL;</div><div class='del'>-</div><div class='del'>-	g_assert (E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>-	book = e_card_get_book (card);</div><div class='del'>-	book_uri = book ? e_book_get_uri (book) : "NoBook";</div><div class='del'>-	return g_strdup_printf ("%s|%s", book_uri ? book_uri : "NoURI", e_card_get_id (card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-sync_one_model (gpointer k, gpointer val, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ETableWithout *etw = E_TABLE_WITHOUT (closure);</div><div class='del'>-	ESelectNamesChild *child = val;</div><div class='del'>-	ESelectNamesModel *model = child-&gt;source;</div><div class='del'>-	gint i, count;</div><div class='del'>-	ECard *card;</div><div class='del'>-	void *key;</div><div class='del'>-	</div><div class='del'>-	count = e_select_names_model_count (model);</div><div class='del'>-	for (i = 0; i &lt; count; ++i) {</div><div class='del'>-		card = e_select_names_model_get_card (model, i);</div><div class='del'>-		if (card) {</div><div class='del'>-			key = card_key (card);</div><div class='del'>-			e_table_without_hide (etw, key);</div><div class='del'>-			g_free (key);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-sync_table_and_models (ESelectNamesModel *triggering_model, ESelectNames *esl)</div><div class='del'>-{</div><div class='del'>-	e_table_without_show_all (E_TABLE_WITHOUT (esl-&gt;without));</div><div class='del'>-	g_hash_table_foreach (esl-&gt;children, sync_one_model, esl-&gt;without);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-real_add_address_cb (int model_row, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesChild *child = closure;</div><div class='del'>-	ESelectNames *names = child-&gt;names;</div><div class='del'>-	ECard *card;</div><div class='del'>-	EDestination *dest = e_destination_new ();</div><div class='del'>-	gint mapped_row;</div><div class='del'>-</div><div class='del'>-	mapped_row = e_table_subset_view_to_model_row (E_TABLE_SUBSET (names-&gt;without), model_row);</div><div class='del'>-</div><div class='del'>-	card = e_addressbook_model_get_card (E_ADDRESSBOOK_MODEL(names-&gt;model), mapped_row);</div><div class='del'>-	</div><div class='del'>-	if (card != NULL) {</div><div class='del'>-		e_destination_set_card (dest, card, 0);</div><div class='del'>-</div><div class='del'>-		e_select_names_model_append (child-&gt;source, dest);</div><div class='del'>-		e_select_names_model_clean (child-&gt;source);</div><div class='del'>-</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-real_add_address(ESelectNames *names, ESelectNamesChild *child)</div><div class='del'>-{</div><div class='del'>-	e_select_names_model_freeze (child-&gt;source);</div><div class='del'>-	e_table_selected_row_foreach(e_table_scrolled_get_table(names-&gt;table),</div><div class='del'>-				     real_add_address_cb, child);</div><div class='del'>-	e_select_names_model_thaw (child-&gt;source);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_address(ETable *table, int row, int col, GdkEvent *event, ESelectNames *names)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesChild *child;</div><div class='del'>-</div><div class='del'>-	child = g_hash_table_lookup(names-&gt;children, names-&gt;def);</div><div class='del'>-	if (child) {</div><div class='del'>-		real_add_address(names, child);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-esn_get_key_fn (ETableModel *source, int row, void *closure)</div><div class='del'>-{</div><div class='del'>-	EAddressbookModel *model = E_ADDRESSBOOK_MODEL (closure);</div><div class='del'>-	ECard *card = e_addressbook_model_get_card (model, row);</div><div class='del'>-	void *key = card_key (card);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (card));</div><div class='del'>-	return key;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-esn_dup_key_fn (const void *key, void *closure)</div><div class='del'>-{</div><div class='del'>-	void *dup = (void *) g_strdup ((const gchar *) key);</div><div class='del'>-	return dup;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-esn_free_gotten_key_fn (void *key, void *closure)</div><div class='del'>-{</div><div class='del'>-	g_free (key);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-esn_free_duped_key_fn (void *key, void *closure)</div><div class='del'>-{</div><div class='del'>-	g_free (key);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_addressbook_create_ebook_table(char *name, char *string1, char *string2, int num1, int num2)</div><div class='del'>-{</div><div class='del'>-	ETableModel *adapter;</div><div class='del'>-	ETableModel *without;</div><div class='del'>-	EAddressbookModel *model;</div><div class='del'>-	GtkWidget *table;</div><div class='del'>-	char *filename;</div><div class='del'>-	char *uri;</div><div class='del'>-	char *spec;</div><div class='del'>-</div><div class='del'>-	model = e_addressbook_model_new ();</div><div class='del'>-	adapter = E_TABLE_MODEL (e_addressbook_table_adapter_new (model));</div><div class='del'>-</div><div class='del'>-	filename = gnome_util_prepend_user_home("evolution/local/Contacts/addressbook.db");</div><div class='del'>-	uri = g_strdup_printf("file://%s", filename);</div><div class='del'>-</div><div class='del'>-	addressbook_model_set_uri(model, uri);</div><div class='del'>-</div><div class='del'>-	g_free(uri);</div><div class='del'>-	g_free(filename);</div><div class='del'>-</div><div class='del'>-	gtk_object_set(GTK_OBJECT(model),</div><div class='del'>-		       "editable", FALSE,</div><div class='del'>-		       "query", "(contains \"email\" \"\")",</div><div class='del'>-		       NULL);</div><div class='del'>-</div><div class='del'>-	without = e_table_without_new (adapter,</div><div class='del'>-				       g_str_hash,</div><div class='del'>-				       g_str_equal,</div><div class='del'>-				       esn_get_key_fn,</div><div class='del'>-				       esn_dup_key_fn,</div><div class='del'>-				       esn_free_gotten_key_fn,</div><div class='del'>-				       esn_free_duped_key_fn,</div><div class='del'>-				       model);</div><div class='del'>-</div><div class='del'>-	spec = g_strdup_printf(SPEC, E_CARD_SIMPLE_FIELD_NAME_OR_ORG);</div><div class='del'>-	table = e_table_scrolled_new (without, NULL, spec, NULL);</div><div class='del'>-	g_free(spec);</div><div class='del'>-</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(table), "adapter", adapter);</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(table), "without", without);</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(table), "model", model);</div><div class='del'>-</div><div class='del'>-	return table;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *description;</div><div class='del'>-	char *display_name;</div><div class='del'>-	char *uri;</div><div class='del'>-</div><div class='del'>-} ESelectNamesFolder;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_folder_free(ESelectNamesFolder *e_folder)</div><div class='del'>-{</div><div class='del'>-	g_free(e_folder-&gt;description );</div><div class='del'>-	g_free(e_folder-&gt;display_name);</div><div class='del'>-	g_free(e_folder-&gt;uri);</div><div class='del'>-	g_free(e_folder);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_option_activated(GtkWidget *widget, ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesFolder *e_folder = gtk_object_get_data (GTK_OBJECT (widget), "EsnChoiceFolder");</div><div class='del'>-</div><div class='del'>-	addressbook_model_set_uri(e_select_names-&gt;model, e_folder-&gt;uri);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	ESelectNames *names;</div><div class='del'>-	GtkWidget *menu;</div><div class='del'>-} NamesAndMenu;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_menu_item		(gpointer	key,</div><div class='del'>-			 gpointer	value,</div><div class='del'>-			 gpointer	user_data)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *menu;</div><div class='del'>-	GtkWidget *item;</div><div class='del'>-	ESelectNamesFolder *e_folder;</div><div class='del'>-	NamesAndMenu *nnm;</div><div class='del'>-	ESelectNames *e_select_names;</div><div class='del'>-	gchar *label;</div><div class='del'>-</div><div class='del'>-	nnm = user_data;</div><div class='del'>-	e_folder = value;</div><div class='del'>-	menu = nnm-&gt;menu;</div><div class='del'>-	e_select_names = nnm-&gt;names;</div><div class='del'>-</div><div class='del'>-	label = e_utf8_to_locale_string (_(e_folder-&gt;display_name));</div><div class='del'>-	item = gtk_menu_item_new_with_label (label);</div><div class='del'>-	g_free (label);</div><div class='del'>-</div><div class='del'>-	gtk_menu_append (GTK_MENU (menu), item);</div><div class='del'>-	gtk_object_set_data (GTK_OBJECT (item), "EsnChoiceFolder", e_folder);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (item), "activate",</div><div class='del'>-			    GTK_SIGNAL_FUNC (e_select_names_option_activated),</div><div class='del'>-			    e_select_names);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-update_option_menu(ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *menu;</div><div class='del'>-	GtkWidget *option;</div><div class='del'>-</div><div class='del'>-	option = glade_xml_get_widget (e_select_names-&gt;gui,</div><div class='del'>-				       "optionmenu-folder");</div><div class='del'>-	if (option) {</div><div class='del'>-		NamesAndMenu nnm;</div><div class='del'>-		menu = gtk_menu_new ();</div><div class='del'>-</div><div class='del'>-		nnm.names = e_select_names;</div><div class='del'>-		nnm.menu = menu;</div><div class='del'>-</div><div class='del'>-		g_hash_table_foreach	(e_select_names-&gt;folders,</div><div class='del'>-					 add_menu_item,</div><div class='del'>-					 &amp;nnm);</div><div class='del'>-</div><div class='del'>-		gtk_widget_show_all (menu);</div><div class='del'>-</div><div class='del'>-		gtk_option_menu_set_menu (GTK_OPTION_MENU (option), </div><div class='del'>-					  menu);</div><div class='del'>-		gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);</div><div class='del'>-		gtk_widget_set_sensitive (option, TRUE);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-new_folder      (EvolutionStorageListener *storage_listener,</div><div class='del'>-		 const char *path,</div><div class='del'>-		 const GNOME_Evolution_Folder *folder,</div><div class='del'>-		 ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	if (!strcmp(folder-&gt;type, "contacts")</div><div class='del'>-	    || !strcmp(folder-&gt;type, "ldap-contacts")) {</div><div class='del'>-		ESelectNamesFolder *e_folder = g_new(ESelectNamesFolder, 1);</div><div class='del'>-		e_folder-&gt;description  = g_strdup(folder-&gt;description );</div><div class='del'>-		e_folder-&gt;display_name = g_strdup(folder-&gt;displayName);</div><div class='del'>-		if (!strncmp (folder-&gt;physicalUri, "file:", 5))</div><div class='del'>-			e_folder-&gt;uri = g_strdup_printf ("%s/addressbook.db", folder-&gt;physicalUri);</div><div class='del'>-		else</div><div class='del'>-			e_folder-&gt;uri = g_strdup(folder-&gt;physicalUri);</div><div class='del'>-		g_hash_table_insert(e_select_names-&gt;folders,</div><div class='del'>-				    g_strdup(path), e_folder);</div><div class='del'>-		update_option_menu(e_select_names);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-removed_folder  (EvolutionStorageListener *storage_listener,</div><div class='del'>-		 const char *path,</div><div class='del'>-		 ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesFolder *e_folder;</div><div class='del'>-	char *orig_path;</div><div class='del'>-</div><div class='del'>-	if (g_hash_table_lookup_extended(e_select_names-&gt;folders, path, (void **) &amp;orig_path, (void **) &amp;e_folder)) {</div><div class='del'>-		g_hash_table_remove(e_select_names-&gt;folders, path);</div><div class='del'>-		e_select_names_folder_free(e_folder);</div><div class='del'>-		g_free(orig_path);</div><div class='del'>-		update_option_menu(e_select_names);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-update_query (GtkWidget *button, ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	char *category = "";</div><div class='del'>-	char *search = "";</div><div class='del'>-	char *query;</div><div class='del'>-	char *q_array[4];</div><div class='del'>-	int i;</div><div class='del'>-	if (e_select_names-&gt;categories_entry) {</div><div class='del'>-		category = gtk_entry_get_text (GTK_ENTRY (e_select_names-&gt;categories_entry));</div><div class='del'>-	}</div><div class='del'>-	if (e_select_names-&gt;search_entry) {</div><div class='del'>-		search = gtk_entry_get_text (GTK_ENTRY (e_select_names-&gt;search_entry));</div><div class='del'>-	}</div><div class='del'>-	i = 0;</div><div class='del'>-	q_array[i++] = "(contains \"email\" \"\")";</div><div class='del'>-	if (category &amp;&amp; *category)</div><div class='del'>-		q_array[i++] = g_strdup_printf ("(is \"category\" \"%s\")", category);</div><div class='del'>-	if (search &amp;&amp; *search)</div><div class='del'>-		q_array[i++] = g_strdup_printf ("(contains \"x-evolution-any-field\" \"%s\")", search);</div><div class='del'>-	q_array[i++] = NULL;</div><div class='del'>-	if (i &gt; 2) {</div><div class='del'>-		char *temp = g_strjoinv (" ", q_array);</div><div class='del'>-		query = g_strdup_printf ("(and %s)", temp);</div><div class='del'>-		g_free (temp);</div><div class='del'>-	} else {</div><div class='del'>-		query = g_strdup (q_array[0]);</div><div class='del'>-	}</div><div class='del'>-	gtk_object_set (GTK_OBJECT (e_select_names-&gt;model),</div><div class='del'>-			"query", query,</div><div class='del'>-			NULL);</div><div class='del'>-	for (i = 1; q_array[i]; i++) {</div><div class='del'>-		g_free (q_array[i]);</div><div class='del'>-	}</div><div class='del'>-	g_free (query);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-hookup_listener (ESelectNames *e_select_names,</div><div class='del'>-		 GNOME_Evolution_Storage storage,</div><div class='del'>-		 EvolutionStorageListener *listener,</div><div class='del'>-		 CORBA_Environment *ev)</div><div class='del'>-{</div><div class='del'>-	GNOME_Evolution_StorageListener corba_listener;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (storage != CORBA_OBJECT_NIL);</div><div class='del'>-</div><div class='del'>-	corba_listener = evolution_storage_listener_corba_objref(listener);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(listener), "new_folder",</div><div class='del'>-			   GTK_SIGNAL_FUNC(new_folder), e_select_names);</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(listener), "removed_folder",</div><div class='del'>-			   GTK_SIGNAL_FUNC(removed_folder), e_select_names);</div><div class='del'>-</div><div class='del'>-	GNOME_Evolution_Storage_addListener(storage, corba_listener, ev);</div><div class='del'>-</div><div class='del'>-	if (ev-&gt;_major != CORBA_NO_EXCEPTION) {</div><div class='del'>-		g_warning ("e_select_names_init: Exception adding listener to "</div><div class='del'>-			   "remote GNOME_Evolution_Storage interface.\n");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_hookup_shell_listeners (ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	EvolutionStorage *other_contact_storage;</div><div class='del'>-	GNOME_Evolution_Storage storage;</div><div class='del'>-	CORBA_Environment ev;</div><div class='del'>-	</div><div class='del'>-	CORBA_exception_init(&amp;ev);</div><div class='del'>-</div><div class='del'>-	storage = (GNOME_Evolution_Storage) (evolution_shell_client_get_local_storage(addressbook_component_get_shell_client()));</div><div class='del'>-	e_select_names-&gt;local_listener = evolution_storage_listener_new();</div><div class='del'>-</div><div class='del'>-	/* This should really never happen, but a bug report (ximian #5193) came in w/ a backtrace suggesting that it did in</div><div class='del'>-	   fact happen to someone, so the best we can do is try to avoid crashing in this case. */</div><div class='del'>-	if (storage == CORBA_OBJECT_NIL) {</div><div class='del'>-		GtkWidget *oh_shit;</div><div class='del'>-</div><div class='del'>-		oh_shit = gnome_error_dialog (_("Evolution is unable to get the addressbook local storage.\n"</div><div class='del'>-						"This may have been caused by the evolution-addressbook component crashing.\n"</div><div class='del'>-						"To help us better understand and ultimately resolve this problem,\n"</div><div class='del'>-						"please send an e-mail to Jon Trowbridge &lt;trow@ximian.com&gt; with a\n"</div><div class='del'>-						"detailed description of the circumstances under which this error\n"</div><div class='del'>-						"occurred.  Thank you."));</div><div class='del'>-		gtk_widget_show (oh_shit);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-		hookup_listener (e_select_names, storage, e_select_names-&gt;local_listener, &amp;ev);</div><div class='del'>-		bonobo_object_release_unref(storage, &amp;ev);</div><div class='del'>-		if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>-			g_warning ("e_select_names_init: Exception unref'ing "</div><div class='del'>-				   "remote GNOME_Evolution_Storage interface.\n");</div><div class='del'>-			CORBA_exception_free (&amp;ev);</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	other_contact_storage = addressbook_get_other_contact_storage ();</div><div class='del'>-	if (other_contact_storage) {</div><div class='del'>-		storage = bonobo_object_corba_objref (BONOBO_OBJECT (other_contact_storage));</div><div class='del'>-		e_select_names-&gt;other_contacts_listener = evolution_storage_listener_new();</div><div class='del'>-</div><div class='del'>-		hookup_listener (e_select_names, storage, e_select_names-&gt;other_contacts_listener, &amp;ev);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CORBA_exception_free(&amp;ev);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget *e_select_names_create_categories (gchar *name,</div><div class='del'>-					     gchar *string1, gchar *string2,</div><div class='del'>-					     gint int1, gint int2);</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_select_names_create_categories (gchar *name,</div><div class='del'>-				  gchar *string1, gchar *string2,</div><div class='del'>-				  gint int1, gint int2)</div><div class='del'>-{</div><div class='del'>-	ECategoriesMasterList *ecml;</div><div class='del'>-	GtkWidget *combo;</div><div class='del'>-</div><div class='del'>-	ecml = e_categories_master_list_wombat_new ();</div><div class='del'>-	combo = e_categories_master_list_combo_new (ecml);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (ecml));</div><div class='del'>-</div><div class='del'>-	return combo;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_init (ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *widget, *button;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/select-names.glade", NULL);</div><div class='del'>-	e_select_names-&gt;gui = gui;</div><div class='del'>-</div><div class='del'>-	e_select_names-&gt;children = g_hash_table_new(g_str_hash, g_str_equal);</div><div class='del'>-	e_select_names-&gt;child_count = 0;</div><div class='del'>-	e_select_names-&gt;def = NULL;</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(gui, "table-top");</div><div class='del'>-	if (!widget) {</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	gtk_widget_ref(widget);</div><div class='del'>-	gtk_widget_unparent(widget);</div><div class='del'>-	gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(e_select_names)-&gt;vbox), widget, TRUE, TRUE, 0);</div><div class='del'>-	gtk_widget_unref(widget);</div><div class='del'>-</div><div class='del'>-	gnome_dialog_append_buttons(GNOME_DIALOG(e_select_names),</div><div class='del'>-				    GNOME_STOCK_BUTTON_OK,</div><div class='del'>-				    GNOME_STOCK_BUTTON_CANCEL,</div><div class='del'>-				    NULL);</div><div class='del'>-	gnome_dialog_set_default(GNOME_DIALOG(e_select_names), 0);</div><div class='del'>-</div><div class='del'>-	gtk_window_set_title(GTK_WINDOW(e_select_names), _("Select Contacts from Addressbook")); </div><div class='del'>-	gtk_window_set_policy(GTK_WINDOW(e_select_names), FALSE, TRUE, FALSE);</div><div class='del'>-</div><div class='del'>-	e_select_names-&gt;table = E_TABLE_SCROLLED(glade_xml_get_widget(gui, "table-source"));</div><div class='del'>-	e_select_names-&gt;model = gtk_object_get_data(GTK_OBJECT(e_select_names-&gt;table), "model");</div><div class='del'>-	e_select_names-&gt;adapter = gtk_object_get_data(GTK_OBJECT(e_select_names-&gt;table), "adapter");</div><div class='del'>-	e_select_names-&gt;without = gtk_object_get_data(GTK_OBJECT(e_select_names-&gt;table), "without");</div><div class='del'>-</div><div class='del'>-	e_select_names-&gt;categories = glade_xml_get_widget (gui, "custom-categories");</div><div class='del'>-	if (e_select_names-&gt;categories &amp;&amp; !GTK_IS_COMBO (e_select_names-&gt;categories))</div><div class='del'>-		e_select_names-&gt;categories = NULL;</div><div class='del'>-	if (e_select_names-&gt;categories) {</div><div class='del'>-		e_select_names-&gt;categories_entry = GTK_COMBO (e_select_names-&gt;categories)-&gt;entry;</div><div class='del'>-	} else</div><div class='del'>-		e_select_names-&gt;categories_entry = NULL;</div><div class='del'>-	e_select_names-&gt;search_entry = glade_xml_get_widget (gui, "entry-find");</div><div class='del'>-	if (e_select_names-&gt;search_entry &amp;&amp; !GTK_IS_ENTRY (e_select_names-&gt;search_entry))</div><div class='del'>-		e_select_names-&gt;search_entry = NULL;</div><div class='del'>-	if (e_select_names-&gt;search_entry)</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(e_select_names-&gt;search_entry), "activate",</div><div class='del'>-				   GTK_SIGNAL_FUNC(update_query), e_select_names);</div><div class='del'>-	if (e_select_names-&gt;categories_entry)</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(e_select_names-&gt;categories_entry), "changed",</div><div class='del'>-				   GTK_SIGNAL_FUNC(update_query), e_select_names);</div><div class='del'>-</div><div class='del'>-	button  = glade_xml_get_widget (gui, "button-find");</div><div class='del'>-	if (button)</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(button), "clicked",</div><div class='del'>-				   GTK_SIGNAL_FUNC(update_query), e_select_names);</div><div class='del'>-</div><div class='del'>-	e_select_names-&gt;folders = g_hash_table_new(g_str_hash, g_str_equal);</div><div class='del'>-</div><div class='del'>-	e_select_names_hookup_shell_listeners (e_select_names);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (e_table_scrolled_get_table (e_select_names-&gt;table)), "double_click",</div><div class='del'>-			    GTK_SIGNAL_FUNC (add_address), e_select_names);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void e_select_names_child_free(char *key, ESelectNamesChild *child, ESelectNames *e_select_names)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_disconnect_by_func (GTK_OBJECT (child-&gt;source), GTK_SIGNAL_FUNC (sync_table_and_models), e_select_names);</div><div class='del'>-	g_free(child-&gt;title);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(child-&gt;model));</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(child-&gt;source));</div><div class='del'>-	g_free(key);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	ESelectNames *e_select_names = E_SELECT_NAMES(object);</div><div class='del'>-</div><div class='del'>-	gtk_signal_disconnect_by_data(GTK_OBJECT(e_select_names-&gt;local_listener), e_select_names);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(e_select_names-&gt;local_listener));</div><div class='del'>-	gtk_signal_disconnect_by_data(GTK_OBJECT(e_select_names-&gt;other_contacts_listener), e_select_names);</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(e_select_names-&gt;other_contacts_listener));</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(e_select_names-&gt;gui));</div><div class='del'>-	g_hash_table_foreach(e_select_names-&gt;children, (GHFunc) e_select_names_child_free, e_select_names);</div><div class='del'>-	g_hash_table_destroy(e_select_names-&gt;children);</div><div class='del'>-</div><div class='del'>-	g_free(e_select_names-&gt;def);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget*</div><div class='del'>-e_select_names_new (void)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = GTK_WIDGET (gtk_type_new (e_select_names_get_type ()));</div><div class='del'>-	return widget;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNames *editor;</div><div class='del'>-</div><div class='del'>-	editor = E_SELECT_NAMES (o);</div><div class='del'>-	</div><div class='del'>-	switch (arg_id){</div><div class='del'>-	default:</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_select_names_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	ESelectNames *e_select_names;</div><div class='del'>-</div><div class='del'>-	e_select_names = E_SELECT_NAMES (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-button_clicked(GtkWidget *button, ESelectNamesChild *child)</div><div class='del'>-{</div><div class='del'>-	real_add_address(child-&gt;names, child);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_address(ETable *table, int row, int col, GdkEvent *event, ESelectNamesChild *child)</div><div class='del'>-{</div><div class='del'>-	e_select_names_model_delete (child-&gt;source, row);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct _RightClickData {</div><div class='del'>-	ETable *table;</div><div class='del'>-	ESelectNamesChild *child;</div><div class='del'>-};</div><div class='del'>-typedef struct _RightClickData RightClickData;</div><div class='del'>-</div><div class='del'>-static GSList *selected_rows = NULL;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-etable_selection_foreach_cb (int row, void *data)</div><div class='del'>-{</div><div class='del'>-	/* Build a list of rows in reverse order, then remove them,</div><div class='del'>-           necessary because otherwise it'll start trying to delete</div><div class='del'>-           rows out of index in ETableModel */</div><div class='del'>-	selected_rows = g_slist_prepend (selected_rows, GINT_TO_POINTER (row));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-selected_rows_foreach_cb (void *row, void *data)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesChild *child = data;</div><div class='del'>-</div><div class='del'>-	remove_address (NULL, GPOINTER_TO_INT (row), 0, NULL, child);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_cb (GtkWidget *widget, void *data)</div><div class='del'>-{</div><div class='del'>-	RightClickData *rcdata = (RightClickData *)data;</div><div class='del'>-</div><div class='del'>-	e_select_names_model_freeze (rcdata-&gt;child-&gt;source);</div><div class='del'>-</div><div class='del'>-	/* Build a list of selected rows */</div><div class='del'>-	e_table_selected_row_foreach (rcdata-&gt;table,</div><div class='del'>-				      etable_selection_foreach_cb,</div><div class='del'>-				      rcdata-&gt;child);</div><div class='del'>-</div><div class='del'>-	/* Now process the list we made, removing each selected row */</div><div class='del'>-	g_slist_foreach (selected_rows,</div><div class='del'>-			 (GFunc)selected_rows_foreach_cb,</div><div class='del'>-			 rcdata-&gt;child);</div><div class='del'>-</div><div class='del'>-	e_select_names_model_thaw (rcdata-&gt;child-&gt;source);</div><div class='del'>-</div><div class='del'>-	/* Free everything we've created */</div><div class='del'>-	g_free (rcdata);</div><div class='del'>-	g_slist_free (selected_rows);</div><div class='del'>-	selected_rows = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-section_right_click_cb (ETable *table, gint row, gint col, GdkEvent *event, ESelectNamesChild *child)</div><div class='del'>-{</div><div class='del'>-	EPopupMenu right_click_menu[] = {</div><div class='del'>-		{ N_("Remove"), NULL,</div><div class='del'>-		  GTK_SIGNAL_FUNC (remove_cb), NULL, 0 },</div><div class='del'>-		{ NULL, NULL, NULL, 0 }</div><div class='del'>-	};</div><div class='del'>-</div><div class='del'>-	RightClickData *rcdata = g_new0 (RightClickData, 1);</div><div class='del'>-	rcdata-&gt;table = table;</div><div class='del'>-	rcdata-&gt;child = child;</div><div class='del'>-</div><div class='del'>-	e_popup_menu_run (right_click_menu, event, 0, 0,</div><div class='del'>-			  rcdata);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_add_section(ESelectNames *e_select_names, char *name, char *id, ESelectNamesModel *source)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesChild *child;</div><div class='del'>-	GtkWidget *button;</div><div class='del'>-	GtkWidget *alignment;</div><div class='del'>-	GtkWidget *label;</div><div class='del'>-	GtkTable *table;</div><div class='del'>-	char *label_text;</div><div class='del'>-</div><div class='del'>-	ETableModel *model;</div><div class='del'>-	GtkWidget *etable;</div><div class='del'>-</div><div class='del'>-	if (g_hash_table_lookup(e_select_names-&gt;children, id)) {</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	table = GTK_TABLE(glade_xml_get_widget (e_select_names-&gt;gui, "table-recipients"));</div><div class='del'>-</div><div class='del'>-	child = g_new(ESelectNamesChild, 1);</div><div class='del'>-</div><div class='del'>-	child-&gt;names = e_select_names;</div><div class='del'>-	child-&gt;title = e_utf8_from_locale_string(_(name));</div><div class='del'>-</div><div class='del'>-	e_select_names-&gt;child_count++;</div><div class='del'>-</div><div class='del'>-	alignment = gtk_alignment_new(0, 0, 1, 0);</div><div class='del'>-</div><div class='del'>-	button = gtk_button_new ();</div><div class='del'>-</div><div class='del'>-	label = e_entry_new ();</div><div class='del'>-	gtk_object_set(GTK_OBJECT(label),</div><div class='del'>-		       "draw_background", FALSE,</div><div class='del'>-		       "draw_borders", FALSE,</div><div class='del'>-		       "draw_button", TRUE,</div><div class='del'>-		       "editable", FALSE,</div><div class='del'>-		       "text", "",</div><div class='del'>-		       "use_ellipsis", TRUE,</div><div class='del'>-		       "justification", GTK_JUSTIFY_CENTER,</div><div class='del'>-		       NULL);</div><div class='del'>-	gtk_widget_set_usize (label, 40, 0);</div><div class='del'>-</div><div class='del'>-	label_text = g_strconcat (child-&gt;title, " -&gt;", NULL);</div><div class='del'>-	gtk_object_set (GTK_OBJECT (label),</div><div class='del'>-			"text", label_text,</div><div class='del'>-			NULL);</div><div class='del'>-	g_free (label_text);</div><div class='del'>-	gtk_container_add (GTK_CONTAINER (button), label);</div><div class='del'>-	child-&gt;label = label;</div><div class='del'>-</div><div class='del'>-	gtk_container_add(GTK_CONTAINER(alignment), button);</div><div class='del'>-	gtk_widget_show_all(alignment);</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(button), "clicked",</div><div class='del'>-			   GTK_SIGNAL_FUNC(button_clicked), child);</div><div class='del'>-	gtk_table_attach(table, alignment,</div><div class='del'>-			 0, 1,</div><div class='del'>-			 e_select_names-&gt;child_count,</div><div class='del'>-			 e_select_names-&gt;child_count + 1,</div><div class='del'>-			 GTK_FILL, GTK_FILL,</div><div class='del'>-			 0, 0);</div><div class='del'>-	</div><div class='del'>-	model = e_select_names_table_model_new(source);</div><div class='del'>-	etable = e_table_scrolled_new (model, NULL, SPEC2, NULL);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(e_table_scrolled_get_table(E_TABLE_SCROLLED(etable))), "right_click",</div><div class='del'>-			   GTK_SIGNAL_FUNC(section_right_click_cb), child);</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(e_table_scrolled_get_table(E_TABLE_SCROLLED(etable))), "double_click",</div><div class='del'>-			   GTK_SIGNAL_FUNC(remove_address), child);</div><div class='del'>-</div><div class='del'>-	child-&gt;model = model;</div><div class='del'>-	child-&gt;source = source;</div><div class='del'>-	gtk_object_ref(GTK_OBJECT(child-&gt;model));</div><div class='del'>-	gtk_object_ref(GTK_OBJECT(child-&gt;source));</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (child-&gt;source),</div><div class='del'>-			    "changed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (sync_table_and_models),</div><div class='del'>-			    e_select_names);</div><div class='del'>-	</div><div class='del'>-	gtk_widget_show(etable);</div><div class='del'>-	</div><div class='del'>-	gtk_table_attach(table, etable,</div><div class='del'>-			 1, 2,</div><div class='del'>-			 e_select_names-&gt;child_count,</div><div class='del'>-			 e_select_names-&gt;child_count + 1,</div><div class='del'>-			 GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND,</div><div class='del'>-			 0, 0);</div><div class='del'>-</div><div class='del'>-	g_hash_table_insert(e_select_names-&gt;children, g_strdup(id), child);</div><div class='del'>-</div><div class='del'>-	sync_table_and_models (child-&gt;source, e_select_names);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-card_copy(const void *value, void *closure)</div><div class='del'>-{</div><div class='del'>-	gtk_object_ref(GTK_OBJECT(value));</div><div class='del'>-	return (void *)value;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_free(void *value, void *closure)</div><div class='del'>-{</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(value));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EList *</div><div class='del'>-e_select_names_get_section(ESelectNames *e_select_names, char *id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesChild *child;</div><div class='del'>-	int i;</div><div class='del'>-	int rows;</div><div class='del'>-	EList *list;</div><div class='del'>-	</div><div class='del'>-	child = g_hash_table_lookup(e_select_names-&gt;children, id);</div><div class='del'>-	if (!child)</div><div class='del'>-		return NULL;</div><div class='del'>-	rows = e_table_model_row_count(child-&gt;model);</div><div class='del'>-	</div><div class='del'>-	list = e_list_new(card_copy, card_free, NULL);</div><div class='del'>-	for (i = 0; i &lt; rows; i++) {</div><div class='del'>-		ECard *card = e_cardlist_model_get(E_CARDLIST_MODEL(child-&gt;model), i);</div><div class='del'>-		e_list_append(list, card);</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-	}</div><div class='del'>-	return list;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ESelectNamesModel *</div><div class='del'>-e_select_names_get_source(ESelectNames *e_select_names,</div><div class='del'>-			  char *id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesChild *child = g_hash_table_lookup(e_select_names-&gt;children, id);</div><div class='del'>-	if (child) {</div><div class='del'>-		if (child-&gt;source)</div><div class='del'>-			gtk_object_ref(GTK_OBJECT(child-&gt;source));</div><div class='del'>-		return child-&gt;source;</div><div class='del'>-	} else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_select_names_set_default (ESelectNames *e_select_names,</div><div class='del'>-			    const char *id)</div><div class='del'>-{</div><div class='del'>-	ESelectNamesChild *child;</div><div class='del'>-</div><div class='del'>-	if (e_select_names-&gt;def) {</div><div class='del'>-		child = g_hash_table_lookup(e_select_names-&gt;children, e_select_names-&gt;def);</div><div class='del'>-		if (child)</div><div class='del'>-			gtk_object_set (GTK_OBJECT (E_ENTRY (child-&gt;label)-&gt;item),</div><div class='del'>-					"bold", FALSE,</div><div class='del'>-					NULL);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free(e_select_names-&gt;def);</div><div class='del'>-	e_select_names-&gt;def = g_strdup(id);</div><div class='del'>-</div><div class='del'>-	if (e_select_names-&gt;def) {</div><div class='del'>-		child = g_hash_table_lookup(e_select_names-&gt;children, e_select_names-&gt;def);</div><div class='del'>-		if (child)</div><div class='del'>-			gtk_object_set (GTK_OBJECT (E_ENTRY (child-&gt;label)-&gt;item),</div><div class='del'>-					"bold", TRUE,</div><div class='del'>-					NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/component/select-names/e-select-names.h b/addressbook/gui/component/select-names/e-select-names.h<br/>deleted file mode 100644<br/>index d4da9c9892..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/e-select-names.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/e-select-names.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,109 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-select-names.h</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-#ifndef __E_SELECT_NAMES_H__</div><div class='del'>-#define __E_SELECT_NAMES_H__</div><div class='del'>-</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkwidget.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-util.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include &lt;gal/e-table/e-table.h&gt;</div><div class='del'>-#include &lt;gal/e-table/e-table-scrolled.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/gui/widgets/e-addressbook-model.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-select-names-model.h"</div><div class='del'>-#include "e-util/e-list.h"</div><div class='del'>-#include "shell/evolution-storage-listener.h"</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#pragma }</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-/* ESelectNames - A dialog displaying information about a contact.</div><div class='del'>- *</div><div class='del'>- * The following arguments are available:</div><div class='del'>- *</div><div class='del'>- * name		type		read/write	description</div><div class='del'>- * --------------------------------------------------------------------------------</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define E_SELECT_NAMES_TYPE			(e_select_names_get_type ())</div><div class='del'>-#define E_SELECT_NAMES(obj)			(GTK_CHECK_CAST ((obj), E_SELECT_NAMES_TYPE, ESelectNames))</div><div class='del'>-#define E_SELECT_NAMES_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_SELECT_NAMES_TYPE, ESelectNamesClass))</div><div class='del'>-#define E_IS_SELECT_NAMES(obj)		(GTK_CHECK_TYPE ((obj), E_SELECT_NAMES_TYPE))</div><div class='del'>-#define E_IS_SELECT_NAMES_CLASS(klass)	(GTK_CHECK_CLASS_TYPE ((obj), E_SELECT_NAMES_TYPE))</div><div class='del'>-</div><div class='del'>-typedef struct _ESelectNames       ESelectNames;</div><div class='del'>-typedef struct _ESelectNamesClass  ESelectNamesClass;</div><div class='del'>-</div><div class='del'>-struct _ESelectNames</div><div class='del'>-{</div><div class='del'>-	GnomeDialog parent;</div><div class='del'>-	</div><div class='del'>-	/* item specific fields */</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	</div><div class='del'>-	GHashTable *children; /* Of type char * to ESelectNamesChild */</div><div class='del'>-	int child_count;</div><div class='del'>-	ETableScrolled *table;</div><div class='del'>-	ETableModel *adapter;</div><div class='del'>-	ETableModel *without;</div><div class='del'>-	EAddressbookModel *model;</div><div class='del'>-	GtkWidget *categories;</div><div class='del'>-	GtkWidget *categories_entry;</div><div class='del'>-	GtkWidget *search_entry;</div><div class='del'>-	EvolutionStorageListener *local_listener;</div><div class='del'>-	EvolutionStorageListener *other_contacts_listener;</div><div class='del'>-	GHashTable *folders;</div><div class='del'>-	char *def;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _ESelectNamesClass</div><div class='del'>-{</div><div class='del'>-	GnomeDialogClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GtkWidget *e_select_names_new          (void);</div><div class='del'>-GtkType    e_select_names_get_type     (void);</div><div class='del'>-</div><div class='del'>-void       e_select_names_add_section  (ESelectNames *e_select_names,</div><div class='del'>-				       	char         *name,</div><div class='del'>-				       	char         *id,</div><div class='del'>-				       	ESelectNamesModel *source);</div><div class='del'>-ESelectNamesModel *e_select_names_get_source   (ESelectNames *e_select_names,</div><div class='del'>-						char *id);</div><div class='del'>-void e_select_names_set_default (ESelectNames *e_select_names,</div><div class='del'>-				 const char *id);</div><div class='del'>-/* Returns a ref counted list of addresses. */</div><div class='del'>-EList     *e_select_names_get_section  (ESelectNames *e_select_names,</div><div class='del'>-				       	char         *id);</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_SELECT_NAMES_H__ */</div><div class='head'>diff --git a/addressbook/gui/component/select-names/recipient.glade b/addressbook/gui/component/select-names/recipient.glade<br/>deleted file mode 100644<br/>index b60972d094..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/recipient.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/recipient.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,61 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;Recipient&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;recipient&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-  &lt;use_widget_names&gt;True&lt;/use_widget_names&gt;</div><div class='del'>-  &lt;output_main_file&gt;False&lt;/output_main_file&gt;</div><div class='del'>-  &lt;output_support_files&gt;False&lt;/output_support_files&gt;</div><div class='del'>-  &lt;output_build_files&gt;False&lt;/output_build_files&gt;</div><div class='del'>-  &lt;gnome_help_support&gt;True&lt;/gnome_help_support&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GtkWindow&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;window1&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;window1&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-    &lt;name&gt;hbox-top&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;4&lt;/spacing&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;alignment1&lt;/name&gt;</div><div class='del'>-      &lt;xalign&gt;1.08033e-07&lt;/xalign&gt;</div><div class='del'>-      &lt;yalign&gt;0&lt;/yalign&gt;</div><div class='del'>-      &lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-      &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;text-button&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;label&gt;-&amp;gt;&lt;/label&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/component/select-names/select-names.glade b/addressbook/gui/component/select-names/select-names.glade<br/>deleted file mode 100644<br/>index dbfd36f86f..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/component/select-names/select-names.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/select-names/select-names.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,444 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;Select-names&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;select-names&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-  &lt;output_main_file&gt;False&lt;/output_main_file&gt;</div><div class='del'>-  &lt;output_support_files&gt;False&lt;/output_support_files&gt;</div><div class='del'>-  &lt;output_build_files&gt;False&lt;/output_build_files&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;dialog-top&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;Select Names&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;default_width&gt;417&lt;/default_width&gt;</div><div class='del'>-  &lt;default_height&gt;332&lt;/default_height&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dialog-vbox1&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;dialog-action_area1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button4&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;has_default&gt;True&lt;/has_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_OK&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button5&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;table-top&lt;/name&gt;</div><div class='del'>-      &lt;rows&gt;2&lt;/rows&gt;</div><div class='del'>-      &lt;columns&gt;1&lt;/columns&gt;</div><div class='del'>-      &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-      &lt;row_spacing&gt;0&lt;/row_spacing&gt;</div><div class='del'>-      &lt;column_spacing&gt;0&lt;/column_spacing&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;vbox5&lt;/name&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;True&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;table4&lt;/name&gt;</div><div class='del'>-	  &lt;rows&gt;2&lt;/rows&gt;</div><div class='del'>-	  &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-	  &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	  &lt;row_spacing&gt;6&lt;/row_spacing&gt;</div><div class='del'>-	  &lt;column_spacing&gt;6&lt;/column_spacing&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;table-recipients&lt;/name&gt;</div><div class='del'>-	    &lt;rows&gt;1&lt;/rows&gt;</div><div class='del'>-	    &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;row_spacing&gt;4&lt;/row_spacing&gt;</div><div class='del'>-	    &lt;column_spacing&gt;4&lt;/column_spacing&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label20&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;_Message Recipients:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-		&lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-		&lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-		&lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-		&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-		&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-		&lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-		&lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-		&lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-		&lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-		&lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-		&lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;vbox6&lt;/name&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;spacing&gt;3&lt;/spacing&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	      &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	      &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	      &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	      &lt;yexpand&gt;True&lt;/yexpand&gt;</div><div class='del'>-	      &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	      &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	      &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	      &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label22&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;Co_ntacts:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;table-source&lt;/name&gt;</div><div class='del'>-	      &lt;creation_function&gt;e_addressbook_create_ebook_table&lt;/creation_function&gt;</div><div class='del'>-	      &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	      &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	      &lt;last_modification_time&gt;Sat, 10 Jun 2000 22:02:57 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;dialog-vbox1&lt;/name&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;vbox3&lt;/name&gt;</div><div class='del'>-	  &lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	  &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	  &lt;spacing&gt;3&lt;/spacing&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label4&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Show contacts matching the following criteria:&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_LEFT&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;hbox1&lt;/name&gt;</div><div class='del'>-	    &lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label5&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;_Folder:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;default_focus_target&gt;optionmenu-folder&lt;/default_focus_target&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkOptionMenu&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;optionmenu-folder&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;items&gt;&lt;/items&gt;</div><div class='del'>-	      &lt;initial_choice&gt;0&lt;/initial_choice&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label6&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;_Category:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_RIGHT&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;default_focus_target&gt;custom-categories&lt;/default_focus_target&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;custom-categories&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;creation_function&gt;e_select_names_create_categories&lt;/creation_function&gt;</div><div class='del'>-	      &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	      &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	      &lt;last_modification_time&gt;Wed, 27 Jun 2001 01:47:01 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;hbox2&lt;/name&gt;</div><div class='del'>-	    &lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;spacing&gt;3&lt;/spacing&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label7&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;C_ontaining:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;default_focus_target&gt;entry-find&lt;/default_focus_target&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;entry-find&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	      &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	      &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	      &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;hbuttonbox1&lt;/name&gt;</div><div class='del'>-	      &lt;layout_style&gt;GTK_BUTTONBOX_DEFAULT_STYLE&lt;/layout_style&gt;</div><div class='del'>-	      &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-	      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-	      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-	      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	      &lt;widget&gt;</div><div class='del'>-		&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-		&lt;name&gt;button-find&lt;/name&gt;</div><div class='del'>-		&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-		&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-		&lt;label&gt;F_ind&lt;/label&gt;</div><div class='del'>-		&lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	      &lt;/widget&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator1&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;8&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/contact-editor/.cvsignore b/addressbook/gui/contact-editor/.cvsignore<br/>deleted file mode 100644<br/>index 6fd0b5075c..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-.pure</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='del'>-contact-editor-test</div><div class='head'>diff --git a/addressbook/gui/contact-editor/Makefile.am b/addressbook/gui/contact-editor/Makefile.am<br/>deleted file mode 100644<br/>index 19598eeb7b..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,65 +0,0 @@</div><div class='del'>-INCLUDES =					\</div><div class='del'>-	$(BONOBO_GNOME_CFLAGS)			\</div><div class='del'>-	$(EXTRA_GNOME_CFLAGS)			\</div><div class='del'>-	-I$(top_srcdir)				\</div><div class='del'>-	-I$(top_srcdir)/addressbook/		\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend	\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/merging	\</div><div class='del'>-	-I$(top_srcdir)/widgets/e-table		\</div><div class='del'>-	-I$(top_builddir)/shell			\</div><div class='del'>-	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"	\</div><div class='del'>-	-DDATADIR=\""$(datadir)"\"		\</div><div class='del'>-	-DEVOLUTION_DATADIR=\""$(datadir)"\"	\</div><div class='del'>-	-DEVOLUTIONDIR=\""$(evolutiondir)"\"	\</div><div class='del'>-	-DG_LOG_DOMAIN=\"contact-editor\"</div><div class='del'>-</div><div class='del'>-noinst_LIBRARIES =				\</div><div class='del'>-	libecontacteditor.a</div><div class='del'>-</div><div class='del'>-libecontacteditor_a_SOURCES = 			\</div><div class='del'>-	e-contact-editor-address.c		\</div><div class='del'>-	e-contact-editor-address.h		\</div><div class='del'>-	e-contact-editor-fullname.c		\</div><div class='del'>-	e-contact-editor-fullname.h		\</div><div class='del'>-	e-contact-editor.c			\</div><div class='del'>-	e-contact-editor.h			\</div><div class='del'>-	e-contact-save-as.c			\</div><div class='del'>-	e-contact-save-as.h			\</div><div class='del'>-	e-contact-quick-add.c			\</div><div class='del'>-	e-contact-quick-add.h</div><div class='del'>-</div><div class='del'>-# noinst_PROGRAMS =		\</div><div class='del'>-# 	contact-editor-test</div><div class='del'>-</div><div class='del'>-# contact_editor_test_SOURCES = 	\</div><div class='del'>-# 	test-editor.c</div><div class='del'>-</div><div class='del'>-# contact_editor_test_LDADD =					\</div><div class='del'>-# 	libecontacteditor.a					\</div><div class='del'>-# 	$(top_builddir)/e-util/libeutil.la			\</div><div class='del'>-# 	$(top_builddir)/addressbook/printing/libecontactprint.a	\</div><div class='del'>-# 	$(top_builddir)/addressbook/backend/ebook/libebook.la   \</div><div class='del'>-# 	$(top_builddir)/e-util/ename/libename.la		\</div><div class='del'>-# 	$(top_builddir)/libversit/libversit.la			\</div><div class='del'>-# 	$(GNOMEGNORBA_LIBS)					\</div><div class='del'>-# 	$(BONOBO_GNOME_LIBS)				\</div><div class='del'>-# 	$(top_builddir)/widgets/misc/libemiscwidgets.a \</div><div class='del'>-# 	$(top_builddir)/e-util/libeutil.la			\</div><div class='del'>-# 	$(GNOME_PRINT_LIBS)					\</div><div class='del'>-#	$(EXTRA_GNOME_LIBS)</div><div class='del'>-</div><div class='del'>-evolutiondir = $(datadir)/evolution</div><div class='del'>-</div><div class='del'>-evolution_DATA = arrow.png</div><div class='del'>-</div><div class='del'>-gladedir   = $(datadir)/evolution/glade</div><div class='del'>-</div><div class='del'>-glade_DATA = 				\</div><div class='del'>-	contact-editor.glade		\</div><div class='del'>-	fulladdr.glade			\</div><div class='del'>-	fullname.glade			\</div><div class='del'>-	file-exists.glade		\</div><div class='del'>-	e-contact-editor-confirm-delete.glade</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = $(evolution_DATA)		\</div><div class='del'>-	$(glade_DATA)</div><div class='head'>diff --git a/addressbook/gui/contact-editor/arrow.png b/addressbook/gui/contact-editor/arrow.png<br/>deleted file mode 100644<br/>index b102356c78..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/arrow.png?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/arrow.png</a><br/>+++ /dev/null</div>Binary files differ<div class='head'>diff --git a/addressbook/gui/contact-editor/contact-editor.glade b/addressbook/gui/contact-editor/contact-editor.glade<br/>deleted file mode 100644<br/>index 54fea0864a..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/contact-editor.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/contact-editor.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2537 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;Contact-editor&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;contact-editor&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-  &lt;use_widget_names&gt;True&lt;/use_widget_names&gt;</div><div class='del'>-  &lt;output_main_file&gt;False&lt;/output_main_file&gt;</div><div class='del'>-  &lt;output_support_files&gt;False&lt;/output_support_files&gt;</div><div class='del'>-  &lt;output_build_files&gt;False&lt;/output_build_files&gt;</div><div class='del'>-  &lt;backup_source_files&gt;False&lt;/backup_source_files&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;dialog2&lt;/name&gt;</div><div class='del'>-  &lt;border_width&gt;2&lt;/border_width&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;False&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dialog-vbox2&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;4&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;dialog-action_area2&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button28&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_OK&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button29&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_APPLY&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button30&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;table2&lt;/name&gt;</div><div class='del'>-      &lt;rows&gt;2&lt;/rows&gt;</div><div class='del'>-      &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-      &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-      &lt;row_spacing&gt;0&lt;/row_spacing&gt;</div><div class='del'>-      &lt;column_spacing&gt;2&lt;/column_spacing&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry2&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;vbox1&lt;/name&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;2&lt;/spacing&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;True&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;button31&lt;/name&gt;</div><div class='del'>-	  &lt;border_width&gt;2&lt;/border_width&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;label&gt;_Add&lt;/label&gt;</div><div class='del'>-	  &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;button32&lt;/name&gt;</div><div class='del'>-	  &lt;border_width&gt;2&lt;/border_width&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;label&gt;_Delete&lt;/label&gt;</div><div class='del'>-	  &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkScrolledWindow&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;scrolledwindow1&lt;/name&gt;</div><div class='del'>-	&lt;height&gt;200&lt;/height&gt;</div><div class='del'>-	&lt;hscrollbar_policy&gt;GTK_POLICY_ALWAYS&lt;/hscrollbar_policy&gt;</div><div class='del'>-	&lt;vscrollbar_policy&gt;GTK_POLICY_ALWAYS&lt;/vscrollbar_policy&gt;</div><div class='del'>-	&lt;hupdate_policy&gt;GTK_UPDATE_CONTINUOUS&lt;/hupdate_policy&gt;</div><div class='del'>-	&lt;vupdate_policy&gt;GTK_UPDATE_CONTINUOUS&lt;/vupdate_policy&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;True&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkCList&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;clist1&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;columns&gt;1&lt;/columns&gt;</div><div class='del'>-	  &lt;column_widths&gt;80&lt;/column_widths&gt;</div><div class='del'>-	  &lt;selection_mode&gt;GTK_SELECTION_SINGLE&lt;/selection_mode&gt;</div><div class='del'>-	  &lt;show_titles&gt;True&lt;/show_titles&gt;</div><div class='del'>-	  &lt;shadow_type&gt;GTK_SHADOW_NONE&lt;/shadow_type&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;CList:title&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;label20&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Phone Types&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;dialog-add-phone&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;New phone type&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;False&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;vbox2&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;hbuttonbox1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button43&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;has_default&gt;True&lt;/has_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;label&gt;_Add&lt;/label&gt;</div><div class='del'>-	&lt;stock_pixmap&gt;GNOME_STOCK_PIXMAP_ADD&lt;/stock_pixmap&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button44&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkFrame&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;frame-add-phone&lt;/name&gt;</div><div class='del'>-      &lt;border_width&gt;4&lt;/border_width&gt;</div><div class='del'>-      &lt;label&gt;New phone type&lt;/label&gt;</div><div class='del'>-      &lt;label_xalign&gt;0&lt;/label_xalign&gt;</div><div class='del'>-      &lt;shadow_type&gt;GTK_SHADOW_ETCHED_IN&lt;/shadow_type&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;alignment9&lt;/name&gt;</div><div class='del'>-	&lt;border_width&gt;9&lt;/border_width&gt;</div><div class='del'>-	&lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-	&lt;yscale&gt;1&lt;/yscale&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-add-phone&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;has_focus&gt;True&lt;/has_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeApp&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;contact editor&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;Contact Editor&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;enable_layout_config&gt;True&lt;/enable_layout_config&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GnomeDock&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeApp:dock&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dock1&lt;/name&gt;</div><div class='del'>-    &lt;allow_floating&gt;True&lt;/allow_floating&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkNotebook&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDock:contents&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;notebook-contact-editor&lt;/name&gt;</div><div class='del'>-      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-      &lt;show_tabs&gt;True&lt;/show_tabs&gt;</div><div class='del'>-      &lt;show_border&gt;True&lt;/show_border&gt;</div><div class='del'>-      &lt;tab_pos&gt;GTK_POS_TOP&lt;/tab_pos&gt;</div><div class='del'>-      &lt;scrollable&gt;False&lt;/scrollable&gt;</div><div class='del'>-      &lt;tab_hborder&gt;2&lt;/tab_hborder&gt;</div><div class='del'>-      &lt;tab_vborder&gt;2&lt;/tab_vborder&gt;</div><div class='del'>-      &lt;popup_enable&gt;False&lt;/popup_enable&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;table-contact-editor-general&lt;/name&gt;</div><div class='del'>-	&lt;border_width&gt;7&lt;/border_width&gt;</div><div class='del'>-	&lt;rows&gt;14&lt;/rows&gt;</div><div class='del'>-	&lt;columns&gt;8&lt;/columns&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;row_spacing&gt;4&lt;/row_spacing&gt;</div><div class='del'>-	&lt;column_spacing&gt;4&lt;/column_spacing&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-phone1&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;7&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-phone2&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;7&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-phone3&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;7&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-phone4&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;7&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkText&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;text-address&lt;/name&gt;</div><div class='del'>-	  &lt;width&gt;1&lt;/width&gt;</div><div class='del'>-	  &lt;height&gt;1&lt;/height&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;7&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;9&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;button-fullname&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;label&gt;_Full Name...&lt;/label&gt;</div><div class='del'>-	  &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment3&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;1&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-email1&lt;/name&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Placeholder&lt;/class&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment5&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;6&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;7&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-phone4&lt;/name&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Placeholder&lt;/class&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment7&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;6&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;7&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-phone2&lt;/name&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Placeholder&lt;/class&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment8&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;6&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;7&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-phone1&lt;/name&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Placeholder&lt;/class&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator4&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;2&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment6&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;6&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;7&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-phone3&lt;/name&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Placeholder&lt;/class&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-fullname&lt;/name&gt;</div><div class='del'>-	  &lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	  &lt;has_default&gt;True&lt;/has_default&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;has_focus&gt;True&lt;/has_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-jobtitle&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-company&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-email1&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-web&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;8&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;9&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator5&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;2&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkCombo&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;combo-file-as&lt;/name&gt;</div><div class='del'>-	  &lt;value_in_list&gt;False&lt;/value_in_list&gt;</div><div class='del'>-	  &lt;ok_if_empty&gt;True&lt;/ok_if_empty&gt;</div><div class='del'>-	  &lt;case_sensitive&gt;True&lt;/case_sensitive&gt;</div><div class='del'>-	  &lt;use_arrows&gt;True&lt;/use_arrows&gt;</div><div class='del'>-	  &lt;use_arrows_always&gt;False&lt;/use_arrows_always&gt;</div><div class='del'>-	  &lt;items&gt;&lt;/items&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	    &lt;child_name&gt;GtkCombo:entry&lt;/child_name&gt;</div><div class='del'>-	    &lt;name&gt;entry-file-as&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	    &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	    &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator6&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;7&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;8&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;2&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment10&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;1&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;6&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;7&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;True&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;True&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkCheckButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;checkbutton-htmlmail&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Wants to receive _HTML mail&lt;/label&gt;</div><div class='del'>-	    &lt;active&gt;False&lt;/active&gt;</div><div class='del'>-	    &lt;draw_indicator&gt;True&lt;/draw_indicator&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment4&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;6&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;7&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-address&lt;/name&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Placeholder&lt;/class&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEventBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;eventbox1&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;5&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label-phone1&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;_Business&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;focus_target&gt;entry-phone1&lt;/focus_target&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEventBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;eventbox2&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;5&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label-phone2&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;_Home&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;focus_target&gt;entry-phone2&lt;/focus_target&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEventBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;eventbox3&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;5&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label-phone3&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Business _Fax&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;focus_target&gt;entry-phone3&lt;/focus_target&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEventBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;eventbox4&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;5&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label-phone4&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;_Mobile&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_LEFT&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;focus_target&gt;entry-phone4&lt;/focus_target&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEventBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;eventbox5&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label-email1&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;Primary Email&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;focus_target&gt;entry-email1&lt;/focus_target&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEventBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;eventbox-business&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;5&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label-address&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;B_usiness&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;focus_target&gt;text-address&lt;/focus_target&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment2&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;7&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;9&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;10&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkCheckButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;checkbutton-mailingaddress&lt;/name&gt;</div><div class='del'>-	    &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-	    &lt;label&gt;_This is the mailing address&lt;/label&gt;</div><div class='del'>-	    &lt;active&gt;False&lt;/active&gt;</div><div class='del'>-	    &lt;draw_indicator&gt;True&lt;/draw_indicator&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator9&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;11&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;12&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;2&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator10&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;11&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;12&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment-contacts&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;12&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;13&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-contacts&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;label&gt;_Contacts...&lt;/label&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment15&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;7&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;8&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;12&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;13&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;entry-categories&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	    &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	    &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment16&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;5&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;7&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;12&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;13&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;button-categories&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;label&gt;Ca_tegories...&lt;/label&gt;</div><div class='del'>-	    &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEventBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;eventbox7&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label-jobtitle&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;_Job title:&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;focus_target&gt;entry-jobtitle&lt;/focus_target&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom1&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;malehead.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:19:47 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom2&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;cellphone.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:20:02 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;5&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom3&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;envelope.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:19:51 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;7&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom4&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;house.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:20:06 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;5&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;10&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom5&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;evolution-contacts-plain.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:19:59 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;12&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;14&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom6&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;briefcase.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:20:09 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;5&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;12&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;14&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom10&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;globe.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:19:56 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;8&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;10&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-company&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;Organi_zation:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-company&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;button-fulladdr&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;label&gt;_Address...&lt;/label&gt;</div><div class='del'>-	  &lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;5&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;7&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;6&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;7&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment17&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;12&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;13&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;table-contacts&lt;/name&gt;</div><div class='del'>-	    &lt;rows&gt;1&lt;/rows&gt;</div><div class='del'>-	    &lt;columns&gt;1&lt;/columns&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;row_spacing&gt;0&lt;/row_spacing&gt;</div><div class='del'>-	    &lt;column_spacing&gt;0&lt;/column_spacing&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;accellabel-fileas&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;File A_s:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-file-as&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;accellabel-web&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Web page address:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-web&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;8&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;9&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	&lt;name&gt;label15&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;General&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;table-contact-editor-details&lt;/name&gt;</div><div class='del'>-	&lt;border_width&gt;7&lt;/border_width&gt;</div><div class='del'>-	&lt;rows&gt;9&lt;/rows&gt;</div><div class='del'>-	&lt;columns&gt;6&lt;/columns&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;row_spacing&gt;4&lt;/row_spacing&gt;</div><div class='del'>-	&lt;column_spacing&gt;4&lt;/column_spacing&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-department&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Department:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-department&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-office&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Office:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-office&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-profession&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Profession:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-profession&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-nickname&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Nickname:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-nickname&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-spouse&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Spouse:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-spouse&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-birthday&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Birthday:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;dateedit-birthday&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-assistant&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Assistant's name:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-assistant&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-manager&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;_Manager's Name:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;entry-manager&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-anniversary&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;Anni_versary:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;dateedit-anniversary&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-spouse&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-department&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-office&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-profession&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-nickname&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-assistant&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;entry-manager&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator7&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;2&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label-comments&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;No_tes:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;focus_target&gt;text-comments&lt;/focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;7&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;8&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHSeparator&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hseparator8&lt;/name&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;6&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;7&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom7&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;briefcase.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:20:13 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom8&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;malehead.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:20:16 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkScrolledWindow&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;scrolledwindow2&lt;/name&gt;</div><div class='del'>-	  &lt;hscrollbar_policy&gt;GTK_POLICY_AUTOMATIC&lt;/hscrollbar_policy&gt;</div><div class='del'>-	  &lt;vscrollbar_policy&gt;GTK_POLICY_AUTOMATIC&lt;/vscrollbar_policy&gt;</div><div class='del'>-	  &lt;hupdate_policy&gt;GTK_UPDATE_CONTINUOUS&lt;/hupdate_policy&gt;</div><div class='del'>-	  &lt;vupdate_policy&gt;GTK_UPDATE_CONTINUOUS&lt;/vupdate_policy&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;8&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;9&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;True&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkText&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;text-comments&lt;/name&gt;</div><div class='del'>-	    &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	    &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	    &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom9&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;globe.png&lt;/string1&gt;</div><div class='del'>-	  &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Thu, 18 May 2000 12:20:19 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;7&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;9&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;dateedit-birthday&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_contact_editor_create_date&lt;/creation_function&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Tue, 05 Jun 2001 02:36:27 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;dateedit-anniversary&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_contact_editor_create_date&lt;/creation_function&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Tue, 05 Jun 2001 02:36:32 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;left_attach&gt;4&lt;/left_attach&gt;</div><div class='del'>-	    &lt;right_attach&gt;6&lt;/right_attach&gt;</div><div class='del'>-	    &lt;top_attach&gt;5&lt;/top_attach&gt;</div><div class='del'>-	    &lt;bottom_attach&gt;6&lt;/bottom_attach&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	    &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	    &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	    &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	    &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	    &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	&lt;name&gt;label16&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;Details&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;vbox3&lt;/name&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hbox1&lt;/name&gt;</div><div class='del'>-	  &lt;border_width&gt;7&lt;/border_width&gt;</div><div class='del'>-	  &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	  &lt;spacing&gt;4&lt;/spacing&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;custom12&lt;/name&gt;</div><div class='del'>-	    &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	    &lt;string1&gt;globe.png&lt;/string1&gt;</div><div class='del'>-	    &lt;string2&gt;&lt;/string2&gt;</div><div class='del'>-	    &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	    &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	    &lt;last_modification_time&gt;Thu, 18 May 2000 12:20:13 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;label24&lt;/name&gt;</div><div class='del'>-	    &lt;label&gt;If this person publishes free/busy or other calendar information on the Internet, enter the address</div><div class='del'>-of that information here.&lt;/label&gt;</div><div class='del'>-	    &lt;justify&gt;GTK_JUSTIFY_LEFT&lt;/justify&gt;</div><div class='del'>-	    &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	    &lt;xalign&gt;7.45058e-09&lt;/xalign&gt;</div><div class='del'>-	    &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	    &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	    &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;alignment18&lt;/name&gt;</div><div class='del'>-	  &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xscale&gt;0.75&lt;/xscale&gt;</div><div class='del'>-	  &lt;yscale&gt;1&lt;/yscale&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;table-contact-editor-collaboration&lt;/name&gt;</div><div class='del'>-	    &lt;border_width&gt;7&lt;/border_width&gt;</div><div class='del'>-	    &lt;rows&gt;2&lt;/rows&gt;</div><div class='del'>-	    &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;row_spacing&gt;4&lt;/row_spacing&gt;</div><div class='del'>-	    &lt;column_spacing&gt;4&lt;/column_spacing&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label22&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;_Public Calendar URL:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;focus_target&gt;entry-caluri&lt;/focus_target&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-		&lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-		&lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-		&lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-		&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-		&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-		&lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-		&lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-		&lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-		&lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-		&lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-		&lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label23&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;F_ree/Busy URL:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;focus_target&gt;entry-fburl&lt;/focus_target&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-		&lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-		&lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-		&lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-		&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-		&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-		&lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-		&lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-		&lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-		&lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-		&lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-		&lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;entry-caluri&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	      &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	      &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	      &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-		&lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-		&lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-		&lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-		&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-		&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-		&lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-		&lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-		&lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-		&lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-		&lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-		&lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;entry-fburl&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	      &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	      &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	      &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-		&lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-		&lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-		&lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-		&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-		&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-		&lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-		&lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-		&lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-		&lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-		&lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-		&lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;child_name&gt;Notebook:tab&lt;/child_name&gt;</div><div class='del'>-	&lt;name&gt;label21&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;Collaboration&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GnomeAppBar&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeApp:appbar&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;appbar1&lt;/name&gt;</div><div class='del'>-    &lt;has_progress&gt;True&lt;/has_progress&gt;</div><div class='del'>-    &lt;has_status&gt;True&lt;/has_status&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-editor-address.c b/addressbook/gui/contact-editor/e-contact-editor-address.c<br/>deleted file mode 100644<br/>index f07b483c21..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-editor-address.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-editor-address.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,252 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* </div><div class='del'>- * e-contact-editor-address.c</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-stock.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include &lt;e-contact-editor-address.h&gt;</div><div class='del'>-#include &lt;gtk/gtkcombo.h&gt;</div><div class='del'>-</div><div class='del'>-static void e_contact_editor_address_init		(EContactEditorAddress		 *card);</div><div class='del'>-static void e_contact_editor_address_class_init	(EContactEditorAddressClass	 *klass);</div><div class='del'>-static void e_contact_editor_address_set_arg (GtkObject *o, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_editor_address_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_editor_address_destroy (GtkObject *object);</div><div class='del'>-</div><div class='del'>-static void fill_in_info(EContactEditorAddress *editor);</div><div class='del'>-static void extract_info(EContactEditorAddress *editor);</div><div class='del'>-</div><div class='del'>-static GnomeDialogClass *parent_class = NULL;</div><div class='del'>-</div><div class='del'>-/* The arguments we take */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_ADDRESS,</div><div class='del'>-	ARG_IS_READ_ONLY</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_contact_editor_address_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType contact_editor_address_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!contact_editor_address_type)</div><div class='del'>-		{</div><div class='del'>-			static const GtkTypeInfo contact_editor_address_info =</div><div class='del'>-			{</div><div class='del'>-				"EContactEditorAddress",</div><div class='del'>-				sizeof (EContactEditorAddress),</div><div class='del'>-				sizeof (EContactEditorAddressClass),</div><div class='del'>-				(GtkClassInitFunc) e_contact_editor_address_class_init,</div><div class='del'>-				(GtkObjectInitFunc) e_contact_editor_address_init,</div><div class='del'>-				/* reserved_1 */ NULL,</div><div class='del'>-				/* reserved_2 */ NULL,</div><div class='del'>-				(GtkClassInitFunc) NULL,</div><div class='del'>-			};</div><div class='del'>-</div><div class='del'>-			contact_editor_address_type = gtk_type_unique (gnome_dialog_get_type (), &amp;contact_editor_address_info);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	return contact_editor_address_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_address_class_init (EContactEditorAddressClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-	GnomeDialogClass *dialog_class;</div><div class='del'>-</div><div class='del'>-	object_class = (GtkObjectClass*) klass;</div><div class='del'>-	dialog_class = (GnomeDialogClass *) klass;</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class (gnome_dialog_get_type ());</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("EContactEditorAddress::address", GTK_TYPE_POINTER, </div><div class='del'>-				 GTK_ARG_READWRITE, ARG_ADDRESS);</div><div class='del'>-	gtk_object_add_arg_type ("EContactEditorAddress::editable", GTK_TYPE_BOOL, </div><div class='del'>-				 GTK_ARG_READWRITE, ARG_IS_READ_ONLY);</div><div class='del'>- </div><div class='del'>-	object_class-&gt;set_arg = e_contact_editor_address_set_arg;</div><div class='del'>-	object_class-&gt;get_arg = e_contact_editor_address_get_arg;</div><div class='del'>-	object_class-&gt;destroy = e_contact_editor_address_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_address_init (EContactEditorAddress *e_contact_editor_address)</div><div class='del'>-{</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *widget;</div><div class='del'>-</div><div class='del'>-	gnome_dialog_append_button ( GNOME_DIALOG(e_contact_editor_address),</div><div class='del'>-				     GNOME_STOCK_BUTTON_OK);</div><div class='del'>-	</div><div class='del'>-	gnome_dialog_append_button ( GNOME_DIALOG(e_contact_editor_address),</div><div class='del'>-				     GNOME_STOCK_BUTTON_CANCEL);</div><div class='del'>-</div><div class='del'>-	gtk_window_set_policy(GTK_WINDOW(e_contact_editor_address), FALSE, TRUE, FALSE);</div><div class='del'>-</div><div class='del'>-	e_contact_editor_address-&gt;address = NULL;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/fulladdr.glade", NULL);</div><div class='del'>-	e_contact_editor_address-&gt;gui = gui;</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(gui, "table-checkaddress");</div><div class='del'>-	gtk_widget_ref(widget);</div><div class='del'>-	gtk_container_remove(GTK_CONTAINER(widget-&gt;parent), widget);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (e_contact_editor_address)-&gt;vbox), widget, TRUE, TRUE, 0);</div><div class='del'>-	gtk_widget_unref(widget);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_editor_address_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	EContactEditorAddress *e_contact_editor_address = E_CONTACT_EDITOR_ADDRESS(object);</div><div class='del'>-</div><div class='del'>-	if (e_contact_editor_address-&gt;gui)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(e_contact_editor_address-&gt;gui));</div><div class='del'>-	e_card_delivery_address_unref(e_contact_editor_address-&gt;address);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget*</div><div class='del'>-e_contact_editor_address_new (const ECardDeliveryAddress *address)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = GTK_WIDGET (gtk_type_new (e_contact_editor_address_get_type ()));</div><div class='del'>-	gtk_object_set (GTK_OBJECT(widget),</div><div class='del'>-			"address", address,</div><div class='del'>-			NULL);</div><div class='del'>-	return widget;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_address_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactEditorAddress *e_contact_editor_address;</div><div class='del'>-</div><div class='del'>-	e_contact_editor_address = E_CONTACT_EDITOR_ADDRESS (o);</div><div class='del'>-	</div><div class='del'>-	switch (arg_id){</div><div class='del'>-	case ARG_ADDRESS:</div><div class='del'>-		e_card_delivery_address_unref(e_contact_editor_address-&gt;address);</div><div class='del'>-		e_contact_editor_address-&gt;address = e_card_delivery_address_copy(GTK_VALUE_POINTER (*arg));</div><div class='del'>-		fill_in_info(e_contact_editor_address);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_IS_READ_ONLY: {</div><div class='del'>-		int i;</div><div class='del'>-		char *entry_names[] = {</div><div class='del'>-			"entry-street",</div><div class='del'>-			"entry-city",</div><div class='del'>-			"entry-ext",</div><div class='del'>-			"entry-po",</div><div class='del'>-			"entry-region",</div><div class='del'>-			"combo-country",</div><div class='del'>-			"entry-code",</div><div class='del'>-			NULL</div><div class='del'>-		};</div><div class='del'>-		e_contact_editor_address-&gt;editable = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE;</div><div class='del'>-		for (i = 0; entry_names[i] != NULL; i ++) {</div><div class='del'>-			GtkWidget *w = glade_xml_get_widget(e_contact_editor_address-&gt;gui, entry_names[i]);</div><div class='del'>-			if (GTK_IS_ENTRY (w)) {</div><div class='del'>-				gtk_entry_set_editable (GTK_ENTRY (w),</div><div class='del'>-							e_contact_editor_address-&gt;editable);</div><div class='del'>-			}</div><div class='del'>-			else if (GTK_IS_COMBO (w)) {</div><div class='del'>-				gtk_entry_set_editable (GTK_ENTRY (GTK_COMBO (w)-&gt;entry),</div><div class='del'>-							e_contact_editor_address-&gt;editable);</div><div class='del'>-				gtk_widget_set_sensitive (GTK_COMBO (w)-&gt;button, e_contact_editor_address-&gt;editable);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_address_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactEditorAddress *e_contact_editor_address;</div><div class='del'>-</div><div class='del'>-	e_contact_editor_address = E_CONTACT_EDITOR_ADDRESS (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_ADDRESS:</div><div class='del'>-		extract_info(e_contact_editor_address);</div><div class='del'>-		GTK_VALUE_POINTER (*arg) = e_card_delivery_address_ref(e_contact_editor_address-&gt;address);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_IS_READ_ONLY:</div><div class='del'>-		GTK_VALUE_BOOL (*arg) = e_contact_editor_address-&gt;editable ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_field(EContactEditorAddress *editor, char *field, char *string)</div><div class='del'>-{</div><div class='del'>-	GtkEditable *editable = GTK_EDITABLE(glade_xml_get_widget(editor-&gt;gui, field));</div><div class='del'>-	if (editable) {</div><div class='del'>-		e_utf8_gtk_editable_set_text(editable, string);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_info(EContactEditorAddress *editor)</div><div class='del'>-{</div><div class='del'>-	ECardDeliveryAddress *address = editor-&gt;address;</div><div class='del'>-	if (address) {</div><div class='del'>-		fill_in_field(editor, "entry-street" , address-&gt;street );</div><div class='del'>-		fill_in_field(editor, "entry-po"     , address-&gt;po     );</div><div class='del'>-		fill_in_field(editor, "entry-ext"    , address-&gt;ext    );</div><div class='del'>-		fill_in_field(editor, "entry-city"   , address-&gt;city   );</div><div class='del'>-		fill_in_field(editor, "entry-region" , address-&gt;region );</div><div class='del'>-		fill_in_field(editor, "entry-code"   , address-&gt;code   );</div><div class='del'>-		fill_in_field(editor, "entry-country", address-&gt;country);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-extract_field(EContactEditorAddress *editor, char *field)</div><div class='del'>-{</div><div class='del'>-	GtkEditable *editable = GTK_EDITABLE(glade_xml_get_widget(editor-&gt;gui, field));</div><div class='del'>-	if (editable)</div><div class='del'>-		return e_utf8_gtk_editable_get_text(editable);</div><div class='del'>-	else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-extract_info(EContactEditorAddress *editor)</div><div class='del'>-{</div><div class='del'>-	ECardDeliveryAddress *address = editor-&gt;address;</div><div class='del'>-	if (!address) {</div><div class='del'>-		address = e_card_delivery_address_new();</div><div class='del'>-		editor-&gt;address = address;</div><div class='del'>-	}</div><div class='del'>-	address-&gt;street  = extract_field(editor, "entry-street" );</div><div class='del'>-	address-&gt;po      = extract_field(editor, "entry-po"     );</div><div class='del'>-	address-&gt;ext     = extract_field(editor, "entry-ext"    );</div><div class='del'>-	address-&gt;city    = extract_field(editor, "entry-city"   );</div><div class='del'>-	address-&gt;region  = extract_field(editor, "entry-region" );</div><div class='del'>-	address-&gt;code    = extract_field(editor, "entry-code"   );</div><div class='del'>-	address-&gt;country = extract_field(editor, "entry-country");</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-editor-address.h b/addressbook/gui/contact-editor/e-contact-editor-address.h<br/>deleted file mode 100644<br/>index f4031bea2f..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-editor-address.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-editor-address.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,78 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-contact-editor-address.h</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-#ifndef __E_CONTACT_EDITOR_ADDRESS_H__</div><div class='del'>-#define __E_CONTACT_EDITOR_ADDRESS_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include &lt;ebook/e-card.h&gt;</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#pragma }</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-/* EContactEditorAddress - A dialog displaying information about a contact.</div><div class='del'>- *</div><div class='del'>- * The following arguments are available:</div><div class='del'>- *</div><div class='del'>- * name		type		read/write	description</div><div class='del'>- * --------------------------------------------------------------------------------</div><div class='del'>- * name         ECardName *     RW              The card currently being edited. Returns a copy.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define E_CONTACT_EDITOR_ADDRESS_TYPE			(e_contact_editor_address_get_type ())</div><div class='del'>-#define E_CONTACT_EDITOR_ADDRESS(obj)			(GTK_CHECK_CAST ((obj), E_CONTACT_EDITOR_ADDRESS_TYPE, EContactEditorAddress))</div><div class='del'>-#define E_CONTACT_EDITOR_ADDRESS_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_CONTACT_EDITOR_ADDRESS_TYPE, EContactEditorAddressClass))</div><div class='del'>-#define E_IS_CONTACT_EDITOR_ADDRESS(obj)		(GTK_CHECK_TYPE ((obj), E_CONTACT_EDITOR_ADDRESS_TYPE))</div><div class='del'>-#define E_IS_CONTACT_EDITOR_ADDRESS_CLASS(klass)	(GTK_CHECK_CLASS_TYPE ((obj), E_CONTACT_EDITOR_ADDRESS_TYPE))</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _EContactEditorAddress       EContactEditorAddress;</div><div class='del'>-typedef struct _EContactEditorAddressClass  EContactEditorAddressClass;</div><div class='del'>-</div><div class='del'>-struct _EContactEditorAddress</div><div class='del'>-{</div><div class='del'>-	GnomeDialog parent;</div><div class='del'>-	</div><div class='del'>-	/* item specific fields */</div><div class='del'>-	ECardDeliveryAddress *address;</div><div class='del'>-</div><div class='del'>-	guint editable : 1;</div><div class='del'>-</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EContactEditorAddressClass</div><div class='del'>-{</div><div class='del'>-	GnomeDialogClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GtkWidget *e_contact_editor_address_new(const ECardDeliveryAddress *name);</div><div class='del'>-GtkType    e_contact_editor_address_get_type (void);</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_CONTACT_EDITOR_ADDRESS_H__ */</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-editor-confirm-delete.glade b/addressbook/gui/contact-editor/e-contact-editor-confirm-delete.glade<br/>deleted file mode 100644<br/>index b91a040d46..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-editor-confirm-delete.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-editor-confirm-delete.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,83 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;e-contact-editor-confirm-delete&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;e-contact-editor-confirm-delete&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-  &lt;use_widget_names&gt;True&lt;/use_widget_names&gt;</div><div class='del'>-  &lt;output_main_file&gt;False&lt;/output_main_file&gt;</div><div class='del'>-  &lt;output_support_files&gt;False&lt;/output_support_files&gt;</div><div class='del'>-  &lt;output_build_files&gt;False&lt;/output_build_files&gt;</div><div class='del'>-  &lt;gnome_help_support&gt;True&lt;/gnome_help_support&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeMessageBox&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;confirm-dialog&lt;/name&gt;</div><div class='del'>-  &lt;message_box_type&gt;GNOME_MESSAGE_BOX_QUESTION&lt;/message_box_type&gt;</div><div class='del'>-  &lt;message&gt;Are you sure you want</div><div class='del'>-to delete this contact?&lt;/message&gt;</div><div class='del'>-  &lt;title&gt;Delete Contact?&lt;/title&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;False&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;True&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dialog-vbox1&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;dialog-action_area1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button1&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_OK&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button2&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-editor-fullname.c b/addressbook/gui/contact-editor/e-contact-editor-fullname.c<br/>deleted file mode 100644<br/>index ddf69d861c..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-editor-fullname.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-editor-fullname.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,250 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* </div><div class='del'>- * e-contact-editor-fullname.c</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-stock.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include "e-contact-editor-fullname.h"</div><div class='del'>-#include &lt;gtk/gtkcombo.h&gt;</div><div class='del'>-</div><div class='del'>-static void e_contact_editor_fullname_init		(EContactEditorFullname		 *card);</div><div class='del'>-static void e_contact_editor_fullname_class_init	(EContactEditorFullnameClass	 *klass);</div><div class='del'>-static void e_contact_editor_fullname_set_arg (GtkObject *o, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_editor_fullname_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_editor_fullname_destroy (GtkObject *object);</div><div class='del'>-</div><div class='del'>-static void fill_in_info(EContactEditorFullname *editor);</div><div class='del'>-static void extract_info(EContactEditorFullname *editor);</div><div class='del'>-</div><div class='del'>-static GnomeDialogClass *parent_class = NULL;</div><div class='del'>-</div><div class='del'>-/* The arguments we take */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_NAME,</div><div class='del'>-	ARG_IS_READ_ONLY</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_contact_editor_fullname_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType contact_editor_fullname_type = 0;</div><div class='del'>-</div><div class='del'>-	if (!contact_editor_fullname_type)</div><div class='del'>-		{</div><div class='del'>-			static const GtkTypeInfo contact_editor_fullname_info =</div><div class='del'>-			{</div><div class='del'>-				"EContactEditorFullname",</div><div class='del'>-				sizeof (EContactEditorFullname),</div><div class='del'>-				sizeof (EContactEditorFullnameClass),</div><div class='del'>-				(GtkClassInitFunc) e_contact_editor_fullname_class_init,</div><div class='del'>-				(GtkObjectInitFunc) e_contact_editor_fullname_init,</div><div class='del'>-				/* reserved_1 */ NULL,</div><div class='del'>-				/* reserved_2 */ NULL,</div><div class='del'>-				(GtkClassInitFunc) NULL,</div><div class='del'>-			};</div><div class='del'>-</div><div class='del'>-			contact_editor_fullname_type = gtk_type_unique (gnome_dialog_get_type (), &amp;contact_editor_fullname_info);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	return contact_editor_fullname_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_fullname_class_init (EContactEditorFullnameClass *klass)</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass *object_class;</div><div class='del'>-	GnomeDialogClass *dialog_class;</div><div class='del'>-</div><div class='del'>-	object_class = (GtkObjectClass*) klass;</div><div class='del'>-	dialog_class = (GnomeDialogClass *) klass;</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class (gnome_dialog_get_type ());</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("EContactEditorFullname::name", GTK_TYPE_POINTER, </div><div class='del'>-				 GTK_ARG_READWRITE, ARG_NAME);</div><div class='del'>-</div><div class='del'>-	gtk_object_add_arg_type ("EContactEditorFullname::editable", GTK_TYPE_BOOL, </div><div class='del'>-				 GTK_ARG_READWRITE, ARG_IS_READ_ONLY);</div><div class='del'>- </div><div class='del'>-	object_class-&gt;set_arg = e_contact_editor_fullname_set_arg;</div><div class='del'>-	object_class-&gt;get_arg = e_contact_editor_fullname_get_arg;</div><div class='del'>-	object_class-&gt;destroy = e_contact_editor_fullname_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_fullname_init (EContactEditorFullname *e_contact_editor_fullname)</div><div class='del'>-{</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *widget;</div><div class='del'>-</div><div class='del'>-	gnome_dialog_append_button ( GNOME_DIALOG(e_contact_editor_fullname),</div><div class='del'>-				     GNOME_STOCK_BUTTON_OK);</div><div class='del'>-	</div><div class='del'>-	gnome_dialog_append_button ( GNOME_DIALOG(e_contact_editor_fullname),</div><div class='del'>-				     GNOME_STOCK_BUTTON_CANCEL);</div><div class='del'>-</div><div class='del'>-	gtk_window_set_policy(GTK_WINDOW(e_contact_editor_fullname), TRUE, TRUE, FALSE);</div><div class='del'>-</div><div class='del'>-	e_contact_editor_fullname-&gt;name = NULL;</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/fullname.glade", NULL);</div><div class='del'>-	e_contact_editor_fullname-&gt;gui = gui;</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(gui, "table-checkfullname");</div><div class='del'>-	gtk_widget_ref(widget);</div><div class='del'>-	gtk_container_remove(GTK_CONTAINER(widget-&gt;parent), widget);</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (e_contact_editor_fullname)-&gt;vbox), widget, TRUE, TRUE, 0);</div><div class='del'>-	gtk_widget_unref(widget);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_editor_fullname_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	EContactEditorFullname *e_contact_editor_fullname = E_CONTACT_EDITOR_FULLNAME(object);</div><div class='del'>-</div><div class='del'>-	if (e_contact_editor_fullname-&gt;gui)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(e_contact_editor_fullname-&gt;gui));</div><div class='del'>-	e_card_name_unref(e_contact_editor_fullname-&gt;name);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget*</div><div class='del'>-e_contact_editor_fullname_new (const ECardName *name)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = GTK_WIDGET (gtk_type_new (e_contact_editor_fullname_get_type ()));</div><div class='del'>-	gtk_object_set (GTK_OBJECT(widget),</div><div class='del'>-			"name", name,</div><div class='del'>-			NULL);</div><div class='del'>-	return widget;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_fullname_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactEditorFullname *e_contact_editor_fullname;</div><div class='del'>-</div><div class='del'>-	e_contact_editor_fullname = E_CONTACT_EDITOR_FULLNAME (o);</div><div class='del'>-	</div><div class='del'>-	switch (arg_id){</div><div class='del'>-	case ARG_NAME:</div><div class='del'>-		e_card_name_unref(e_contact_editor_fullname-&gt;name);</div><div class='del'>-		e_contact_editor_fullname-&gt;name = e_card_name_copy(GTK_VALUE_POINTER (*arg));</div><div class='del'>-		fill_in_info(e_contact_editor_fullname);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_IS_READ_ONLY: {</div><div class='del'>-		int i;</div><div class='del'>-		char *entry_names[] = {</div><div class='del'>-			"combo-title",</div><div class='del'>-			"combo-suffix",</div><div class='del'>-			"entry-first",</div><div class='del'>-			"entry-middle",</div><div class='del'>-			"entry-last",</div><div class='del'>-			NULL</div><div class='del'>-		};</div><div class='del'>-		e_contact_editor_fullname-&gt;editable = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE;</div><div class='del'>-		for (i = 0; entry_names[i] != NULL; i ++) {</div><div class='del'>-			GtkWidget *w = glade_xml_get_widget(e_contact_editor_fullname-&gt;gui, entry_names[i]);</div><div class='del'>-			if (GTK_IS_ENTRY (w)) {</div><div class='del'>-				gtk_entry_set_editable (GTK_ENTRY (w),</div><div class='del'>-							e_contact_editor_fullname-&gt;editable);</div><div class='del'>-			}</div><div class='del'>-			else if (GTK_IS_COMBO (w)) {</div><div class='del'>-				gtk_entry_set_editable (GTK_ENTRY (GTK_COMBO (w)-&gt;entry),</div><div class='del'>-							e_contact_editor_fullname-&gt;editable);</div><div class='del'>-				gtk_widget_set_sensitive (GTK_COMBO (w)-&gt;button, e_contact_editor_fullname-&gt;editable);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_fullname_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactEditorFullname *e_contact_editor_fullname;</div><div class='del'>-</div><div class='del'>-	e_contact_editor_fullname = E_CONTACT_EDITOR_FULLNAME (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_NAME:</div><div class='del'>-		extract_info(e_contact_editor_fullname);</div><div class='del'>-		GTK_VALUE_POINTER (*arg) = e_card_name_ref(e_contact_editor_fullname-&gt;name);</div><div class='del'>-		break;</div><div class='del'>-	case ARG_IS_READ_ONLY:</div><div class='del'>-		GTK_VALUE_BOOL (*arg) = e_contact_editor_fullname-&gt;editable ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_field(EContactEditorFullname *editor, char *field, char *string)</div><div class='del'>-{</div><div class='del'>-	GtkEntry *entry = GTK_ENTRY(glade_xml_get_widget(editor-&gt;gui, field));</div><div class='del'>-	if (entry) {</div><div class='del'>-		if (string)</div><div class='del'>-			e_utf8_gtk_entry_set_text(entry, string);</div><div class='del'>-		else</div><div class='del'>-			gtk_entry_set_text(entry, "");</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_info(EContactEditorFullname *editor)</div><div class='del'>-{</div><div class='del'>-	ECardName *name = editor-&gt;name;</div><div class='del'>-	if (name) {</div><div class='del'>-		fill_in_field(editor, "entry-title",  name-&gt;prefix);</div><div class='del'>-		fill_in_field(editor, "entry-first",  name-&gt;given);</div><div class='del'>-		fill_in_field(editor, "entry-middle", name-&gt;additional);</div><div class='del'>-		fill_in_field(editor, "entry-last",   name-&gt;family);</div><div class='del'>-		fill_in_field(editor, "entry-suffix", name-&gt;suffix);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-extract_field(EContactEditorFullname *editor, char *field)</div><div class='del'>-{</div><div class='del'>-	GtkEntry *entry = GTK_ENTRY(glade_xml_get_widget(editor-&gt;gui, field));</div><div class='del'>-	if (entry)</div><div class='del'>-		return e_utf8_gtk_entry_get_text(entry);</div><div class='del'>-	else</div><div class='del'>-		return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-extract_info(EContactEditorFullname *editor)</div><div class='del'>-{</div><div class='del'>-	ECardName *name = editor-&gt;name;</div><div class='del'>-	if (!name) {</div><div class='del'>-		name = e_card_name_new();</div><div class='del'>-		editor-&gt;name = name;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	name-&gt;prefix     = extract_field(editor, "entry-title" );</div><div class='del'>-	name-&gt;given      = extract_field(editor, "entry-first" );</div><div class='del'>-	name-&gt;additional = extract_field(editor, "entry-middle");</div><div class='del'>-	name-&gt;family     = extract_field(editor, "entry-last"  );</div><div class='del'>-	name-&gt;suffix     = extract_field(editor, "entry-suffix");</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-editor-fullname.h b/addressbook/gui/contact-editor/e-contact-editor-fullname.h<br/>deleted file mode 100644<br/>index 82411c0606..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-editor-fullname.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-editor-fullname.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,78 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-contact-editor-fullname.h</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-#ifndef __E_CONTACT_EDITOR_FULLNAME_H__</div><div class='del'>-#define __E_CONTACT_EDITOR_FULLNAME_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include &lt;ebook/e-card.h&gt;</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#pragma }</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-/* EContactEditorFullname - A dialog displaying information about a contact.</div><div class='del'>- *</div><div class='del'>- * The following arguments are available:</div><div class='del'>- *</div><div class='del'>- * name		type		read/write	description</div><div class='del'>- * --------------------------------------------------------------------------------</div><div class='del'>- * name         ECardName *     RW              The card currently being edited. Returns a copy.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define E_CONTACT_EDITOR_FULLNAME_TYPE			(e_contact_editor_fullname_get_type ())</div><div class='del'>-#define E_CONTACT_EDITOR_FULLNAME(obj)			(GTK_CHECK_CAST ((obj), E_CONTACT_EDITOR_FULLNAME_TYPE, EContactEditorFullname))</div><div class='del'>-#define E_CONTACT_EDITOR_FULLNAME_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_CONTACT_EDITOR_FULLNAME_TYPE, EContactEditorFullnameClass))</div><div class='del'>-#define E_IS_CONTACT_EDITOR_FULLNAME(obj)		(GTK_CHECK_TYPE ((obj), E_CONTACT_EDITOR_FULLNAME_TYPE))</div><div class='del'>-#define E_IS_CONTACT_EDITOR_FULLNAME_CLASS(klass)	(GTK_CHECK_CLASS_TYPE ((obj), E_CONTACT_EDITOR_FULLNAME_TYPE))</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _EContactEditorFullname       EContactEditorFullname;</div><div class='del'>-typedef struct _EContactEditorFullnameClass  EContactEditorFullnameClass;</div><div class='del'>-</div><div class='del'>-struct _EContactEditorFullname</div><div class='del'>-{</div><div class='del'>-	GnomeDialog parent;</div><div class='del'>-	</div><div class='del'>-	/* item specific fields */</div><div class='del'>-	ECardName *name;</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-</div><div class='del'>-	/* Whether the dialog will accept modifications */</div><div class='del'>-	guint editable : 1;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EContactEditorFullnameClass</div><div class='del'>-{</div><div class='del'>-	GnomeDialogClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GtkWidget *e_contact_editor_fullname_new(const ECardName *name);</div><div class='del'>-GtkType    e_contact_editor_fullname_get_type (void);</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_CONTACT_EDITOR_FULLNAME_H__ */</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c<br/>deleted file mode 100644<br/>index 72d49b5908..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-editor.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-editor.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2560 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* </div><div class='del'>- * e-contact-editor.c</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#include &lt;gtk/gtkcheckbutton.h&gt;</div><div class='del'>-#include &lt;gtk/gtkcheckmenuitem.h&gt;</div><div class='del'>-#include &lt;gtk/gtkcombo.h&gt;</div><div class='del'>-#include &lt;gtk/gtktext.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-popup-menu.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;bonobo/bonobo-ui-container.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-ui-util.h&gt;</div><div class='del'>-#include &lt;gdk-pixbuf/gdk-pixbuf.h&gt;</div><div class='del'>-#include &lt;gdk-pixbuf/gnome-canvas-pixbuf.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-categories.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-gui-utils.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include &lt;gal/e-text/e-entry.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;e-util/e-categories-master-list-wombat.h&gt;</div><div class='del'>-</div><div class='del'>-#include "addressbook/printing/e-contact-print.h"</div><div class='del'>-#include "addressbook/printing/e-contact-print-envelope.h"</div><div class='del'>-#include "e-util/e-gui-utils.h"</div><div class='del'>-#include "widgets/misc/e-dateedit.h"</div><div class='del'>-#include "shell/evolution-shell-component-utils.h"</div><div class='del'>-</div><div class='del'>-#include "e-card-merging.h"</div><div class='del'>-</div><div class='del'>-#include "e-contact-editor.h"</div><div class='del'>-#include "e-contact-editor-address.h"</div><div class='del'>-#include "e-contact-editor-fullname.h"</div><div class='del'>-#include "e-contact-save-as.h"</div><div class='del'>-</div><div class='del'>-/* Signal IDs */</div><div class='del'>-enum {</div><div class='del'>-	CARD_ADDED,</div><div class='del'>-	CARD_MODIFIED,</div><div class='del'>-	CARD_DELETED,</div><div class='del'>-	EDITOR_CLOSED,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void e_contact_editor_init		(EContactEditor		 *card);</div><div class='del'>-static void e_contact_editor_class_init	(EContactEditorClass	 *klass);</div><div class='del'>-static void e_contact_editor_set_arg (GtkObject *o, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_editor_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_editor_destroy (GtkObject *object);</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-static GtkWidget *e_contact_editor_build_dialog(EContactEditor *editor, gchar *entry_id, gchar *label_id, gchar *title, GList **list, GnomeUIInfo **info);</div><div class='del'>-#endif</div><div class='del'>-static void _email_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEditor *editor);</div><div class='del'>-static void _phone_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEditor *editor);</div><div class='del'>-static void _address_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEditor *editor);</div><div class='del'>-static void enable_writable_fields(EContactEditor *editor);</div><div class='del'>-static void set_editable(EContactEditor *editor);</div><div class='del'>-static void fill_in_info(EContactEditor *editor);</div><div class='del'>-static void extract_info(EContactEditor *editor);</div><div class='del'>-static void set_fields(EContactEditor *editor);</div><div class='del'>-static void set_address_field(EContactEditor *editor, int result);</div><div class='del'>-static void add_field_callback(GtkWidget *widget, EContactEditor *editor);</div><div class='del'>-static void command_state_changed (EContactEditor *ce);</div><div class='del'>-static void widget_changed (GtkWidget *widget, EContactEditor *editor);</div><div class='del'>-static void close_dialog (EContactEditor *ce);</div><div class='del'>-static void enable_widget (GtkWidget *widget, gboolean enabled);</div><div class='del'>-</div><div class='del'>-static GtkObjectClass *parent_class = NULL;</div><div class='del'>-</div><div class='del'>-static guint contact_editor_signals[LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-/* The arguments we take */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_BOOK,</div><div class='del'>-	ARG_CARD,</div><div class='del'>-	ARG_IS_NEW_CARD,</div><div class='del'>-	ARG_EDITABLE,</div><div class='del'>-	ARG_CHANGED,</div><div class='del'>-	ARG_WRITABLE_FIELDS</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-	DYNAMIC_LIST_EMAIL,</div><div class='del'>-	DYNAMIC_LIST_PHONE,</div><div class='del'>-	DYNAMIC_LIST_ADDRESS</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_contact_editor_get_type (void)</div><div class='del'>-{</div><div class='del'>-  static GtkType contact_editor_type = 0;</div><div class='del'>-</div><div class='del'>-  if (!contact_editor_type)</div><div class='del'>-    {</div><div class='del'>-      static const GtkTypeInfo contact_editor_info =</div><div class='del'>-      {</div><div class='del'>-        "EContactEditor",</div><div class='del'>-        sizeof (EContactEditor),</div><div class='del'>-        sizeof (EContactEditorClass),</div><div class='del'>-        (GtkClassInitFunc) e_contact_editor_class_init,</div><div class='del'>-        (GtkObjectInitFunc) e_contact_editor_init,</div><div class='del'>-        /* reserved_1 */ NULL,</div><div class='del'>-        /* reserved_2 */ NULL,</div><div class='del'>-        (GtkClassInitFunc) NULL,</div><div class='del'>-      };</div><div class='del'>-</div><div class='del'>-      contact_editor_type = gtk_type_unique (GTK_TYPE_OBJECT, &amp;contact_editor_info);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-  return contact_editor_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef void (*GtkSignal_NONE__INT_OBJECT) (GtkObject * object,</div><div class='del'>-					    gint arg1,</div><div class='del'>-					    GtkObject *arg2,</div><div class='del'>-					    gpointer user_data);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_marshal_NONE__INT_OBJECT (GtkObject * object,</div><div class='del'>-			    GtkSignalFunc func,</div><div class='del'>-			    gpointer func_data, GtkArg * args)</div><div class='del'>-{</div><div class='del'>-	GtkSignal_NONE__INT_OBJECT rfunc;</div><div class='del'>-	rfunc = (GtkSignal_NONE__INT_OBJECT) func;</div><div class='del'>-	(*rfunc) (object,</div><div class='del'>-		  GTK_VALUE_INT (args[0]),</div><div class='del'>-		  GTK_VALUE_OBJECT (args[1]),</div><div class='del'>-		  func_data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_class_init (EContactEditorClass *klass)</div><div class='del'>-{</div><div class='del'>-  GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-  object_class = (GtkObjectClass*) klass;</div><div class='del'>-</div><div class='del'>-  parent_class = gtk_type_class (GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  gtk_object_add_arg_type ("EContactEditor::book", GTK_TYPE_OBJECT, </div><div class='del'>-			   GTK_ARG_READWRITE, ARG_BOOK);</div><div class='del'>-  gtk_object_add_arg_type ("EContactEditor::card", GTK_TYPE_OBJECT, </div><div class='del'>-			   GTK_ARG_READWRITE, ARG_CARD);</div><div class='del'>-  gtk_object_add_arg_type ("EContactEditor::is_new_card", GTK_TYPE_BOOL,</div><div class='del'>-			   GTK_ARG_READWRITE, ARG_IS_NEW_CARD);</div><div class='del'>-  gtk_object_add_arg_type ("EContactEditor::writable_fields", GTK_TYPE_POINTER,</div><div class='del'>-			   GTK_ARG_READWRITE, ARG_WRITABLE_FIELDS);</div><div class='del'>-  gtk_object_add_arg_type ("EContactEditor::editable", GTK_TYPE_BOOL,</div><div class='del'>-			   GTK_ARG_READWRITE, ARG_EDITABLE);</div><div class='del'>-  gtk_object_add_arg_type ("EContactEditor::changed", GTK_TYPE_BOOL,</div><div class='del'>-			   GTK_ARG_READWRITE, ARG_CHANGED);</div><div class='del'>-</div><div class='del'>-  contact_editor_signals[CARD_ADDED] =</div><div class='del'>-	  gtk_signal_new ("card_added",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactEditorClass, card_added),</div><div class='del'>-			  e_marshal_NONE__INT_OBJECT,</div><div class='del'>-			  GTK_TYPE_NONE, 2,</div><div class='del'>-			  GTK_TYPE_INT, GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  contact_editor_signals[CARD_MODIFIED] =</div><div class='del'>-	  gtk_signal_new ("card_modified",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactEditorClass, card_modified),</div><div class='del'>-			  e_marshal_NONE__INT_OBJECT,</div><div class='del'>-			  GTK_TYPE_NONE, 2,</div><div class='del'>-			  GTK_TYPE_INT, GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  contact_editor_signals[CARD_DELETED] =</div><div class='del'>-	  gtk_signal_new ("card_deleted",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactEditorClass, card_deleted),</div><div class='del'>-			  e_marshal_NONE__INT_OBJECT,</div><div class='del'>-			  GTK_TYPE_NONE, 2,</div><div class='del'>-			  GTK_TYPE_INT, GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  contact_editor_signals[EDITOR_CLOSED] =</div><div class='del'>-	  gtk_signal_new ("editor_closed",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactEditorClass, editor_closed),</div><div class='del'>-			  gtk_marshal_NONE__NONE,</div><div class='del'>-			  GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-  gtk_object_class_add_signals (object_class, contact_editor_signals, LAST_SIGNAL);</div><div class='del'>- </div><div class='del'>-  object_class-&gt;set_arg = e_contact_editor_set_arg;</div><div class='del'>-  object_class-&gt;get_arg = e_contact_editor_get_arg;</div><div class='del'>-  object_class-&gt;destroy = e_contact_editor_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-_replace_button(EContactEditor *editor, gchar *button_xml, gchar *image, GtkSignalFunc func)</div><div class='del'>-{</div><div class='del'>-	GladeXML *gui = editor-&gt;gui;</div><div class='del'>-	GtkWidget *button = glade_xml_get_widget(gui, button_xml);</div><div class='del'>-	GtkWidget *pixmap;</div><div class='del'>-	gchar *image_temp;</div><div class='del'>-	if (button &amp;&amp; GTK_IS_BUTTON(button)) {</div><div class='del'>-		image_temp = g_strdup_printf("%s/%s", EVOLUTIONDIR, image);</div><div class='del'>-		pixmap = e_create_image_widget(NULL, image_temp, NULL, 0, 0);</div><div class='del'>-		gtk_container_add(GTK_CONTAINER(button),</div><div class='del'>-				  pixmap);</div><div class='del'>-		g_free(image_temp);</div><div class='del'>-		gtk_widget_show(pixmap);</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(button), "button_press_event", func, editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-_replace_buttons(EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	_replace_button(editor, "button-phone1", "arrow.png", _phone_arrow_pressed);</div><div class='del'>-	_replace_button(editor, "button-phone2", "arrow.png", _phone_arrow_pressed);</div><div class='del'>-	_replace_button(editor, "button-phone3", "arrow.png", _phone_arrow_pressed);</div><div class='del'>-	_replace_button(editor, "button-phone4", "arrow.png", _phone_arrow_pressed);</div><div class='del'>-	_replace_button(editor, "button-address", "arrow.png", _address_arrow_pressed);</div><div class='del'>-	_replace_button(editor, "button-email1", "arrow.png", _email_arrow_pressed);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-wants_html_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	gboolean wants_html;</div><div class='del'>-	gtk_object_get(GTK_OBJECT(widget),</div><div class='del'>-		       "active", &amp;wants_html,</div><div class='del'>-		       NULL);</div><div class='del'>-	gtk_object_set(GTK_OBJECT(editor-&gt;card),</div><div class='del'>-		       "wants_html", wants_html,</div><div class='del'>-		       NULL);</div><div class='del'>-</div><div class='del'>-	widget_changed (widget, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-phone_entry_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int which;</div><div class='del'>-	GtkEntry *entry = GTK_ENTRY(widget);</div><div class='del'>-	ECardPhone *phone;</div><div class='del'>-</div><div class='del'>-	if ( widget == glade_xml_get_widget(editor-&gt;gui, "entry-phone1") ) {</div><div class='del'>-		which = 1;</div><div class='del'>-	} else if ( widget == glade_xml_get_widget(editor-&gt;gui, "entry-phone2") ) {</div><div class='del'>-		which = 2;</div><div class='del'>-	} else if ( widget == glade_xml_get_widget(editor-&gt;gui, "entry-phone3") ) {</div><div class='del'>-		which = 3;</div><div class='del'>-	} else if ( widget == glade_xml_get_widget(editor-&gt;gui, "entry-phone4") ) {</div><div class='del'>-		which = 4;</div><div class='del'>-	} else</div><div class='del'>-		return;</div><div class='del'>-	phone = e_card_phone_new();</div><div class='del'>-	phone-&gt;number = e_utf8_gtk_entry_get_text(entry);</div><div class='del'>-	e_card_simple_set_phone(editor-&gt;simple, editor-&gt;phone_choice[which - 1], phone);</div><div class='del'>-	e_card_phone_unref(phone);</div><div class='del'>-	set_fields(editor);</div><div class='del'>-</div><div class='del'>-	widget_changed (widget, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-email_entry_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	gchar *string;</div><div class='del'>-	GtkEntry *entry = GTK_ENTRY(widget);</div><div class='del'>-</div><div class='del'>-	string = e_utf8_gtk_entry_get_text(entry);</div><div class='del'>-</div><div class='del'>-	e_card_simple_set_email(editor-&gt;simple, editor-&gt;email_choice, string);</div><div class='del'>-</div><div class='del'>-	g_free (string);</div><div class='del'>-</div><div class='del'>-	widget_changed (widget, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-address_text_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkEditable *editable = GTK_EDITABLE(widget);</div><div class='del'>-	ECardAddrLabel *address;</div><div class='del'>-</div><div class='del'>-	if (editor-&gt;address_choice == -1)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	address = e_card_address_label_new();</div><div class='del'>-</div><div class='del'>-	address-&gt;data = e_utf8_gtk_editable_get_chars(editable, 0, -1);</div><div class='del'>-</div><div class='del'>-	e_card_simple_set_address(editor-&gt;simple, editor-&gt;address_choice, address);</div><div class='del'>-	e_card_address_label_unref(address);</div><div class='del'>-</div><div class='del'>-	widget_changed (widget, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function tells you whether name_to_style will make sense.  */</div><div class='del'>-static gboolean</div><div class='del'>-style_makes_sense(const ECardName *name, char *company, int style)</div><div class='del'>-{</div><div class='del'>-	switch (style) {</div><div class='del'>-	case 0: /* Fall Through */</div><div class='del'>-	case 1:</div><div class='del'>-		return TRUE;</div><div class='del'>-	case 2:</div><div class='del'>-		if (company &amp;&amp; *company)</div><div class='del'>-			return TRUE;</div><div class='del'>-		else</div><div class='del'>-			return FALSE;</div><div class='del'>-	case 3: /* Fall Through */</div><div class='del'>-	case 4:</div><div class='del'>-		if (company &amp;&amp; *company &amp;&amp; name &amp;&amp; ((name-&gt;given &amp;&amp; *name-&gt;given) || (name-&gt;family &amp;&amp; *name-&gt;family)))</div><div class='del'>-			return TRUE;</div><div class='del'>-		else</div><div class='del'>-			return FALSE;</div><div class='del'>-	default:</div><div class='del'>-		return FALSE;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-name_to_style(const ECardName *name, char *company, int style)</div><div class='del'>-{</div><div class='del'>-	char *string;</div><div class='del'>-	char *strings[4], **stringptr;</div><div class='del'>-	char *substring;</div><div class='del'>-	switch (style) {</div><div class='del'>-	case 0:</div><div class='del'>-		stringptr = strings;</div><div class='del'>-		if (name) {</div><div class='del'>-			if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-				*(stringptr++) = name-&gt;family;</div><div class='del'>-			if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-				*(stringptr++) = name-&gt;given;</div><div class='del'>-		}</div><div class='del'>-		*stringptr = NULL;</div><div class='del'>-		string = g_strjoinv(", ", strings);</div><div class='del'>-		break;</div><div class='del'>-	case 1:</div><div class='del'>-		stringptr = strings;</div><div class='del'>-		if (name) {</div><div class='del'>-			if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-				*(stringptr++) = name-&gt;given;</div><div class='del'>-			if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-				*(stringptr++) = name-&gt;family;</div><div class='del'>-		}</div><div class='del'>-		*stringptr = NULL;</div><div class='del'>-		string = g_strjoinv(" ", strings);</div><div class='del'>-		break;</div><div class='del'>-	case 2:</div><div class='del'>-		string = g_strdup(company);</div><div class='del'>-		break;</div><div class='del'>-	case 3: /* Fall Through */</div><div class='del'>-	case 4:</div><div class='del'>-		stringptr = strings;</div><div class='del'>-		if (name) {</div><div class='del'>-			if (name-&gt;family &amp;&amp; *name-&gt;family)</div><div class='del'>-				*(stringptr++) = name-&gt;family;</div><div class='del'>-			if (name-&gt;given &amp;&amp; *name-&gt;given)</div><div class='del'>-				*(stringptr++) = name-&gt;given;</div><div class='del'>-		}</div><div class='del'>-		*stringptr = NULL;</div><div class='del'>-		substring = g_strjoinv(", ", strings);</div><div class='del'>-		if (!(company &amp;&amp; *company))</div><div class='del'>-			company = "";</div><div class='del'>-		if (style == 3)</div><div class='del'>-			string = g_strdup_printf("%s (%s)", substring, company);</div><div class='del'>-		else</div><div class='del'>-			string = g_strdup_printf("%s (%s)", company, substring);</div><div class='del'>-		g_free(substring);</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		string = g_strdup("");</div><div class='del'>-	}</div><div class='del'>-	return string;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-file_as_get_style (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkEntry *file_as = GTK_ENTRY(glade_xml_get_widget(editor-&gt;gui, "entry-file-as"));</div><div class='del'>-	char *filestring;</div><div class='del'>-	char *trystring;</div><div class='del'>-	ECardName *name = editor-&gt;name;</div><div class='del'>-	int i;</div><div class='del'>-	int style;</div><div class='del'>-</div><div class='del'>-	if (!(file_as &amp;&amp; GTK_IS_ENTRY(file_as)))</div><div class='del'>-		return -1;</div><div class='del'>-</div><div class='del'>-	filestring = e_utf8_gtk_entry_get_text(file_as);</div><div class='del'>-</div><div class='del'>-	style = -1;</div><div class='del'>-	for (i = 0; i &lt; 5; i++) {</div><div class='del'>-		trystring = name_to_style(name, editor-&gt;company, i);</div><div class='del'>-		if (!strcmp(trystring, filestring)) {</div><div class='del'>-			g_free(trystring);</div><div class='del'>-			g_free(filestring);</div><div class='del'>-			return i;</div><div class='del'>-		}</div><div class='del'>-		g_free(trystring);</div><div class='del'>-	}</div><div class='del'>-	g_free (filestring);</div><div class='del'>-	return -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-file_as_set_style(EContactEditor *editor, int style)</div><div class='del'>-{</div><div class='del'>-	char *string;</div><div class='del'>-	int i;</div><div class='del'>-	GList *strings = NULL;</div><div class='del'>-	GtkEntry *file_as = GTK_ENTRY(glade_xml_get_widget(editor-&gt;gui, "entry-file-as"));</div><div class='del'>-	GtkWidget *widget;</div><div class='del'>-		</div><div class='del'>-</div><div class='del'>-	if (!(file_as &amp;&amp; GTK_IS_ENTRY(file_as)))</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	if (style == -1) {</div><div class='del'>-		string = e_utf8_gtk_entry_get_text(file_as);</div><div class='del'>-		strings = g_list_append(strings, string);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "combo-file-as");</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; 5; i++) {</div><div class='del'>-		if (style_makes_sense(editor-&gt;name, editor-&gt;company, i)) {</div><div class='del'>-			char *u;</div><div class='del'>-			u = name_to_style(editor-&gt;name, editor-&gt;company, i);</div><div class='del'>-			string = e_utf8_to_gtk_string (widget, u);</div><div class='del'>-			g_free (u);</div><div class='del'>-			if (string) strings = g_list_append(strings, string);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_COMBO(widget)) {</div><div class='del'>-		GtkCombo *combo = GTK_COMBO(widget);</div><div class='del'>-		gtk_combo_set_popdown_strings(combo, strings);</div><div class='del'>-		g_list_foreach(strings, (GFunc) g_free, NULL);</div><div class='del'>-		g_list_free(strings);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (style != -1) {</div><div class='del'>-		string = name_to_style(editor-&gt;name, editor-&gt;company, style);</div><div class='del'>-		e_utf8_gtk_entry_set_text(file_as, string);</div><div class='del'>-		g_free(string);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-name_entry_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int style = 0;</div><div class='del'>-	char *string;</div><div class='del'>-</div><div class='del'>-	style = file_as_get_style(editor);</div><div class='del'>-	</div><div class='del'>-	e_card_name_unref(editor-&gt;name);</div><div class='del'>-</div><div class='del'>-	string = e_utf8_gtk_entry_get_text (GTK_ENTRY(widget));</div><div class='del'>-	editor-&gt;name = e_card_name_from_string(string);</div><div class='del'>-	g_free (string);</div><div class='del'>-	</div><div class='del'>-	file_as_set_style(editor, style);</div><div class='del'>-</div><div class='del'>-	widget_changed (widget, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-company_entry_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int style = 0;</div><div class='del'>-</div><div class='del'>-	style = file_as_get_style(editor);</div><div class='del'>-	</div><div class='del'>-	g_free(editor-&gt;company);</div><div class='del'>-	</div><div class='del'>-	editor-&gt;company = e_utf8_gtk_entry_get_text(GTK_ENTRY(widget));</div><div class='del'>-	</div><div class='del'>-	file_as_set_style(editor, style);</div><div class='del'>-</div><div class='del'>-	widget_changed (widget, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-field_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	if (!editor-&gt;changed) {</div><div class='del'>-		editor-&gt;changed = TRUE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_entry_changed_signal_phone(EContactEditor *editor, char *id)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, id);</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget))</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   phone_entry_changed, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-widget_changed (GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	if (!editor-&gt;editable) {</div><div class='del'>-		g_warning ("non-editable contact editor has an editable field in it.");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!editor-&gt;changed) {</div><div class='del'>-		editor-&gt;changed = TRUE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_entry_changed_signal_field(EContactEditor *editor, char *id)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, id);</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget))</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   field_changed, editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_entry_changed_signals(EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget;</div><div class='del'>-	set_entry_changed_signal_phone(editor, "entry-phone1");</div><div class='del'>-	set_entry_changed_signal_phone(editor, "entry-phone2");</div><div class='del'>-	set_entry_changed_signal_phone(editor, "entry-phone3");</div><div class='del'>-	set_entry_changed_signal_phone(editor, "entry-phone4");</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-email1");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   email_entry_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "text-address");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_TEXT(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   address_text_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-fullname");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   name_entry_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-company");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   company_entry_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-web");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-categories");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-jobtitle");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-file-as");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-manager");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-assistant");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-office");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-department");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-profession");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-nickname");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-spouse");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "text-comments");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_TEXT(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "dateedit-birthday");</div><div class='del'>-	if (widget &amp;&amp; E_IS_DATE_EDIT(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "dateedit-anniversary");</div><div class='del'>-	if (widget &amp;&amp; E_IS_DATE_EDIT(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "entry-web");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_ENTRY(widget)) {</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-full_name_clicked(GtkWidget *button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GnomeDialog *dialog = GNOME_DIALOG(e_contact_editor_fullname_new(editor-&gt;name));</div><div class='del'>-	int result;</div><div class='del'>-</div><div class='del'>-	gtk_object_set (GTK_OBJECT (dialog),</div><div class='del'>-			"editable", editor-&gt;editable,</div><div class='del'>-			NULL);</div><div class='del'>-	gtk_widget_show(GTK_WIDGET(dialog));</div><div class='del'>-	result = gnome_dialog_run (dialog);</div><div class='del'>-</div><div class='del'>-	if (result == 0) {</div><div class='del'>-		ECardName *name;</div><div class='del'>-		GtkWidget *fname_widget;</div><div class='del'>-		int style = 0;</div><div class='del'>-</div><div class='del'>-		gtk_object_get(GTK_OBJECT(dialog),</div><div class='del'>-			       "name", &amp;name,</div><div class='del'>-			       NULL);</div><div class='del'>-</div><div class='del'>-		style = file_as_get_style(editor);</div><div class='del'>-</div><div class='del'>-		fname_widget = glade_xml_get_widget(editor-&gt;gui, "entry-fullname");</div><div class='del'>-		if (fname_widget &amp;&amp; GTK_IS_ENTRY(fname_widget)) {</div><div class='del'>-			char *full_name = e_card_name_to_string(name);</div><div class='del'>-			e_utf8_gtk_entry_set_text(GTK_ENTRY(fname_widget), full_name);</div><div class='del'>-			g_free(full_name);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		e_card_name_unref(editor-&gt;name);</div><div class='del'>-		editor-&gt;name = e_card_name_ref(name);</div><div class='del'>-</div><div class='del'>-		file_as_set_style(editor, style);</div><div class='del'>-	}</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(dialog));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-full_addr_clicked(GtkWidget *button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GnomeDialog *dialog;</div><div class='del'>-	int result;</div><div class='del'>-	const ECardDeliveryAddress *address;</div><div class='del'>-</div><div class='del'>-	address = e_card_simple_get_delivery_address(editor-&gt;simple, editor-&gt;address_choice);</div><div class='del'>-</div><div class='del'>-	dialog = GNOME_DIALOG(e_contact_editor_address_new(address));</div><div class='del'>-	gtk_object_set (GTK_OBJECT (dialog),</div><div class='del'>-			"editable", editor-&gt;editable,</div><div class='del'>-			NULL);</div><div class='del'>-	gtk_widget_show(GTK_WIDGET(dialog));</div><div class='del'>-</div><div class='del'>-	result = gnome_dialog_run (dialog);</div><div class='del'>-	if (result == 0) {</div><div class='del'>-		ECardDeliveryAddress *new_address;</div><div class='del'>-		GtkWidget *address_widget;</div><div class='del'>-</div><div class='del'>-		gtk_object_get(GTK_OBJECT(dialog),</div><div class='del'>-			       "address", &amp;new_address,</div><div class='del'>-			       NULL);</div><div class='del'>-</div><div class='del'>-		address_widget = glade_xml_get_widget(editor-&gt;gui, "text-address");</div><div class='del'>-		if (address_widget &amp;&amp; GTK_IS_EDITABLE(address_widget)) {</div><div class='del'>-			char *string = e_card_delivery_address_to_string(new_address);</div><div class='del'>-			e_utf8_gtk_editable_set_text(GTK_EDITABLE(address_widget), string);</div><div class='del'>-			g_free(string);</div><div class='del'>-		} else {</div><div class='del'>-			ECardAddrLabel *address = e_card_delivery_address_to_label(new_address);</div><div class='del'>-			e_card_simple_set_address(editor-&gt;simple, editor-&gt;address_choice, address);</div><div class='del'>-			e_card_address_label_unref(address);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		e_card_simple_set_delivery_address(editor-&gt;simple, editor-&gt;address_choice, new_address);</div><div class='del'>-</div><div class='del'>-		e_card_delivery_address_unref(new_address);</div><div class='del'>-	}</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(dialog));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-categories_clicked(GtkWidget *button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	char *categories = NULL;</div><div class='del'>-	GnomeDialog *dialog;</div><div class='del'>-	int result;</div><div class='del'>-	GtkWidget *entry = glade_xml_get_widget(editor-&gt;gui, "entry-categories");</div><div class='del'>-	ECategoriesMasterList *ecml;</div><div class='del'>-	if (entry &amp;&amp; GTK_IS_ENTRY(entry))</div><div class='del'>-		categories = e_utf8_gtk_entry_get_text(GTK_ENTRY(entry));</div><div class='del'>-	else if (editor-&gt;card)</div><div class='del'>-		gtk_object_get(GTK_OBJECT(editor-&gt;card),</div><div class='del'>-			       "categories", &amp;categories,</div><div class='del'>-			       NULL);</div><div class='del'>-	dialog = GNOME_DIALOG(e_categories_new(categories));</div><div class='del'>-	ecml = e_categories_master_list_wombat_new ();</div><div class='del'>-	gtk_object_set(GTK_OBJECT(dialog),</div><div class='del'>-		       "header", _("This contact belongs to these categories:"),</div><div class='del'>-		       "ecml", ecml,</div><div class='del'>-		       NULL);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (ecml));</div><div class='del'>-	gtk_widget_show(GTK_WIDGET(dialog));</div><div class='del'>-	result = gnome_dialog_run (dialog);</div><div class='del'>-	g_free (categories);</div><div class='del'>-	if (result == 0) {</div><div class='del'>-		gtk_object_get(GTK_OBJECT(dialog),</div><div class='del'>-			       "categories", &amp;categories,</div><div class='del'>-			       NULL);</div><div class='del'>-		if (entry &amp;&amp; GTK_IS_ENTRY(entry))</div><div class='del'>-			e_utf8_gtk_entry_set_text(GTK_ENTRY(entry), categories);</div><div class='del'>-		else</div><div class='del'>-			gtk_object_set(GTK_OBJECT(editor-&gt;card),</div><div class='del'>-				       "categories", categories,</div><div class='del'>-				       NULL);</div><div class='del'>-		g_free(categories);</div><div class='del'>-	}</div><div class='del'>-	gtk_object_destroy(GTK_OBJECT(dialog));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ensure_select_names_contact (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	if (editor-&gt;select_names_contacts == NULL) {</div><div class='del'>-		editor-&gt;select_names_contacts = e_select_names_manager_new ();</div><div class='del'>-		e_select_names_manager_add_section (editor-&gt;select_names_contacts,</div><div class='del'>-						    "contacts",</div><div class='del'>-						    "Related Contacts");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	set_entry_changed_signal_field(editor, "entry-caluri");</div><div class='del'>-	set_entry_changed_signal_field(editor, "entry-fburl");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-contacts_clicked (GtkWidget *button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	ensure_select_names_contact (editor);</div><div class='del'>-	e_select_names_manager_activate_dialog (editor-&gt;select_names_contacts,</div><div class='del'>-						"contacts");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_lists (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *table = glade_xml_get_widget (editor-&gt;gui, "table-contacts");</div><div class='del'>-	if (table &amp;&amp; GTK_IS_TABLE (table)) {</div><div class='del'>-		GtkWidget *entry;</div><div class='del'>-</div><div class='del'>-		ensure_select_names_contact (editor);</div><div class='del'>-		entry = e_select_names_manager_create_entry (editor-&gt;select_names_contacts,</div><div class='del'>-							     "contacts");</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(entry), "changed",</div><div class='del'>-				   widget_changed, editor);</div><div class='del'>-		gtk_table_attach_defaults (GTK_TABLE (table), entry, 0, 1, 0, 1);</div><div class='del'>-		gtk_widget_show (entry);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-	gboolean should_close;</div><div class='del'>-} EditorCloseStruct;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_added_cb (EBook *book, EBookStatus status, const char *id, EditorCloseStruct *ecs)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce = ecs-&gt;ce;</div><div class='del'>-	gboolean should_close = ecs-&gt;should_close;</div><div class='del'>-</div><div class='del'>-	g_free (ecs);</div><div class='del'>-</div><div class='del'>-	e_card_set_id (ce-&gt;card, id);</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[CARD_ADDED],</div><div class='del'>-			 status, ce-&gt;card);</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		ce-&gt;is_new_card = FALSE;</div><div class='del'>-</div><div class='del'>-		if (should_close) {</div><div class='del'>-			close_dialog (ce);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			ce-&gt;changed = FALSE;</div><div class='del'>-			command_state_changed (ce);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_modified_cb (EBook *book, EBookStatus status, EditorCloseStruct *ecs)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce = ecs-&gt;ce;</div><div class='del'>-	gboolean should_close = ecs-&gt;should_close;</div><div class='del'>-</div><div class='del'>-	g_free (ecs);</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[CARD_MODIFIED],</div><div class='del'>-			 status, ce-&gt;card);</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		if (should_close) {</div><div class='del'>-			close_dialog (ce);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			ce-&gt;changed = FALSE;</div><div class='del'>-			command_state_changed (ce);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Emits the signal to request saving a card */</div><div class='del'>-static void</div><div class='del'>-save_card (EContactEditor *ce, gboolean should_close)</div><div class='del'>-{</div><div class='del'>-	extract_info (ce);</div><div class='del'>-	e_card_simple_sync_card (ce-&gt;simple);</div><div class='del'>-</div><div class='del'>-	if (ce-&gt;book) {</div><div class='del'>-		EditorCloseStruct *ecs = g_new(EditorCloseStruct, 1);</div><div class='del'>-		</div><div class='del'>-		ecs-&gt;ce = ce;</div><div class='del'>-		ecs-&gt;should_close = should_close;</div><div class='del'>-</div><div class='del'>-		if (ce-&gt;is_new_card)</div><div class='del'>-			e_card_merging_book_add_card (ce-&gt;book, ce-&gt;card, GTK_SIGNAL_FUNC(card_added_cb), ecs);</div><div class='del'>-		else</div><div class='del'>-			e_card_merging_book_commit_card (ce-&gt;book, ce-&gt;card, GTK_SIGNAL_FUNC(card_modified_cb), ecs);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Closes the dialog box and emits the appropriate signals */</div><div class='del'>-static void</div><div class='del'>-close_dialog (EContactEditor *ce)</div><div class='del'>-{</div><div class='del'>-	g_assert (ce-&gt;app != NULL);</div><div class='del'>-</div><div class='del'>-	gtk_widget_destroy (ce-&gt;app);</div><div class='del'>-	ce-&gt;app = NULL;</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[EDITOR_CLOSED]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Menu callbacks */</div><div class='del'>-</div><div class='del'>-/* File/Save callback */</div><div class='del'>-static void</div><div class='del'>-file_save_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-	save_card (ce, FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* File/Close callback */</div><div class='del'>-static void</div><div class='del'>-file_close_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-	close_dialog (ce);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-file_save_as_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	extract_info (ce);</div><div class='del'>-	e_card_simple_sync_card (ce-&gt;simple);</div><div class='del'>-</div><div class='del'>-	card = ce-&gt;card;</div><div class='del'>-	e_contact_save_as("Save as VCard", card);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-file_send_as_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	extract_info (ce);</div><div class='del'>-	e_card_simple_sync_card (ce-&gt;simple);</div><div class='del'>-</div><div class='del'>-	card = ce-&gt;card;</div><div class='del'>-	e_card_send(card, E_CARD_DISPOSITION_AS_ATTACHMENT);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-file_send_to_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	extract_info (ce);</div><div class='del'>-	e_card_simple_sync_card (ce-&gt;simple);</div><div class='del'>-</div><div class='del'>-	card = ce-&gt;card;</div><div class='del'>-	e_card_send(card, E_CARD_DISPOSITION_AS_TO);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-gboolean</div><div class='del'>-e_contact_editor_confirm_delete(GtkWindow *parent)</div><div class='del'>-{</div><div class='del'>-	GnomeDialog *dialog;</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	int result;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/e-contact-editor-confirm-delete.glade", NULL);</div><div class='del'>-</div><div class='del'>-	dialog = GNOME_DIALOG(glade_xml_get_widget(gui, "confirm-dialog"));</div><div class='del'>-</div><div class='del'>-	gnome_dialog_set_parent(dialog, parent);</div><div class='del'>-	</div><div class='del'>-	result = gnome_dialog_run_and_close(dialog);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(gui));</div><div class='del'>-</div><div class='del'>-	return !result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_deleted_cb (EBook *book, EBookStatus status, EContactEditor *ce)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[CARD_DELETED],</div><div class='del'>-			 status, ce-&gt;card);</div><div class='del'>-</div><div class='del'>-	/* always close the dialog after we successfully delete a card */</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS)</div><div class='del'>-		close_dialog (ce);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-delete_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce = E_CONTACT_EDITOR (data);</div><div class='del'>-	ECard *card = ce-&gt;card;</div><div class='del'>-	ECardSimple *simple = ce-&gt;simple;</div><div class='del'>-</div><div class='del'>-	gtk_object_ref(GTK_OBJECT(card));</div><div class='del'>-	gtk_object_ref(GTK_OBJECT(simple));</div><div class='del'>-</div><div class='del'>-	if (e_contact_editor_confirm_delete(GTK_WINDOW(ce-&gt;app))) {</div><div class='del'>-</div><div class='del'>-		extract_info (ce);</div><div class='del'>-		e_card_simple_sync_card (simple);</div><div class='del'>-		</div><div class='del'>-		if (!ce-&gt;is_new_card &amp;&amp; ce-&gt;book)</div><div class='del'>-			e_book_remove_card (ce-&gt;book, card, GTK_SIGNAL_FUNC(card_deleted_cb), ce);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(simple));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Emits the signal to request printing a card */</div><div class='del'>-static void</div><div class='del'>-print_cb (BonoboUIComponent *uih, void *data, const char *path)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	extract_info (ce);</div><div class='del'>-	e_card_simple_sync_card (ce-&gt;simple);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show(e_contact_print_card_dialog_new(ce-&gt;card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if 0 /* Envelope printing is disabled for Evolution 1.0. */</div><div class='del'>-/* Emits the signal to request printing a card */</div><div class='del'>-static void</div><div class='del'>-print_envelope_cb (BonoboUIComponent *uih, void *data, const char *path)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	extract_info (ce);</div><div class='del'>-	e_card_simple_sync_card (ce-&gt;simple);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show(e_contact_print_envelope_dialog_new(ce-&gt;card));</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* Toolbar/Save and Close callback */</div><div class='del'>-static void</div><div class='del'>-tb_save_and_close_cb (BonoboUIComponent *uih, void *data, const char *path)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-	save_card (ce, TRUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static</div><div class='del'>-BonoboUIVerb verbs [] = {</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSave", file_save_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSaveAs", file_save_as_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSaveClose", tb_save_and_close_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSendAs", file_send_as_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSendTo", file_send_to_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorDelete", delete_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorPrint", print_cb),</div><div class='del'>-#if 0 /* Envelope printing is disabled for Evolution 1.0. */</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorPrintEnvelope", print_envelope_cb),</div><div class='del'>-#endif</div><div class='del'>-	/*	BONOBO_UI_UNSAFE_VERB ("ContactEditorPageSetup", file_page_setup_menu), */</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorClose", file_close_cb),</div><div class='del'>-	</div><div class='del'>-	BONOBO_UI_VERB_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-EPixmap pixmaps[] = {</div><div class='del'>-	E_PIXMAP ("/commands/ContactEditorSave", "save-16.png"),</div><div class='del'>-	E_PIXMAP ("/commands/ContactEditorSaveAs", "save-as-16.png"),</div><div class='del'>-	E_PIXMAP ("/commands/ContactEditorDelete", "evolution-trash-mini.png"),</div><div class='del'>-	E_PIXMAP ("/commands/ContactEditorPrint", "print.xpm"),</div><div class='del'>-#if 0 /* Envelope printing is disabled for Evolution 1.0. */</div><div class='del'>-	E_PIXMAP ("/commands/ContactEditorPrintEnvelope", "print.xpm"),</div><div class='del'>-#endif</div><div class='del'>-	E_PIXMAP ("/Toolbar/ContactEditorSaveClose", "buttons/save-24.png"),</div><div class='del'>-	E_PIXMAP ("/Toolbar/ContactEditorDelete", "buttons/delete-message.png"),</div><div class='del'>-	E_PIXMAP ("/Toolbar/ContactEditorPrint", "buttons/print.png"),</div><div class='del'>-</div><div class='del'>-	E_PIXMAP_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-create_ui (EContactEditor *ce)</div><div class='del'>-{</div><div class='del'>-	bonobo_ui_component_add_verb_list_with_data (ce-&gt;uic, verbs, ce);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_util_set_ui (ce-&gt;uic, EVOLUTION_DATADIR,</div><div class='del'>-			       "evolution-contact-editor.xml",</div><div class='del'>-			       "evolution-contact-editor");</div><div class='del'>-</div><div class='del'>-	e_pixmaps_update (ce-&gt;uic, pixmaps);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Callback used when the dialog box is destroyed */</div><div class='del'>-static gint</div><div class='del'>-app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	close_dialog (ce);</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GList *</div><div class='del'>-add_to_tab_order(GList *list, GladeXML *gui, char *name)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = glade_xml_get_widget(gui, name);</div><div class='del'>-	return g_list_prepend(list, widget);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-setup_tab_order(GladeXML *gui)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *container;</div><div class='del'>-	GList *list = NULL;</div><div class='del'>-</div><div class='del'>-	container = glade_xml_get_widget(gui, "table-contact-editor-general");</div><div class='del'>-</div><div class='del'>-	if (container) {</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-fullname");</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-jobtitle");</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-company");</div><div class='del'>-		list = add_to_tab_order(list, gui, "combo-file-as");</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-phone1");</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-phone2");</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-phone3");</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-phone4");</div><div class='del'>-		list = g_list_reverse(list);</div><div class='del'>-		e_container_change_tab_order(GTK_CONTAINER(container), list);</div><div class='del'>-		g_list_free(list);</div><div class='del'>-</div><div class='del'>-		list = NULL;</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-email1");</div><div class='del'>-		list = add_to_tab_order(list, gui, "entry-web");</div><div class='del'>-		list = add_to_tab_order(list, gui, "text-address");</div><div class='del'>-		list = add_to_tab_order(list, gui, "alignment-contacts");</div><div class='del'>-		list = g_list_reverse(list);</div><div class='del'>-		e_container_change_tab_order(GTK_CONTAINER(container), list);</div><div class='del'>-		g_list_free(list);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_init (EContactEditor *e_contact_editor)</div><div class='del'>-{</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *widget;</div><div class='del'>-	GtkWidget *bonobo_win;</div><div class='del'>-	GtkWidget *wants_html;</div><div class='del'>-	BonoboUIContainer *container;</div><div class='del'>-</div><div class='del'>-	e_contact_editor-&gt;email_info = NULL;</div><div class='del'>-	e_contact_editor-&gt;phone_info = NULL;</div><div class='del'>-	e_contact_editor-&gt;address_info = NULL;</div><div class='del'>-	e_contact_editor-&gt;email_popup = NULL;</div><div class='del'>-	e_contact_editor-&gt;phone_popup = NULL;</div><div class='del'>-	e_contact_editor-&gt;address_popup = NULL;</div><div class='del'>-	e_contact_editor-&gt;email_list = NULL;</div><div class='del'>-	e_contact_editor-&gt;phone_list = NULL;</div><div class='del'>-	e_contact_editor-&gt;address_list = NULL;</div><div class='del'>-	e_contact_editor-&gt;name = e_card_name_new();</div><div class='del'>-	e_contact_editor-&gt;company = g_strdup("");</div><div class='del'>-	</div><div class='del'>-	e_contact_editor-&gt;email_choice = 0;</div><div class='del'>-	e_contact_editor-&gt;phone_choice[0] = E_CARD_SIMPLE_PHONE_ID_BUSINESS;</div><div class='del'>-	e_contact_editor-&gt;phone_choice[1] = E_CARD_SIMPLE_PHONE_ID_HOME;</div><div class='del'>-	e_contact_editor-&gt;phone_choice[2] = E_CARD_SIMPLE_PHONE_ID_BUSINESS_FAX;</div><div class='del'>-	e_contact_editor-&gt;phone_choice[3] = E_CARD_SIMPLE_PHONE_ID_MOBILE;</div><div class='del'>-	e_contact_editor-&gt;address_choice = 0;</div><div class='del'>-</div><div class='del'>-	e_contact_editor-&gt;arbitrary_fields = NULL;</div><div class='del'>-	</div><div class='del'>-	e_contact_editor-&gt;simple = e_card_simple_new(NULL);</div><div class='del'>-</div><div class='del'>-	e_contact_editor-&gt;card = NULL;</div><div class='del'>-	e_contact_editor-&gt;changed = FALSE;</div><div class='del'>-	e_contact_editor-&gt;editable = TRUE;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/contact-editor.glade", NULL);</div><div class='del'>-	e_contact_editor-&gt;gui = gui;</div><div class='del'>-</div><div class='del'>-	setup_tab_order(gui);</div><div class='del'>-</div><div class='del'>-	e_contact_editor-&gt;app = glade_xml_get_widget (gui, "contact editor");</div><div class='del'>-</div><div class='del'>-	e_container_foreach_leaf (GTK_CONTAINER (e_contact_editor-&gt;app),</div><div class='del'>-				  (GtkCallback) add_field_callback,</div><div class='del'>-				  e_contact_editor);</div><div class='del'>-</div><div class='del'>-	_replace_buttons(e_contact_editor);</div><div class='del'>-	add_lists (e_contact_editor);</div><div class='del'>-	set_entry_changed_signals(e_contact_editor);</div><div class='del'>-</div><div class='del'>-	wants_html = glade_xml_get_widget(e_contact_editor-&gt;gui, "checkbutton-htmlmail");</div><div class='del'>-	if (wants_html &amp;&amp; GTK_IS_TOGGLE_BUTTON(wants_html))</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(wants_html), "toggled",</div><div class='del'>-				   wants_html_changed, e_contact_editor);</div><div class='del'>-	</div><div class='del'>-	widget = glade_xml_get_widget(e_contact_editor-&gt;gui, "button-fullname");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_BUTTON(widget))</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "clicked",</div><div class='del'>-				   full_name_clicked, e_contact_editor);</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(e_contact_editor-&gt;gui, "button-fulladdr");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_BUTTON(widget))</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "clicked",</div><div class='del'>-				   full_addr_clicked, e_contact_editor);</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(e_contact_editor-&gt;gui, "button-categories");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_BUTTON(widget))</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "clicked",</div><div class='del'>-				   categories_clicked, e_contact_editor);</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(e_contact_editor-&gt;gui, "button-contacts");</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_BUTTON(widget))</div><div class='del'>-		gtk_signal_connect(GTK_OBJECT(widget), "clicked",</div><div class='del'>-				   contacts_clicked, e_contact_editor);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	/* Construct the app */</div><div class='del'>-	bonobo_win = bonobo_window_new ("contact-editor-dialog", _("Contact Editor"));</div><div class='del'>-</div><div class='del'>-	/* FIXME: The sucking bit */</div><div class='del'>-	{</div><div class='del'>-		GtkWidget *contents;</div><div class='del'>-</div><div class='del'>-		contents = gnome_dock_get_client_area (</div><div class='del'>-			GNOME_DOCK (GNOME_APP (e_contact_editor-&gt;app)-&gt;dock));</div><div class='del'>-		if (!contents) {</div><div class='del'>-			g_message ("contact_editor_construct(): Could not get contents");</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-		gtk_widget_ref (contents);</div><div class='del'>-		gtk_container_remove (GTK_CONTAINER (contents-&gt;parent), contents);</div><div class='del'>-		bonobo_window_set_contents (BONOBO_WINDOW (bonobo_win), contents);</div><div class='del'>-		gtk_widget_destroy (e_contact_editor-&gt;app);</div><div class='del'>-		e_contact_editor-&gt;app = bonobo_win;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Build the menu and toolbar */</div><div class='del'>-</div><div class='del'>-	container = bonobo_ui_container_new ();</div><div class='del'>-	bonobo_ui_container_set_win (container, BONOBO_WINDOW (e_contact_editor-&gt;app));</div><div class='del'>-</div><div class='del'>-	e_contact_editor-&gt;uic = bonobo_ui_component_new_default ();</div><div class='del'>-	if (!e_contact_editor-&gt;uic) {</div><div class='del'>-		g_message ("e_contact_editor_init(): eeeeek, could not create the UI handler!");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	bonobo_ui_component_set_container (e_contact_editor-&gt;uic,</div><div class='del'>-					   bonobo_object_corba_objref (</div><div class='del'>-						   BONOBO_OBJECT (container)));</div><div class='del'>-</div><div class='del'>-	create_ui (e_contact_editor);</div><div class='del'>-</div><div class='del'>-	widget = glade_xml_get_widget(e_contact_editor-&gt;gui, "entry-fullname");</div><div class='del'>-	if (widget)</div><div class='del'>-		gtk_widget_grab_focus (widget);</div><div class='del'>-</div><div class='del'>-	/* Connect to the deletion of the dialog */</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (e_contact_editor-&gt;app), "delete_event",</div><div class='del'>-			    GTK_SIGNAL_FUNC (app_delete_event_cb), e_contact_editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_editor_destroy (GtkObject *object) {</div><div class='del'>-	EContactEditor *e_contact_editor = E_CONTACT_EDITOR(object);</div><div class='del'>-</div><div class='del'>-	if (e_contact_editor-&gt;writable_fields) {</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(e_contact_editor-&gt;writable_fields));</div><div class='del'>-	}</div><div class='del'>-	if (e_contact_editor-&gt;email_list) {</div><div class='del'>-		g_list_foreach(e_contact_editor-&gt;email_list, (GFunc) g_free, NULL);</div><div class='del'>-		g_list_free(e_contact_editor-&gt;email_list);</div><div class='del'>-	}</div><div class='del'>-	if (e_contact_editor-&gt;email_info) {</div><div class='del'>-		g_free(e_contact_editor-&gt;email_info);</div><div class='del'>-	}</div><div class='del'>-	if (e_contact_editor-&gt;email_popup) {</div><div class='del'>-		gtk_widget_unref(e_contact_editor-&gt;email_popup);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (e_contact_editor-&gt;phone_list) {</div><div class='del'>-		g_list_foreach(e_contact_editor-&gt;phone_list, (GFunc) g_free, NULL);</div><div class='del'>-		g_list_free(e_contact_editor-&gt;phone_list);</div><div class='del'>-	}</div><div class='del'>-	if (e_contact_editor-&gt;phone_info) {</div><div class='del'>-		g_free(e_contact_editor-&gt;phone_info);</div><div class='del'>-	}</div><div class='del'>-	if (e_contact_editor-&gt;phone_popup) {</div><div class='del'>-		gtk_widget_unref(e_contact_editor-&gt;phone_popup);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (e_contact_editor-&gt;address_list) {</div><div class='del'>-		g_list_foreach(e_contact_editor-&gt;address_list, (GFunc) g_free, NULL);</div><div class='del'>-		g_list_free(e_contact_editor-&gt;address_list);</div><div class='del'>-	}</div><div class='del'>-	if (e_contact_editor-&gt;address_info) {</div><div class='del'>-		g_free(e_contact_editor-&gt;address_info);</div><div class='del'>-	}</div><div class='del'>-	if (e_contact_editor-&gt;address_popup) {</div><div class='del'>-		gtk_widget_unref(e_contact_editor-&gt;address_popup);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	if (e_contact_editor-&gt;simple)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(e_contact_editor-&gt;simple));</div><div class='del'>-</div><div class='del'>-	if (e_contact_editor-&gt;book)</div><div class='del'>-		gtk_object_unref(GTK_OBJECT(e_contact_editor-&gt;book));</div><div class='del'>-</div><div class='del'>-	e_card_name_unref(e_contact_editor-&gt;name);</div><div class='del'>-	g_free (e_contact_editor-&gt;company);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(e_contact_editor-&gt;gui));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-command_state_changed (EContactEditor *ce)</div><div class='del'>-{</div><div class='del'>-	bonobo_ui_component_set_prop (ce-&gt;uic,</div><div class='del'>-				      "/commands/ContactEditorSaveClose",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      ce-&gt;changed ? "1" : "0", NULL);</div><div class='del'>-	bonobo_ui_component_set_prop (ce-&gt;uic,</div><div class='del'>-				      "/commands/ContactEditorSave",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      ce-&gt;changed ? "1" : "0", NULL);</div><div class='del'>-	bonobo_ui_component_set_prop (ce-&gt;uic,</div><div class='del'>-				      "/commands/ContactEditorDelete",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      (ce-&gt;editable &amp;&amp; !ce-&gt;is_new_card) ? "1" : "0", NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-supported_fields_cb (EBook *book, EBookStatus status,</div><div class='del'>-		     EList *fields, EContactEditor *ce)</div><div class='del'>-{</div><div class='del'>-	gtk_object_set (GTK_OBJECT (ce),</div><div class='del'>-			"writable_fields", fields,</div><div class='del'>-			NULL);</div><div class='del'>-</div><div class='del'>-	e_contact_editor_show (ce);</div><div class='del'>-</div><div class='del'>-	command_state_changed (ce);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EContactEditor *</div><div class='del'>-e_contact_editor_new (EBook *book,</div><div class='del'>-		      ECard *card,</div><div class='del'>-		      gboolean is_new_card,</div><div class='del'>-		      gboolean editable)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (E_IS_BOOK (book), NULL);</div><div class='del'>-	g_return_val_if_fail (E_IS_CARD (card), NULL);</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_EDITOR (gtk_type_new (E_CONTACT_EDITOR_TYPE));</div><div class='del'>-</div><div class='del'>-	gtk_object_set (GTK_OBJECT (ce),</div><div class='del'>-			"book", book,</div><div class='del'>-			"card", card,</div><div class='del'>-			"is_new_card", is_new_card,</div><div class='del'>-			"editable", editable,</div><div class='del'>-			NULL);</div><div class='del'>-</div><div class='del'>-	if (book)</div><div class='del'>-		e_book_get_supported_fields (book, (EBookFieldsCallback)supported_fields_cb, ce);</div><div class='del'>-</div><div class='del'>-	return ce;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *editor;</div><div class='del'>-</div><div class='del'>-	editor = E_CONTACT_EDITOR (o);</div><div class='del'>-	</div><div class='del'>-	switch (arg_id){</div><div class='del'>-	case ARG_BOOK:</div><div class='del'>-		if (editor-&gt;book)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(editor-&gt;book));</div><div class='del'>-		editor-&gt;book = E_BOOK(GTK_VALUE_OBJECT (*arg));</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (editor-&gt;book));</div><div class='del'>-		/* XXX more here about editable/etc. */</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		if (editor-&gt;card)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(editor-&gt;card));</div><div class='del'>-		editor-&gt;card = e_card_duplicate(E_CARD(GTK_VALUE_OBJECT (*arg)));</div><div class='del'>-		gtk_object_set(GTK_OBJECT(editor-&gt;simple),</div><div class='del'>-			       "card", editor-&gt;card,</div><div class='del'>-			       NULL);</div><div class='del'>-		fill_in_info(editor);</div><div class='del'>-		editor-&gt;changed = FALSE;</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_IS_NEW_CARD:</div><div class='del'>-		editor-&gt;is_new_card = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_EDITABLE: {</div><div class='del'>-		gboolean new_value = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE;</div><div class='del'>-		gboolean changed = (editor-&gt;editable != new_value);</div><div class='del'>-</div><div class='del'>-		editor-&gt;editable = new_value;</div><div class='del'>-</div><div class='del'>-		if (changed) {</div><div class='del'>-			set_editable (editor);</div><div class='del'>-			command_state_changed (editor);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	case ARG_CHANGED: {</div><div class='del'>-		gboolean new_value = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE;</div><div class='del'>-		gboolean changed = (editor-&gt;changed != new_value);</div><div class='del'>-</div><div class='del'>-		editor-&gt;changed = new_value;</div><div class='del'>-</div><div class='del'>-		if (changed)</div><div class='del'>-			command_state_changed (editor);</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-	case ARG_WRITABLE_FIELDS:</div><div class='del'>-		if (editor-&gt;writable_fields)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(editor-&gt;writable_fields));</div><div class='del'>-		editor-&gt;writable_fields = GTK_VALUE_POINTER (*arg);</div><div class='del'>-		if (editor-&gt;writable_fields)</div><div class='del'>-			gtk_object_ref (GTK_OBJECT (editor-&gt;writable_fields));</div><div class='del'>-		else</div><div class='del'>-			editor-&gt;writable_fields = e_list_new(NULL, NULL, NULL);</div><div class='del'>-		enable_writable_fields (editor);</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactEditor *e_contact_editor;</div><div class='del'>-</div><div class='del'>-	e_contact_editor = E_CONTACT_EDITOR (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_BOOK:</div><div class='del'>-		GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(e_contact_editor-&gt;book);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		e_card_simple_sync_card(e_contact_editor-&gt;simple);</div><div class='del'>-		extract_info(e_contact_editor);</div><div class='del'>-		GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(e_contact_editor-&gt;card);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_IS_NEW_CARD:</div><div class='del'>-		GTK_VALUE_BOOL (*arg) = e_contact_editor-&gt;is_new_card ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_EDITABLE:</div><div class='del'>-		GTK_VALUE_BOOL (*arg) = e_contact_editor-&gt;editable ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_CHANGED:</div><div class='del'>-		GTK_VALUE_BOOL (*arg) = e_contact_editor-&gt;changed ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_WRITABLE_FIELDS:</div><div class='del'>-		if (e_contact_editor-&gt;writable_fields)</div><div class='del'>-			GTK_VALUE_POINTER (*arg) = e_list_duplicate (e_contact_editor-&gt;writable_fields);</div><div class='del'>-		else</div><div class='del'>-			GTK_VALUE_POINTER (*arg) = NULL;</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-_popup_position(GtkMenu *menu,</div><div class='del'>-		gint *x,</div><div class='del'>-		gint *y,</div><div class='del'>-		gpointer data)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *button = GTK_WIDGET(data);</div><div class='del'>-	GtkRequisition request;</div><div class='del'>-	int mh, mw;</div><div class='del'>-	gdk_window_get_origin (button-&gt;window, x, y);</div><div class='del'>-	*x += button-&gt;allocation.width;</div><div class='del'>-	*y += button-&gt;allocation.height;</div><div class='del'>-</div><div class='del'>-	gtk_widget_size_request(GTK_WIDGET(menu), &amp;request);</div><div class='del'>-</div><div class='del'>-	mh = request.height;</div><div class='del'>-	mw = request.width;</div><div class='del'>-</div><div class='del'>-	*x -= mw;</div><div class='del'>-	if (*x &lt; 0)</div><div class='del'>-		*x = 0;</div><div class='del'>-	</div><div class='del'>-	if (*y &lt; 0)</div><div class='del'>-		*y = 0;</div><div class='del'>-	</div><div class='del'>-	if ((*x + mw) &gt; gdk_screen_width ())</div><div class='del'>-		*x = gdk_screen_width () - mw;</div><div class='del'>-	</div><div class='del'>-	if ((*y + mh) &gt; gdk_screen_height ())</div><div class='del'>-		*y = gdk_screen_height () - mh;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gint</div><div class='del'>-_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEditor *editor, GtkWidget *popup, GList **list, GnomeUIInfo **info, gchar *label, gchar *entry, gchar *dialog_title)</div><div class='del'>-{</div><div class='del'>-	gint menu_item;</div><div class='del'>-	gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "button_press_event");</div><div class='del'>-	gtk_widget_realize(popup);</div><div class='del'>-	menu_item = gnome_popup_menu_do_popup_modal(popup, _popup_position, widget, button, editor);</div><div class='del'>-	if ( menu_item != -1 ) {</div><div class='del'>-#if 0</div><div class='del'>-		if (menu_item == g_list_length (*list)) {</div><div class='del'>-			e_contact_editor_build_dialog(editor, entry, label, dialog_title, list, info);</div><div class='del'>-		} else {</div><div class='del'>-#endif</div><div class='del'>-			GtkWidget *label_widget = glade_xml_get_widget(editor-&gt;gui, label);</div><div class='del'>-			if (label_widget &amp;&amp; GTK_IS_LABEL(label_widget)) {</div><div class='del'>-				gtk_object_set(GTK_OBJECT(label_widget),</div><div class='del'>-					       "label", _(g_list_nth_data(*list, menu_item)),</div><div class='del'>-					       NULL);</div><div class='del'>-			}</div><div class='del'>-#if 0</div><div class='del'>-		}</div><div class='del'>-#endif</div><div class='del'>-	}</div><div class='del'>-	return menu_item;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_build_ui_info(GList *list, GnomeUIInfo **infop)</div><div class='del'>-{</div><div class='del'>-	GnomeUIInfo *info;</div><div class='del'>-	GnomeUIInfo singleton = { GNOME_APP_UI_TOGGLEITEM, NULL, NULL, NULL, NULL, NULL, GNOME_APP_PIXMAP_NONE, 0, 0, 0, NULL };</div><div class='del'>-	GnomeUIInfo end = GNOMEUIINFO_END;</div><div class='del'>-	int length;</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	info = *infop;</div><div class='del'>-</div><div class='del'>-	if ( info )</div><div class='del'>-		g_free(info);</div><div class='del'>-	length = g_list_length( list );</div><div class='del'>-	info = g_new(GnomeUIInfo, length + 2);</div><div class='del'>-	for (i = 0; i &lt; length; i++) {</div><div class='del'>-		info[i] = singleton;</div><div class='del'>-		info[i].label = _(list-&gt;data);</div><div class='del'>-		list = list-&gt;next;</div><div class='del'>-	}</div><div class='del'>-	info[i] = end;</div><div class='del'>-</div><div class='del'>-	*infop = info;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_build_phone_ui (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	if (editor-&gt;phone_list == NULL) {</div><div class='del'>-		static char *info[] = {</div><div class='del'>-			N_("Assistant"),</div><div class='del'>-			N_("Business"),</div><div class='del'>-			N_("Business 2"),</div><div class='del'>-			N_("Business Fax"),</div><div class='del'>-			N_("Callback"),</div><div class='del'>-			N_("Car"),</div><div class='del'>-			N_("Company"),</div><div class='del'>-			N_("Home"),</div><div class='del'>-			N_("Home 2"),</div><div class='del'>-			N_("Home Fax"),</div><div class='del'>-			N_("ISDN"),</div><div class='del'>-			N_("Mobile"),</div><div class='del'>-			N_("Other"),</div><div class='del'>-			N_("Other Fax"),</div><div class='del'>-			N_("Pager"),</div><div class='del'>-			N_("Primary"),</div><div class='del'>-			N_("Radio"),</div><div class='del'>-			N_("Telex"),</div><div class='del'>-			N_("TTY/TDD")</div><div class='del'>-		};</div><div class='del'>-		</div><div class='del'>-		for (i = 0; i &lt; sizeof(info) / sizeof(info[0]); i++) {</div><div class='del'>-			editor-&gt;phone_list = g_list_append(editor-&gt;phone_list, g_strdup(info[i]));</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	if (editor-&gt;phone_info == NULL) {</div><div class='del'>-		e_contact_editor_build_ui_info(editor-&gt;phone_list, &amp;editor-&gt;phone_info);</div><div class='del'>-		</div><div class='del'>-		if ( editor-&gt;phone_popup )</div><div class='del'>-			gtk_widget_unref(editor-&gt;phone_popup);</div><div class='del'>-		</div><div class='del'>-		editor-&gt;phone_popup = gnome_popup_menu_new(editor-&gt;phone_info);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_build_email_ui (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	if (editor-&gt;email_list == NULL) {</div><div class='del'>-		static char *info[] = {</div><div class='del'>-			N_("Primary Email"),</div><div class='del'>-			N_("Email 2"),</div><div class='del'>-			N_("Email 3")</div><div class='del'>-		};</div><div class='del'>-		</div><div class='del'>-		for (i = 0; i &lt; sizeof(info) / sizeof(info[0]); i++) {</div><div class='del'>-			editor-&gt;email_list = g_list_append(editor-&gt;email_list, g_strdup(info[i]));</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	if (editor-&gt;email_info == NULL) {</div><div class='del'>-		e_contact_editor_build_ui_info(editor-&gt;email_list, &amp;editor-&gt;email_info);</div><div class='del'>-</div><div class='del'>-		if ( editor-&gt;email_popup )</div><div class='del'>-			gtk_widget_unref(editor-&gt;email_popup);</div><div class='del'>-		</div><div class='del'>-		editor-&gt;email_popup = gnome_popup_menu_new(editor-&gt;email_info);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_editor_build_address_ui (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	if (editor-&gt;address_list == NULL) {</div><div class='del'>-		static char *info[] = {</div><div class='del'>-			N_("Business"),</div><div class='del'>-			N_("Home"),</div><div class='del'>-			N_("Other")</div><div class='del'>-		};</div><div class='del'>-		</div><div class='del'>-		for (i = 0; i &lt; sizeof(info) / sizeof(info[0]); i++) {</div><div class='del'>-			editor-&gt;address_list = g_list_append(editor-&gt;address_list, g_strdup(info[i]));</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	if (editor-&gt;address_info == NULL) {</div><div class='del'>-		e_contact_editor_build_ui_info(editor-&gt;address_list, &amp;editor-&gt;address_info);</div><div class='del'>-</div><div class='del'>-		if ( editor-&gt;address_popup )</div><div class='del'>-			gtk_widget_unref(editor-&gt;address_popup);</div><div class='del'>-		</div><div class='del'>-		editor-&gt;address_popup = gnome_popup_menu_new(editor-&gt;address_info);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-#if 0</div><div class='del'>-static void</div><div class='del'>-_dialog_clicked(GtkWidget *dialog, gint button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *label = gtk_object_get_data(GTK_OBJECT(dialog),</div><div class='del'>-					       "e_contact_editor_label");</div><div class='del'>-</div><div class='del'>-	GtkWidget *dialog_entry = gtk_object_get_data(GTK_OBJECT(dialog),</div><div class='del'>-						      "e_contact_editor_dialog_entry");</div><div class='del'>-	</div><div class='del'>-	GList **list = gtk_object_get_data(GTK_OBJECT(dialog),</div><div class='del'>-					   "e_contact_editor_list");</div><div class='del'>-	GList **info = gtk_object_get_data(GTK_OBJECT(dialog),</div><div class='del'>-					   "e_contact_editor_info");</div><div class='del'>-	switch (button) {</div><div class='del'>-	case 0:</div><div class='del'>-		if (label &amp;&amp; GTK_IS_LABEL(label)) {</div><div class='del'>-			gtk_object_set(GTK_OBJECT(label),</div><div class='del'>-				       "label", gtk_entry_get_text(GTK_ENTRY(dialog_entry)),</div><div class='del'>-				       NULL);</div><div class='del'>-			*list = g_list_append(*list, e_utf8_gtk_entry_get_text(GTK_ENTRY(dialog_entry)));</div><div class='del'>-			g_free(*info);</div><div class='del'>-			*info = NULL;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-	gnome_dialog_close(GNOME_DIALOG(dialog));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-_dialog_destroy(EContactEditor *editor, GtkWidget *dialog)</div><div class='del'>-{</div><div class='del'>-	gnome_dialog_close(GNOME_DIALOG(dialog));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GtkWidget *</div><div class='del'>-e_contact_editor_build_dialog(EContactEditor *editor, gchar *entry_id, gchar *label_id, gchar *title, GList **list, GnomeUIInfo **info)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *dialog_entry = gtk_entry_new();</div><div class='del'>-	GtkWidget *entry = glade_xml_get_widget(editor-&gt;gui, entry_id);</div><div class='del'>-	GtkWidget *label = glade_xml_get_widget(editor-&gt;gui, label_id);</div><div class='del'>-	</div><div class='del'>-	GtkWidget *dialog = gnome_dialog_new(title,</div><div class='del'>-					     NULL);</div><div class='del'>-	</div><div class='del'>-	gtk_container_add(GTK_CONTAINER(GNOME_DIALOG(dialog)-&gt;vbox),</div><div class='del'>-			  gtk_widget_new (gtk_frame_get_type(),</div><div class='del'>-					  "border_width", 4,</div><div class='del'>-					  "label", title,</div><div class='del'>-					  "child", gtk_widget_new(gtk_alignment_get_type(),</div><div class='del'>-								  "child", dialog_entry,</div><div class='del'>-								  "xalign", .5,</div><div class='del'>-								  "yalign", .5,</div><div class='del'>-								  "xscale", 1.0,</div><div class='del'>-								  "yscale", 1.0,</div><div class='del'>-								  "border_width", 9,</div><div class='del'>-								  NULL),</div><div class='del'>-					  NULL));</div><div class='del'>-</div><div class='del'>-	gnome_dialog_append_button_with_pixmap(GNOME_DIALOG(dialog),</div><div class='del'>-					       "Add",</div><div class='del'>-					       GNOME_STOCK_PIXMAP_ADD);</div><div class='del'>-	gnome_dialog_append_button(GNOME_DIALOG(dialog), GNOME_STOCK_BUTTON_CANCEL);</div><div class='del'>-	gnome_dialog_set_default(GNOME_DIALOG(dialog), 0);</div><div class='del'>-	</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(dialog), "clicked",</div><div class='del'>-			   _dialog_clicked, editor);</div><div class='del'>-	gtk_signal_connect_while_alive(GTK_OBJECT(editor), "destroy",</div><div class='del'>-				       _dialog_destroy, GTK_OBJECT(dialog), GTK_OBJECT(dialog));</div><div class='del'>-	</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(dialog),</div><div class='del'>-			    "e_contact_editor_entry", entry);</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(dialog),</div><div class='del'>-			    "e_contact_editor_label", label);</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(dialog),</div><div class='del'>-			    "e_contact_editor_dialog_entry", dialog_entry);</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(dialog),</div><div class='del'>-			    "e_contact_editor_list", list);</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(dialog),</div><div class='del'>-			    "e_contact_editor_info", info);</div><div class='del'>-</div><div class='del'>-	gtk_widget_show_all(dialog);</div><div class='del'>-	return dialog;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-_phone_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int which;</div><div class='del'>-	int i;</div><div class='del'>-	gchar *label;</div><div class='del'>-	gchar *entry;</div><div class='del'>-	int result;</div><div class='del'>-	if ( widget == glade_xml_get_widget(editor-&gt;gui, "button-phone1") ) {</div><div class='del'>-		which = 1;</div><div class='del'>-	} else if ( widget == glade_xml_get_widget(editor-&gt;gui, "button-phone2") ) {</div><div class='del'>-		which = 2;</div><div class='del'>-	} else if ( widget == glade_xml_get_widget(editor-&gt;gui, "button-phone3") ) {</div><div class='del'>-		which = 3;</div><div class='del'>-	} else if ( widget == glade_xml_get_widget(editor-&gt;gui, "button-phone4") ) {</div><div class='del'>-		which = 4;</div><div class='del'>-	} else</div><div class='del'>-		return;</div><div class='del'>-	</div><div class='del'>-	label = g_strdup_printf("label-phone%d", which);</div><div class='del'>-	entry = g_strdup_printf("entry-phone%d", which);</div><div class='del'>-</div><div class='del'>-	e_contact_editor_build_phone_ui (editor);</div><div class='del'>-	</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i++) {</div><div class='del'>-		const ECardPhone *phone = e_card_simple_get_phone(editor-&gt;simple, i);</div><div class='del'>-		gboolean checked;</div><div class='del'>-		checked = phone &amp;&amp; phone-&gt;number &amp;&amp; *phone-&gt;number;</div><div class='del'>-		gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(editor-&gt;phone_info[i].widget),</div><div class='del'>-					       checked);</div><div class='del'>-		gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(editor-&gt;phone_info[i].widget),</div><div class='del'>-						    TRUE);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	result = _arrow_pressed (widget, button, editor, editor-&gt;phone_popup, &amp;editor-&gt;phone_list, &amp;editor-&gt;phone_info, label, entry, "Add new phone number type");</div><div class='del'>-	</div><div class='del'>-	if (result != -1) {</div><div class='del'>-		editor-&gt;phone_choice[which - 1] = result;</div><div class='del'>-		set_fields(editor);</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, label), TRUE);</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, entry), editor-&gt;editable);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_free(label);</div><div class='del'>-	g_free(entry);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-_email_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	int result;</div><div class='del'>-</div><div class='del'>-	e_contact_editor_build_email_ui (editor);</div><div class='del'>-</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i++) {</div><div class='del'>-		const char *string = e_card_simple_get_email(editor-&gt;simple, i);</div><div class='del'>-		gboolean checked;</div><div class='del'>-		checked = string &amp;&amp; *string;</div><div class='del'>-		gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(editor-&gt;email_info[i].widget),</div><div class='del'>-					       checked);</div><div class='del'>-		gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(editor-&gt;email_info[i].widget),</div><div class='del'>-						    TRUE);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	result = _arrow_pressed (widget, button, editor, editor-&gt;email_popup, &amp;editor-&gt;email_list, &amp;editor-&gt;email_info, "label-email1", "entry-email1", "Add new Email type");</div><div class='del'>-	</div><div class='del'>-	if (result != -1) {</div><div class='del'>-		editor-&gt;email_choice = result;</div><div class='del'>-		set_fields(editor);</div><div class='del'>-</div><div class='del'>-		/* make sure the buttons/entry is/are sensitive */</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, "label-email1"), TRUE);</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, "entry-email1"), editor-&gt;editable);</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, "checkbutton-htmlmail"), editor-&gt;editable);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-_address_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	int result;</div><div class='del'>-</div><div class='del'>-	e_contact_editor_build_address_ui (editor);</div><div class='del'>-</div><div class='del'>-	for(i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i++) {</div><div class='del'>-		const ECardAddrLabel *address = e_card_simple_get_address(editor-&gt;simple, i);</div><div class='del'>-		gboolean checked;</div><div class='del'>-		checked = address &amp;&amp; address-&gt;data &amp;&amp; *address-&gt;data;</div><div class='del'>-		gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(editor-&gt;address_info[i].widget),</div><div class='del'>-					       checked);</div><div class='del'>-		gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(editor-&gt;address_info[i].widget),</div><div class='del'>-						    TRUE);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	result = _arrow_pressed (widget, button, editor, editor-&gt;address_popup, &amp;editor-&gt;address_list, &amp;editor-&gt;address_info, "label-address", "text-address", "Add new Address type");</div><div class='del'>-</div><div class='del'>-	if (result != -1) {</div><div class='del'>-		set_address_field(editor, result);</div><div class='del'>-</div><div class='del'>-		/* make sure the buttons/entry is/are sensitive */</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, "label-address"), TRUE);</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, "text-address"), editor-&gt;editable);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_field(GtkEntry *entry, const char *string)</div><div class='del'>-{</div><div class='del'>-	char *oldstring = e_utf8_gtk_entry_get_text(entry);</div><div class='del'>-	if (!string)</div><div class='del'>-		string = "";</div><div class='del'>-	if (strcmp(string, oldstring))</div><div class='del'>-		e_utf8_gtk_entry_set_text(entry, string);</div><div class='del'>-	g_free (oldstring);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_phone_field(GtkWidget *entry, const ECardPhone *phone)</div><div class='del'>-{</div><div class='del'>-	set_field(GTK_ENTRY(entry), phone ? phone-&gt;number : "");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_fields(EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *entry;</div><div class='del'>-</div><div class='del'>-	entry = glade_xml_get_widget(editor-&gt;gui, "entry-phone1");</div><div class='del'>-	if (entry &amp;&amp; GTK_IS_ENTRY(entry))</div><div class='del'>-		set_phone_field(entry, e_card_simple_get_phone(editor-&gt;simple, editor-&gt;phone_choice[0]));</div><div class='del'>-</div><div class='del'>-	entry = glade_xml_get_widget(editor-&gt;gui, "entry-phone2");</div><div class='del'>-	if (entry &amp;&amp; GTK_IS_ENTRY(entry))</div><div class='del'>-		set_phone_field(entry, e_card_simple_get_phone(editor-&gt;simple, editor-&gt;phone_choice[1]));</div><div class='del'>-</div><div class='del'>-	entry = glade_xml_get_widget(editor-&gt;gui, "entry-phone3");</div><div class='del'>-	if (entry &amp;&amp; GTK_IS_ENTRY(entry))</div><div class='del'>-		set_phone_field(entry, e_card_simple_get_phone(editor-&gt;simple, editor-&gt;phone_choice[2]));</div><div class='del'>-</div><div class='del'>-	entry = glade_xml_get_widget(editor-&gt;gui, "entry-phone4");</div><div class='del'>-	if (entry &amp;&amp; GTK_IS_ENTRY(entry))</div><div class='del'>-		set_phone_field(entry, e_card_simple_get_phone(editor-&gt;simple, editor-&gt;phone_choice[3]));</div><div class='del'>-	</div><div class='del'>-	entry = glade_xml_get_widget(editor-&gt;gui, "entry-email1");</div><div class='del'>-	if (entry &amp;&amp; GTK_IS_ENTRY(entry))</div><div class='del'>-		set_field(GTK_ENTRY(entry), e_card_simple_get_email(editor-&gt;simple, editor-&gt;email_choice));</div><div class='del'>-	</div><div class='del'>-	set_address_field(editor, -1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_address_field(EContactEditor *editor, int result)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget;</div><div class='del'>-	</div><div class='del'>-	widget = glade_xml_get_widget(editor-&gt;gui, "text-address");</div><div class='del'>-</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_TEXT(widget)) {</div><div class='del'>-		int position;</div><div class='del'>-		GtkEditable *editable;</div><div class='del'>-		const ECardAddrLabel *address;</div><div class='del'>-</div><div class='del'>-		if (result == -1)</div><div class='del'>-			result = editor-&gt;address_choice;</div><div class='del'>-		editor-&gt;address_choice = -1;</div><div class='del'>-</div><div class='del'>-		position = 0;</div><div class='del'>-		editable = GTK_EDITABLE(widget);</div><div class='del'>-		gtk_editable_delete_text(editable, 0, -1);</div><div class='del'>-		address = e_card_simple_get_address(editor-&gt;simple, result);</div><div class='del'>-		if (address &amp;&amp; address-&gt;data) {</div><div class='del'>-			gchar *u = e_utf8_to_gtk_string ((GtkWidget *) editable, address-&gt;data);</div><div class='del'>-			gtk_editable_insert_text(editable, u, strlen(u), &amp;position);</div><div class='del'>-			g_free (u);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		editor-&gt;address_choice = result;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_field_callback(GtkWidget *widget, EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	const char *name;</div><div class='del'>-	int i;</div><div class='del'>-	static const char *builtins[] = {</div><div class='del'>-		"entry-fullname",</div><div class='del'>-		"entry-web",</div><div class='del'>-		"entry-company",</div><div class='del'>-		"entry-department",</div><div class='del'>-		"entry-office",</div><div class='del'>-		"entry-jobtitle",</div><div class='del'>-		"entry-profession",</div><div class='del'>-		"entry-manager",</div><div class='del'>-		"entry-assistant",</div><div class='del'>-		"entry-nickname",</div><div class='del'>-		"entry-spouse",</div><div class='del'>-		"text-comments",</div><div class='del'>-		"entry-categories",</div><div class='del'>-		"entry-contacts",</div><div class='del'>-		"entry-file-as",</div><div class='del'>-		"dateedit-anniversary",</div><div class='del'>-		"dateedit-birthday",</div><div class='del'>-		"entry-phone1",</div><div class='del'>-		"entry-phone2",</div><div class='del'>-		"entry-phone3",</div><div class='del'>-		"entry-phone4",</div><div class='del'>-		"entry-email1",</div><div class='del'>-		"text-address",</div><div class='del'>-		"checkbutton-mailingaddress",</div><div class='del'>-		"checkbutton-htmlmail",</div><div class='del'>-		"entry-caluri",</div><div class='del'>-		"entry-fburl",</div><div class='del'>-		NULL</div><div class='del'>-	};</div><div class='del'>-	name = glade_get_widget_name(widget);</div><div class='del'>-	if (name) {</div><div class='del'>-		for (i = 0; builtins[i]; i++) {</div><div class='del'>-			if (!strcmp(name, builtins[i]))</div><div class='del'>-				return;</div><div class='del'>-		}</div><div class='del'>-		if (GTK_IS_ENTRY(widget) || GTK_IS_TEXT(widget)) {</div><div class='del'>-			editor-&gt;arbitrary_fields = g_list_prepend(editor-&gt;arbitrary_fields, g_strdup(name));</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static struct {</div><div class='del'>-	char *id;</div><div class='del'>-	char *key;</div><div class='del'>-} field_mapping [] = {</div><div class='del'>-	{ "entry-fullname", "full_name" },</div><div class='del'>-	{ "entry-web", "url" },</div><div class='del'>-	{ "entry-company", "org" },</div><div class='del'>-	{ "entry-department", "org_unit" },</div><div class='del'>-	{ "entry-office", "office" },</div><div class='del'>-	{ "entry-jobtitle", "title" },</div><div class='del'>-	{ "entry-profession", "role" },</div><div class='del'>-	{ "entry-manager", "manager" },</div><div class='del'>-	{ "entry-assistant", "assistant" },</div><div class='del'>-	{ "entry-nickname", "nickname" },</div><div class='del'>-	{ "entry-spouse", "spouse" },</div><div class='del'>-	{ "text-comments", "note" },</div><div class='del'>-	{ "entry-categories", "categories" },</div><div class='del'>-	{ "entry-caluri", "caluri" },</div><div class='del'>-	{ "entry-fburl", "fburl" },</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_field(EContactEditor *editor, char *id, char *value)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, id);</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_EDITABLE(widget)) {</div><div class='del'>-		int position = 0;</div><div class='del'>-		GtkEditable *editable = GTK_EDITABLE(widget);</div><div class='del'>-		gtk_editable_delete_text(editable, 0, -1);</div><div class='del'>-		if (value) {</div><div class='del'>-			gchar *u = e_utf8_to_gtk_string ((GtkWidget *) editable, value);</div><div class='del'>-			gtk_editable_insert_text(editable, u, strlen(u), &amp;position);</div><div class='del'>-			g_free (u);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_card_field(EContactEditor *editor, ECard *card, char *id, char *key)</div><div class='del'>-{</div><div class='del'>-	char *string;</div><div class='del'>-	gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-		       key, &amp;string,</div><div class='del'>-		       NULL);</div><div class='del'>-	fill_in_field(editor, id, string);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_single_field(EContactEditor *editor, char *name)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple = editor-&gt;simple;</div><div class='del'>-	GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, name);</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_EDITABLE(widget)) {</div><div class='del'>-		int position = 0;</div><div class='del'>-		GtkEditable *editable = GTK_EDITABLE(widget);</div><div class='del'>-		const ECardArbitrary *arbitrary;</div><div class='del'>-</div><div class='del'>-		gtk_editable_delete_text(editable, 0, -1);</div><div class='del'>-		arbitrary = e_card_simple_get_arbitrary(simple,</div><div class='del'>-							name);</div><div class='del'>-		if (arbitrary &amp;&amp; arbitrary-&gt;value) {</div><div class='del'>-			gchar *u = e_utf8_to_gtk_string ((GtkWidget *) editable, arbitrary-&gt;value);</div><div class='del'>-			gtk_editable_insert_text(editable, u, strlen(u), &amp;position);</div><div class='del'>-			g_free (u);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-disable_widget_foreach (char *key, GtkWidget *widget, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	enable_widget (widget, FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static struct {</div><div class='del'>-	char *widget_name;</div><div class='del'>-	ECardSimpleField field_id;</div><div class='del'>-	gboolean desensitize_for_read_only;</div><div class='del'>-} widget_field_mappings[] = {</div><div class='del'>-	{ "entry-web", E_CARD_SIMPLE_FIELD_URL, TRUE },</div><div class='del'>-	{ "accellabel-web", E_CARD_SIMPLE_FIELD_URL },</div><div class='del'>-</div><div class='del'>-	{ "entry-jobtitle", E_CARD_SIMPLE_FIELD_TITLE, TRUE },</div><div class='del'>-	{ "label-jobtitle", E_CARD_SIMPLE_FIELD_TITLE },</div><div class='del'>-</div><div class='del'>-	{ "entry-company", E_CARD_SIMPLE_FIELD_ORG, TRUE },</div><div class='del'>-	{ "label-company", E_CARD_SIMPLE_FIELD_ORG },</div><div class='del'>-</div><div class='del'>-	{ "combo-file-as", E_CARD_SIMPLE_FIELD_FILE_AS, TRUE },</div><div class='del'>-	{ "entry-file-as", E_CARD_SIMPLE_FIELD_FILE_AS, TRUE },</div><div class='del'>-	{ "accellabel-fileas", E_CARD_SIMPLE_FIELD_FILE_AS },</div><div class='del'>-</div><div class='del'>-	{ "label-department", E_CARD_SIMPLE_FIELD_ORG_UNIT },</div><div class='del'>-	{ "entry-department", E_CARD_SIMPLE_FIELD_ORG_UNIT, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-office", E_CARD_SIMPLE_FIELD_OFFICE },</div><div class='del'>-	{ "entry-office", E_CARD_SIMPLE_FIELD_OFFICE, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-profession", E_CARD_SIMPLE_FIELD_ROLE },</div><div class='del'>-	{ "entry-profession", E_CARD_SIMPLE_FIELD_ROLE, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-manager", E_CARD_SIMPLE_FIELD_MANAGER },</div><div class='del'>-	{ "entry-manager", E_CARD_SIMPLE_FIELD_MANAGER, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-assistant", E_CARD_SIMPLE_FIELD_ASSISTANT },</div><div class='del'>-	{ "entry-assistant", E_CARD_SIMPLE_FIELD_ASSISTANT, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-nickname", E_CARD_SIMPLE_FIELD_NICKNAME },</div><div class='del'>-	{ "entry-nickname", E_CARD_SIMPLE_FIELD_NICKNAME, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-spouse", E_CARD_SIMPLE_FIELD_SPOUSE },</div><div class='del'>-	{ "entry-spouse", E_CARD_SIMPLE_FIELD_SPOUSE, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-birthday", E_CARD_SIMPLE_FIELD_BIRTH_DATE },</div><div class='del'>-	{ "dateedit-birthday", E_CARD_SIMPLE_FIELD_BIRTH_DATE, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-anniversary", E_CARD_SIMPLE_FIELD_ANNIVERSARY },</div><div class='del'>-	{ "dateedit-anniversary", E_CARD_SIMPLE_FIELD_ANNIVERSARY, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "label-comments", E_CARD_SIMPLE_FIELD_NOTE },</div><div class='del'>-	{ "text-comments", E_CARD_SIMPLE_FIELD_NOTE, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "entry-fullname", E_CARD_SIMPLE_FIELD_FULL_NAME, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "button-categories", E_CARD_SIMPLE_FIELD_CATEGORIES, TRUE },</div><div class='del'>-	{ "entry-categories", E_CARD_SIMPLE_FIELD_CATEGORIES, TRUE },</div><div class='del'>-</div><div class='del'>-	{ "entry-caluri", E_CARD_SIMPLE_FIELD_CALURI, TRUE },</div><div class='del'>-	{ "entry-fburl", E_CARD_SIMPLE_FIELD_FBURL, TRUE }</div><div class='del'>-};</div><div class='del'>-static int num_widget_field_mappings = sizeof(widget_field_mappings) / sizeof (widget_field_mappings[0]);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-enable_writable_fields(EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	EList *fields = editor-&gt;writable_fields;</div><div class='del'>-	EIterator *iter;</div><div class='del'>-	GHashTable *dropdown_hash, *supported_hash;</div><div class='del'>-	int i;</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-	ECard *card;</div><div class='del'>-	char *widget_name;</div><div class='del'>-</div><div class='del'>-	if (!fields)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	card = e_card_new ("");</div><div class='del'>-	simple = e_card_simple_new (card);</div><div class='del'>-</div><div class='del'>-	dropdown_hash = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>-	supported_hash = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>-</div><div class='del'>-	/* build our hashtable of the drop down menu items */</div><div class='del'>-	e_contact_editor_build_phone_ui (editor);</div><div class='del'>-	for (i = 0; i &lt; E_CARD_SIMPLE_PHONE_ID_LAST; i ++)</div><div class='del'>-		g_hash_table_insert (dropdown_hash,</div><div class='del'>-				     (char*)e_card_simple_get_ecard_field(simple, e_card_simple_map_phone_to_field (i)),</div><div class='del'>-				     editor-&gt;phone_info[i].widget);</div><div class='del'>-	e_contact_editor_build_email_ui (editor);</div><div class='del'>-	for (i = 0; i &lt; E_CARD_SIMPLE_EMAIL_ID_LAST; i ++)</div><div class='del'>-		g_hash_table_insert (dropdown_hash,</div><div class='del'>-				     (char*)e_card_simple_get_ecard_field(simple, e_card_simple_map_email_to_field (i)),</div><div class='del'>-				     editor-&gt;email_info[i].widget);</div><div class='del'>-	e_contact_editor_build_address_ui (editor);</div><div class='del'>-	for (i = 0; i &lt; E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++)</div><div class='del'>-		g_hash_table_insert (dropdown_hash,</div><div class='del'>-				     (char*)e_card_simple_get_ecard_field(simple, e_card_simple_map_address_to_field (i)),</div><div class='del'>-				     editor-&gt;address_info[i].widget);</div><div class='del'>-</div><div class='del'>-	/* then disable them all */</div><div class='del'>-	g_hash_table_foreach (dropdown_hash, (GHFunc)disable_widget_foreach, NULL);</div><div class='del'>-</div><div class='del'>-	/* disable the label widgets for the dropdowns (4 phone, 1</div><div class='del'>-           email and the toggle button, and 1 address and one for</div><div class='del'>-           the full adress button */</div><div class='del'>-	for (i = 0; i &lt; 4; i ++) {</div><div class='del'>-		widget_name = g_strdup_printf ("label-phone%d", i+1);</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, widget_name), FALSE);</div><div class='del'>-		g_free (widget_name);</div><div class='del'>-		widget_name = g_strdup_printf ("entry-phone%d", i+1);</div><div class='del'>-		enable_widget (glade_xml_get_widget (editor-&gt;gui, widget_name), FALSE);</div><div class='del'>-		g_free (widget_name);</div><div class='del'>-	}</div><div class='del'>-	enable_widget (glade_xml_get_widget (editor-&gt;gui, "label-email1"), FALSE);</div><div class='del'>-	enable_widget (glade_xml_get_widget (editor-&gt;gui, "entry-email1"), FALSE);</div><div class='del'>-	enable_widget (glade_xml_get_widget (editor-&gt;gui, "checkbutton-htmlmail"), FALSE);</div><div class='del'>-	enable_widget (glade_xml_get_widget (editor-&gt;gui, "label-address"), FALSE);</div><div class='del'>-	enable_widget (glade_xml_get_widget (editor-&gt;gui, "text-address"), FALSE);</div><div class='del'>-</div><div class='del'>-	/* enable widgets that map directly from a field to a widget (the drop down items) */</div><div class='del'>-	iter = e_list_get_iterator (fields);</div><div class='del'>-	for (; e_iterator_is_valid (iter); e_iterator_next (iter)) {</div><div class='del'>-		char *field = (char*)e_iterator_get (iter);</div><div class='del'>-		GtkWidget *widget = g_hash_table_lookup (dropdown_hash, field);</div><div class='del'>-</div><div class='del'>-		if (widget) {</div><div class='del'>-			enable_widget (widget, editor-&gt;editable);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-			/* if it's not a field that's handled by the</div><div class='del'>-                           dropdown items, add it to the has to be</div><div class='del'>-                           used in the second step */</div><div class='del'>-			g_hash_table_insert (supported_hash, field, field);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* ugh - this is needed to make sure we don't have a</div><div class='del'>-                   disabled label next to a drop down when the item in</div><div class='del'>-                   the menu (the one reflected in the label) is</div><div class='del'>-                   enabled. */</div><div class='del'>-		if (!strcmp (field, e_card_simple_get_ecard_field (simple, e_card_simple_map_email_to_field(editor-&gt;email_choice)))) {</div><div class='del'>-			enable_widget (glade_xml_get_widget (editor-&gt;gui, "label-email1"), TRUE);</div><div class='del'>-			enable_widget (glade_xml_get_widget (editor-&gt;gui, "entry-email1"), editor-&gt;editable);</div><div class='del'>-			enable_widget (glade_xml_get_widget (editor-&gt;gui, "checkbutton-htmlmail"), editor-&gt;editable);</div><div class='del'>-		}</div><div class='del'>-		else if (!strcmp (field, e_card_simple_get_ecard_field (simple, e_card_simple_map_address_to_field(editor-&gt;address_choice)))) {</div><div class='del'>-			enable_widget (glade_xml_get_widget (editor-&gt;gui, "label-address"), TRUE);</div><div class='del'>-			enable_widget (glade_xml_get_widget (editor-&gt;gui, "text-address"), editor-&gt;editable);</div><div class='del'>-		}</div><div class='del'>-		else for (i = 0; i &lt; 4; i ++) {</div><div class='del'>-			if (!strcmp (field, e_card_simple_get_ecard_field (simple, e_card_simple_map_phone_to_field(editor-&gt;phone_choice[i])))) {</div><div class='del'>-				widget_name = g_strdup_printf ("label-phone%d", i+1);</div><div class='del'>-				enable_widget (glade_xml_get_widget (editor-&gt;gui, widget_name), TRUE);</div><div class='del'>-				g_free (widget_name);</div><div class='del'>-				widget_name = g_strdup_printf ("entry-phone%d", i+1);</div><div class='del'>-				enable_widget (glade_xml_get_widget (editor-&gt;gui, widget_name), editor-&gt;editable);</div><div class='del'>-				g_free (widget_name);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* handle the label next to the dropdown widgets */</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; num_widget_field_mappings; i ++) {</div><div class='del'>-		gboolean enabled;</div><div class='del'>-		GtkWidget *w;</div><div class='del'>-		const char *field;</div><div class='del'>-</div><div class='del'>-		w = glade_xml_get_widget(editor-&gt;gui, widget_field_mappings[i].widget_name);</div><div class='del'>-		if (!w) {</div><div class='del'>-			g_warning (_("Could not find widget for a field: `%s'"),</div><div class='del'>-				   widget_field_mappings[i].widget_name);</div><div class='del'>-			continue;</div><div class='del'>-		}</div><div class='del'>-		if (!GTK_IS_LABEL (w))</div><div class='del'>-			continue;</div><div class='del'>-		field = e_card_simple_get_ecard_field (simple,</div><div class='del'>-						       widget_field_mappings[i].field_id);</div><div class='del'>-</div><div class='del'>-		enabled = (g_hash_table_lookup (supported_hash, field) != NULL);</div><div class='del'>-</div><div class='del'>-		enable_widget (w, enabled);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	g_hash_table_destroy (dropdown_hash);</div><div class='del'>-	g_hash_table_destroy (supported_hash);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT(simple));</div><div class='del'>-	gtk_object_unref (GTK_OBJECT(card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_editable (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-	char *entry;</div><div class='del'>-	/* set the sensitivity of all the non-dropdown entry/texts/dateedits */</div><div class='del'>-	for (i = 0; i &lt; num_widget_field_mappings; i ++) {</div><div class='del'>-		if (widget_field_mappings[i].desensitize_for_read_only) {</div><div class='del'>-			GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, widget_field_mappings[i].widget_name);</div><div class='del'>-			enable_widget (widget, editor-&gt;editable);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* handle the phone dropdown entries */</div><div class='del'>-	for (i = 0; i &lt; 4; i ++) {</div><div class='del'>-		entry = g_strdup_printf ("entry-phone%d", i+1);</div><div class='del'>-</div><div class='del'>-		enable_widget (glade_xml_get_widget(editor-&gt;gui, entry),</div><div class='del'>-			       editor-&gt;editable);</div><div class='del'>-</div><div class='del'>-		g_free (entry);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* handle the email dropdown entry */</div><div class='del'>-	entry = "entry-email1";</div><div class='del'>-	enable_widget (glade_xml_get_widget(editor-&gt;gui, entry),</div><div class='del'>-		       editor-&gt;editable);</div><div class='del'>-	enable_widget (glade_xml_get_widget(editor-&gt;gui, "checkbutton-htmlmail"),</div><div class='del'>-		       editor-&gt;editable);</div><div class='del'>-</div><div class='del'>-	/* handle the address dropdown entry */</div><div class='del'>-	entry = "text-address";</div><div class='del'>-	enable_widget (glade_xml_get_widget(editor-&gt;gui, entry),</div><div class='del'>-		       editor-&gt;editable);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_info(EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	ECard *card = editor-&gt;card;</div><div class='del'>-	if (card) {</div><div class='del'>-		char *file_as;</div><div class='del'>-		char *related_contacts;</div><div class='del'>-		ECardName *name;</div><div class='del'>-		const ECardDate *anniversary;</div><div class='del'>-		const ECardDate *bday;</div><div class='del'>-		int i;</div><div class='del'>-		GtkWidget *widget;</div><div class='del'>-		GList *list;</div><div class='del'>-		gboolean wants_html, wants_html_set;</div><div class='del'>-</div><div class='del'>-		gtk_object_get(GTK_OBJECT(card),</div><div class='del'>-			       "file_as",          &amp;file_as,</div><div class='del'>-			       "related_contacts", &amp;related_contacts,</div><div class='del'>-			       "name",             &amp;name,</div><div class='del'>-			       "anniversary",      &amp;anniversary,</div><div class='del'>-			       "birth_date",       &amp;bday,</div><div class='del'>-			       "wants_html_set",   &amp;wants_html_set,</div><div class='del'>-			       "wants_html",       &amp;wants_html,</div><div class='del'>-			       NULL);</div><div class='del'>-	</div><div class='del'>-		for (i = 0; i &lt; sizeof(field_mapping) / sizeof(field_mapping[0]); i++) {</div><div class='del'>-			fill_in_card_field(editor, card, field_mapping[i].id, field_mapping[i].key);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		for (list = editor-&gt;arbitrary_fields; list; list = list-&gt;next) {</div><div class='del'>-			fill_in_single_field(editor, list-&gt;data);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (wants_html_set) {</div><div class='del'>-			GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, "checkbutton-htmlmail");</div><div class='del'>-			if (widget &amp;&amp; GTK_IS_CHECK_BUTTON(widget)) {</div><div class='del'>-				gtk_object_set(GTK_OBJECT(widget),</div><div class='del'>-					       "active", wants_html,</div><div class='del'>-					       NULL);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		/* File as has to come after company and name or else it'll get messed up when setting them. */</div><div class='del'>-		fill_in_field(editor, "entry-file-as", file_as);</div><div class='del'>-		</div><div class='del'>-		e_card_name_unref(editor-&gt;name);</div><div class='del'>-		editor-&gt;name = e_card_name_ref(name);</div><div class='del'>-</div><div class='del'>-		widget = glade_xml_get_widget(editor-&gt;gui, "dateedit-anniversary");</div><div class='del'>-		if (widget &amp;&amp; E_IS_DATE_EDIT(widget)) {</div><div class='del'>-			EDateEdit *dateedit;</div><div class='del'>-			dateedit = E_DATE_EDIT(widget);</div><div class='del'>-			if (anniversary)</div><div class='del'>-				e_date_edit_set_date (dateedit,</div><div class='del'>-						      anniversary-&gt;year,</div><div class='del'>-						      anniversary-&gt;month,</div><div class='del'>-						      anniversary-&gt;day);</div><div class='del'>-			else</div><div class='del'>-				e_date_edit_set_time (dateedit, -1);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		widget = glade_xml_get_widget(editor-&gt;gui, "dateedit-birthday");</div><div class='del'>-		if (widget &amp;&amp; E_IS_DATE_EDIT(widget)) {</div><div class='del'>-			EDateEdit *dateedit;</div><div class='del'>-			dateedit = E_DATE_EDIT(widget);</div><div class='del'>-			if (bday)</div><div class='del'>-				e_date_edit_set_date (dateedit,</div><div class='del'>-						      bday-&gt;year,</div><div class='del'>-						      bday-&gt;month,</div><div class='del'>-						      bday-&gt;day);</div><div class='del'>-			else</div><div class='del'>-				e_date_edit_set_time (dateedit, -1);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (editor-&gt;select_names_contacts &amp;&amp; related_contacts &amp;&amp; *related_contacts) {</div><div class='del'>-			ESelectNamesModel *model = e_select_names_manager_get_source (editor-&gt;select_names_contacts,</div><div class='del'>-										      "contacts");</div><div class='del'>-			e_select_names_model_import_destinationv (model, related_contacts);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		set_fields(editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-extract_field(EContactEditor *editor, ECard *card, char *editable_id, char *key)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, editable_id);</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_EDITABLE(widget)) {</div><div class='del'>-		GtkEditable *editable = GTK_EDITABLE(widget);</div><div class='del'>-		char *string = e_utf8_gtk_editable_get_chars(editable, 0, -1);</div><div class='del'>-</div><div class='del'>-		if (string &amp;&amp; *string)</div><div class='del'>-			gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-				       key, string,</div><div class='del'>-				       NULL);</div><div class='del'>-		else</div><div class='del'>-			gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-				       key, NULL,</div><div class='del'>-				       NULL);</div><div class='del'>-</div><div class='del'>-		if (string) g_free(string);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-extract_single_field(EContactEditor *editor, char *name)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = glade_xml_get_widget(editor-&gt;gui, name);</div><div class='del'>-	ECardSimple *simple = editor-&gt;simple;</div><div class='del'>-	if (widget &amp;&amp; GTK_IS_EDITABLE(widget)) {</div><div class='del'>-		GtkEditable *editable = GTK_EDITABLE(widget);</div><div class='del'>-		char *string = e_utf8_gtk_editable_get_chars(editable, 0, -1);</div><div class='del'>-</div><div class='del'>-		if (string &amp;&amp; *string)</div><div class='del'>-			e_card_simple_set_arbitrary(simple,</div><div class='del'>-						    name,</div><div class='del'>-						    NULL,</div><div class='del'>-						    string);</div><div class='del'>-		else</div><div class='del'>-			e_card_simple_set_arbitrary(simple,</div><div class='del'>-						    name,</div><div class='del'>-						    NULL,</div><div class='del'>-						    NULL);</div><div class='del'>-		if (string) g_free(string);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-extract_info(EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	ECard *card = editor-&gt;card;</div><div class='del'>-	if (card) {</div><div class='del'>-		ECardDate anniversary;</div><div class='del'>-		ECardDate bday;</div><div class='del'>-		int i;</div><div class='del'>-		GtkWidget *widget;</div><div class='del'>-		GList *list;</div><div class='del'>-</div><div class='del'>-		widget = glade_xml_get_widget(editor-&gt;gui, "entry-file-as");</div><div class='del'>-		if (widget &amp;&amp; GTK_IS_EDITABLE(widget)) {</div><div class='del'>-			GtkEditable *editable = GTK_EDITABLE(widget);</div><div class='del'>-			char *string = e_utf8_gtk_editable_get_chars(editable, 0, -1);</div><div class='del'>-</div><div class='del'>-			if (string &amp;&amp; *string)</div><div class='del'>-				gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-					       "file_as", string,</div><div class='del'>-					       NULL);</div><div class='del'>-</div><div class='del'>-			if (string) g_free(string);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		for (i = 0; i &lt; sizeof(field_mapping) / sizeof(field_mapping[0]); i++) {</div><div class='del'>-			extract_field(editor, card, field_mapping[i].id, field_mapping[i].key);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		for (list = editor-&gt;arbitrary_fields; list; list = list-&gt;next) {</div><div class='del'>-			extract_single_field(editor, list-&gt;data);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (editor-&gt;select_names_contacts) {</div><div class='del'>-			ESelectNamesModel *model = e_select_names_manager_get_source (editor-&gt;select_names_contacts,</div><div class='del'>-										      "contacts");</div><div class='del'>-			char *string = e_select_names_model_export_destinationv (model);</div><div class='del'>-			if (string &amp;&amp; *string)</div><div class='del'>-				gtk_object_set (GTK_OBJECT (card),</div><div class='del'>-						"related_contacts", string,</div><div class='del'>-						NULL);</div><div class='del'>-			else</div><div class='del'>-				gtk_object_set (GTK_OBJECT (card),</div><div class='del'>-						"related_contacts", NULL,</div><div class='del'>-						NULL);</div><div class='del'>-			g_free (string);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (editor-&gt;name)</div><div class='del'>-			gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-				       "name", editor-&gt;name,</div><div class='del'>-				       NULL);</div><div class='del'>-</div><div class='del'>-		widget = glade_xml_get_widget(editor-&gt;gui, "dateedit-anniversary");</div><div class='del'>-		if (widget &amp;&amp; E_IS_DATE_EDIT(widget)) {</div><div class='del'>-			if (e_date_edit_get_date (E_DATE_EDIT (widget),</div><div class='del'>-						  &amp;anniversary.year,</div><div class='del'>-						  &amp;anniversary.month,</div><div class='del'>-						  &amp;anniversary.day)) {</div><div class='del'>-				g_print ("%d %d %d\n", anniversary.year, anniversary.month, anniversary.day);</div><div class='del'>-				gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-					       "anniversary", &amp;anniversary,</div><div class='del'>-					       NULL);</div><div class='del'>-			} else</div><div class='del'>-				gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-					       "anniversary", NULL,</div><div class='del'>-					       NULL);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		widget = glade_xml_get_widget(editor-&gt;gui, "dateedit-birthday");</div><div class='del'>-		if (widget &amp;&amp; E_IS_DATE_EDIT(widget)) {</div><div class='del'>-			if (e_date_edit_get_date (E_DATE_EDIT (widget),</div><div class='del'>-						  &amp;bday.year,</div><div class='del'>-						  &amp;bday.month,</div><div class='del'>-						  &amp;bday.day)) {</div><div class='del'>-				g_print ("%d %d %d\n", bday.year, bday.month, bday.day);</div><div class='del'>-				gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-					       "birth_date", &amp;bday,</div><div class='del'>-					       NULL);</div><div class='del'>-			} else</div><div class='del'>-				gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-					       "birth_date", NULL,</div><div class='del'>-					       NULL);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_contact_editor_raise:</div><div class='del'>- * @config: The %EContactEditor object.</div><div class='del'>- *</div><div class='del'>- * Raises the dialog associated with this %EContactEditor object.</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-e_contact_editor_raise (EContactEditor *editor)</div><div class='del'>-{</div><div class='del'>-	/* FIXME: perhaps we should raise at realize time */</div><div class='del'>-	if (GTK_WIDGET (editor-&gt;app)-&gt;window)</div><div class='del'>-		gdk_window_raise (GTK_WIDGET (editor-&gt;app)-&gt;window);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * e_contact_editor_show:</div><div class='del'>- * @ce: The %EContactEditor object.</div><div class='del'>- *</div><div class='del'>- * Shows the dialog associated with this %EContactEditor object.</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-e_contact_editor_show (EContactEditor *ce)</div><div class='del'>-{</div><div class='del'>-	gtk_widget_show (ce-&gt;app);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_contact_editor_create_date(gchar *name,</div><div class='del'>-			     gchar *string1, gchar *string2,</div><div class='del'>-			     gint int1, gint int2);</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_contact_editor_create_date(gchar *name,</div><div class='del'>-			     gchar *string1, gchar *string2,</div><div class='del'>-			     gint int1, gint int2)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *widget = e_date_edit_new ();</div><div class='del'>-	e_date_edit_set_allow_no_date_set (E_DATE_EDIT (widget),</div><div class='del'>-					   TRUE);</div><div class='del'>-	e_date_edit_set_show_time (E_DATE_EDIT (widget), FALSE);</div><div class='del'>-	e_date_edit_set_time (E_DATE_EDIT (widget), -1);</div><div class='del'>-	return widget;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-enable_widget (GtkWidget *widget, gboolean enabled)</div><div class='del'>-{</div><div class='del'>-	if (GTK_IS_ENTRY (widget)) {</div><div class='del'>-		gtk_entry_set_editable (GTK_ENTRY (widget), enabled);</div><div class='del'>-	}</div><div class='del'>-	else if (GTK_IS_TEXT (widget)) {</div><div class='del'>-		gtk_text_set_editable (GTK_TEXT (widget), enabled);</div><div class='del'>-	}</div><div class='del'>-	else if (GTK_IS_COMBO (widget)) {</div><div class='del'>-		gtk_entry_set_editable (GTK_ENTRY (GTK_COMBO (widget)-&gt;entry),</div><div class='del'>-					enabled);</div><div class='del'>-		gtk_widget_set_sensitive (GTK_COMBO (widget)-&gt;button, enabled);</div><div class='del'>-	}</div><div class='del'>-	else if (E_IS_DATE_EDIT (widget)) {</div><div class='del'>-		e_date_edit_set_editable (E_DATE_EDIT (widget), enabled);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='del'>-		gtk_widget_set_sensitive (widget, enabled);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-editor.h b/addressbook/gui/contact-editor/e-contact-editor.h<br/>deleted file mode 100644<br/>index 5f9ac77435..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-editor.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-editor.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,134 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-contact-editor.h</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-#ifndef __E_CONTACT_EDITOR_H__</div><div class='del'>-#define __E_CONTACT_EDITOR_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnomeui/gnome-app.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-app-helper.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-ui-component.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-</div><div class='del'>-#include "addressbook/gui/component/select-names/e-select-names-manager.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-book.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card-simple.h"</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#pragma }</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-/* EContactEditor - A dialog displaying information about a contact.</div><div class='del'>- *</div><div class='del'>- * The following arguments are available:</div><div class='del'>- *</div><div class='del'>- * name		type		read/write	description</div><div class='del'>- * --------------------------------------------------------------------------------</div><div class='del'>- * card         ECard *         RW              The card currently being edited</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define E_CONTACT_EDITOR_TYPE			(e_contact_editor_get_type ())</div><div class='del'>-#define E_CONTACT_EDITOR(obj)			(GTK_CHECK_CAST ((obj), E_CONTACT_EDITOR_TYPE, EContactEditor))</div><div class='del'>-#define E_CONTACT_EDITOR_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_CONTACT_EDITOR_TYPE, EContactEditorClass))</div><div class='del'>-#define E_IS_CONTACT_EDITOR(obj)		(GTK_CHECK_TYPE ((obj), E_CONTACT_EDITOR_TYPE))</div><div class='del'>-#define E_IS_CONTACT_EDITOR_CLASS(klass)	(GTK_CHECK_CLASS_TYPE ((obj), E_CONTACT_EDITOR_TYPE))</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _EContactEditor       EContactEditor;</div><div class='del'>-typedef struct _EContactEditorClass  EContactEditorClass;</div><div class='del'>-</div><div class='del'>-struct _EContactEditor</div><div class='del'>-{</div><div class='del'>-	GtkObject object;</div><div class='del'>-	</div><div class='del'>-	/* item specific fields */</div><div class='del'>-	EBook *book;</div><div class='del'>-	ECard *card;</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-</div><div class='del'>-	/* UI handler */</div><div class='del'>-	BonoboUIComponent *uic;</div><div class='del'>-	</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *app;</div><div class='del'>-	GnomeUIInfo *email_info;</div><div class='del'>-	GnomeUIInfo *phone_info;</div><div class='del'>-	GnomeUIInfo *address_info;</div><div class='del'>-	GtkWidget *email_popup;</div><div class='del'>-	GtkWidget *phone_popup;</div><div class='del'>-	GtkWidget *address_popup;</div><div class='del'>-	GList *email_list;</div><div class='del'>-	GList *phone_list;</div><div class='del'>-	GList *address_list;</div><div class='del'>-</div><div class='del'>-	ESelectNamesManager *select_names_contacts;</div><div class='del'>-</div><div class='del'>-	ECardName *name;</div><div class='del'>-	char *company;</div><div class='del'>-</div><div class='del'>-	ECardSimpleEmailId email_choice;</div><div class='del'>-	ECardSimplePhoneId phone_choice[4];</div><div class='del'>-	ECardSimpleAddressId address_choice;</div><div class='del'>-	</div><div class='del'>-	GList *arbitrary_fields;</div><div class='del'>-</div><div class='del'>-	/* Whether we are editing a new card or an existing one */</div><div class='del'>-	guint is_new_card : 1;</div><div class='del'>-</div><div class='del'>-	/* Whether the card has been changed since bringing up the contact editor */</div><div class='del'>-	guint changed : 1;</div><div class='del'>-</div><div class='del'>-	/* Whether the contact editor will accept modifications */</div><div class='del'>-	guint editable : 1;</div><div class='del'>-</div><div class='del'>-	EList *writable_fields;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EContactEditorClass</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	/* Notification signals */</div><div class='del'>-</div><div class='del'>-	void (* card_added)    (EContactEditor *ce, EBookStatus status, ECard *card);</div><div class='del'>-	void (* card_modified) (EContactEditor *ce, EBookStatus status, ECard *card);</div><div class='del'>-	void (* card_deleted)  (EContactEditor *ce, EBookStatus status, ECard *card);</div><div class='del'>-	void (* editor_closed) (EContactEditor *ce);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-EContactEditor *e_contact_editor_new             (EBook *book,</div><div class='del'>-						  ECard *card,</div><div class='del'>-						  gboolean is_new_card,</div><div class='del'>-						  gboolean editable);</div><div class='del'>-GtkType         e_contact_editor_get_type        (void);</div><div class='del'>-void            e_contact_editor_show            (EContactEditor *editor);</div><div class='del'>-void            e_contact_editor_close           (EContactEditor *editor);</div><div class='del'>-void            e_contact_editor_raise           (EContactEditor *editor);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-gboolean        e_contact_editor_confirm_delete  (GtkWindow      *parent);</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_CONTACT_EDITOR_H__ */</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-quick-add.c b/addressbook/gui/contact-editor/e-contact-quick-add.c<br/>deleted file mode 100644<br/>index 637c4019aa..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-quick-add.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-quick-add.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,454 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-contact-quick-add.c</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkentry.h&gt;</div><div class='del'>-#include &lt;gtk/gtklabel.h&gt;</div><div class='del'>-#include &lt;gtk/gtktable.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-app.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-stock.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-book-util.h&gt;</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-#include "e-contact-editor.h"</div><div class='del'>-#include "e-contact-quick-add.h"</div><div class='del'>-#include "e-card-merging.h"</div><div class='del'>-</div><div class='del'>-typedef struct _QuickAdd QuickAdd;</div><div class='del'>-struct _QuickAdd {</div><div class='del'>-	gchar *name;</div><div class='del'>-	gchar *email;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	EContactQuickAddCallback cb;</div><div class='del'>-	gpointer closure;</div><div class='del'>-</div><div class='del'>-	GtkWidget *name_entry;</div><div class='del'>-	GtkWidget *email_entry;</div><div class='del'>-</div><div class='del'>-	gint refs;</div><div class='del'>-</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static QuickAdd *</div><div class='del'>-quick_add_new (void)</div><div class='del'>-{</div><div class='del'>-	QuickAdd *qa = g_new0 (QuickAdd, 1);</div><div class='del'>-	qa-&gt;card = e_card_new ("");</div><div class='del'>-	qa-&gt;refs = 1;</div><div class='del'>-	return qa;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-quick_add_ref (QuickAdd *qa)</div><div class='del'>-{</div><div class='del'>-	if (qa) {</div><div class='del'>-		++qa-&gt;refs;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-quick_add_unref (QuickAdd *qa)</div><div class='del'>-{</div><div class='del'>-	if (qa) {</div><div class='del'>-		--qa-&gt;refs;</div><div class='del'>-		if (qa-&gt;refs == 0) {</div><div class='del'>-			g_free (qa-&gt;name);</div><div class='del'>-			g_free (qa-&gt;email);</div><div class='del'>-			gtk_object_unref (GTK_OBJECT (qa-&gt;card));</div><div class='del'>-			g_free (qa);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-quick_add_set_name (QuickAdd *qa, const gchar *name)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-</div><div class='del'>-	if (name == qa-&gt;name)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	g_free (qa-&gt;name);</div><div class='del'>-	qa-&gt;name = g_strdup (name);</div><div class='del'>-</div><div class='del'>-	simple = e_card_simple_new (qa-&gt;card);</div><div class='del'>-	e_card_simple_set (simple, E_CARD_SIMPLE_FIELD_FULL_NAME, name);</div><div class='del'>-	e_card_simple_sync_card (simple);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-quick_add_set_email (QuickAdd *qa, const gchar *email)</div><div class='del'>-{</div><div class='del'>-	ECardSimple *simple;</div><div class='del'>-</div><div class='del'>-	if (email == qa-&gt;email)</div><div class='del'>-		return;</div><div class='del'>-</div><div class='del'>-	g_free (qa-&gt;email);</div><div class='del'>-	qa-&gt;email = g_strdup (email);</div><div class='del'>-</div><div class='del'>-	simple = e_card_simple_new (qa-&gt;card);</div><div class='del'>-	e_card_simple_set (simple, E_CARD_SIMPLE_FIELD_EMAIL, email);</div><div class='del'>-	e_card_simple_sync_card (simple);</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-merge_cb (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	QuickAdd *qa = (QuickAdd *) closure;</div><div class='del'>-</div><div class='del'>-	if (book != NULL) {</div><div class='del'>-		e_card_merging_book_add_card (book, qa-&gt;card, NULL, NULL);</div><div class='del'>-		if (qa-&gt;cb)</div><div class='del'>-			qa-&gt;cb (qa-&gt;card, qa-&gt;closure);</div><div class='del'>-	} else {</div><div class='del'>-		/* Something went wrong. */</div><div class='del'>-		if (qa-&gt;cb)</div><div class='del'>-			qa-&gt;cb (NULL, qa-&gt;closure);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	quick_add_unref (qa);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-quick_add_merge_card (QuickAdd *qa)</div><div class='del'>-{</div><div class='del'>-	quick_add_ref (qa);</div><div class='del'>-	e_book_use_local_address_book (merge_cb, qa);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Raise a contact editor with all fields editable, and hook up all signals accordingly.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-card_added_cb (EContactEditor *ce, EBookStatus status, ECard *card, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	QuickAdd *qa = (QuickAdd *) gtk_object_get_data (GTK_OBJECT (ce), "quick_add");</div><div class='del'>-</div><div class='del'>-	if (qa) {</div><div class='del'>-</div><div class='del'>-		if (qa-&gt;cb)</div><div class='del'>-			qa-&gt;cb (qa-&gt;card, qa-&gt;closure);</div><div class='del'>-	</div><div class='del'>-		/* We don't need to unref qa because we set_data_full below */</div><div class='del'>-		gtk_object_set_data (GTK_OBJECT (ce), "quick_add", NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-editor_closed_cb (GtkWidget *w, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	QuickAdd *qa = (QuickAdd *) gtk_object_get_data (GTK_OBJECT (w), "quick_add");</div><div class='del'>-</div><div class='del'>-	if (qa) {</div><div class='del'>-		/* We don't need to unref qa because we set_data_full below */</div><div class='del'>-		gtk_object_set_data (GTK_OBJECT (w), "quick_add", NULL);</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (w));</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-ce_have_book (EBook *book, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	QuickAdd *qa = (QuickAdd *) closure;</div><div class='del'>-</div><div class='del'>-	if (book == NULL) {</div><div class='del'>-		g_warning ("Couldn't open local address book.");</div><div class='del'>-		quick_add_unref (qa);</div><div class='del'>-	} else {</div><div class='del'>-		EContactEditor *contact_editor = e_contact_editor_new (book, qa-&gt;card, TRUE, TRUE /* XXX */);</div><div class='del'>-</div><div class='del'>-		/* mark it as changed so the Save buttons are enabled when we bring up the dialog. */</div><div class='del'>-		gtk_object_set (GTK_OBJECT(contact_editor),</div><div class='del'>-				"changed", TRUE,</div><div class='del'>-				NULL);</div><div class='del'>-</div><div class='del'>-		/* We pass this via object data, so that we don't get a dangling pointer referenced if both</div><div class='del'>-		   the "card_added" and "editor_closed" get emitted.  (Which, based on a backtrace in bugzilla,</div><div class='del'>-		   I think can happen and cause a crash. */</div><div class='del'>-		gtk_object_set_data_full (GTK_OBJECT (contact_editor), "quick_add", qa,</div><div class='del'>-					  (GtkDestroyNotify) quick_add_unref);</div><div class='del'>-</div><div class='del'>-		gtk_signal_connect (GTK_OBJECT (contact_editor),</div><div class='del'>-				    "card_added",</div><div class='del'>-				    GTK_SIGNAL_FUNC (card_added_cb),</div><div class='del'>-				    NULL);</div><div class='del'>-		gtk_signal_connect (GTK_OBJECT (contact_editor),</div><div class='del'>-				    "editor_closed",</div><div class='del'>-				    GTK_SIGNAL_FUNC (editor_closed_cb),</div><div class='del'>-				    NULL);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-edit_card (QuickAdd *qa)</div><div class='del'>-{</div><div class='del'>-	e_book_use_local_address_book (ce_have_book, qa);</div><div class='del'>-	quick_add_unref (qa);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-clicked_cb (GtkWidget *w, gint button, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	QuickAdd *qa = (QuickAdd *) closure;</div><div class='del'>-</div><div class='del'>-	/* Get data out of entries. */</div><div class='del'>-	if (button == 0 || button == 1) {</div><div class='del'>-		gchar *name = NULL;</div><div class='del'>-		gchar *email = NULL;</div><div class='del'>-</div><div class='del'>-		if (qa-&gt;name_entry) {</div><div class='del'>-			gchar *tmp;</div><div class='del'>-			tmp = gtk_editable_get_chars (GTK_EDITABLE (qa-&gt;name_entry), 0, -1);</div><div class='del'>-			name = e_utf8_from_gtk_string (qa-&gt;name_entry, tmp);</div><div class='del'>-			g_free (tmp);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (qa-&gt;email_entry) {</div><div class='del'>-			gchar *tmp;</div><div class='del'>-			tmp = gtk_editable_get_chars (GTK_EDITABLE (qa-&gt;email_entry), 0, -1);</div><div class='del'>-			email = e_utf8_from_gtk_string (qa-&gt;email_entry, tmp);</div><div class='del'>-			g_free (tmp);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		quick_add_set_name (qa, name);</div><div class='del'>-		quick_add_set_email (qa, email);</div><div class='del'>-	</div><div class='del'>-		g_free (name);</div><div class='del'>-		g_free (email);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_widget_destroy (w);</div><div class='del'>-</div><div class='del'>-	if (button == 0) {</div><div class='del'>-</div><div class='del'>-		/* OK */</div><div class='del'>-		quick_add_merge_card (qa);</div><div class='del'>-</div><div class='del'>-	} else if (button == 1) {</div><div class='del'>-		</div><div class='del'>-		/* EDIT FULL */</div><div class='del'>-		edit_card (qa);</div><div class='del'>-</div><div class='del'>-	} else {</div><div class='del'>-		/* CANCEL */</div><div class='del'>-		quick_add_unref (qa);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static GtkWidget *</div><div class='del'>-build_quick_add_dialog (QuickAdd *qa)</div><div class='del'>-{</div><div class='del'>-	GtkWidget *dialog;</div><div class='del'>-	GtkTable *table;</div><div class='del'>-	const gint xpad=1, ypad=1;</div><div class='del'>-</div><div class='del'>-	g_return_val_if_fail (qa != NULL, NULL);</div><div class='del'>-</div><div class='del'>-	dialog = gnome_dialog_new (_("Contact Quick-Add"),</div><div class='del'>-				   GNOME_STOCK_BUTTON_OK,</div><div class='del'>-				   _("Edit Full"),</div><div class='del'>-				   GNOME_STOCK_BUTTON_CANCEL,</div><div class='del'>-				   NULL);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (dialog),</div><div class='del'>-			    "clicked",</div><div class='del'>-			    clicked_cb,</div><div class='del'>-			    qa);</div><div class='del'>-</div><div class='del'>-	qa-&gt;name_entry = gtk_entry_new ();</div><div class='del'>-	if (qa-&gt;name) {</div><div class='del'>-		gchar *str = e_utf8_to_gtk_string (qa-&gt;name_entry, qa-&gt;name);</div><div class='del'>-		gtk_entry_set_text (GTK_ENTRY (qa-&gt;name_entry), str);</div><div class='del'>-		g_free (str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	qa-&gt;email_entry = gtk_entry_new ();</div><div class='del'>-	if (qa-&gt;email) {</div><div class='del'>-		gchar *str = e_utf8_to_gtk_string (qa-&gt;email_entry, qa-&gt;email);</div><div class='del'>-		gtk_entry_set_text (GTK_ENTRY (qa-&gt;email_entry), str);</div><div class='del'>-		g_free (str);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	table = GTK_TABLE (gtk_table_new (2, 2, FALSE));</div><div class='del'>-</div><div class='del'>-	gtk_table_attach (table, gtk_label_new (_("Full Name")),</div><div class='del'>-			  0, 1, 0, 1,</div><div class='del'>-			  0, 0, xpad, ypad);</div><div class='del'>-	gtk_table_attach (table, qa-&gt;name_entry,</div><div class='del'>-			  1, 2, 0, 1,</div><div class='del'>-			  GTK_EXPAND | GTK_FILL, GTK_EXPAND, xpad, ypad);</div><div class='del'>-	gtk_table_attach (table, gtk_label_new (_("E-mail")),</div><div class='del'>-			  0, 1, 1, 2,</div><div class='del'>-			  0, 0, xpad, ypad);</div><div class='del'>-	gtk_table_attach (table, qa-&gt;email_entry,</div><div class='del'>-			  1, 2, 1, 2,</div><div class='del'>-			  GTK_EXPAND | GTK_FILL, GTK_EXPAND, xpad, ypad);</div><div class='del'>-</div><div class='del'>-	gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)-&gt;vbox),</div><div class='del'>-			    GTK_WIDGET (table),</div><div class='del'>-			    TRUE, TRUE, 0);</div><div class='del'>-	gtk_widget_show_all (GTK_WIDGET (table));</div><div class='del'>-			  </div><div class='del'>-	</div><div class='del'>-	return dialog;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_quick_add (const gchar *in_name, const gchar *email,</div><div class='del'>-		     EContactQuickAddCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	QuickAdd *qa;</div><div class='del'>-	GtkWidget *dialog;</div><div class='del'>-	gchar *name = NULL;</div><div class='del'>-	gint len;</div><div class='del'>-</div><div class='del'>-	/* We need to have *something* to work with. */</div><div class='del'>-	if (in_name == NULL &amp;&amp; email == NULL) {</div><div class='del'>-		if (cb)</div><div class='del'>-			cb (NULL, closure);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (in_name) {</div><div class='del'>-		name = g_strdup (in_name);</div><div class='del'>-</div><div class='del'>-		/* Remove extra whitespace and the quotes some mailers put around names. */</div><div class='del'>-		g_strstrip (name);</div><div class='del'>-		len = strlen (name);</div><div class='del'>-		if ((name[0] == '\'' &amp;&amp; name[len-1] == '\'') || (name[0] == '"' &amp;&amp; name[len-1] == '"')) {</div><div class='del'>-			name[0] = ' ';</div><div class='del'>-			name[len-1] = ' ';</div><div class='del'>-		}</div><div class='del'>-		g_strstrip (name);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	qa = quick_add_new ();</div><div class='del'>-	qa-&gt;cb = cb;</div><div class='del'>-	qa-&gt;closure = closure;</div><div class='del'>-	if (name)</div><div class='del'>-		quick_add_set_name (qa, name);</div><div class='del'>-	if (email)</div><div class='del'>-		quick_add_set_email (qa, email);</div><div class='del'>-</div><div class='del'>-	dialog = build_quick_add_dialog (qa);</div><div class='del'>-	gtk_widget_show_all (dialog);</div><div class='del'>-</div><div class='del'>-	g_free (name);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_quick_add_free_form (const gchar *text, EContactQuickAddCallback cb, gpointer closure)</div><div class='del'>-{</div><div class='del'>-	gchar *name=NULL, *email=NULL;</div><div class='del'>-	const gchar *last_at, *s;</div><div class='del'>-	gboolean in_quote;</div><div class='del'>-</div><div class='del'>-	if (text == NULL) {</div><div class='del'>-		e_contact_quick_add (NULL, NULL, cb, closure);</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Look for things that look like e-mail addresses embedded in text */</div><div class='del'>-	in_quote = FALSE;</div><div class='del'>-	last_at = NULL;</div><div class='del'>-	for (s = text; *s; ++s) {</div><div class='del'>-		if (*s == '@' &amp;&amp; !in_quote)</div><div class='del'>-			last_at = s;</div><div class='del'>-		else if (*s == '"')</div><div class='del'>-			in_quote = !in_quote;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	</div><div class='del'>-	if (last_at == NULL) {</div><div class='del'>-		/* No at sign, so we treat it all as the name */</div><div class='del'>-		name = g_strdup (text);</div><div class='del'>-	} else {</div><div class='del'>-		gboolean bad_char = FALSE;</div><div class='del'>-		</div><div class='del'>-		/* walk backwards to whitespace or a &lt; or a quote... */</div><div class='del'>-		while (last_at &gt;= text &amp;&amp; !bad_char</div><div class='del'>-		       &amp;&amp; !(isspace ((gint) *last_at) || *last_at == '&lt;' || *last_at == '"')) {</div><div class='del'>-			/* Check for some stuff that can't appear in a legal e-mail address. */</div><div class='del'>-			if (*last_at == '['</div><div class='del'>-			    || *last_at == ']'</div><div class='del'>-			    || *last_at == '('</div><div class='del'>-			    || *last_at == ')')</div><div class='del'>-				bad_char = TRUE;</div><div class='del'>-			--last_at;</div><div class='del'>-		}</div><div class='del'>-		if (last_at &lt; text)</div><div class='del'>-			last_at = text;</div><div class='del'>-</div><div class='del'>-		/* ...and then split the text there */</div><div class='del'>-		if (!bad_char) {</div><div class='del'>-			if (text &lt; last_at)</div><div class='del'>-				name = g_strndup (text, last_at-text);</div><div class='del'>-			email = g_strdup (last_at);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* If all else has failed, make it the name. */</div><div class='del'>-	if (name == NULL &amp;&amp; email == NULL) </div><div class='del'>-		name = g_strdup (text);</div><div class='del'>-		</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	/* Clean up email, remove bracketing &lt;&gt;s */</div><div class='del'>-	if (email &amp;&amp; *email) {</div><div class='del'>-		gboolean changed = FALSE;</div><div class='del'>-		g_strstrip (email);</div><div class='del'>-		if (*email == '&lt;') {</div><div class='del'>-			*email = ' ';</div><div class='del'>-			changed = TRUE;</div><div class='del'>-		}</div><div class='del'>-		if (email[strlen (email)-1] == '&gt;') {</div><div class='del'>-			email[strlen (email)-1] = ' ';</div><div class='del'>-			changed = TRUE;</div><div class='del'>-		}</div><div class='del'>-		if (changed)</div><div class='del'>-			g_strstrip (email);</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-</div><div class='del'>-	e_contact_quick_add (name, email, cb, closure);</div><div class='del'>-	g_free (name);</div><div class='del'>-	g_free (email);</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-quick-add.h b/addressbook/gui/contact-editor/e-contact-quick-add.h<br/>deleted file mode 100644<br/>index e01256a163..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-quick-add.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-quick-add.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,41 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * e-contact-quick-add.h</div><div class='del'>- *</div><div class='del'>- * Copyright (C) 2001 Ximian, Inc.</div><div class='del'>- *</div><div class='del'>- * Developed by Jon Trowbridge &lt;trow@ximian.com&gt;</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This program is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- * </div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>- * GNU General Public License for more details.</div><div class='del'>- * </div><div class='del'>- * You should have received a copy of the GNU General Public License</div><div class='del'>- * along with this program; if not, write to the Free Software</div><div class='del'>- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</div><div class='del'>- * USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef __E_CONTACT_QUICK_ADD_H__</div><div class='del'>-#define __E_CONTACT_QUICK_ADD_H__</div><div class='del'>-</div><div class='del'>-#include &lt;addressbook/backend/ebook/e-card.h&gt;</div><div class='del'>-</div><div class='del'>-typedef void (*EContactQuickAddCallback) (ECard *new_card, gpointer closure);</div><div class='del'>-</div><div class='del'>-void e_contact_quick_add (const gchar *name, const gchar *email, </div><div class='del'>-			  EContactQuickAddCallback cb, gpointer closure);</div><div class='del'>-</div><div class='del'>-void e_contact_quick_add_free_form (const gchar *text, EContactQuickAddCallback cb, gpointer closure);</div><div class='del'>-</div><div class='del'>-#endif /* __E_CONTACT_QUICK_ADD_H__ */</div><div class='del'>-</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-save-as.c b/addressbook/gui/contact-editor/e-contact-save-as.c<br/>deleted file mode 100644<br/>index ec174615e9..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-save-as.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-save-as.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,218 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-contact-editor.h</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-</div><div class='del'>-#include "e-contact-save-as.h"</div><div class='del'>-</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;gtk/gtkfilesel.h&gt;</div><div class='del'>-#include &lt;gtk/gtksignal.h&gt;</div><div class='del'>-#include &lt;gtk/gtk.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-dialog.h&gt;</div><div class='del'>-#include &lt;gal/util/e-util.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-messagebox.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-stock.h&gt;</div><div class='del'>-</div><div class='del'>-static int file_exists(GtkFileSelection *filesel, const char *filename);</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	GtkFileSelection *filesel;</div><div class='del'>-	char *vcard;</div><div class='del'>-} SaveAsInfo;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-save_it(GtkWidget *widget, SaveAsInfo *info)</div><div class='del'>-{</div><div class='del'>-	gint error = 0;</div><div class='del'>-	gint response = 0;</div><div class='del'>-	</div><div class='del'>-	const char *filename = gtk_file_selection_get_filename (info-&gt;filesel);</div><div class='del'>-</div><div class='del'>-	error = e_write_file (filename, info-&gt;vcard, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC);</div><div class='del'>-</div><div class='del'>-	if (error == EEXIST) {</div><div class='del'>-		response = file_exists(info-&gt;filesel, filename);</div><div class='del'>-		switch (response) {</div><div class='del'>-			case 0 : /* Overwrite */</div><div class='del'>-				e_write_file(filename, info-&gt;vcard, O_WRONLY | O_CREAT | O_TRUNC);</div><div class='del'>-				break;</div><div class='del'>-			case 1 : /* cancel */</div><div class='del'>-				return;</div><div class='del'>-		}</div><div class='del'>-	} else if (error != 0) {</div><div class='del'>-		GtkWidget *dialog;</div><div class='del'>-		char *str;</div><div class='del'>-</div><div class='del'>-		str = g_strdup_printf ("Error saving %s: %s", filename, strerror(errno));</div><div class='del'>-		dialog = gnome_message_box_new (str, GNOME_MESSAGE_BOX_ERROR, GNOME_STOCK_BUTTON_OK, NULL);</div><div class='del'>-		g_free (str);</div><div class='del'>-</div><div class='del'>-		gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (info-&gt;filesel));</div><div class='del'>-</div><div class='del'>-		gtk_widget_show (dialog);</div><div class='del'>-		</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	</div><div class='del'>-	g_free (info-&gt;vcard);</div><div class='del'>-	gtk_widget_destroy(GTK_WIDGET(info-&gt;filesel));</div><div class='del'>-	g_free(info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-close_it(GtkWidget *widget, SaveAsInfo *info)</div><div class='del'>-{</div><div class='del'>-	g_free (info-&gt;vcard);</div><div class='del'>-	gtk_widget_destroy (GTK_WIDGET (info-&gt;filesel));</div><div class='del'>-	g_free (info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-delete_it(GtkWidget *widget, SaveAsInfo *info)</div><div class='del'>-{</div><div class='del'>-	g_free (info-&gt;vcard);</div><div class='del'>-	g_free (info);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-make_safe_filename (const char *prefix, char *name)</div><div class='del'>-{</div><div class='del'>-	char *safe, *p;</div><div class='del'>-</div><div class='del'>-	if (!name) {</div><div class='del'>-		/* This is a filename. Translators take note. */</div><div class='del'>-		name = _("card.vcf");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	p = strrchr (name, '/');</div><div class='del'>-	if (p)</div><div class='del'>-		safe = g_strdup_printf ("%s%s%s", prefix, p, ".vcf");</div><div class='del'>-	else</div><div class='del'>-		safe = g_strdup_printf ("%s/%s%s", prefix, name, ".vcf");</div><div class='del'>-	</div><div class='del'>-	p = strrchr (safe, '/') + 1;</div><div class='del'>-	if (p)</div><div class='del'>-		e_filename_make_safe (p);</div><div class='del'>-	</div><div class='del'>-	return safe;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_save_as(char *title, ECard *card)</div><div class='del'>-{</div><div class='del'>-	GtkFileSelection *filesel;</div><div class='del'>-	char *file;</div><div class='del'>-	char *name;</div><div class='del'>-	SaveAsInfo *info = g_new(SaveAsInfo, 1);</div><div class='del'>-</div><div class='del'>-	filesel = GTK_FILE_SELECTION(gtk_file_selection_new(title));</div><div class='del'>-</div><div class='del'>-	gtk_object_get (GTK_OBJECT (card),</div><div class='del'>-			"file_as", &amp;name,</div><div class='del'>-			NULL);</div><div class='del'>-	file = make_safe_filename (g_get_home_dir(), name);</div><div class='del'>-	gtk_file_selection_set_filename (filesel, file);</div><div class='del'>-	g_free (file);</div><div class='del'>-</div><div class='del'>-	info-&gt;filesel = filesel;</div><div class='del'>-	info-&gt;vcard = e_card_get_vcard(card);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(filesel-&gt;ok_button), "clicked",</div><div class='del'>-			   save_it, info);</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(filesel-&gt;cancel_button), "clicked",</div><div class='del'>-			   close_it, info);</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(filesel), "delete_event",</div><div class='del'>-			   delete_it, info);</div><div class='del'>-	gtk_widget_show(GTK_WIDGET(filesel));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_save_as(char *title, GList *list)</div><div class='del'>-{</div><div class='del'>-	GtkFileSelection *filesel;</div><div class='del'>-	SaveAsInfo *info = g_new(SaveAsInfo, 1);</div><div class='del'>-</div><div class='del'>-	filesel = GTK_FILE_SELECTION(gtk_file_selection_new(title));</div><div class='del'>-</div><div class='del'>-	/* This is a filename. Translators take note. */</div><div class='del'>-	if (list &amp;&amp; list-&gt;data &amp;&amp; list-&gt;next == NULL) {</div><div class='del'>-		char *name, *file;</div><div class='del'>-		gtk_object_get (GTK_OBJECT (list-&gt;data),</div><div class='del'>-				"file_as", &amp;name,</div><div class='del'>-				NULL);</div><div class='del'>-		file = make_safe_filename (g_get_home_dir(), name);</div><div class='del'>-		gtk_file_selection_set_filename (filesel, file);</div><div class='del'>-		g_free (file);</div><div class='del'>-	} else {</div><div class='del'>-		char *file;</div><div class='del'>-		file = make_safe_filename (g_get_home_dir(), _("list"));</div><div class='del'>-		gtk_file_selection_set_filename (filesel, file);</div><div class='del'>-		g_free (file);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	info-&gt;filesel = filesel;</div><div class='del'>-	info-&gt;vcard = e_card_list_get_vcard (list);</div><div class='del'>-	</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(filesel-&gt;ok_button), "clicked",</div><div class='del'>-			   save_it, info);</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(filesel-&gt;cancel_button), "clicked",</div><div class='del'>-			   close_it, info);</div><div class='del'>-	gtk_signal_connect(GTK_OBJECT(filesel), "delete_event",</div><div class='del'>-			   delete_it, info);</div><div class='del'>-	gtk_widget_show(GTK_WIDGET(filesel));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-file_exists(GtkFileSelection *filesel, const char *filename)</div><div class='del'>-{</div><div class='del'>-	GnomeDialog *dialog = NULL;</div><div class='del'>-	GtkWidget *label;</div><div class='del'>-	GladeXML *gui = NULL;</div><div class='del'>-	int result = 0;</div><div class='del'>-	char *string;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/file-exists.glade", NULL);</div><div class='del'>-	dialog = GNOME_DIALOG(glade_xml_get_widget(gui, "dialog-exists"));</div><div class='del'>-	gtk_widget_ref(GTK_WIDGET(dialog));</div><div class='del'>-	</div><div class='del'>-	label = glade_xml_get_widget (gui, "label-exists");</div><div class='del'>-	if (GTK_IS_LABEL (label)) {</div><div class='del'>-		string = g_strdup_printf (_("%s already exists\nDo you want to overwrite it?"), filename);</div><div class='del'>-		gtk_label_set_text (GTK_LABEL (label), string);</div><div class='del'>-		g_free (string);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gnome_dialog_set_parent(dialog, GTK_WINDOW(filesel));</div><div class='del'>-</div><div class='del'>-	gtk_widget_show (GTK_WIDGET (dialog));</div><div class='del'>-	result = gnome_dialog_run_and_close(dialog);</div><div class='del'>-</div><div class='del'>-	gtk_widget_unref(GTK_WIDGET(dialog));</div><div class='del'>-	gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class='del'>-	g_free(gui);</div><div class='del'>-</div><div class='del'>-	return result;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-editor/e-contact-save-as.h b/addressbook/gui/contact-editor/e-contact-save-as.h<br/>deleted file mode 100644<br/>index 75bd6ce957..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/e-contact-save-as.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/e-contact-save-as.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,43 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-contact-save-as.h</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-#ifndef __E_CONTACT_SAVE_AS_H__</div><div class='del'>-#define __E_CONTACT_SAVE_AS_H__</div><div class='del'>-</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include "addressbook/backend/ebook/e-card.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card-simple.h"</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#pragma }</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_save_as(gchar *title, ECard *card);</div><div class='del'>-void</div><div class='del'>-e_contact_list_save_as(gchar *title, GList *list);</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_CONTACT_EDITOR_H__ */</div><div class='head'>diff --git a/addressbook/gui/contact-editor/file-exists.glade b/addressbook/gui/contact-editor/file-exists.glade<br/>deleted file mode 100644<br/>index 7c457cb892..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/file-exists.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/file-exists.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,95 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;File_exists.glade&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;file_exists.glade&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;dialog-exists&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;Confirm Overwrite&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;False&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dialog-vbox1&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;dialog-action_area1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button1&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;label&gt;Overwrite&lt;/label&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button3&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;has_default&gt;True&lt;/has_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;label-exists&lt;/name&gt;</div><div class='del'>-      &lt;label&gt;Don't bother translating this string.  It's not used.&lt;/label&gt;</div><div class='del'>-      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-      &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/contact-editor/fulladdr.glade b/addressbook/gui/contact-editor/fulladdr.glade<br/>deleted file mode 100644<br/>index 68b715a1cc..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/fulladdr.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/fulladdr.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,706 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;fulladdr&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;fulladdr&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-  &lt;use_widget_names&gt;True&lt;/use_widget_names&gt;</div><div class='del'>-  &lt;output_main_file&gt;False&lt;/output_main_file&gt;</div><div class='del'>-  &lt;output_support_files&gt;False&lt;/output_support_files&gt;</div><div class='del'>-  &lt;output_build_files&gt;False&lt;/output_build_files&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;dialog-checkaddress&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;Check Address&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;True&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;vbox-container&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;hbuttonbox1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button1&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;has_default&gt;True&lt;/has_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_OK&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button2&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;table-checkaddress&lt;/name&gt;</div><div class='del'>-      &lt;border_width&gt;8&lt;/border_width&gt;</div><div class='del'>-      &lt;rows&gt;4&lt;/rows&gt;</div><div class='del'>-      &lt;columns&gt;4&lt;/columns&gt;</div><div class='del'>-      &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-      &lt;row_spacing&gt;6&lt;/row_spacing&gt;</div><div class='del'>-      &lt;column_spacing&gt;6&lt;/column_spacing&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label2&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_Address:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_LEFT&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-street&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label4&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_City:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-city&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-city&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-ext&lt;/name&gt;</div><div class='del'>-	&lt;width&gt;100&lt;/width&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label8&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_PO Box:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-po&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label3&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;Address _2:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-ext&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-po&lt;/name&gt;</div><div class='del'>-	&lt;width&gt;100&lt;/width&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-street&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;has_focus&gt;True&lt;/has_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label5&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_State/Province:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-region&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-region&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkCombo&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;combo-country&lt;/name&gt;</div><div class='del'>-	&lt;width&gt;100&lt;/width&gt;</div><div class='del'>-	&lt;value_in_list&gt;False&lt;/value_in_list&gt;</div><div class='del'>-	&lt;ok_if_empty&gt;True&lt;/ok_if_empty&gt;</div><div class='del'>-	&lt;case_sensitive&gt;False&lt;/case_sensitive&gt;</div><div class='del'>-	&lt;use_arrows&gt;True&lt;/use_arrows&gt;</div><div class='del'>-	&lt;use_arrows_always&gt;False&lt;/use_arrows_always&gt;</div><div class='del'>-	&lt;items&gt;United States</div><div class='del'>-Afghanistan</div><div class='del'>-Albania</div><div class='del'>-Algeria</div><div class='del'>-American Samoa</div><div class='del'>-Andorra</div><div class='del'>-Angola</div><div class='del'>-Anguilla</div><div class='del'>-Antarctica</div><div class='del'>-Antigua And Barbuda</div><div class='del'>-Argentina</div><div class='del'>-Armenia</div><div class='del'>-Aruba</div><div class='del'>-Australia</div><div class='del'>-Austria</div><div class='del'>-Azerbaijan</div><div class='del'>-Bahamas</div><div class='del'>-Bahrain</div><div class='del'>-Bangladesh</div><div class='del'>-Barbados</div><div class='del'>-Belarus</div><div class='del'>-Belgium</div><div class='del'>-Belize</div><div class='del'>-Benin</div><div class='del'>-Bermuda</div><div class='del'>-Bhutan</div><div class='del'>-Bolivia</div><div class='del'>-Bosnia And Herzegowina</div><div class='del'>-Botswana</div><div class='del'>-Bouvet Island</div><div class='del'>-Brazil</div><div class='del'>-British Indian Ocean Territory</div><div class='del'>-Brunei Darussalam</div><div class='del'>-Bulgaria</div><div class='del'>-Burkina Faso</div><div class='del'>-Burundi</div><div class='del'>-Cambodia</div><div class='del'>-Cameroon</div><div class='del'>-Canada</div><div class='del'>-Cape Verde</div><div class='del'>-Cayman Islands</div><div class='del'>-Central African Republic</div><div class='del'>-Chad</div><div class='del'>-Chile</div><div class='del'>-China</div><div class='del'>-Christmas Island</div><div class='del'>-Cocos (Keeling) Islands</div><div class='del'>-Colombia</div><div class='del'>-Comoros</div><div class='del'>-Congo</div><div class='del'>-Congo</div><div class='del'>-Cook Islands</div><div class='del'>-Costa Rica</div><div class='del'>-Cote d'Ivoire</div><div class='del'>-Croatia</div><div class='del'>-Cuba</div><div class='del'>-Cyprus</div><div class='del'>-Czech Republic</div><div class='del'>-Denmark</div><div class='del'>-Djibouti</div><div class='del'>-Dominica</div><div class='del'>-Dominican Republic</div><div class='del'>-East Timor</div><div class='del'>-Ecuador</div><div class='del'>-Egypt</div><div class='del'>-El Salvador</div><div class='del'>-Equatorial Guinea</div><div class='del'>-Eritrea</div><div class='del'>-Estonia</div><div class='del'>-Ethiopia</div><div class='del'>-Falkland Islands</div><div class='del'>-Faroe Islands</div><div class='del'>-Fiji</div><div class='del'>-Finland</div><div class='del'>-France</div><div class='del'>-French Guiana</div><div class='del'>-French Polynesia</div><div class='del'>-French Southern Territories</div><div class='del'>-Gabon</div><div class='del'>-Gambia</div><div class='del'>-Georgia</div><div class='del'>-Germany</div><div class='del'>-Ghana</div><div class='del'>-Gibraltar</div><div class='del'>-Greece</div><div class='del'>-Greenland</div><div class='del'>-Grenada</div><div class='del'>-Guadeloupe</div><div class='del'>-Guam</div><div class='del'>-Guatemala</div><div class='del'>-Guinea</div><div class='del'>-Guinea-bissau</div><div class='del'>-Guyana</div><div class='del'>-Haiti</div><div class='del'>-Heard And McDonald Islands</div><div class='del'>-Holy See</div><div class='del'>-Honduras</div><div class='del'>-Hong Kong</div><div class='del'>-Hungary</div><div class='del'>-Iceland</div><div class='del'>-India</div><div class='del'>-Indonesia</div><div class='del'>-Ireland</div><div class='del'>-Israel</div><div class='del'>-Italy</div><div class='del'>-Jamaica</div><div class='del'>-Japan</div><div class='del'>-Jordan</div><div class='del'>-Kazakhstan</div><div class='del'>-Kenya</div><div class='del'>-Kiribati</div><div class='del'>-Republic Of Korea</div><div class='del'>-Kuwait</div><div class='del'>-Kyrgyzstan</div><div class='del'>-Laos</div><div class='del'>-Latvia</div><div class='del'>-Lebanon</div><div class='del'>-Lesotho</div><div class='del'>-Liberia</div><div class='del'>-Liechtenstein</div><div class='del'>-Lithuania</div><div class='del'>-Luxembourg</div><div class='del'>-Macau</div><div class='del'>-Macedonia</div><div class='del'>-Madagascar</div><div class='del'>-Malawi</div><div class='del'>-Malaysia</div><div class='del'>-Maldives</div><div class='del'>-Mali</div><div class='del'>-Malta</div><div class='del'>-Marshall Islands</div><div class='del'>-Martinique</div><div class='del'>-Mauritania</div><div class='del'>-Mauritius</div><div class='del'>-Mayotte</div><div class='del'>-Mexico</div><div class='del'>-Micronesia</div><div class='del'>-Republic Of Moldova</div><div class='del'>-Monaco</div><div class='del'>-Mongolia</div><div class='del'>-Montserrat</div><div class='del'>-Morocco</div><div class='del'>-Mozambique</div><div class='del'>-Myanmar</div><div class='del'>-Namibia</div><div class='del'>-Nauru</div><div class='del'>-Nepal</div><div class='del'>-Netherlands</div><div class='del'>-Netherlands Antilles</div><div class='del'>-New Caledonia</div><div class='del'>-New Zealand</div><div class='del'>-Nicaragua</div><div class='del'>-Niger</div><div class='del'>-Nigeria</div><div class='del'>-Niue</div><div class='del'>-Norfolk Island</div><div class='del'>-Northern Mariana Islands</div><div class='del'>-Norway</div><div class='del'>-Oman</div><div class='del'>-Pakistan</div><div class='del'>-Palau</div><div class='del'>-Palestinian Territory</div><div class='del'>-Panama</div><div class='del'>-Papua New Guinea</div><div class='del'>-Paraguay</div><div class='del'>-Peru</div><div class='del'>-Philippines</div><div class='del'>-Pitcairn</div><div class='del'>-Poland</div><div class='del'>-Portugal</div><div class='del'>-Puerto Rico</div><div class='del'>-Qatar</div><div class='del'>-Reunion</div><div class='del'>-Romania</div><div class='del'>-Russian Federation</div><div class='del'>-Rwanda</div><div class='del'>-Saint Kitts And Nevis</div><div class='del'>-Saint Lucia</div><div class='del'>-Saint Vincent And The Grena-dines</div><div class='del'>-Samoa</div><div class='del'>-San Marino</div><div class='del'>-Sao Tome And Principe</div><div class='del'>-Saudi Arabia</div><div class='del'>-Senegal</div><div class='del'>-Seychelles</div><div class='del'>-Sierra Leone</div><div class='del'>-Singapore</div><div class='del'>-Slovakia</div><div class='del'>-Slovenia</div><div class='del'>-Solomon Islands</div><div class='del'>-Somalia</div><div class='del'>-South Africa</div><div class='del'>-South Georgia And The South Sandwich Islands</div><div class='del'>-Spain</div><div class='del'>-Sri Lanka</div><div class='del'>-St. Helena</div><div class='del'>-St. Pierre And Miquelon</div><div class='del'>-Sudan</div><div class='del'>-Suriname</div><div class='del'>-Svalbard And Jan Mayen Islands</div><div class='del'>-Swaziland</div><div class='del'>-Sweden</div><div class='del'>-Switzerland</div><div class='del'>-Taiwan</div><div class='del'>-Tajikistan</div><div class='del'>-United Republic Of Tanzania</div><div class='del'>-Thailand</div><div class='del'>-Togo</div><div class='del'>-Tokelau</div><div class='del'>-Tonga</div><div class='del'>-Trinidad And Tobago</div><div class='del'>-Tunisia</div><div class='del'>-Turkey</div><div class='del'>-Turkmenistan</div><div class='del'>-Turks And Caicos Islands</div><div class='del'>-Tuvalu</div><div class='del'>-Uganda</div><div class='del'>-Ukraine</div><div class='del'>-United Arab Emirates</div><div class='del'>-United Kingdom</div><div class='del'>-United States Minor Outlying Islands</div><div class='del'>-Uruguay</div><div class='del'>-Uzbekistan</div><div class='del'>-Vanuatu</div><div class='del'>-Venezuela</div><div class='del'>-Viet Nam</div><div class='del'>-British Virgin Islands</div><div class='del'>-U.S. Virgin Islands</div><div class='del'>-Wallis And Futuna Islands</div><div class='del'>-Western Sahara</div><div class='del'>-Yemen</div><div class='del'>-Yugoslavia</div><div class='del'>-Zambia</div><div class='del'>-Zimbabwe</div><div class='del'>-&lt;/items&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;child_name&gt;GtkCombo:entry&lt;/child_name&gt;</div><div class='del'>-	  &lt;name&gt;entry-country&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-code&lt;/name&gt;</div><div class='del'>-	&lt;width&gt;100&lt;/width&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;3&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;4&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label6&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_ZIP Code:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-code&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label7&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;Countr_y:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;1&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-country&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;2&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/contact-editor/fullname.glade b/addressbook/gui/contact-editor/fullname.glade<br/>deleted file mode 100644<br/>index 17be70647c..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/fullname.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/fullname.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,389 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;fullname&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;fullname&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-  &lt;use_widget_names&gt;True&lt;/use_widget_names&gt;</div><div class='del'>-  &lt;output_main_file&gt;False&lt;/output_main_file&gt;</div><div class='del'>-  &lt;output_support_files&gt;False&lt;/output_support_files&gt;</div><div class='del'>-  &lt;output_build_files&gt;False&lt;/output_build_files&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;dialog-checkfullname&lt;/name&gt;</div><div class='del'>-  &lt;visible&gt;False&lt;/visible&gt;</div><div class='del'>-  &lt;title&gt;Check Full Name&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;True&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;True&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;vbox-container&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;hbuttonbox1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button1&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_OK&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button2&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;table-checkfullname&lt;/name&gt;</div><div class='del'>-      &lt;border_width&gt;8&lt;/border_width&gt;</div><div class='del'>-      &lt;rows&gt;5&lt;/rows&gt;</div><div class='del'>-      &lt;columns&gt;3&lt;/columns&gt;</div><div class='del'>-      &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-      &lt;row_spacing&gt;6&lt;/row_spacing&gt;</div><div class='del'>-      &lt;column_spacing&gt;21&lt;/column_spacing&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkCombo&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;combo-title&lt;/name&gt;</div><div class='del'>-	&lt;value_in_list&gt;False&lt;/value_in_list&gt;</div><div class='del'>-	&lt;ok_if_empty&gt;True&lt;/ok_if_empty&gt;</div><div class='del'>-	&lt;case_sensitive&gt;False&lt;/case_sensitive&gt;</div><div class='del'>-	&lt;use_arrows&gt;True&lt;/use_arrows&gt;</div><div class='del'>-	&lt;use_arrows_always&gt;False&lt;/use_arrows_always&gt;</div><div class='del'>-	&lt;items&gt;</div><div class='del'>-Mr.</div><div class='del'>-Mrs.</div><div class='del'>-Ms.</div><div class='del'>-Miss</div><div class='del'>-Dr.</div><div class='del'>-&lt;/items&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;child_name&gt;GtkCombo:entry&lt;/child_name&gt;</div><div class='del'>-	  &lt;name&gt;entry-title&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkCombo&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;combo-suffix&lt;/name&gt;</div><div class='del'>-	&lt;value_in_list&gt;False&lt;/value_in_list&gt;</div><div class='del'>-	&lt;ok_if_empty&gt;True&lt;/ok_if_empty&gt;</div><div class='del'>-	&lt;case_sensitive&gt;False&lt;/case_sensitive&gt;</div><div class='del'>-	&lt;use_arrows&gt;True&lt;/use_arrows&gt;</div><div class='del'>-	&lt;use_arrows_always&gt;False&lt;/use_arrows_always&gt;</div><div class='del'>-	&lt;items&gt;</div><div class='del'>-Sr.</div><div class='del'>-Jr.</div><div class='del'>-I</div><div class='del'>-II</div><div class='del'>-III</div><div class='del'>-Esq.</div><div class='del'>-&lt;/items&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;child_name&gt;GtkCombo:entry&lt;/child_name&gt;</div><div class='del'>-	  &lt;name&gt;entry-suffix&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-first&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-middle&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;entry-last&lt;/name&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	&lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	&lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	&lt;text&gt;&lt;/text&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;3&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label2&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_First:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-first&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label1&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_Title:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-title&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label3&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_Middle:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-middle&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label5&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_Last:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-last&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label4&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;_Suffix:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;focus_target&gt;entry-suffix&lt;/focus_target&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/contact-editor/test-editor.c b/addressbook/gui/contact-editor/test-editor.c<br/>deleted file mode 100644<br/>index c45f6c2720..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-editor/test-editor.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/test-editor.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,145 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/*</div><div class='del'>- * test-editor.c</div><div class='del'>- * Copyright (C) 2000  Ximian, Inc.</div><div class='del'>- * Author: Chris Lahey &lt;clahey@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include "config.h"</div><div class='del'>-</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;gtk/gtkmain.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-app.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-init.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include "e-contact-editor.h"</div><div class='del'>-</div><div class='del'>-#define TEST_VCARD                   \</div><div class='del'>-"BEGIN:VCARD</div><div class='del'>-"                      \</div><div class='del'>-"FN:Nat</div><div class='del'>-"                           \</div><div class='del'>-"N:Friedman;Nat;D;Mr.</div><div class='del'>-"             \</div><div class='del'>-"BDAY:1977-08-06</div><div class='del'>-"                  \</div><div class='del'>-"TEL;WORK:617 679 1984</div><div class='del'>-"            \</div><div class='del'>-"TEL;CELL:123 456 7890</div><div class='del'>-"            \</div><div class='del'>-"EMAIL;INTERNET:nat@nat.org</div><div class='del'>-"       \</div><div class='del'>-"EMAIL;INTERNET:nat@ximian.com</div><div class='del'>-" \</div><div class='del'>-"ADR;WORK;POSTAL:P.O. Box 101;;;Any Town;CA;91921-1234;</div><div class='del'>-" \</div><div class='del'>-"ADR;HOME;POSTAL;INTL:P.O. Box 202;;;Any Town 2;MI;12344-4321;USA</div><div class='del'>-" \</div><div class='del'>-"END:VCARD</div><div class='del'>-"                        \</div><div class='del'>-"</div><div class='del'>-"</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-read_file (char *name)</div><div class='del'>-{</div><div class='del'>-	int  len;</div><div class='del'>-	char buff[65536];</div><div class='del'>-	char line[1024];</div><div class='del'>-	FILE *f;</div><div class='del'>-</div><div class='del'>-	f = fopen (name, "r");</div><div class='del'>-	if (f == NULL)</div><div class='del'>-		g_error ("Unable to open %s!\n", name);</div><div class='del'>-</div><div class='del'>-	len  = 0;</div><div class='del'>-	while (fgets (line, sizeof (line), f) != NULL) {</div><div class='del'>-		strcpy (buff + len, line);</div><div class='del'>-		len += strlen (line);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	fclose (f);</div><div class='del'>-</div><div class='del'>-	return g_strdup (buff);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Callback used when a contact editor is closed */</div><div class='del'>-static void</div><div class='del'>-editor_closed_cb (EContactEditor *ce, gpointer data)</div><div class='del'>-{</div><div class='del'>-	static int count = 2;</div><div class='del'>-</div><div class='del'>-	count--;</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (ce));</div><div class='del'>-</div><div class='del'>-	if (count == 0)</div><div class='del'>-		exit (0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-static void about_callback( GtkWidget *widget, gpointer data )</div><div class='del'>-{</div><div class='del'>-</div><div class='del'>-  const gchar *authors[] =</div><div class='del'>-  {</div><div class='del'>-    "Christopher James Lahey &lt;clahey@umich.edu&gt;",</div><div class='del'>-    NULL</div><div class='del'>-  };</div><div class='del'>-</div><div class='del'>-  GtkWidget *about =</div><div class='del'>-    gnome_about_new ( _( "Contact Editor Test" ), VERSION,</div><div class='del'>-		      _( "Copyright (C) 2000, Ximian, Inc." ),</div><div class='del'>-		      authors,</div><div class='del'>-		      _( "This should test the contact editor canvas item" ),</div><div class='del'>-		      NULL);</div><div class='del'>-  gtk_widget_show (about);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-int main( int argc, char *argv[] )</div><div class='del'>-{</div><div class='del'>-	char *cardstr;</div><div class='del'>-	EContactEditor *ce;</div><div class='del'>-</div><div class='del'>-	/*  bindtextdomain (PACKAGE, GNOMELOCALEDIR);</div><div class='del'>-	    textdomain (PACKAGE);*/</div><div class='del'>-</div><div class='del'>-	gnome_init( "Contact Editor Test", VERSION, argc, argv);</div><div class='del'>-</div><div class='del'>-	glade_gnome_init ();</div><div class='del'>-</div><div class='del'>-	cardstr = NULL;</div><div class='del'>-	if (argc == 2)</div><div class='del'>-		cardstr = read_file (argv [1]);</div><div class='del'>-</div><div class='del'>-	if (cardstr == NULL)</div><div class='del'>-		cardstr = TEST_VCARD;</div><div class='del'>-</div><div class='del'>-	ce = e_contact_editor_new (e_card_new_with_default_charset (cardstr, "ISO-8859-1"), TRUE, NULL, FALSE);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (ce), "editor_closed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (editor_closed_cb), NULL);</div><div class='del'>-</div><div class='del'>-	ce = e_contact_editor_new (e_card_new_with_default_charset (cardstr, "ISO-8859-1"), TRUE, NULL, FALSE);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (ce), "editor_closed",</div><div class='del'>-			    GTK_SIGNAL_FUNC (editor_closed_cb), NULL);</div><div class='del'>-</div><div class='del'>-	gtk_main();</div><div class='del'>-</div><div class='del'>-	/* Not reached. */</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-list-editor/.cvsignore b/addressbook/gui/contact-list-editor/.cvsignore<br/>deleted file mode 100644<br/>index e440fafdac..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-list-editor/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-list-editor/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,3 +0,0 @@</div><div class='del'>-Makefile.in</div><div class='del'>-Makefile</div><div class='del'>-.deps</div><div class='head'>diff --git a/addressbook/gui/contact-list-editor/Makefile.am b/addressbook/gui/contact-list-editor/Makefile.am<br/>deleted file mode 100644<br/>index 1164f2c594..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-list-editor/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-list-editor/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,30 +0,0 @@</div><div class='del'>-INCLUDES =					\</div><div class='del'>-	$(BONOBO_GNOME_CFLAGS)			\</div><div class='del'>-	$(EXTRA_GNOME_CFLAGS)			\</div><div class='del'>-	-I$(top_srcdir)				\</div><div class='del'>-	-I$(top_srcdir)/addressbook/		\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend	\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/merging	\</div><div class='del'>-	-I$(top_srcdir)/addressbook/gui/contact-editor	\</div><div class='del'>-	-I$(top_builddir)/shell			\</div><div class='del'>-	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"	\</div><div class='del'>-	-DDATADIR=\""$(datadir)"\"		\</div><div class='del'>-	-DEVOLUTION_DATADIR=\""$(datadir)"\"	\</div><div class='del'>-	-DEVOLUTIONDIR=\""$(evolutiondir)"\"	\</div><div class='del'>-	-DG_LOG_DOMAIN=\"contact-list-editor\"</div><div class='del'>-</div><div class='del'>-noinst_LIBRARIES =				\</div><div class='del'>-	libecontactlisteditor.a</div><div class='del'>-</div><div class='del'>-libecontactlisteditor_a_SOURCES = 		\</div><div class='del'>-	e-contact-list-editor.c			\</div><div class='del'>-	e-contact-list-editor.h			\</div><div class='del'>-	e-contact-list-model.c			\</div><div class='del'>-	e-contact-list-model.h</div><div class='del'>-</div><div class='del'>-gladedir   = $(datadir)/evolution/glade</div><div class='del'>-</div><div class='del'>-glade_DATA = 					\</div><div class='del'>-	contact-list-editor.glade</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = $(glade_DATA)</div><div class='head'>diff --git a/addressbook/gui/contact-list-editor/contact-list-editor.glade b/addressbook/gui/contact-list-editor/contact-list-editor.glade<br/>deleted file mode 100644<br/>index 92c6aa013f..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-list-editor/contact-list-editor.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-list-editor/contact-list-editor.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,272 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;contact-list-editor&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;contact-list-editor&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeApp&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;contact list editor&lt;/name&gt;</div><div class='del'>-  &lt;title&gt;contact-list-editor&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_TOPLEVEL&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;default_width&gt;426&lt;/default_width&gt;</div><div class='del'>-  &lt;default_height&gt;304&lt;/default_height&gt;</div><div class='del'>-  &lt;allow_shrink&gt;True&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;enable_layout_config&gt;True&lt;/enable_layout_config&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GnomeDock&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeApp:dock&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dock1&lt;/name&gt;</div><div class='del'>-    &lt;allow_floating&gt;True&lt;/allow_floating&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDock:contents&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;vbox8&lt;/name&gt;</div><div class='del'>-      &lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-      &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-      &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;hbox6&lt;/name&gt;</div><div class='del'>-	&lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	&lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	&lt;spacing&gt;3&lt;/spacing&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	  &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	  &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;label10&lt;/name&gt;</div><div class='del'>-	  &lt;label&gt;List _name:&lt;/label&gt;</div><div class='del'>-	  &lt;justify&gt;GTK_JUSTIFY_LEFT&lt;/justify&gt;</div><div class='del'>-	  &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	  &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	  &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;default_focus_target&gt;list-name-entry&lt;/default_focus_target&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;list-name-entry&lt;/name&gt;</div><div class='del'>-	  &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	  &lt;has_focus&gt;True&lt;/has_focus&gt;</div><div class='del'>-	  &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	  &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	  &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	  &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom7&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;evolution-contacts-plain.png&lt;/string1&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Sat, 23 Jun 2001 05:59:21 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	  &lt;child&gt;</div><div class='del'>-	    &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	    &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	    &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	  &lt;/child&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkFrame&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;frame3&lt;/name&gt;</div><div class='del'>-	&lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	&lt;label&gt;Members&lt;/label&gt;</div><div class='del'>-	&lt;label_xalign&gt;0&lt;/label_xalign&gt;</div><div class='del'>-	&lt;shadow_type&gt;GTK_SHADOW_ETCHED_IN&lt;/shadow_type&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	  &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	  &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;GtkHBox&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;hbox7&lt;/name&gt;</div><div class='del'>-	  &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	  &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;vbox9&lt;/name&gt;</div><div class='del'>-	    &lt;border_width&gt;3&lt;/border_width&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;spacing&gt;3&lt;/spacing&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label11&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;Type an email address or drag a contact into the list below:&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkEntry&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;email-entry&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;editable&gt;True&lt;/editable&gt;</div><div class='del'>-	      &lt;text_visible&gt;True&lt;/text_visible&gt;</div><div class='del'>-	      &lt;text_max_length&gt;0&lt;/text_max_length&gt;</div><div class='del'>-	      &lt;text&gt;&lt;/text&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;contact-list-table&lt;/name&gt;</div><div class='del'>-	      &lt;creation_function&gt;e_contact_list_editor_create_table&lt;/creation_function&gt;</div><div class='del'>-	      &lt;string1&gt;&lt;/string1&gt;</div><div class='del'>-	      &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	      &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	      &lt;last_modification_time&gt;Sat, 23 Jun 2001 06:00:16 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkCheckButton&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;visible-addrs-checkbutton&lt;/name&gt;</div><div class='del'>-	      &lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	      &lt;label&gt;_Hide addresses when sending mail to this list&lt;/label&gt;</div><div class='del'>-	      &lt;active&gt;False&lt;/active&gt;</div><div class='del'>-	      &lt;draw_indicator&gt;True&lt;/draw_indicator&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	  &lt;widget&gt;</div><div class='del'>-	    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-	    &lt;name&gt;vbox10&lt;/name&gt;</div><div class='del'>-	    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-	    &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	    &lt;child&gt;</div><div class='del'>-	      &lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	      &lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	      &lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;label12&lt;/name&gt;</div><div class='del'>-	      &lt;label&gt;</div><div class='del'>-&lt;/label&gt;</div><div class='del'>-	      &lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	      &lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	      &lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	      &lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	      &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	      &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;False&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	    &lt;widget&gt;</div><div class='del'>-	      &lt;class&gt;GtkVButtonBox&lt;/class&gt;</div><div class='del'>-	      &lt;name&gt;vbuttonbox4&lt;/name&gt;</div><div class='del'>-	      &lt;layout_style&gt;GTK_BUTTONBOX_START&lt;/layout_style&gt;</div><div class='del'>-	      &lt;spacing&gt;0&lt;/spacing&gt;</div><div class='del'>-	      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-	      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-	      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-	      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-	      &lt;child&gt;</div><div class='del'>-		&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-		&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-		&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	      &lt;widget&gt;</div><div class='del'>-		&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-		&lt;name&gt;add-email-button&lt;/name&gt;</div><div class='del'>-		&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-		&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-		&lt;label&gt;_Add&lt;/label&gt;</div><div class='del'>-		&lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-	      &lt;widget&gt;</div><div class='del'>-		&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-		&lt;name&gt;remove-button&lt;/name&gt;</div><div class='del'>-		&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-		&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-		&lt;label&gt;_Remove&lt;/label&gt;</div><div class='del'>-		&lt;relief&gt;GTK_RELIEF_NORMAL&lt;/relief&gt;</div><div class='del'>-	      &lt;/widget&gt;</div><div class='del'>-	    &lt;/widget&gt;</div><div class='del'>-	  &lt;/widget&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div><div class='del'>-&lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-&lt;/GTK-Interface&gt;</div><div class='head'>diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c<br/>deleted file mode 100644<br/>index 041bf6d9d8..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-list-editor/e-contact-list-editor.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-list-editor/e-contact-list-editor.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,881 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-contact-list-editor.c</div><div class='del'>- * Copyright (C) 2001  Ximian, Inc.</div><div class='del'>- * Author: Chris Toshok &lt;toshok@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include &lt;glib.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-defs.h&gt;</div><div class='del'>-#include &lt;libgnome/gnome-i18n.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-ui-container.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-ui-util.h&gt;</div><div class='del'>-#include &lt;gal/e-table/e-table-scrolled.h&gt;</div><div class='del'>-#include &lt;gal/widgets/e-unicode.h&gt;</div><div class='del'>-#include "shell/evolution-shell-component-utils.h"</div><div class='del'>-</div><div class='del'>-#include "e-contact-editor.h"</div><div class='del'>-#include "e-contact-list-editor.h"</div><div class='del'>-#include "e-contact-list-model.h"</div><div class='del'>-</div><div class='del'>-/* Signal IDs */</div><div class='del'>-enum {</div><div class='del'>-	LIST_ADDED,</div><div class='del'>-	LIST_MODIFIED,</div><div class='del'>-	LIST_DELETED,</div><div class='del'>-	EDITOR_CLOSED,</div><div class='del'>-	LAST_SIGNAL</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void e_contact_list_editor_init		(EContactListEditor		 *editor);</div><div class='del'>-static void e_contact_list_editor_class_init	(EContactListEditorClass	 *klass);</div><div class='del'>-static void e_contact_list_editor_set_arg (GtkObject *o, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_list_editor_get_arg (GtkObject *object, GtkArg *arg, guint arg_id);</div><div class='del'>-static void e_contact_list_editor_destroy (GtkObject *object);</div><div class='del'>-</div><div class='del'>-static void create_ui (EContactListEditor *ce);</div><div class='del'>-static void set_editable (EContactListEditor *editor);</div><div class='del'>-static void command_state_changed (EContactListEditor *editor);</div><div class='del'>-static void close_dialog (EContactListEditor *cle);</div><div class='del'>-static void extract_info(EContactListEditor *editor);</div><div class='del'>-static void fill_in_info(EContactListEditor *editor);</div><div class='del'>-</div><div class='del'>-static void add_email_cb (GtkWidget *w, EContactListEditor *editor);</div><div class='del'>-static void remove_entry_cb (GtkWidget *w, EContactListEditor *editor);</div><div class='del'>-static void list_name_changed_cb (GtkWidget *w, EContactListEditor *editor);</div><div class='del'>-static void visible_addrs_toggled_cb (GtkWidget *w, EContactListEditor *editor);</div><div class='del'>-</div><div class='del'>-static gint app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data);</div><div class='del'>-static gboolean table_drag_drop_cb (ETable *table, int row, int col, GdkDragContext *context,</div><div class='del'>-				    gint x, gint y, guint time, EContactListEditor *editor);</div><div class='del'>-static gboolean table_drag_motion_cb (ETable *table, int row, int col, GdkDragContext *context,</div><div class='del'>-				      gint x, gint y, guint time, EContactListEditor *editor);</div><div class='del'>-static void table_drag_data_received_cb (ETable *table, int row, int col,</div><div class='del'>-					 GdkDragContext *context,</div><div class='del'>-					 gint x, gint y,</div><div class='del'>-					 GtkSelectionData *selection_data, guint info, guint time,</div><div class='del'>-					 EContactListEditor *editor);</div><div class='del'>-</div><div class='del'>-static GtkObjectClass *parent_class = NULL;</div><div class='del'>-</div><div class='del'>-static guint contact_list_editor_signals[LAST_SIGNAL];</div><div class='del'>-</div><div class='del'>-enum DndTargetType {</div><div class='del'>-	DND_TARGET_TYPE_VCARD,</div><div class='del'>-};</div><div class='del'>-#define VCARD_TYPE "text/x-vcard"</div><div class='del'>-static GtkTargetEntry drag_types[] = {</div><div class='del'>-	{ VCARD_TYPE, 0, DND_TARGET_TYPE_VCARD },</div><div class='del'>-};</div><div class='del'>-static const int num_drag_types = sizeof (drag_types) / sizeof (drag_types[0]);</div><div class='del'>-</div><div class='del'>-/* The arguments we take */</div><div class='del'>-enum {</div><div class='del'>-	ARG_0,</div><div class='del'>-	ARG_BOOK,</div><div class='del'>-	ARG_CARD,</div><div class='del'>-	ARG_IS_NEW_LIST,</div><div class='del'>-	ARG_EDITABLE</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_contact_list_editor_get_type (void)</div><div class='del'>-{</div><div class='del'>-  static GtkType contact_list_editor_type = 0;</div><div class='del'>-</div><div class='del'>-  if (!contact_list_editor_type)</div><div class='del'>-    {</div><div class='del'>-      static const GtkTypeInfo contact_list_editor_info =</div><div class='del'>-      {</div><div class='del'>-        "EContactListEditor",</div><div class='del'>-        sizeof (EContactListEditor),</div><div class='del'>-        sizeof (EContactListEditorClass),</div><div class='del'>-        (GtkClassInitFunc) e_contact_list_editor_class_init,</div><div class='del'>-        (GtkObjectInitFunc) e_contact_list_editor_init,</div><div class='del'>-        /* reserved_1 */ NULL,</div><div class='del'>-        /* reserved_2 */ NULL,</div><div class='del'>-        (GtkClassInitFunc) NULL,</div><div class='del'>-      };</div><div class='del'>-</div><div class='del'>-      contact_list_editor_type = gtk_type_unique (GTK_TYPE_OBJECT, &amp;contact_list_editor_info);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-  return contact_list_editor_type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef void (*GtkSignal_NONE__INT_OBJECT) (GtkObject * object,</div><div class='del'>-					    gint arg1,</div><div class='del'>-					    GtkObject *arg2,</div><div class='del'>-					    gpointer user_data);</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_marshal_NONE__INT_OBJECT (GtkObject * object,</div><div class='del'>-			    GtkSignalFunc func,</div><div class='del'>-			    gpointer func_data, GtkArg * args)</div><div class='del'>-{</div><div class='del'>-	GtkSignal_NONE__INT_OBJECT rfunc;</div><div class='del'>-	rfunc = (GtkSignal_NONE__INT_OBJECT) func;</div><div class='del'>-	(*rfunc) (object,</div><div class='del'>-		  GTK_VALUE_INT (args[0]),</div><div class='del'>-		  GTK_VALUE_OBJECT (args[1]),</div><div class='del'>-		  func_data);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_list_editor_class_init (EContactListEditorClass *klass)</div><div class='del'>-{</div><div class='del'>-  GtkObjectClass *object_class;</div><div class='del'>-</div><div class='del'>-  object_class = (GtkObjectClass*) klass;</div><div class='del'>-</div><div class='del'>-  parent_class = gtk_type_class (GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  gtk_object_add_arg_type ("EContactListEditor::book", GTK_TYPE_OBJECT, </div><div class='del'>-			   GTK_ARG_READWRITE, ARG_BOOK);</div><div class='del'>-  gtk_object_add_arg_type ("EContactListEditor::card", GTK_TYPE_OBJECT, </div><div class='del'>-			   GTK_ARG_READWRITE, ARG_CARD);</div><div class='del'>-  gtk_object_add_arg_type ("EContactListEditor::is_new_list", GTK_TYPE_BOOL,</div><div class='del'>-			   GTK_ARG_READWRITE, ARG_IS_NEW_LIST);</div><div class='del'>-  gtk_object_add_arg_type ("EContactListEditor::editable", GTK_TYPE_BOOL,</div><div class='del'>-			   GTK_ARG_READWRITE, ARG_EDITABLE);</div><div class='del'>-</div><div class='del'>-  contact_list_editor_signals[LIST_ADDED] =</div><div class='del'>-	  gtk_signal_new ("list_added",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactListEditorClass, list_added),</div><div class='del'>-			  e_marshal_NONE__INT_OBJECT,</div><div class='del'>-			  GTK_TYPE_NONE, 2,</div><div class='del'>-			  GTK_TYPE_INT, GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  contact_list_editor_signals[LIST_MODIFIED] =</div><div class='del'>-	  gtk_signal_new ("list_modified",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactListEditorClass, list_modified),</div><div class='del'>-			  e_marshal_NONE__INT_OBJECT,</div><div class='del'>-			  GTK_TYPE_NONE, 2,</div><div class='del'>-			  GTK_TYPE_INT, GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  contact_list_editor_signals[LIST_DELETED] =</div><div class='del'>-	  gtk_signal_new ("list_deleted",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactListEditorClass, list_deleted),</div><div class='del'>-			  e_marshal_NONE__INT_OBJECT,</div><div class='del'>-			  GTK_TYPE_NONE, 2,</div><div class='del'>-			  GTK_TYPE_INT, GTK_TYPE_OBJECT);</div><div class='del'>-</div><div class='del'>-  contact_list_editor_signals[EDITOR_CLOSED] =</div><div class='del'>-	  gtk_signal_new ("editor_closed",</div><div class='del'>-			  GTK_RUN_FIRST,</div><div class='del'>-			  object_class-&gt;type,</div><div class='del'>-			  GTK_SIGNAL_OFFSET (EContactListEditorClass, editor_closed),</div><div class='del'>-			  gtk_marshal_NONE__NONE,</div><div class='del'>-			  GTK_TYPE_NONE, 0);</div><div class='del'>-</div><div class='del'>-  gtk_object_class_add_signals (object_class, contact_list_editor_signals, LAST_SIGNAL);</div><div class='del'>- </div><div class='del'>-  object_class-&gt;set_arg = e_contact_list_editor_set_arg;</div><div class='del'>-  object_class-&gt;get_arg = e_contact_list_editor_get_arg;</div><div class='del'>-  object_class-&gt;destroy = e_contact_list_editor_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_list_editor_init (EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *bonobo_win;</div><div class='del'>-	BonoboUIContainer *container;</div><div class='del'>-</div><div class='del'>-	editor-&gt;card = NULL;</div><div class='del'>-	editor-&gt;changed = FALSE;</div><div class='del'>-	editor-&gt;editable = TRUE;</div><div class='del'>-	editor-&gt;is_new_list = FALSE;</div><div class='del'>-</div><div class='del'>-	gui = glade_xml_new (EVOLUTION_GLADEDIR "/contact-list-editor.glade", NULL);</div><div class='del'>-	editor-&gt;gui = gui;</div><div class='del'>-</div><div class='del'>-	editor-&gt;app = glade_xml_get_widget (gui, "contact list editor");</div><div class='del'>-</div><div class='del'>-	editor-&gt;table = glade_xml_get_widget (gui, "contact-list-table");</div><div class='del'>-	editor-&gt;model = gtk_object_get_data (GTK_OBJECT(editor-&gt;table), "model");</div><div class='del'>-</div><div class='del'>-	editor-&gt;add_button = glade_xml_get_widget (editor-&gt;gui, "add-email-button");</div><div class='del'>-	editor-&gt;remove_button = glade_xml_get_widget (editor-&gt;gui, "remove-button");</div><div class='del'>-</div><div class='del'>-	editor-&gt;email_entry = glade_xml_get_widget (gui, "email-entry");</div><div class='del'>-	editor-&gt;list_name_entry = glade_xml_get_widget (gui, "list-name-entry");</div><div class='del'>-</div><div class='del'>-	editor-&gt;visible_addrs_checkbutton = glade_xml_get_widget (gui, "visible-addrs-checkbutton");</div><div class='del'>-</div><div class='del'>-	/* Construct the app */</div><div class='del'>-	bonobo_win = bonobo_window_new ("contact-list-editor", _("Contact List Editor"));</div><div class='del'>-</div><div class='del'>-	/* FIXME: The sucking bit */</div><div class='del'>-	{</div><div class='del'>-		GtkWidget *contents;</div><div class='del'>-</div><div class='del'>-		contents = gnome_dock_get_client_area (</div><div class='del'>-			GNOME_DOCK (GNOME_APP (editor-&gt;app)-&gt;dock));</div><div class='del'>-		if (!contents) {</div><div class='del'>-			g_message ("contact_list_editor_construct(): Could not get contents");</div><div class='del'>-			return;</div><div class='del'>-		}</div><div class='del'>-		gtk_widget_ref (contents);</div><div class='del'>-		gtk_container_remove (GTK_CONTAINER (contents-&gt;parent), contents);</div><div class='del'>-		bonobo_window_set_contents (BONOBO_WINDOW (bonobo_win), contents);</div><div class='del'>-		gtk_widget_destroy (editor-&gt;app);</div><div class='del'>-		editor-&gt;app = bonobo_win;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Build the menu and toolbar */</div><div class='del'>-</div><div class='del'>-	container = bonobo_ui_container_new ();</div><div class='del'>-	bonobo_ui_container_set_win (container, BONOBO_WINDOW (editor-&gt;app));</div><div class='del'>-</div><div class='del'>-	editor-&gt;uic = bonobo_ui_component_new_default ();</div><div class='del'>-	if (!editor-&gt;uic) {</div><div class='del'>-		g_message ("e_contact_list_editor_init(): eeeeek, could not create the UI handler!");</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='del'>-	bonobo_ui_component_set_container (editor-&gt;uic,</div><div class='del'>-					   bonobo_object_corba_objref (</div><div class='del'>-								       BONOBO_OBJECT (container)));</div><div class='del'>-</div><div class='del'>-	create_ui (editor);</div><div class='del'>-</div><div class='del'>-	/* connect signals */</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(editor-&gt;add_button),</div><div class='del'>-			    "clicked", GTK_SIGNAL_FUNC(add_email_cb), editor);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(editor-&gt;email_entry),</div><div class='del'>-			    "activate", GTK_SIGNAL_FUNC(add_email_cb), editor);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(editor-&gt;remove_button),</div><div class='del'>-			    "clicked", GTK_SIGNAL_FUNC(remove_entry_cb), editor);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(editor-&gt;list_name_entry),</div><div class='del'>-			    "changed", GTK_SIGNAL_FUNC(list_name_changed_cb), editor);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(editor-&gt;visible_addrs_checkbutton),</div><div class='del'>-			    "toggled", GTK_SIGNAL_FUNC(visible_addrs_toggled_cb), editor);</div><div class='del'>-</div><div class='del'>-	e_table_drag_dest_set (e_table_scrolled_get_table (E_TABLE_SCROLLED (editor-&gt;table)),</div><div class='del'>-			       0, drag_types, num_drag_types, GDK_ACTION_LINK);</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(e_table_scrolled_get_table (E_TABLE_SCROLLED (editor-&gt;table))),</div><div class='del'>-			    "table_drag_motion", GTK_SIGNAL_FUNC(table_drag_motion_cb), editor);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(e_table_scrolled_get_table (E_TABLE_SCROLLED (editor-&gt;table))),</div><div class='del'>-			    "table_drag_drop", GTK_SIGNAL_FUNC(table_drag_drop_cb), editor);</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT(e_table_scrolled_get_table (E_TABLE_SCROLLED (editor-&gt;table))),</div><div class='del'>-			    "table_drag_data_received", GTK_SIGNAL_FUNC(table_drag_data_received_cb), editor);</div><div class='del'>-</div><div class='del'>-	command_state_changed (editor);</div><div class='del'>-</div><div class='del'>-	/* Connect to the deletion of the dialog */</div><div class='del'>-</div><div class='del'>-	gtk_signal_connect (GTK_OBJECT (editor-&gt;app), "delete_event",</div><div class='del'>-			    GTK_SIGNAL_FUNC (app_delete_event_cb), editor);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_list_editor_destroy (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	EContactListEditor *cle;</div><div class='del'>-	gboolean should_close;</div><div class='del'>-} EditorCloseStruct;</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-list_added_cb (EBook *book, EBookStatus status, const char *id, EditorCloseStruct *ecs)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *cle = ecs-&gt;cle;</div><div class='del'>-	gboolean should_close = ecs-&gt;should_close;</div><div class='del'>-</div><div class='del'>-	g_free (ecs);</div><div class='del'>-</div><div class='del'>-	e_card_set_id (cle-&gt;card, id);</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (cle), contact_list_editor_signals[LIST_ADDED],</div><div class='del'>-			 status, cle-&gt;card);</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		cle-&gt;is_new_list = FALSE;</div><div class='del'>-</div><div class='del'>-		if (should_close)</div><div class='del'>-			close_dialog (cle);</div><div class='del'>-		else</div><div class='del'>-			command_state_changed (cle);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-list_modified_cb (EBook *book, EBookStatus status, EditorCloseStruct *ecs)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *cle = ecs-&gt;cle;</div><div class='del'>-	gboolean should_close = ecs-&gt;should_close;</div><div class='del'>-</div><div class='del'>-	g_free (ecs);</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (cle), contact_list_editor_signals[LIST_MODIFIED],</div><div class='del'>-			 status, cle-&gt;card);</div><div class='del'>-</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>-		if (should_close)</div><div class='del'>-			close_dialog (cle);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-save_card (EContactListEditor *cle, gboolean should_close)</div><div class='del'>-{</div><div class='del'>-	extract_info (cle);</div><div class='del'>-</div><div class='del'>-	if (cle-&gt;book) {</div><div class='del'>-		EditorCloseStruct *ecs = g_new(EditorCloseStruct, 1);</div><div class='del'>-		</div><div class='del'>-		ecs-&gt;cle = cle;</div><div class='del'>-		ecs-&gt;should_close = should_close;</div><div class='del'>-</div><div class='del'>-		if (cle-&gt;is_new_list)</div><div class='del'>-			e_book_add_card (cle-&gt;book, cle-&gt;card, GTK_SIGNAL_FUNC(list_added_cb), ecs);</div><div class='del'>-		else</div><div class='del'>-			e_book_commit_card (cle-&gt;book, cle-&gt;card, GTK_SIGNAL_FUNC(list_modified_cb), ecs);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-file_close_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *cle = E_CONTACT_LIST_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	close_dialog (cle);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-file_save_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *cle = E_CONTACT_LIST_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	save_card (cle, FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-tb_save_and_close_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *cle = E_CONTACT_LIST_EDITOR (data);</div><div class='del'>-	save_card (cle, TRUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-list_deleted_cb (EBook *book, EBookStatus status, EContactListEditor *cle)</div><div class='del'>-{</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (cle), contact_list_editor_signals[LIST_DELETED],</div><div class='del'>-			 status, cle-&gt;card);</div><div class='del'>-</div><div class='del'>-	/* always close the dialog after we successfully delete a list */</div><div class='del'>-	if (status == E_BOOK_STATUS_SUCCESS)</div><div class='del'>-		close_dialog (cle);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-delete_cb (GtkWidget *widget, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *cle = E_CONTACT_LIST_EDITOR (data);</div><div class='del'>-	ECard *card = cle-&gt;card;</div><div class='del'>-</div><div class='del'>-	gtk_object_ref(GTK_OBJECT(card));</div><div class='del'>-</div><div class='del'>-	if (e_contact_editor_confirm_delete(GTK_WINDOW(cle-&gt;app))) {</div><div class='del'>-</div><div class='del'>-		extract_info (cle);</div><div class='del'>-		</div><div class='del'>-		if (!cle-&gt;is_new_list)</div><div class='del'>-			e_book_remove_card (cle-&gt;book, card, GTK_SIGNAL_FUNC(list_deleted_cb), cle);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_object_unref(GTK_OBJECT(card));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static</div><div class='del'>-BonoboUIVerb verbs [] = {</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactListEditorSave", file_save_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactListEditorSaveClose", tb_save_and_close_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactListEditorDelete", delete_cb),</div><div class='del'>-#if 0</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSaveAs", file_save_as_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSendAs", file_send_as_cb),</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactEditorSendTo", file_send_to_cb),</div><div class='del'>-#endif</div><div class='del'>-	BONOBO_UI_UNSAFE_VERB ("ContactListEditorClose", file_close_cb),</div><div class='del'>-	BONOBO_UI_VERB_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static EPixmap pixmaps[] = {</div><div class='del'>-	E_PIXMAP ("/commands/ContactListEditorSave", "save-16.png"),</div><div class='del'>-	E_PIXMAP ("/commands/ContactListEditorSaveAs", "save-as-16.png"),</div><div class='del'>-</div><div class='del'>-	E_PIXMAP_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-create_ui (EContactListEditor *ce)</div><div class='del'>-{</div><div class='del'>-	bonobo_ui_component_add_verb_list_with_data (</div><div class='del'>-		ce-&gt;uic, verbs, ce);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_util_set_ui (ce-&gt;uic, EVOLUTION_DATADIR,</div><div class='del'>-			       "evolution-contact-list-editor.xml",</div><div class='del'>-			       "evolution-contact-list-editor");</div><div class='del'>-</div><div class='del'>-	e_pixmaps_update (ce-&gt;uic, pixmaps);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EContactListEditor *</div><div class='del'>-e_contact_list_editor_new (EBook *book,</div><div class='del'>-			   ECard *list_card,</div><div class='del'>-			   gboolean is_new_list,</div><div class='del'>-			   gboolean editable)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_LIST_EDITOR (gtk_type_new (E_CONTACT_LIST_EDITOR_TYPE));</div><div class='del'>-</div><div class='del'>-	gtk_object_set (GTK_OBJECT (ce),</div><div class='del'>-			"book", book,</div><div class='del'>-			"card", list_card,</div><div class='del'>-			"is_new_list", is_new_list,</div><div class='del'>-			"editable", editable,</div><div class='del'>-			NULL);</div><div class='del'>-</div><div class='del'>-	return ce;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_list_editor_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *editor;</div><div class='del'>-</div><div class='del'>-	editor = E_CONTACT_LIST_EDITOR (o);</div><div class='del'>-	</div><div class='del'>-	switch (arg_id){</div><div class='del'>-	case ARG_BOOK:</div><div class='del'>-		if (editor-&gt;book)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(editor-&gt;book));</div><div class='del'>-		editor-&gt;book = E_BOOK(GTK_VALUE_OBJECT (*arg));</div><div class='del'>-		gtk_object_ref (GTK_OBJECT (editor-&gt;book));</div><div class='del'>-		/* XXX more here about editable/etc. */</div><div class='del'>-		break;</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		if (editor-&gt;card)</div><div class='del'>-			gtk_object_unref(GTK_OBJECT(editor-&gt;card));</div><div class='del'>-		editor-&gt;card = e_card_duplicate(E_CARD(GTK_VALUE_OBJECT (*arg)));</div><div class='del'>-		fill_in_info(editor);</div><div class='del'>-		editor-&gt;changed = FALSE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_IS_NEW_LIST: {</div><div class='del'>-		gboolean new_value = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE;</div><div class='del'>-		gboolean changed = (editor-&gt;is_new_list != new_value);</div><div class='del'>-</div><div class='del'>-		editor-&gt;is_new_list = new_value;</div><div class='del'>-</div><div class='del'>-		if (changed)</div><div class='del'>-			command_state_changed (editor);</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	case ARG_EDITABLE: {</div><div class='del'>-		gboolean new_value = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE;</div><div class='del'>-		gboolean changed = (editor-&gt;editable != new_value);</div><div class='del'>-</div><div class='del'>-		editor-&gt;editable = new_value;</div><div class='del'>-</div><div class='del'>-		if (changed) {</div><div class='del'>-			set_editable (editor);</div><div class='del'>-			command_state_changed (editor);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_list_editor_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *editor;</div><div class='del'>-</div><div class='del'>-	editor = E_CONTACT_LIST_EDITOR (object);</div><div class='del'>-</div><div class='del'>-	switch (arg_id) {</div><div class='del'>-	case ARG_BOOK:</div><div class='del'>-		GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(editor-&gt;book);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_CARD:</div><div class='del'>-		extract_info(editor);</div><div class='del'>-		GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(editor-&gt;card);</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_IS_NEW_LIST:</div><div class='del'>-		GTK_VALUE_BOOL (*arg) = editor-&gt;is_new_list ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-</div><div class='del'>-	case ARG_EDITABLE:</div><div class='del'>-		GTK_VALUE_BOOL (*arg) = editor-&gt;editable ? TRUE : FALSE;</div><div class='del'>-		break;</div><div class='del'>-	default:</div><div class='del'>-		arg-&gt;type = GTK_TYPE_INVALID;</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_editor_show (EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	gtk_widget_show (editor-&gt;app);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_editor_raise (EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	gdk_window_raise (GTK_WIDGET (editor-&gt;app)-&gt;window);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define SPEC "&lt;ETableSpecification no-headers=\"true\" cursor-mode=\"line\" selection-mode=\"single\"&gt; \</div><div class='del'>- &lt;ETableColumn model_col= \"0\" _title=\"Contact\" expansion=\"1.0\" minimum_width=\"20\" resizable=\"true\" cell=\"string\" compare=\"string\" /&gt; \</div><div class='del'>-	&lt;ETableState&gt;                   			       \</div><div class='del'>-		&lt;column source=\"0\"/&gt;     			       \</div><div class='del'>-	        &lt;grouping&gt; &lt;/grouping&gt;				       \</div><div class='del'>-	&lt;/ETableState&gt;                  			       \</div><div class='del'>-&lt;/ETableSpecification&gt;"</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_contact_list_editor_create_table(gchar *name,</div><div class='del'>-				   gchar *string1, gchar *string2,</div><div class='del'>-				   gint int1, gint int2);</div><div class='del'>-</div><div class='del'>-GtkWidget *</div><div class='del'>-e_contact_list_editor_create_table(gchar *name,</div><div class='del'>-				   gchar *string1, gchar *string2,</div><div class='del'>-				   gint int1, gint int2)</div><div class='del'>-{</div><div class='del'>-	</div><div class='del'>-	ETableModel *model;</div><div class='del'>-	GtkWidget *table;</div><div class='del'>-</div><div class='del'>-	model = e_contact_list_model_new ();</div><div class='del'>-</div><div class='del'>-	table = e_table_scrolled_new (model, NULL, SPEC, NULL);</div><div class='del'>-</div><div class='del'>-	gtk_object_set_data(GTK_OBJECT(table), "model", model);</div><div class='del'>-</div><div class='del'>-	return table;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-add_email_cb (GtkWidget *w, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkAdjustment *adj = e_scroll_frame_get_vadjustment (E_SCROLL_FRAME (editor-&gt;table));</div><div class='del'>-	char *text = gtk_entry_get_text (GTK_ENTRY(editor-&gt;email_entry));</div><div class='del'>-</div><div class='del'>-	if (text &amp;&amp; *text) {</div><div class='del'>-		e_contact_list_model_add_email (E_CONTACT_LIST_MODEL(editor-&gt;model), text);</div><div class='del'>-</div><div class='del'>-		/* Skip to the end of the list */</div><div class='del'>-		if (adj-&gt;upper - adj-&gt;lower &gt; adj-&gt;page_size)</div><div class='del'>-			gtk_adjustment_set_value (adj, adj-&gt;upper);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gtk_entry_set_text (GTK_ENTRY(editor-&gt;email_entry), "");</div><div class='del'>-</div><div class='del'>-	if (!editor-&gt;changed) {</div><div class='del'>-		editor-&gt;changed = TRUE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_row (int model_row, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	e_contact_list_model_remove_row (E_CONTACT_LIST_MODEL (editor-&gt;model), model_row);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-remove_entry_cb (GtkWidget *w, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	e_table_selected_row_foreach (e_table_scrolled_get_table(E_TABLE_SCROLLED(editor-&gt;table)),</div><div class='del'>-				      (EForeachFunc)remove_row, editor);</div><div class='del'>-	if (!editor-&gt;changed) {</div><div class='del'>-		editor-&gt;changed = TRUE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-list_name_changed_cb (GtkWidget *w, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	if (!editor-&gt;changed) {</div><div class='del'>-		editor-&gt;changed = TRUE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-visible_addrs_toggled_cb (GtkWidget *w, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	if (!editor-&gt;changed) {</div><div class='del'>-		editor-&gt;changed = TRUE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-set_editable (EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	gtk_widget_set_sensitive (editor-&gt;email_entry, editor-&gt;editable);</div><div class='del'>-	gtk_widget_set_sensitive (editor-&gt;list_name_entry, editor-&gt;editable);</div><div class='del'>-	gtk_widget_set_sensitive (editor-&gt;add_button, editor-&gt;editable);</div><div class='del'>-	gtk_widget_set_sensitive (editor-&gt;remove_button, editor-&gt;editable);</div><div class='del'>-	gtk_widget_set_sensitive (editor-&gt;table, editor-&gt;editable);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Closes the dialog box and emits the appropriate signals */</div><div class='del'>-static void</div><div class='del'>-close_dialog (EContactListEditor *cle)</div><div class='del'>-{</div><div class='del'>-	g_assert (cle-&gt;app != NULL);</div><div class='del'>-</div><div class='del'>-	gtk_widget_destroy (cle-&gt;app);</div><div class='del'>-	cle-&gt;app = NULL;</div><div class='del'>-</div><div class='del'>-	gtk_signal_emit (GTK_OBJECT (cle), contact_list_editor_signals[EDITOR_CLOSED]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* Callback used when the editor is destroyed */</div><div class='del'>-static gint</div><div class='del'>-app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class='del'>-{</div><div class='del'>-	EContactListEditor *ce;</div><div class='del'>-</div><div class='del'>-	ce = E_CONTACT_LIST_EDITOR (data);</div><div class='del'>-</div><div class='del'>-	close_dialog (ce);</div><div class='del'>-	return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-table_drag_motion_cb (ETable *table, int row, int col,</div><div class='del'>-		      GdkDragContext *context,</div><div class='del'>-		      gint x, gint y, guint time, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GList *p;</div><div class='del'>-</div><div class='del'>-	for (p = context-&gt;targets; p != NULL; p = p-&gt;next) {</div><div class='del'>-		char *possible_type;</div><div class='del'>-</div><div class='del'>-		possible_type = gdk_atom_name ((GdkAtom) p-&gt;data);</div><div class='del'>-		if (!strcmp (possible_type, VCARD_TYPE)) {</div><div class='del'>-			g_free (possible_type);</div><div class='del'>-			gdk_drag_status (context, GDK_ACTION_LINK, time);</div><div class='del'>-			return TRUE;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		g_free (possible_type);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-table_drag_drop_cb (ETable *table, int row, int col,</div><div class='del'>-		    GdkDragContext *context,</div><div class='del'>-		    gint x, gint y, guint time, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	if (context-&gt;targets != NULL) {</div><div class='del'>-		gtk_drag_get_data (GTK_WIDGET (table), context,</div><div class='del'>-				   GPOINTER_TO_INT (context-&gt;targets-&gt;data),</div><div class='del'>-				   time);</div><div class='del'>-		return TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-table_drag_data_received_cb (ETable *table, int row, int col,</div><div class='del'>-			     GdkDragContext *context,</div><div class='del'>-			     gint x, gint y,</div><div class='del'>-			     GtkSelectionData *selection_data,</div><div class='del'>-			     guint info, guint time, EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	GtkAdjustment *adj = e_scroll_frame_get_vadjustment (E_SCROLL_FRAME (editor-&gt;table));</div><div class='del'>-	char *target_type;</div><div class='del'>-	gboolean changed = FALSE;</div><div class='del'>-</div><div class='del'>-	target_type = gdk_atom_name (selection_data-&gt;target);</div><div class='del'>-</div><div class='del'>-	if (!strcmp (target_type, VCARD_TYPE)) {</div><div class='del'>-</div><div class='del'>-		GList *card_list = e_card_load_cards_from_string_with_default_charset (selection_data-&gt;data, "ISO-8859-1");</div><div class='del'>-		GList *c;</div><div class='del'>-</div><div class='del'>-		for (c = card_list; c; c = c-&gt;next) {</div><div class='del'>-			ECard *ecard = c-&gt;data;</div><div class='del'>-</div><div class='del'>-			if (!e_card_evolution_list (ecard)) {</div><div class='del'>-				ECardSimple *simple = e_card_simple_new (ecard);</div><div class='del'>-</div><div class='del'>-				e_contact_list_model_add_card (E_CONTACT_LIST_MODEL (editor-&gt;model),</div><div class='del'>-							       simple);</div><div class='del'>-</div><div class='del'>-				gtk_object_unref (GTK_OBJECT (simple));</div><div class='del'>-</div><div class='del'>-				changed = TRUE;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-		g_list_foreach (card_list, (GFunc)gtk_object_unref, NULL);</div><div class='del'>-		g_list_free (card_list);</div><div class='del'>-</div><div class='del'>-		/* Skip to the end of the list */</div><div class='del'>-		if (adj-&gt;upper - adj-&gt;lower &gt; adj-&gt;page_size)</div><div class='del'>-			gtk_adjustment_set_value (adj, adj-&gt;upper);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (changed &amp;&amp; !editor-&gt;changed) {</div><div class='del'>-		editor-&gt;changed = TRUE;</div><div class='del'>-		command_state_changed (editor);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-command_state_changed (EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	bonobo_ui_component_set_prop (editor-&gt;uic,</div><div class='del'>-				      "/commands/ContactListEditorSaveClose",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      editor-&gt;changed &amp;&amp; editor-&gt;editable ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_set_prop (editor-&gt;uic,</div><div class='del'>-				      "/commands/ContactListEditorSave",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      editor-&gt;changed &amp;&amp; editor-&gt;editable ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>-	bonobo_ui_component_set_prop (editor-&gt;uic,</div><div class='del'>-				      "/commands/ContactListEditorDelete",</div><div class='del'>-				      "sensitive",</div><div class='del'>-				      editor-&gt;editable &amp;&amp; !editor-&gt;is_new_list ? "1" : "0", NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-extract_info(EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	ECard *card = editor-&gt;card;</div><div class='del'>-	if (card) {</div><div class='del'>-		int i;</div><div class='del'>-		EList *email_list;</div><div class='del'>-		EIterator *email_iter;</div><div class='del'>-		char *string = e_utf8_gtk_editable_get_chars(GTK_EDITABLE (editor-&gt;list_name_entry), 0, -1);</div><div class='del'>-</div><div class='del'>-		if (string &amp;&amp; *string)</div><div class='del'>-			gtk_object_set(GTK_OBJECT(card),</div><div class='del'>-				       "file_as", string,</div><div class='del'>-				       "full_name", string,</div><div class='del'>-				       NULL);</div><div class='del'>-</div><div class='del'>-		g_free (string);</div><div class='del'>-</div><div class='del'>-		</div><div class='del'>-		gtk_object_set (GTK_OBJECT(card),</div><div class='del'>-				"list", GINT_TO_POINTER (TRUE),</div><div class='del'>-				"list_show_addresses",</div><div class='del'>-				GINT_TO_POINTER (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor-&gt;visible_addrs_checkbutton))),</div><div class='del'>-				NULL);</div><div class='del'>-</div><div class='del'>-		gtk_object_get (GTK_OBJECT(card),</div><div class='del'>-				"email", &amp;email_list,</div><div class='del'>-				NULL);</div><div class='del'>-</div><div class='del'>-		/* clear the email list */</div><div class='del'>-		email_iter = e_list_get_iterator (email_list);</div><div class='del'>-		e_iterator_last (email_iter);</div><div class='del'>-		while (e_iterator_is_valid (E_ITERATOR (email_iter))) {</div><div class='del'>-			e_iterator_delete (E_ITERATOR (email_iter));</div><div class='del'>-		}</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (email_iter));</div><div class='del'>-</div><div class='del'>-		/* then refill it from the contact list model */</div><div class='del'>-		for (i = 0; i &lt; e_table_model_row_count (editor-&gt;model); i ++) {</div><div class='del'>-			const EDestination *dest = e_contact_list_model_get_destination (E_CONTACT_LIST_MODEL (editor-&gt;model), i);</div><div class='del'>-			gchar *dest_xml = e_destination_export (dest);</div><div class='del'>-			if (dest_xml) {</div><div class='del'>-				e_list_append (email_list, dest_xml);</div><div class='del'>-			}</div><div class='del'>-			g_free (dest_xml);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fill_in_info(EContactListEditor *editor)</div><div class='del'>-{</div><div class='del'>-	if (editor-&gt;card) {</div><div class='del'>-		char *file_as;</div><div class='del'>-		gboolean show_addresses = FALSE;</div><div class='del'>-		gboolean is_evolution_list = FALSE;</div><div class='del'>-		EList *email_list;</div><div class='del'>-		EIterator *email_iter;</div><div class='del'>-</div><div class='del'>-		gtk_object_get (GTK_OBJECT (editor-&gt;card),</div><div class='del'>-				"file_as", &amp;file_as,</div><div class='del'>-				"email", &amp;email_list,</div><div class='del'>-				"list", &amp;is_evolution_list,</div><div class='del'>-				"list_show_addresses", &amp;show_addresses,</div><div class='del'>-				NULL);</div><div class='del'>-</div><div class='del'>-		gtk_editable_delete_text (GTK_EDITABLE (editor-&gt;list_name_entry), 0, -1);</div><div class='del'>-		if (file_as) {</div><div class='del'>-			int position = 0;</div><div class='del'>-			gchar *u = e_utf8_to_gtk_string (editor-&gt;list_name_entry, file_as);</div><div class='del'>-			gtk_editable_insert_text (GTK_EDITABLE (editor-&gt;list_name_entry), u, strlen (u), &amp;position);</div><div class='del'>-			g_free (u);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(editor-&gt;visible_addrs_checkbutton), !show_addresses);</div><div class='del'>-</div><div class='del'>-		e_contact_list_model_remove_all (E_CONTACT_LIST_MODEL (editor-&gt;model));</div><div class='del'>-</div><div class='del'>-		email_iter = e_list_get_iterator (email_list);</div><div class='del'>-		</div><div class='del'>-		while (e_iterator_is_valid (email_iter)) {</div><div class='del'>-			const char *dest_xml = e_iterator_get (email_iter);</div><div class='del'>-			EDestination *dest;</div><div class='del'>-</div><div class='del'>-			g_message ("incoming xml: [%s]", dest_xml);</div><div class='del'>-			dest = e_destination_import (dest_xml);</div><div class='del'>-</div><div class='del'>-			if (dest != NULL) {</div><div class='del'>-				e_contact_list_model_add_destination (E_CONTACT_LIST_MODEL (editor-&gt;model), dest);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			e_iterator_next (email_iter);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.h b/addressbook/gui/contact-list-editor/e-contact-list-editor.h<br/>deleted file mode 100644<br/>index 6c67fc6468..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-list-editor/e-contact-list-editor.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-list-editor/e-contact-list-editor.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,108 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-/* e-contact-list-editor.h</div><div class='del'>- * Copyright (C) 2001  Ximian, Inc.</div><div class='del'>- * Author: Chris Toshok &lt;toshok@ximian.com&gt;</div><div class='del'>- *</div><div class='del'>- * This library is free software; you can redistribute it and/or</div><div class='del'>- * modify it under the terms of the GNU General Public License as</div><div class='del'>- * published by the Free Software Foundation; either version 2 of the</div><div class='del'>- * License, or (at your option) any later version.</div><div class='del'>- *</div><div class='del'>- * This program is distributed in the hope that it will be useful,</div><div class='del'>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>- * General Public License for more details.</div><div class='del'>- *</div><div class='del'>- * You should have received a copy of the GNU General Public</div><div class='del'>- * License along with this library; if not, write to the</div><div class='del'>- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>- * Boston, MA 02111-1307, USA.</div><div class='del'>- */</div><div class='del'>-#ifndef __E_CONTACT_LIST_EDITOR_H__</div><div class='del'>-#define __E_CONTACT_LIST_EDITOR_H__</div><div class='del'>-</div><div class='del'>-#include &lt;libgnomeui/gnome-app.h&gt;</div><div class='del'>-#include &lt;libgnomeui/gnome-app-helper.h&gt;</div><div class='del'>-#include &lt;bonobo/bonobo-ui-component.h&gt;</div><div class='del'>-#include &lt;glade/glade.h&gt;</div><div class='del'>-#include &lt;gal/e-table/e-table-model.h&gt;</div><div class='del'>-</div><div class='del'>-#include "addressbook/backend/ebook/e-book.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card-simple.h"</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#pragma }</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-#define E_CONTACT_LIST_EDITOR_TYPE			(e_contact_list_editor_get_type ())</div><div class='del'>-#define E_CONTACT_LIST_EDITOR(obj)			(GTK_CHECK_CAST ((obj), E_CONTACT_LIST_EDITOR_TYPE, EContactListEditor))</div><div class='del'>-#define E_CONTACT_LIST_EDITOR_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_CONTACT_LIST_EDITOR_TYPE, EContactListEditorClass))</div><div class='del'>-#define E_IS_CONTACT_LIST_EDITOR(obj)		(GTK_CHECK_TYPE ((obj), E_CONTACT_LIST_EDITOR_TYPE))</div><div class='del'>-#define E_IS_CONTACT_LIST_EDITOR_CLASS(klass)	(GTK_CHECK_CLASS_TYPE ((obj), E_CONTACT_LIST_EDITOR_TYPE))</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-typedef struct _EContactListEditor       EContactListEditor;</div><div class='del'>-typedef struct _EContactListEditorClass  EContactListEditorClass;</div><div class='del'>-</div><div class='del'>-struct _EContactListEditor</div><div class='del'>-{</div><div class='del'>-	GtkObject object;</div><div class='del'>-</div><div class='del'>-	/* item specific fields */</div><div class='del'>-	EBook *book;</div><div class='del'>-	ECard *card;</div><div class='del'>-</div><div class='del'>-	/* UI handler */</div><div class='del'>-	BonoboUIComponent *uic;</div><div class='del'>-</div><div class='del'>-	GladeXML *gui;</div><div class='del'>-	GtkWidget *app;</div><div class='del'>-</div><div class='del'>-	GtkWidget *table;</div><div class='del'>-	ETableModel *model;</div><div class='del'>-	GtkWidget *email_entry;</div><div class='del'>-	GtkWidget *list_name_entry;</div><div class='del'>-	GtkWidget *add_button;</div><div class='del'>-	GtkWidget *remove_button;</div><div class='del'>-	GtkWidget *visible_addrs_checkbutton;</div><div class='del'>-</div><div class='del'>-	/* Whether we are editing a new card or an existing one */</div><div class='del'>-	guint is_new_list : 1;</div><div class='del'>-</div><div class='del'>-	/* Whether the card has been changed since bringing up the contact editor */</div><div class='del'>-	guint changed : 1;</div><div class='del'>-</div><div class='del'>-	/* Whether the contact editor will accept modifications */</div><div class='del'>-	guint editable : 1;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct _EContactListEditorClass</div><div class='del'>-{</div><div class='del'>-	GtkObjectClass parent_class;</div><div class='del'>-</div><div class='del'>-	/* Notification signals */</div><div class='del'>-</div><div class='del'>-	void (* list_added)    (EContactListEditor *cle, EBookStatus status, ECard *card);</div><div class='del'>-	void (* list_modified) (EContactListEditor *cle, EBookStatus status, ECard *card);</div><div class='del'>-	void (* list_deleted)  (EContactListEditor *cle, EBookStatus status, ECard *card);</div><div class='del'>-	void (* editor_closed) (EContactListEditor *cle);</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-EContactListEditor *e_contact_list_editor_new             (EBook *book,</div><div class='del'>-							   ECard *list_card,</div><div class='del'>-							   gboolean is_new_list,</div><div class='del'>-							   gboolean editable);</div><div class='del'>-GtkType             e_contact_list_editor_get_type        (void);</div><div class='del'>-void                e_contact_list_editor_show            (EContactListEditor *editor);</div><div class='del'>-void                e_contact_list_editor_raise           (EContactListEditor *editor);</div><div class='del'>-</div><div class='del'>-gboolean            e_contact_list_editor_confirm_delete  (GtkWindow      *parent);</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif /* __cplusplus */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#endif /* __E_CONTACT_LIST_EDITOR_H__ */</div><div class='head'>diff --git a/addressbook/gui/contact-list-editor/e-contact-list-model.c b/addressbook/gui/contact-list-editor/e-contact-list-model.c<br/>deleted file mode 100644<br/>index c4321c2820..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-list-editor/e-contact-list-model.c?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-list-editor/e-contact-list-model.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,253 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#include "e-contact-list-model.h"</div><div class='del'>-</div><div class='del'>-#define PARENT_TYPE e_table_model_get_type()</div><div class='del'>-static ETableModelClass *parent_class;</div><div class='del'>-</div><div class='del'>-#define COLS 1</div><div class='del'>-</div><div class='del'>-/* This function returns the number of columns in our ETableModel. */</div><div class='del'>-static int</div><div class='del'>-contact_list_col_count (ETableModel *etc)</div><div class='del'>-{</div><div class='del'>-	return COLS;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the number of rows in our ETableModel. */</div><div class='del'>-static int</div><div class='del'>-contact_list_row_count (ETableModel *etc)</div><div class='del'>-{</div><div class='del'>-	EContactListModel *model = E_CONTACT_LIST_MODEL (etc);</div><div class='del'>-	return model-&gt;data_count;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns the value at a particular point in our ETableModel. */</div><div class='del'>-static void *</div><div class='del'>-contact_list_value_at (ETableModel *etc, int col, int row)</div><div class='del'>-{</div><div class='del'>-	EContactListModel *model = E_CONTACT_LIST_MODEL (etc);</div><div class='del'>-</div><div class='del'>-	return (void *) e_destination_get_address (model-&gt;data[row]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function sets the value at a particular point in our ETableModel. */</div><div class='del'>-static void</div><div class='del'>-contact_list_set_value_at (ETableModel *etc, int col, int row, const void *val)</div><div class='del'>-{</div><div class='del'>-	/* nothing */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function returns whether a particular cell is editable. */</div><div class='del'>-static gboolean</div><div class='del'>-contact_list_is_cell_editable (ETableModel *etc, int col, int row)</div><div class='del'>-{</div><div class='del'>-	return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function duplicates the value passed to it. */</div><div class='del'>-static void *</div><div class='del'>-contact_list_duplicate_value (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return g_strdup(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* This function frees the value passed to it. */</div><div class='del'>-static void</div><div class='del'>-contact_list_free_value (ETableModel *etc, int col, void *value)</div><div class='del'>-{</div><div class='del'>-	g_free(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-contact_list_initialize_value (ETableModel *etc, int col)</div><div class='del'>-{</div><div class='del'>-	return g_strdup("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static gboolean</div><div class='del'>-contact_list_value_is_empty (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return !(value &amp;&amp; *(char *)value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-contact_list_value_to_string (ETableModel *etc, int col, const void *value)</div><div class='del'>-{</div><div class='del'>-	return g_strdup(value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-contact_list_model_destroy (GtkObject *o)</div><div class='del'>-{</div><div class='del'>-	EContactListModel *model = E_CONTACT_LIST_MODEL (o);</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; model-&gt;data_count; i ++) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (model-&gt;data[i]));</div><div class='del'>-	}</div><div class='del'>-	g_free (model-&gt;data);</div><div class='del'>-</div><div class='del'>-	model-&gt;data_count = 0;</div><div class='del'>-	model-&gt;data_alloc = 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_list_model_class_init (GtkObjectClass *object_class)</div><div class='del'>-{</div><div class='del'>-	ETableModelClass *model_class = (ETableModelClass *) object_class;</div><div class='del'>-</div><div class='del'>-	parent_class = gtk_type_class (PARENT_TYPE);</div><div class='del'>-</div><div class='del'>-	object_class-&gt;destroy = contact_list_model_destroy;</div><div class='del'>-</div><div class='del'>-	model_class-&gt;column_count = contact_list_col_count;</div><div class='del'>-	model_class-&gt;row_count = contact_list_row_count;</div><div class='del'>-	model_class-&gt;value_at = contact_list_value_at;</div><div class='del'>-	model_class-&gt;set_value_at = contact_list_set_value_at;</div><div class='del'>-	model_class-&gt;is_cell_editable = contact_list_is_cell_editable;</div><div class='del'>-	model_class-&gt;duplicate_value = contact_list_duplicate_value;</div><div class='del'>-	model_class-&gt;free_value = contact_list_free_value;</div><div class='del'>-	model_class-&gt;initialize_value = contact_list_initialize_value;</div><div class='del'>-	model_class-&gt;value_is_empty = contact_list_value_is_empty;</div><div class='del'>-	model_class-&gt;value_to_string = contact_list_value_to_string;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-e_contact_list_model_init (GtkObject *object)</div><div class='del'>-{</div><div class='del'>-	EContactListModel *model = E_CONTACT_LIST_MODEL(object);</div><div class='del'>-</div><div class='del'>-	model-&gt;data_alloc = 10;</div><div class='del'>-	model-&gt;data_count = 0;</div><div class='del'>-	model-&gt;data = g_new (EDestination*, model-&gt;data_alloc);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-GtkType</div><div class='del'>-e_contact_list_model_get_type (void)</div><div class='del'>-{</div><div class='del'>-	static GtkType type = 0;</div><div class='del'>-</div><div class='del'>-	if (!type){</div><div class='del'>-		GtkTypeInfo info = {</div><div class='del'>-			"EContactListModel",</div><div class='del'>-			sizeof (EContactListModel),</div><div class='del'>-			sizeof (EContactListModelClass),</div><div class='del'>-			(GtkClassInitFunc) e_contact_list_model_class_init,</div><div class='del'>-			(GtkObjectInitFunc) e_contact_list_model_init,</div><div class='del'>-			NULL, /* reserved 1 */</div><div class='del'>-			NULL, /* reserved 2 */</div><div class='del'>-			(GtkClassInitFunc) NULL</div><div class='del'>-		};</div><div class='del'>-</div><div class='del'>-		type = gtk_type_unique (PARENT_TYPE, &amp;info);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return type;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_model_construct (EContactListModel *model)</div><div class='del'>-{</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ETableModel *</div><div class='del'>-e_contact_list_model_new ()</div><div class='del'>-{</div><div class='del'>-	EContactListModel *model;</div><div class='del'>-</div><div class='del'>-	model = gtk_type_new (e_contact_list_model_get_type ());</div><div class='del'>-</div><div class='del'>-	e_contact_list_model_construct (model);</div><div class='del'>-</div><div class='del'>-	return E_TABLE_MODEL(model);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_model_add_destination (EContactListModel *model, EDestination *dest)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model));</div><div class='del'>-	g_return_if_fail (E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>-	if (model-&gt;data_count + 1 &gt;= model-&gt;data_alloc) {</div><div class='del'>-		model-&gt;data_alloc *= 2;</div><div class='del'>-		model-&gt;data = g_renew (EDestination*, model-&gt;data, model-&gt;data_alloc);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	model-&gt;data[model-&gt;data_count ++] = dest;</div><div class='del'>-	gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-	gtk_object_sink (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>-	e_table_model_changed (E_TABLE_MODEL (model));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_model_add_email (EContactListModel *model,</div><div class='del'>-				const char *email)</div><div class='del'>-{</div><div class='del'>-	EDestination *new_dest;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model));</div><div class='del'>-	g_return_if_fail (email != NULL);</div><div class='del'>-</div><div class='del'>-	new_dest = e_destination_new ();</div><div class='del'>-	e_destination_set_email (new_dest, email);</div><div class='del'>-</div><div class='del'>-	e_contact_list_model_add_destination (model, new_dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_model_add_card (EContactListModel *model,</div><div class='del'>-			       ECardSimple *simple)</div><div class='del'>-{</div><div class='del'>-	EDestination *new_dest;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model));</div><div class='del'>-	g_return_if_fail (E_IS_CARD_SIMPLE (simple));</div><div class='del'>-</div><div class='del'>-	new_dest = e_destination_new ();</div><div class='del'>-	e_destination_set_card (new_dest, simple-&gt;card, 0); /* Hard-wired for default e-mail */</div><div class='del'>-</div><div class='del'>-	e_contact_list_model_add_destination (model, new_dest);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_model_remove_row (EContactListModel *model, int row)</div><div class='del'>-{</div><div class='del'>-	g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model));</div><div class='del'>-	g_return_if_fail (0 &lt;= row &amp;&amp; row &lt; model-&gt;data_count);</div><div class='del'>-</div><div class='del'>-	gtk_object_unref (GTK_OBJECT (model-&gt;data[row]));</div><div class='del'>-	memmove (model-&gt;data + row, model-&gt;data + row + 1, sizeof (EDestination*) * (model-&gt;data_count - row - 1));</div><div class='del'>-	model-&gt;data_count --;</div><div class='del'>-</div><div class='del'>-	e_table_model_changed (E_TABLE_MODEL (model));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-e_contact_list_model_remove_all (EContactListModel *model)</div><div class='del'>-{</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model));</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; model-&gt;data_count; i ++) {</div><div class='del'>-		gtk_object_unref (GTK_OBJECT (model-&gt;data[i]));</div><div class='del'>-		model-&gt;data[i] = NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	model-&gt;data_count = 0;</div><div class='del'>-</div><div class='del'>-	e_table_model_changed (E_TABLE_MODEL (model));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-const EDestination *</div><div class='del'>-e_contact_list_model_get_destination (EContactListModel *model, int row)</div><div class='del'>-{</div><div class='del'>-	g_return_val_if_fail (E_IS_CONTACT_LIST_MODEL (model), NULL);</div><div class='del'>-	g_return_val_if_fail (0 &lt;= row &amp;&amp; row &lt; model-&gt;data_count, NULL);</div><div class='del'>-</div><div class='del'>-	return model-&gt;data[row];</div><div class='del'>-}</div><div class='head'>diff --git a/addressbook/gui/contact-list-editor/e-contact-list-model.h b/addressbook/gui/contact-list-editor/e-contact-list-model.h<br/>deleted file mode 100644<br/>index 1c2d6ac8d0..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/contact-list-editor/e-contact-list-model.h?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-list-editor/e-contact-list-model.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,47 +0,0 @@</div><div class='del'>-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */</div><div class='del'>-#ifndef _E_CONTACT_LIST_MODEL_H_</div><div class='del'>-#define _E_CONTACT_LIST_MODEL_H_</div><div class='del'>-</div><div class='del'>-#include &lt;gal/e-table/e-table-model.h&gt;</div><div class='del'>-#include "addressbook/backend/ebook/e-book.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-book-view.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-card-simple.h"</div><div class='del'>-#include "addressbook/backend/ebook/e-destination.h"</div><div class='del'>-</div><div class='del'>-#define E_CONTACT_LIST_MODEL_TYPE        (e_contact_list_model_get_type ())</div><div class='del'>-#define E_CONTACT_LIST_MODEL(o)          (GTK_CHECK_CAST ((o), E_CONTACT_LIST_MODEL_TYPE, EContactListModel))</div><div class='del'>-#define E_CONTACT_LIST_MODEL_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_CONTACT_LIST_MODEL_TYPE, EContactListModelClass))</div><div class='del'>-#define E_IS_CONTACT_LIST_MODEL(o)       (GTK_CHECK_TYPE ((o), E_CONTACT_LIST_MODEL_TYPE))</div><div class='del'>-#define E_IS_CONTACT_LIST_MODEL_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_CONTACT_LIST_MODEL_TYPE))</div><div class='del'>-</div><div class='del'>-typedef struct _EContactListModel EContactListModel;</div><div class='del'>-typedef struct _EContactListModelClass EContactListModelClass;</div><div class='del'>-</div><div class='del'>-struct _EContactListModel {</div><div class='del'>-	ETableModel parent;</div><div class='del'>-</div><div class='del'>-	EDestination **data;</div><div class='del'>-	int data_count;</div><div class='del'>-	int data_alloc;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-struct _EContactListModelClass {</div><div class='del'>-	ETableModelClass parent_class;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-GtkType      e_contact_list_model_get_type (void);</div><div class='del'>-void         e_contact_list_model_construct (EContactListModel *model);</div><div class='del'>-ETableModel *e_contact_list_model_new (void);</div><div class='del'>-</div><div class='del'>-void         e_contact_list_model_add_destination (EContactListModel *model, EDestination *dest);</div><div class='del'>-void         e_contact_list_model_add_email       (EContactListModel *model, const char *email);</div><div class='del'>-void         e_contact_list_model_add_card        (EContactListModel *model, ECardSimple *simple);</div><div class='del'>-</div><div class='del'>-void	     e_contact_list_model_remove_row (EContactListModel *model, int row);</div><div class='del'>-void         e_contact_list_model_remove_all (EContactListModel *model);</div><div class='del'>-</div><div class='del'>-const EDestination *e_contact_list_model_get_destination (EContactListModel *model, int row);</div><div class='del'>-</div><div class='del'>-#endif /* _E_CONTACT_LIST_MODEL_H_ */</div><div class='head'>diff --git a/addressbook/gui/merging/.cvsignore b/addressbook/gui/merging/.cvsignore<br/>deleted file mode 100644<br/>index 09980ae6ba..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/merging/.cvsignore?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/merging/.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-.deps</div><div class='del'>-.libs</div><div class='del'>-Makefile</div><div class='del'>-Makefile.in</div><div class='del'>-*.lo</div><div class='del'>-*.la</div><div class='head'>diff --git a/addressbook/gui/merging/Makefile.am b/addressbook/gui/merging/Makefile.am<br/>deleted file mode 100644<br/>index 5a00726f26..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/merging/Makefile.am?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/merging/Makefile.am</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,23 +0,0 @@</div><div class='del'>-INCLUDES =						\</div><div class='del'>-	-DG_LOG_DOMAIN=\"e-card-gui\"			\</div><div class='del'>-	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"		\</div><div class='del'>-	-DEVOLUTION_DATADIR=\""$(datadir)"\"		\</div><div class='del'>-	-I$(top_srcdir)					\</div><div class='del'>-	-I$(top_srcdir)/addressbook/backend/ebook	\</div><div class='del'>-	$(BONOBO_GNOME_CFLAGS)				\</div><div class='del'>-	$(EXTRA_GNOME_CFLAGS)</div><div class='del'>-</div><div class='del'>-noinst_LIBRARIES =				\</div><div class='del'>-	libecardmerging.a</div><div class='del'>-</div><div class='del'>-libecardmerging_a_SOURCES =			\</div><div class='del'>-	e-card-merging.c			\</div><div class='del'>-	e-card-merging.h</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-gladedir   = $(datadir)/evolution/glade</div><div class='del'>-glade_DATA = 	e-card-duplicate-detected.glade	\</div><div class='del'>-		e-card-merging-book-commit-duplicate-detected.glade</div><div class='del'>-</div><div class='del'>-EXTRA_DIST = 			\</div><div class='del'>-	 $(glade_DATA)</div><div class='head'>diff --git a/addressbook/gui/merging/e-card-duplicate-detected.glade b/addressbook/gui/merging/e-card-duplicate-detected.glade<br/>deleted file mode 100644<br/>index bc6624e8fd..0000000000<br/>--- a/<a href='/~lantw44/cgit/gsoc2013-evolution/tree/addressbook/gui/merging/e-card-duplicate-detected.glade?h=GDM_2_2_5_4&amp;id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/merging/e-card-duplicate-detected.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,255 +0,0 @@</div><div class='del'>-&lt;?xml version="1.0"?&gt;</div><div class='del'>-&lt;GTK-Interface&gt;</div><div class='del'>-</div><div class='del'>-&lt;project&gt;</div><div class='del'>-  &lt;name&gt;e-card-duplicate-detected&lt;/name&gt;</div><div class='del'>-  &lt;program_name&gt;e-card-duplicate-detected&lt;/program_name&gt;</div><div class='del'>-  &lt;directory&gt;&lt;/directory&gt;</div><div class='del'>-  &lt;source_directory&gt;src&lt;/source_directory&gt;</div><div class='del'>-  &lt;pixmaps_directory&gt;pixmaps&lt;/pixmaps_directory&gt;</div><div class='del'>-  &lt;language&gt;C&lt;/language&gt;</div><div class='del'>-  &lt;gnome_support&gt;True&lt;/gnome_support&gt;</div><div class='del'>-  &lt;gettext_support&gt;True&lt;/gettext_support&gt;</div><div class='del'>-  &lt;use_widget_names&gt;True&lt;/use_widget_names&gt;</div><div class='del'>-  &lt;output_main_file&gt;False&lt;/output_main_file&gt;</div><div class='del'>-  &lt;output_support_files&gt;False&lt;/output_support_files&gt;</div><div class='del'>-  &lt;output_build_files&gt;False&lt;/output_build_files&gt;</div><div class='del'>-  &lt;gnome_help_support&gt;True&lt;/gnome_help_support&gt;</div><div class='del'>-&lt;/project&gt;</div><div class='del'>-</div><div class='del'>-&lt;widget&gt;</div><div class='del'>-  &lt;class&gt;GnomeDialog&lt;/class&gt;</div><div class='del'>-  &lt;name&gt;dialog-duplicate-contact&lt;/name&gt;</div><div class='del'>-  &lt;title&gt;Duplicate Contact Detected&lt;/title&gt;</div><div class='del'>-  &lt;type&gt;GTK_WINDOW_POPUP&lt;/type&gt;</div><div class='del'>-  &lt;position&gt;GTK_WIN_POS_NONE&lt;/position&gt;</div><div class='del'>-  &lt;modal&gt;False&lt;/modal&gt;</div><div class='del'>-  &lt;allow_shrink&gt;False&lt;/allow_shrink&gt;</div><div class='del'>-  &lt;allow_grow&gt;True&lt;/allow_grow&gt;</div><div class='del'>-  &lt;auto_shrink&gt;False&lt;/auto_shrink&gt;</div><div class='del'>-  &lt;auto_close&gt;False&lt;/auto_close&gt;</div><div class='del'>-  &lt;hide_on_close&gt;False&lt;/hide_on_close&gt;</div><div class='del'>-</div><div class='del'>-  &lt;widget&gt;</div><div class='del'>-    &lt;class&gt;GtkVBox&lt;/class&gt;</div><div class='del'>-    &lt;child_name&gt;GnomeDialog:vbox&lt;/child_name&gt;</div><div class='del'>-    &lt;name&gt;dialog-vbox1&lt;/name&gt;</div><div class='del'>-    &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-    &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-    &lt;child&gt;</div><div class='del'>-      &lt;padding&gt;4&lt;/padding&gt;</div><div class='del'>-      &lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-      &lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-    &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkHButtonBox&lt;/class&gt;</div><div class='del'>-      &lt;child_name&gt;GnomeDialog:action_area&lt;/child_name&gt;</div><div class='del'>-      &lt;name&gt;dialog-action_area1&lt;/name&gt;</div><div class='del'>-      &lt;layout_style&gt;GTK_BUTTONBOX_END&lt;/layout_style&gt;</div><div class='del'>-      &lt;spacing&gt;8&lt;/spacing&gt;</div><div class='del'>-      &lt;child_min_width&gt;85&lt;/child_min_width&gt;</div><div class='del'>-      &lt;child_min_height&gt;27&lt;/child_min_height&gt;</div><div class='del'>-      &lt;child_ipad_x&gt;7&lt;/child_ipad_x&gt;</div><div class='del'>-      &lt;child_ipad_y&gt;0&lt;/child_ipad_y&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;False&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-	&lt;pack&gt;GTK_PACK_END&lt;/pack&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button3&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;label&gt;Add Anyway&lt;/label&gt;</div><div class='del'>-	&lt;stock_pixmap&gt;GNOME_STOCK_PIXMAP_ADD&lt;/stock_pixmap&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkButton&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;button4&lt;/name&gt;</div><div class='del'>-	&lt;can_default&gt;True&lt;/can_default&gt;</div><div class='del'>-	&lt;can_focus&gt;True&lt;/can_focus&gt;</div><div class='del'>-	&lt;stock_button&gt;GNOME_STOCK_BUTTON_CANCEL&lt;/stock_button&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-    &lt;widget&gt;</div><div class='del'>-      &lt;class&gt;GtkTable&lt;/class&gt;</div><div class='del'>-      &lt;name&gt;table1&lt;/name&gt;</div><div class='del'>-      &lt;rows&gt;5&lt;/rows&gt;</div><div class='del'>-      &lt;columns&gt;2&lt;/columns&gt;</div><div class='del'>-      &lt;homogeneous&gt;False&lt;/homogeneous&gt;</div><div class='del'>-      &lt;row_spacing&gt;6&lt;/row_spacing&gt;</div><div class='del'>-      &lt;column_spacing&gt;6&lt;/column_spacing&gt;</div><div class='del'>-      &lt;child&gt;</div><div class='del'>-	&lt;padding&gt;0&lt;/padding&gt;</div><div class='del'>-	&lt;expand&gt;True&lt;/expand&gt;</div><div class='del'>-	&lt;fill&gt;True&lt;/fill&gt;</div><div class='del'>-      &lt;/child&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;custom-old-card&lt;/name&gt;</div><div class='del'>-	&lt;creation_function&gt;e_card_merging_create_old_card&lt;/creation_function&gt;</div><div class='del'>-	&lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	&lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	&lt;last_modification_time&gt;Fri, 08 Jun 2001 01:33:22 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;4&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;True&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label1&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;The name or email address of this contact already exists</div><div class='del'>-in this folder.  Would you like to add it anyway?&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_LEFT&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;1&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label3&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;Original Contact:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;3&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;4&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkLabel&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;label4&lt;/name&gt;</div><div class='del'>-	&lt;label&gt;New Contact:&lt;/label&gt;</div><div class='del'>-	&lt;justify&gt;GTK_JUSTIFY_CENTER&lt;/justify&gt;</div><div class='del'>-	&lt;wrap&gt;False&lt;/wrap&gt;</div><div class='del'>-	&lt;xalign&gt;0&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0.5&lt;/yalign&gt;</div><div class='del'>-	&lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	&lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;1&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;2&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;False&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;custom-new-card&lt;/name&gt;</div><div class='del'>-	&lt;creation_function&gt;e_card_merging_create_old_card&lt;/creation_function&gt;</div><div class='del'>-	&lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	&lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	&lt;last_modification_time&gt;Fri, 08 Jun 2001 01:33:22 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;1&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;2&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;2&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;3&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;True&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;True&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-</div><div class='del'>-      &lt;widget&gt;</div><div class='del'>-	&lt;class&gt;GtkAlignment&lt;/class&gt;</div><div class='del'>-	&lt;name&gt;alignment1&lt;/name&gt;</div><div class='del'>-	&lt;xalign&gt;0.5&lt;/xalign&gt;</div><div class='del'>-	&lt;yalign&gt;0&lt;/yalign&gt;</div><div class='del'>-	&lt;xscale&gt;1&lt;/xscale&gt;</div><div class='del'>-	&lt;yscale&gt;0&lt;/yscale&gt;</div><div class='del'>-	&lt;child&gt;</div><div class='del'>-	  &lt;left_attach&gt;0&lt;/left_attach&gt;</div><div class='del'>-	  &lt;right_attach&gt;1&lt;/right_attach&gt;</div><div class='del'>-	  &lt;top_attach&gt;0&lt;/top_attach&gt;</div><div class='del'>-	  &lt;bottom_attach&gt;5&lt;/bottom_attach&gt;</div><div class='del'>-	  &lt;xpad&gt;0&lt;/xpad&gt;</div><div class='del'>-	  &lt;ypad&gt;0&lt;/ypad&gt;</div><div class='del'>-	  &lt;xexpand&gt;False&lt;/xexpand&gt;</div><div class='del'>-	  &lt;yexpand&gt;False&lt;/yexpand&gt;</div><div class='del'>-	  &lt;xshrink&gt;False&lt;/xshrink&gt;</div><div class='del'>-	  &lt;yshrink&gt;False&lt;/yshrink&gt;</div><div class='del'>-	  &lt;xfill&gt;True&lt;/xfill&gt;</div><div class='del'>-	  &lt;yfill&gt;True&lt;/yfill&gt;</div><div class='del'>-	&lt;/child&gt;</div><div class='del'>-</div><div class='del'>-	&lt;widget&gt;</div><div class='del'>-	  &lt;class&gt;Custom&lt;/class&gt;</div><div class='del'>-	  &lt;name&gt;custom2&lt;/name&gt;</div><div class='del'>-	  &lt;creation_function&gt;e_create_image_widget&lt;/creation_function&gt;</div><div class='del'>-	  &lt;string1&gt;malehead.png&lt;/string1&gt;</div><div class='del'>-	  &lt;int1&gt;0&lt;/int1&gt;</div><div class='del'>-	  &lt;int2&gt;0&lt;/int2&gt;</div><div class='del'>-	  &lt;last_modification_time&gt;Fri, 08 Jun 2001 00:18:39 GMT&lt;/last_modification_time&gt;</div><div class='del'>-	&lt;/widget&gt;</div><div class='del'>-      &lt;/widget&gt;</div><div class='del'>-    &lt;/widget&gt;</div><div class='del'>-  &lt;/widget&gt;</div>